Function at 0x4e5feb
Capabilities:
Get file version info

Disassembly:
push ebp
push ebx
push edi
mov edx, 8
sub esp, 4
mov dword [esp], 0
dec edx
jne 0x4e5ff3
call fcn.0055ab90
push dword [esp + 0x38]
call fcn.004f4350
mov edx, dword [esp + 0x30]
lea ecx, [esp]
call fcn.004f4000
mov dword [section..data], 0x4000ec
mov dword [section..data], 0x4000f8
mov dword [section..data], 0x4000fa
push dword [esp]
call fcn.0054cac0
push edx
push eax
pop ebx
pop edi
cmp edi, 0
jl 0x4e6054
jg 0x4e6050
cmp ebx, 0
jb 0x4e6054
xor eax, eax
jmp 0x4e6059
mov eax, 1
or eax, eax
je 0x4e60eb
mov dword [section..data], 0x4000fb
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.File_does_not_exist___
push edx
call fcn.0055aac0
mov edx, dword [esp + 0xc]
push edx
call fcn.0055aac0
mov edx, 0x638cee
push edx
call fcn.0055aac0
call fcn.0055ab20
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0x4000fc
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.004f4008
mov dword [section..data], 0x4000fd
jmp 0x4e683a
mov dword [section..data], 0x4000fe
mov dword [section..data], 0x400100
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 4]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [esp + 0x10], eax
mov dword [section..data], 0x400101
cmp dword [esp + 0x10], 0
je 0x4e6127
xor eax, eax
jmp 0x4e612c
mov eax, 1
and eax, eax
je 0x4e6235
mov dword [section..data], 0x400102
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x1c], eax
mov dword [section..data], 0x400103
mov ebx, dword [esp + 0x1c]
cmp ebx, 0x715
jne 0x4e6184
mov dword [section..data], 0x400104
mov edx, 0x665d7e
lea ecx, [esp + 0x18]
call fcn.004f4008
mov dword [section..data], 0x400105
jmp 0x4e621c
mov dword [section..data], 0x400105
mov dword [section..data], 0x400106
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.ERROR__GetFileVersionInfoSize_failed__
push edx
call fcn.0055aac0
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.00548d10
pop eax
mov edx, 0x638cee
push edx
call fcn.0055aac0
call fcn.0055ab20
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0x400107
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.004f4008
mov dword [section..data], 0x400108
mov dword [section..data], 0x400109
jmp 0x4e683a
mov dword [section..data], 0x40010a
mov dword [section..data], 0x40010c
push dword [esp + 0x10]
call fcn.0055a360
mov dword [esp + 4], eax
mov dword [section..data], 0x40010d
cmp dword [esp + 4], 0
je 0x4e626b
xor eax, eax
jmp 0x4e6270
mov eax, 1
and eax, eax
je 0x4e6315
mov dword [section..data], 0x40010e
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.ERROR__Couldnt_allocate_memory__
push edx
call fcn.0055aac0
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov eax, dword [esp + 0x24]
cdq
push edx
push eax
call fcn.00548d10
pop eax
mov edx, 0x638cee
push edx
call fcn.0055aac0
call fcn.0055ab20
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0x40010f
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.004f4008
mov dword [section..data], 0x400110
jmp 0x4e683a
mov dword [section..data], 0x400111
mov dword [section..data], 0x400113
push dword [esp + 4]
push dword [esp + 0x14]
push 0
mov eax, dword [esp + 0xc]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
and eax, eax
je 0x4e6348
xor eax, eax
jmp 0x4e634d
mov eax, 1
and eax, eax
je 0x4e6405
mov dword [section..data], 0x400114
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x1c], eax
mov dword [section..data], 0x400115
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.ERROR__GetFileVersionInfo_failed__
push edx
call fcn.0055aac0
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.00548d10
pop eax
mov edx, 0x638cee
push edx
call fcn.0055aac0
call fcn.0055ab20
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0x400116
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.004f4008
mov dword [section..data], 0x400117
jmp 0x4e683a
mov dword [section..data], 0x400118
mov dword [section..data], 0x40011a
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0xc]
push eax
mov eax, 0x63abd4
push eax
push dword [esp + 0x10]
call sub.VERSION.dll_VerQueryValueW
and eax, eax
je 0x4e643a
xor eax, eax
jmp 0x4e643f
mov eax, 1
and eax, eax
je 0x4e64f7
mov dword [section..data], 0x40011b
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x1c], eax
mov dword [section..data], 0x40011c
push edx
call fcn.0055a9f0
pop edx
push eax
push 0
push edx
call fcn.0055a9f0
pop edx
push eax
mov edx, str.ERROR__VerQueryValue_failed__
push edx
call fcn.0055aac0
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.00548d10
pop eax
mov edx, 0x638cee
push edx
call fcn.0055aac0
call fcn.0055ab20
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.004f4332
add dword [esp + 8], edx
call fcn.004967c8
call fcn.004f4350
mov dword [section..data], 0x40011d
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.004f4008
mov dword [section..data], 0x40011e
jmp 0x4e683a
mov dword [section..data], 0x40011f
mov dword [section..data], 0x400121
push dword [esp + 0x34]
mov dword [section..data], 0x400122
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x4e6663
mov dword [section..data], 0x400123
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 8]
cdq
push edx
push eax
and dword [esp], 0xffff0000
and dword [esp + 4], 0
push 0
push 0x10000
push dword [esp + 0xc]
push dword [esp + 0xc]
call fcn.004f4010
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.00548d10
mov edx, 0x6380ec
push edx
call fcn.0055aac0
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 8]
cdq
push edx
push eax
and dword [esp], 0xffff
and dword [esp + 4], 0
pop eax
pop edx
push edx
push eax
call fcn.00548d10
pop eax
mov edx, 0x6380ec
push edx
call fcn.0055aac0
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0xc]
cdq
push edx
push eax
and dword [esp], 0xffff0000
and dword [esp + 4], 0
push 0
push 0x10000
push dword [esp + 0xc]
push dword [esp + 0xc]
call fcn.004f4010
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.00548d10
pop eax
mov edx, 0x6380ec
push edx
call fcn.0055aac0
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0xc]
cdq
push edx
push eax
and dword [esp], 0xffff
and dword [esp + 4], 0
pop eax
pop edx
push edx
push eax
call fcn.00548d10
pop eax
lea eax, [esp + 0x20]
push eax
call fcn.0055aa30
mov dword [section..data], 0x400124
jmp 0x4e6825
mov dword [section..data], 0x400124
mov ebx, 1
cmp ebx, dword [esp]
jne 0x4e66e7
mov dword [section..data], 0x400125
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 8]
cdq
push edx
push eax
and dword [esp], 0xffff0000
and dword [esp + 4], 0
push 0
push 0x10000
push dword [esp + 0xc]
push dword [esp + 0xc]
call fcn.004f4010
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.00548d10
lea eax, [esp + 0x20]
push eax
call fcn.0055aa30
mov dword [section..data], 0x400126
jmp 0x4e6825
mov dword [section..data], 0x400126
mov ebx, 2
cmp ebx, dword [esp]
jne 0x4e674d
mov dword [section..data], 0x400127
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 8]
cdq
push edx
push eax
and dword [esp], 0xffff
and dword [esp + 4], 0
pop eax
pop edx
push edx
push eax
call fcn.00548d10
lea eax, [esp + 0x20]
push eax
call fcn.0055aa30
mov dword [section..data], 0x400128
jmp 0x4e6825
mov dword [section..data], 0x400128
mov ebx, 3
cmp ebx, dword [esp]
jne 0x4e67ce
mov dword [section..data], 0x400129
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
cdq
push edx
push eax
and dword [esp], 0xffff0000
and dword [esp + 4], 0
push 0
push 0x10000
push dword [esp + 0xc]
push dword [esp + 0xc]
call fcn.004f4010
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.00548d10
lea eax, [esp + 0x20]
push eax
call fcn.0055aa30
mov dword [section..data], 0x40012a
jmp 0x4e6825
mov dword [section..data], 0x40012a
mov ebx, 4
cmp ebx, dword [esp]
jne 0x4e6825
mov dword [section..data], 0x40012b
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055a9f0
pop edx
push eax
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
cdq
push edx
push eax
and dword [esp], 0xffff
and dword [esp + 4], 0
pop eax
pop edx
push edx
push eax
call fcn.00548d10
lea eax, [esp + 0x20]
push eax
call fcn.0055aa30
mov dword [section..data], 0x40012c
pop eax
mov dword [section..data], 0x40012f
mov dword [section..data], 0x400132
cmp dword [esp + 4], 0
je 0x4e685e
mov dword [section..data], 0x400133
push dword [esp + 4]
call fcn.0055a4d0
mov dword [section..data], 0x400134
mov dword [section..data], 0x400136
mov edx, dword [esp + 0x18]
push edx
call fcn.0055a9f0
pop edx
push eax
push edx
call fcn.0055aac0
pop eax
push eax
call fcn.004f4320
pop edx
add eax, edx
jmp 0x4e68a4
push dword [esp + 0x18]
call fcn.0055abf0
push dword [esp]
call fcn.0055abf0
add esp, 0x20
pop edi
pop ebx
pop ebp
ret 8