Function at 0x10040059
Capabilities:
Get file version info

Disassembly:
mov eax, 0x1004c03f
call fcn.100464e0
sub esp, 0x26c
mov al, byte [ebp + 0xb]
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x30], al
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
push 1
lea eax, [ebp - 0x278]
pop esi
push 0x20a
push ebx
push eax
mov dword [ebp - 4], esi
call sub.MSVCRT.dll_memset
push dword [ebp + 0xc]
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 0x14
lea eax, [ebp - 0x278]
push ebx
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
cmp eax, ebx
mov dword [ebp + 0xc], eax
jne 0x10040133
mov al, byte [ebp + 0xb]
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x1c], al
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
push ebx
mov byte [ebp - 4], 2
mov dword [ebp + 0xc], ebx
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push eax
call fcn.100429b2
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
jmp 0x1004025a
push eax
call sub.MFC42u.DLL_operatornew
push dword [ebp + 0xc]
mov edi, eax
push ebx
push edi
call sub.MSVCRT.dll_memset
add esp, 0x10
lea eax, [ebp - 0x278]
push edi
push dword [ebp + 0xc]
push ebx
push eax
call sub.VERSION.dll_GetFileVersionInfoW
cmp eax, ebx
jne 0x100401d1
mov al, byte [ebp + 0xb]
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x1c], al
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
push ebx
mov byte [ebp - 4], 3
mov dword [ebp + 0xc], ebx
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push eax
call fcn.100429b2
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
jmp 0x1004025a
lea eax, [ebp - 0x38]
mov dword [ebp - 0x34], ebx
push eax
lea eax, [ebp - 0x34]
push eax
push 0x1005cd28
push edi
mov dword [ebp - 0x38], ebx
call sub.VERSION.dll_VerQueryValueW
cmp eax, ebx
jne 0x10040261
mov al, byte [ebp + 0xb]
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x1c], al
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
push ebx
mov byte [ebp - 4], 4
mov dword [ebp + 0xc], ebx
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
push dword [ebp - 0x14]
call fcn.100432ab
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
mov dword [ebp + 0xc], ebx
call fcn.10042a29
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push eax
call fcn.100429b2
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.10042a09
jmp 0x100402d6
push 0x34
lea eax, [ebp - 0x6c]
push dword [ebp - 0x34]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [ebp - 0x64]
add esp, 0xc
shr eax, 0x10
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x30]
call fcn.10042a29
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x30]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
call fcn.10042a29
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x30]
shr eax, 0x10
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
call fcn.10042a29
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x30]
mov dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
call fcn.10042a29
push edi
call sub.MFC42u.DLL_operatordelete
pop ecx
lea eax, [ebp - 0x30]
mov ecx, dword [ebp + 8]
push eax
call fcn.100429b2
mov dword [ebp - 0x20], esi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], bl
call fcn.10042a09
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret