Function at 0x4393c0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x284
mov eax, dword [0x50f880]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x264], eax
mov eax, dword [ebp + 0xc]
push edi
mov ebx, ecx
push eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x27c], ebx
call fcn.00457473
add esp, 4
push ebx
mov edi, eax
call fcn.00457473
add esp, 4
mov ebx, eax
mov dword [ebp - 0x274], ebx
mov dword [ebp - 0x258], 0
test edi, edi
je 0x43944b
test ebx, ebx
je 0x43944b
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push ecx
mov ecx, dword [ebp - 0x264]
push edx
mov edx, dword [esi + 0x30]
push eax
push ebx
push edi
push 0
push ecx
call edx
or eax, edx
jne 0x439455
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x258], eax
jmp 0x439455
mov dword [ebp - 0x258], 8
mov eax, dword [esi]
xor ecx, ecx
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x268], ecx
cmp eax, ecx
je 0x4395e5
cmp edi, ecx
je 0x4395f2
test byte [eax + 0x18], 8
je 0x43952b
lea eax, [ebp - 0x280]
push eax
push edi
mov dword [ebp - 0x25c], ecx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov ebx, eax
test ebx, ebx
je 0x43952b
push ebx
call fcn.00456d95
add esp, 4
mov dword [ebp - 0x260], eax
test eax, eax
je 0x43952b
mov ecx, dword [ebp - 0x280]
push eax
push ebx
push ecx
push edi
call dword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
je 0x43951c
lea edx, [ebp - 0x284]
push edx
mov edx, dword [ebp - 0x260]
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0x270]
push ecx
push edx
mov dword [ebp - 0x270], 0x5c
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
jne 0x4394fc
mov dword [ebp - 0x25c], eax
jmp 0x43951c
mov edx, dword [ebp - 0x25c]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
xor eax, eax
xor ebx, ebx
add eax, edx
adc ecx, ebx
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x268], ecx
mov eax, dword [ebp - 0x260]
push eax
call fcn.00456d5b
add esp, 4
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x254]
push ecx
mov ecx, dword [ebp - 0x264]
push edx
push eax
push ecx
push esi
mov ebx, str._unknown_
call fcn.00439640
test eax, eax
je case.0x43955b.7
mov eax, dword [ebp - 0x234]
cmp eax, 9
ja case.0x43955b.7
jmp dword [eax*4 + 0x439618]
mov ebx, str._nosymbols_
jmp case.0x43955b.7
mov ebx, str.COFF
jmp case.0x43955b.7
mov ebx, 0x4f558c
jmp case.0x43955b.7
mov ebx, 0x4f5590
jmp case.0x43955b.7
mov ebx, str._exported_
jmp case.0x43955b.7
mov ebx, str._deferred_
jmp case.0x43955b.7
mov ebx, 0x4f55ac
jmp case.0x43955b.7
mov ebx, str.Virtual
jmp case.0x43955b.7
mov ebx, 0x4f55b8
mov eax, dword [ebp - 0x268]
push eax
mov eax, dword [ebp - 0x26c]
mov ecx, dword [esi]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 8]
lea eax, [ebp - 0x110]
push eax
mov eax, dword [ebp - 0x258]
push ebx
push eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x27c]
push eax
mov eax, dword [ebp - 0x278]
push eax
call edx
mov ebx, dword [ebp - 0x274]
test edi, edi
je 0x4395f2
push edi
call fcn.00456d5b
add esp, 4
test ebx, ebx
je 0x4395ff
push ebx
call fcn.00456d5b
add esp, 4
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x258]
pop edi
xor ecx, ebp
pop ebx
call fcn.00453be1
mov esp, ebp
pop ebp
ret 0x14