Function at 0x416660
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x457180
mov eax, dword fs:[0]
push eax
sub esp, 0x32c
mov eax, dword [0x4754f4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor esi, esi
mov eax, 1
mov edi, ecx
mov dword [ebp - 0x320], esi
mov dword [ebp - 0x334], edi
test byte [0x477e64], al
jne 0x416713
or dword [0x477e64], eax
mov dword [ebp - 4], esi
mov dword [0x477e44], esi
push 8
mov byte [ebp - 4], al
call fcn.00426610
add esp, 4
cmp eax, esi
je 0x416898
mov dword [0x477e44], eax
xor ecx, ecx
mov dword [eax], ecx
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [0x477e44]
mov dword [eax], 0x477e44
push 0x4595f0
mov dword [0x477e5c], 7
mov dword [0x477e58], esi
mov word [0x477e48], cx
call fcn.00425060
add esp, 4
mov dword [ebp - 4], 0xffffffff
cmp dword [0x477e58], esi
jne 0x41682b
push 0x206
lea edx, [ebp - 0x316]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x318], cx
call fcn.0042c300
mov ecx, dword [0x477e0c]
add esp, 0xc
push 0x104
lea eax, [ebp - 0x318]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x330]
push edx
lea eax, [ebp - 0x318]
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov ebx, eax
cmp ebx, esi
je 0x41682b
push ebx
call fcn.004217c0
mov ecx, dword [ebp - 0x330]
add esp, 4
push eax
push ebx
push ecx
lea edx, [ebp - 0x318]
push edx
mov dword [ebp - 0x31c], eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x41681c
mov edx, dword [ebp - 0x31c]
lea eax, [ebp - 0x338]
push eax
lea ecx, [ebp - 0x320]
push ecx
push 0x46d878
push edx
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x41681c
push 0xfe
lea ecx, [ebp - 0x10e]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x110], ax
call fcn.0042c300
mov eax, dword [ebp - 0x320]
movzx edx, word [eax + 0xc]
movzx ecx, word [eax + 0xe]
push edx
movzx edx, word [eax + 8]
movzx eax, word [eax + 0xa]
push ecx
push edx
push eax
push 0x46d87c
mov ecx, 0x7f
lea ebx, [ebp - 0x110]
call fcn.004149c0
add esp, 0x20
push 0x477e44
mov esi, ebx
call fcn.00406730
xor esi, esi
mov ecx, dword [ebp - 0x31c]
push ecx
call fcn.00425750
add esp, 4
mov dword [edi], esi
push 8
mov dword [ebp - 4], 2
call fcn.00426610
add esp, 4
cmp eax, esi
je 0x4168cb
mov dword [edi], eax
xor edx, edx
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], edx
mov edx, dword [edi]
mov dword [edx], edi
mov dword [ebp - 4], 3
push esi
xor eax, eax
mov dword [edi + 0x18], 7
mov dword [edi + 0x14], esi
push 0x477e44
or ecx, 0xffffffff
mov word [edi + 4], ax
call fcn.004081a0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00420d00
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x31c]
push edx
lea ecx, [ebp - 0x32c]
mov dword [ebp - 0x31c], esi
call fcn.004211a0
push 0x46ffcc
lea eax, [ebp - 0x32c]
push eax
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.00432fc0
lea ecx, [ebp - 0x31c]
push ecx
lea ecx, [ebp - 0x32c]
mov dword [ebp - 0x31c], esi
call fcn.004211a0
push 0x46ffcc
lea edx, [ebp - 0x32c]
push edx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.00432fc0
int3