Function at 0x4ff628
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 0x4ff630
call fcn.0057b2e0
push dword [esp + 0x38]
call fcn.0050d240
mov edx, dword [esp + 0x30]
lea ecx, [esp]
call fcn.0050d0f0
mov dword [section..data], 0x4000ef
mov dword [section..data], 0x4000fb
mov dword [section..data], 0x4000fd
push dword [esp]
call fcn.0056d9eb
push edx
push eax
pop ebx
pop edi
cmp edi, 0
jl 0x4ff691
jg 0x4ff68d
cmp ebx, 0
jb 0x4ff691
xor eax, eax
jmp 0x4ff696
mov eax, 1
or eax, eax
je 0x4ff728
mov dword [section..data], 0x4000fe
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.File_does_not_exist___
push edx
call fcn.0057b230
mov edx, dword [esp + 0xc]
push edx
call fcn.0057b230
mov edx, 0x67df2c
push edx
call fcn.0057b230
call fcn.0057b490
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0x4000ff
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.0050d0f8
mov dword [section..data], 0x400100
jmp 0x4ffe77
mov dword [section..data], 0x400101
mov dword [section..data], 0x400103
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], 0x400104
cmp dword [esp + 0x10], 0
je 0x4ff764
xor eax, eax
jmp 0x4ff769
mov eax, 1
and eax, eax
je 0x4ff872
mov dword [section..data], 0x400105
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x1c], eax
mov dword [section..data], 0x400106
mov ebx, dword [esp + 0x1c]
cmp ebx, 0x715
jne 0x4ff7c1
mov dword [section..data], 0x400107
mov edx, 0x6ac684
lea ecx, [esp + 0x18]
call fcn.0050d0f8
mov dword [section..data], 0x400108
jmp 0x4ff859
mov dword [section..data], 0x400108
mov dword [section..data], 0x400109
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.ERROR__GetFileVersionInfoSize_failed__
push edx
call fcn.0057b230
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
pop edx
push eax
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.0056a320
pop eax
mov edx, 0x67df2c
push edx
call fcn.0057b230
call fcn.0057b490
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0x40010a
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.0050d0f8
mov dword [section..data], 0x40010b
mov dword [section..data], 0x40010c
jmp 0x4ffe77
mov dword [section..data], 0x40010d
mov dword [section..data], 0x40010f
push dword [esp + 0x10]
call fcn.0057abd0
mov dword [esp + 4], eax
mov dword [section..data], 0x400110
cmp dword [esp + 4], 0
je 0x4ff8a8
xor eax, eax
jmp 0x4ff8ad
mov eax, 1
and eax, eax
je 0x4ff952
mov dword [section..data], 0x400111
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.ERROR__Couldnt_allocate_memory__
push edx
call fcn.0057b230
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
pop edx
push eax
mov eax, dword [esp + 0x24]
cdq
push edx
push eax
call fcn.0056a320
pop eax
mov edx, 0x67df2c
push edx
call fcn.0057b230
call fcn.0057b490
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0x400112
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.0050d0f8
mov dword [section..data], 0x400113
jmp 0x4ffe77
mov dword [section..data], 0x400114
mov dword [section..data], 0x400116
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 0x4ff985
xor eax, eax
jmp 0x4ff98a
mov eax, 1
and eax, eax
je 0x4ffa42
mov dword [section..data], 0x400117
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x1c], eax
mov dword [section..data], 0x400118
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.ERROR__GetFileVersionInfo_failed__
push edx
call fcn.0057b230
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
pop edx
push eax
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.0056a320
pop eax
mov edx, 0x67df2c
push edx
call fcn.0057b230
call fcn.0057b490
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0x400119
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.0050d0f8
mov dword [section..data], 0x40011a
jmp 0x4ffe77
mov dword [section..data], 0x40011b
mov dword [section..data], 0x40011d
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0xc]
push eax
mov eax, 0x67fef4
push eax
push dword [esp + 0x10]
call sub.VERSION.dll_VerQueryValueW
and eax, eax
je 0x4ffa77
xor eax, eax
jmp 0x4ffa7c
mov eax, 1
and eax, eax
je 0x4ffb34
mov dword [section..data], 0x40011e
call sub.KERNEL32.dll_GetLastError
mov dword [esp + 0x1c], eax
mov dword [section..data], 0x40011f
push edx
call fcn.0057b460
pop edx
push eax
push 0
push edx
call fcn.0057b460
pop edx
push eax
mov edx, str.ERROR__VerQueryValue_failed__
push edx
call fcn.0057b230
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
pop edx
push eax
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.0056a320
pop eax
mov edx, 0x67df2c
push edx
call fcn.0057b230
call fcn.0057b490
mov eax, str.WNFSM_GetFileVersion
push eax
mov eax, str.windows_filesystem
push eax
call fcn.0050d222
add dword [esp + 8], edx
call fcn.004ae98d
call fcn.0050d240
mov dword [section..data], 0x400120
mov edx, str.ERROR
lea ecx, [esp + 0x18]
call fcn.0050d0f8
mov dword [section..data], 0x400121
jmp 0x4ffe77
mov dword [section..data], 0x400122
mov dword [section..data], 0x400124
push dword [esp + 0x34]
mov dword [section..data], 0x400125
xor ebx, ebx
cmp ebx, dword [esp]
jne 0x4ffca0
mov dword [section..data], 0x400126
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0050d040
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.0056a320
mov edx, 0x67d32a
push edx
call fcn.0057b230
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0056a320
pop eax
mov edx, 0x67d32a
push edx
call fcn.0057b230
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0050d040
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.0056a320
pop eax
mov edx, 0x67d32a
push edx
call fcn.0057b230
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0056a320
pop eax
lea eax, [esp + 0x20]
push eax
call fcn.0057b350
mov dword [section..data], 0x400127
jmp 0x4ffe62
mov dword [section..data], 0x400127
mov ebx, 1
cmp ebx, dword [esp]
jne 0x4ffd24
mov dword [section..data], 0x400128
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0050d040
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.0056a320
lea eax, [esp + 0x20]
push eax
call fcn.0057b350
mov dword [section..data], 0x400129
jmp 0x4ffe62
mov dword [section..data], 0x400129
mov ebx, 2
cmp ebx, dword [esp]
jne 0x4ffd8a
mov dword [section..data], 0x40012a
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0056a320
lea eax, [esp + 0x20]
push eax
call fcn.0057b350
mov dword [section..data], 0x40012b
jmp 0x4ffe62
mov dword [section..data], 0x40012b
mov ebx, 3
cmp ebx, dword [esp]
jne 0x4ffe0b
mov dword [section..data], 0x40012c
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0050d040
mov dword [esp], eax
mov dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
call fcn.0056a320
lea eax, [esp + 0x20]
push eax
call fcn.0057b350
mov dword [section..data], 0x40012d
jmp 0x4ffe62
mov dword [section..data], 0x40012d
mov ebx, 4
cmp ebx, dword [esp]
jne 0x4ffe62
mov dword [section..data], 0x40012e
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b460
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.0056a320
lea eax, [esp + 0x20]
push eax
call fcn.0057b350
mov dword [section..data], 0x40012f
pop eax
mov dword [section..data], 0x400132
mov dword [section..data], 0x400135
cmp dword [esp + 4], 0
je 0x4ffe9b
mov dword [section..data], 0x400136
push dword [esp + 4]
call fcn.0057ad30
mov dword [section..data], 0x400137
mov dword [section..data], 0x400139
mov edx, dword [esp + 0x18]
push edx
call fcn.0057b460
pop edx
push eax
push edx
call fcn.0057b230
pop eax
push eax
call fcn.0050d210
pop edx
add eax, edx
jmp 0x4ffee1
push dword [esp + 0x18]
call fcn.0057b3c0
push dword [esp]
call fcn.0057b3c0
add esp, 0x20
pop edi
pop ebx
pop ebp
ret 8