Function at 0x48fe24
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x55
push 0
push 0
dec ecx
jne 0x48fe2c
push ebx
push esi
push edi
mov ebx, eax
lea esi, [ebp - 0x14]
xor eax, eax
push ebp
push 0x49056b
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebx + 0xb4], 0
mov byte [ebp - 1], 0
mov eax, dword [ebx + 0x60]
call fcn.0040993c
test al, al
je 0x490535
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebx + 0x60]
call fcn.00404908
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov edi, eax
mov dword [ebx + 0xb8], edi
test edi, edi
je 0x490535
mov eax, edi
call fcn.00402744
mov dword [ebx + 0xbc], eax
mov eax, dword [ebx + 0xbc]
push eax
mov eax, dword [ebx + 0xb8]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebx + 0x60]
call fcn.00404908
push eax
call sub.version.dll_GetFileVersionInfoA
push esi
lea eax, [ebp - 0x18]
push eax
push 0x49057c
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490535
lea edx, [ebp - 6]
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi]
call fcn.004029b8
mov eax, dword [ebp - 6]
mov dword [ebx + 0xb0], eax
mov eax, dword [esi]
shr eax, 2
mov dword [ebx + 0x84], eax
push 0x201
lea eax, [ebp - 0x21d]
push eax
movzx eax, word [ebp - 6]
push eax
call sub.kernel32.dll_VerLanguageNameA
lea edx, [ebp - 0x258]
lea eax, [ebp - 0x21d]
call fcn.0040a038
mov edx, dword [ebp - 0x258]
lea eax, [ebx + 0x88]
call fcn.00404470
lea eax, [ebp - 0x25c]
push eax
movzx eax, word [ebp - 6]
mov dword [ebp - 0x26c], eax
mov byte [ebp - 0x268], 0
movzx eax, word [ebp - 4]
mov dword [ebp - 0x264], eax
mov byte [ebp - 0x260], 0
lea edx, [ebp - 0x26c]
mov ecx, 1
mov eax, 0x4905a0
call fcn.0040a528
mov edx, dword [ebp - 0x25c]
lea eax, [ebx + 0xc0]
call fcn.00404470
mov dword [esi], 0x34
lea eax, [ebp - 0x251]
xor ecx, ecx
mov edx, dword [esi]
call fcn.00402e4c
push esi
lea eax, [ebp - 0x10]
push eax
push 0x4905bc
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490535
lea edx, [ebp - 0x251]
mov eax, dword [ebp - 0x10]
mov ecx, dword [esi]
call fcn.004029b8
mov eax, dword [ebp - 0x249]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp - 0x245]
mov dword [ebx + 0x5c], eax
mov eax, dword [ebp - 0x241]
mov dword [ebx + 0x98], eax
mov eax, dword [ebp - 0x23d]
mov dword [ebx + 0x9c], eax
mov eax, dword [ebp - 0x239]
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0x235]
mov dword [ebx + 0x50], eax
mov dx, word [ebp - 0x221]
mov ax, word [ebp - 0x225]
call fcn.00407944
mov dword [ebp - 0x270], eax
fild dword [ebp - 0x270]
fstp qword [ebx + 0x48]
wait
mov eax, dword [ebp - 0x231]
mov dword [ebx + 0x64], eax
mov eax, dword [ebp - 0x22d]
mov dword [ebx + 0x68], eax
mov eax, dword [ebp - 0x229]
mov dword [ebx + 0x6c], eax
lea eax, [ebp - 0x1c]
mov ecx, 0x4905c8
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x49009c
cmp dword [esi], 0
je 0x49009c
lea edx, [ebp - 0x274]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x274]
lea eax, [ebx + 0x38]
call fcn.00404470
jmp 0x4900a4
lea eax, [ebx + 0x38]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x4905dc
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x4900fe
cmp dword [esi], 0
je 0x4900fe
lea edx, [ebp - 0x278]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x278]
lea eax, [ebx + 0x3c]
call fcn.00404470
jmp 0x490106
lea eax, [ebx + 0x3c]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x4905f0
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490160
cmp dword [esi], 0
je 0x490160
lea edx, [ebp - 0x27c]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x27c]
lea eax, [ebx + 0x40]
call fcn.00404470
jmp 0x490168
lea eax, [ebx + 0x40]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x490608
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490226
cmp dword [esi], 0
je 0x490226
lea edx, [ebp - 0x280]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x280]
lea eax, [ebx + 0x70]
call fcn.00404470
mov al, byte [0x490614]
push eax
lea eax, [ebp - 0x284]
push eax
xor ecx, ecx
mov edx, 0x490620
mov eax, dword [ebx + 0x70]
call fcn.0040ecfc
mov edx, dword [ebp - 0x284]
lea eax, [ebx + 0x70]
call fcn.00404470
mov al, byte [0x490614]
push eax
lea eax, [ebp - 0x288]
push eax
xor ecx, ecx
mov edx, 0x49062c
mov eax, dword [ebx + 0x70]
call fcn.0040ecfc
mov edx, dword [ebp - 0x288]
lea eax, [ebx + 0x70]
call fcn.00404470
mov eax, dword [ebx + 0x70]
call fcn.0048f6d4
fstp qword [ebx + 0x78]
wait
jmp 0x490236
lea eax, [ebx + 0x70]
call fcn.0040441c
xor eax, eax
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x7c], eax
lea eax, [ebp - 0x1c]
mov ecx, 0x490638
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490293
cmp dword [esi], 0
je 0x490293
lea edx, [ebp - 0x28c]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x28c]
lea eax, [ebx + 0x80]
call fcn.00404470
jmp 0x49029e
lea eax, [ebx + 0x80]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x490650
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x4902fb
cmp dword [esi], 0
je 0x4902fb
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x290]
lea eax, [ebx + 0x8c]
call fcn.00404470
jmp 0x490306
lea eax, [ebx + 0x8c]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x490668
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490363
cmp dword [esi], 0
je 0x490363
lea edx, [ebp - 0x294]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x294]
lea eax, [ebx + 0x90]
call fcn.00404470
jmp 0x49036e
lea eax, [ebx + 0x90]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x490680
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x4903cb
cmp dword [esi], 0
je 0x4903cb
lea edx, [ebp - 0x298]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x298]
lea eax, [ebx + 0x94]
call fcn.00404470
jmp 0x4903d6
lea eax, [ebx + 0x94]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x49069c
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490433
cmp dword [esi], 0
je 0x490433
lea edx, [ebp - 0x29c]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x29c]
lea eax, [ebx + 0xa0]
call fcn.00404470
jmp 0x49043e
lea eax, [ebx + 0xa0]
call fcn.0040441c
lea eax, [ebp - 0x1c]
mov ecx, 0x4906b0
mov edx, dword [ebx + 0xc0]
call fcn.00404754
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x490515
cmp dword [esi], 0
je 0x490515
lea edx, [ebp - 0x2a0]
mov eax, dword [ebp - 0x10]
call fcn.0040a038
mov edx, dword [ebp - 0x2a0]
lea eax, [ebx + 0xa4]
call fcn.00404470
mov al, byte [0x490614]
push eax
lea eax, [ebp - 0x2a4]
push eax
xor ecx, ecx
mov edx, 0x490620
mov eax, dword [ebx + 0xa4]
call fcn.0040ecfc
mov edx, dword [ebp - 0x2a4]
lea eax, [ebx + 0xa4]
call fcn.00404470
mov al, byte [0x490614]
push eax
lea eax, [ebp - 0x2a8]
push eax
xor ecx, ecx
mov edx, 0x49062c
mov eax, dword [ebx + 0xa4]
call fcn.0040ecfc
mov edx, dword [ebp - 0x2a8]
lea eax, [ebx + 0xa4]
call fcn.00404470
mov eax, dword [ebx + 0xa4]
call fcn.0048f6d4
fstp qword [ebx + 0xa8]
wait
jmp 0x49052e
lea eax, [ebx + 0xa4]
call fcn.0040441c
xor eax, eax
mov dword [ebx + 0xa8], eax
mov dword [ebx + 0xac], eax
mov byte [ebx + 0xb4], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x490572
lea eax, [ebp - 0x2a8]
mov edx, 0xe
call fcn.00404440
lea eax, [ebp - 0x25c]
mov edx, 2
call fcn.00404440
lea eax, [ebp - 0x1c]
call fcn.0040441c
ret