Function at 0x404b20
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x488
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov ecx, 0x47
xor eax, eax
lea edi, [ebp - 0x148]
push ebx
rep stosd dword es:[edi], eax
mov ecx, 0x8f
lea edi, [ebp - 0x488]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push str.0x_08X
push eax
mov dword [ebp - 0x148], 0x18
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x138], 0x104
mov dword [ebp - 0x488], 0x23c
call edi
mov ecx, dword [0x420cb4]
mov esi, eax
mov eax, dword [ebp + 0xc]
add esp, 0xc
add esi, eax
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x404d23
mov ecx, dword [ecx + 4]
lea edx, [ebp - 0x488]
push edx
push ebx
push ecx
call eax
test eax, eax
je 0x404d23
lea edx, [ebp - 0x44c]
push 0x5c
push edx
call fcn.0040ff10
add esp, 8
test eax, eax
je 0x404bca
inc eax
jmp 0x404bd0
lea eax, [ebp - 0x44c]
push eax
push 0x41c88c
push esi
call edi
add esi, eax
mov eax, dword [0x41c698]
add esp, 0xc
test eax, eax
je 0x404c5c
lea eax, [ebp - 0x44c]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea ecx, [ebp - 0x24c]
push 0x104
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x24c]
push edx
push eax
xor edi, edi
xor ebx, ebx
call sub.VERSION.dll_GetFileVersionInfoSizeA
test eax, eax
mov dword [ebp - 0x10], eax
je 0x404c53
push eax
call fcn.0041122f
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
add esp, 4
mov dword [ebp - 0xc], eax
push eax
push ecx
lea eax, [ebp - 0x24c]
push edx
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
jne 0x404cb6
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0040fdd6
add esp, 4
mov ebx, dword [ebp + 8]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push 0x41c888
push esi
call edi
mov ecx, dword [0x420cb4]
add esi, eax
add esp, 8
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x404e1c
mov ecx, dword [ecx + 4]
lea edx, [ebp - 0x148]
push edx
lea edx, [ebp - 4]
push edx
push ebx
push ecx
call eax
test eax, eax
je 0x404e1c
mov eax, dword [ebp - 4]
test eax, eax
jne 0x404d35
lea edx, [ebp - 0x134]
push edx
push 0x41c88c
push esi
call edi
add esp, 0xc
jmp 0x404d48
mov ecx, dword [ebp - 0xc]
lea edx, [ebp - 0x2c]
lea eax, [ebp - 8]
push edx
push eax
push 0x41c0d0
push ecx
call sub.VERSION.dll_VerQueryValueA
cmp eax, 1
mov dword [ebp - 0x10], eax
jne 0x404cdd
mov eax, dword [ebp - 8]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov edx, dword [ebp - 0xc]
push edx
call fcn.0040fdd6
mov eax, dword [ebp - 0x10]
add esp, 4
test eax, eax
je 0x404c53
mov eax, ebx
mov ecx, edi
and eax, 0xffff
and ecx, 0xffff
shr ebx, 0x10
push eax
push ebx
shr edi, 0x10
push ecx
push edi
push str.___d._02d._d._d_
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
add esi, eax
jmp 0x404c53
push str._unknown_module_
push esi
call edi
add esp, 8
add esi, eax
jmp 0x404c5c
push eax
lea eax, [ebp - 0x134]
push eax
push str._s___d_bytes
push esi
call edi
add esp, 0x10
xor ecx, ecx
add esi, eax
mov eax, dword [0x420cb4]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], 0x14
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [ebp - 8], ecx
je 0x404e03
lea edx, [ebp - 0x24]
add eax, 4
push edx
lea edx, [ebp - 4]
mov dword [ebp + 8], eax
mov eax, dword [eax]
push edx
push ebx
push eax
xor edi, edi
call ecx
test eax, eax
jne 0x404db6
inc edi
cmp edi, 0x64
je 0x404dfd
lea ecx, [ebp - 0x24]
lea edx, [ebp - 4]
push ecx
mov ecx, dword [ebp + 8]
mov eax, ebx
push edx
mov edx, dword [ecx]
sub eax, edi
push eax
push edx
call dword [ebp - 8]
test eax, eax
je 0x404d8f
test edi, edi
je 0x404db6
mov dword [ebp - 4], edi
mov eax, dword [ebp - 0x18]
push 0x5c
push eax
call fcn.0040ff10
add esp, 8
test eax, eax
je 0x404dcb
inc eax
jmp 0x404dce
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
push ecx
push eax
push str.___s__Line__d
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esi, eax
mov eax, dword [ebp - 4]
add esp, 0x10
test eax, eax
je 0x404dfd
push eax
push str.___d_bytes
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
add esi, eax
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push 0x41c58c
push esi
call edi
mov edx, dword [ebp + 0xc]
add esp, 8
sub esi, edx
add eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str._unknown_symbol_
push esi
call edi
add esp, 8
add esi, eax
jmp 0x404e03