Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8230233
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 7, 20262026-06-07T17:03:56+00:00 2026-06-07T17:03:56+00:00

Can someone explain to me the following behavior on x64 platform: If I call

  • 0

Can someone explain to me the following behavior on x64 platform:
If I call from my executable to a function in another dll in x64 the disassembled code looks something like this:

000000014000149E FF 15 34 CF 00 00  call  qword ptr [__imp_CFuncInDll (14000E3D8h)]

I realize that the debugger calculates the relative address to this absolute address 14000E3C0h. However unlike x86 code if I’ll disassemble the address 14000E3D8h it looks like garbage:

__imp_CFuncInDll:
000000014000E3D8 19 10                sbb         dword ptr [rax],edx  
000000014000E3DA 25 FC FE 07 00       and         eax,7FEFCh  
000000014000E3DF 00 14 10             add         byte ptr [rax+rdx],dl  
000000014000E3E2 25 FC FE 07 00       and         eax,7FEFCh  
000000014000E3E7 00 00                add         byte ptr [rax],al  
....... 

When I step into the call I can see that instead of getting into the garbage address the code jumps to a valid address:

000007FEFC251019 E9 62 00 00 00       jmp         CFuncInDll (7FEFC251080h)  

My question:
How the call instruction is decoded on x64 when the target is in another module?
In x86 the call target of this code:

FF 15 34 CF 00 00    call 

was: target = next instruction address + 0x0000CF34
While on x64 it looks like this is not the case.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-07T17:03:57+00:00Added an answer on June 7, 2026 at 5:03 pm

    call qword ptr [__imp_CFuncInDll (14000E3D8h)] is an indirect call through a pointer. The pointer’s address is 0x14000E3D8. If you look at the code bytes of your non-sense disassembly, they turn out to contain the following:

    19 10 25 FC FE 07 00 00 
    

    Which is a little-endian quadword is: 000007fe.fc251019 – the address of the jmp CFuncInDll instruction you get to when you single step.

    Basically, the call to an import function is being assembled as a call through an entry in a table of addresses to a small ‘thunk’ that jumps to the actual function implementation.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Can someone explain the following behavior? Specifically, why does the function return a different
Can someone explain the following code snippet for me? // Bind base object so
I'm having a problem with TRY...CATCH blocks. Can someone explain why the following code
Hi can someone explain if the in the following code the synchronized code will
In the following jquery function, can someone explain to me why second is being
Can someone explain the following behavior in Java sockets: The general idea is this:
Can someone explain the output of the following code char* a[] = {ABC123, DEF456,
Can someone explain the following strange behavior? I run the following program on a
Hopefully someone can explain some odd behavior I've encountered with jQuery. The following script
Can someone please explain the following code? Source: Arrays.class, public static <T> void sort(T[]

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.