Function at 0x527cfc
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x55
push 0
push 0
dec ecx
jne 0x527d04
push ebx
push esi
push edi
mov ebx, eax
lea esi, [ebp - 0x14]
xor eax, eax
push ebp
push 0x528443
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.00409864
test al, al
je 0x52840d
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebx + 0x60]
call fcn.00404964
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov edi, eax
mov dword [ebx + 0xb8], edi
test edi, edi
je 0x52840d
mov eax, edi
call fcn.00402754
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.00404964
push eax
call sub.version.dll_GetFileVersionInfoA
push esi
lea eax, [ebp - 0x18]
push eax
push 0x528454
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x52840d
lea edx, [ebp - 6]
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi]
call fcn.004029c8
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.00409fcc
mov edx, dword [ebp - 0x258]
lea eax, [ebx + 0x88]
call fcn.004044e8
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, 0x528478
call fcn.0040a4bc
mov edx, dword [ebp - 0x25c]
lea eax, [ebx + 0xc0]
call fcn.004044e8
mov dword [esi], 0x34
lea eax, [ebp - 0x251]
xor ecx, ecx
mov edx, dword [esi]
call fcn.00402ea8
push esi
lea eax, [ebp - 0x10]
push eax
push 0x528494
mov eax, dword [ebx + 0xbc]
push eax
call sub.version.dll_VerQueryValueA
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x52840d
lea edx, [ebp - 0x251]
mov eax, dword [ebp - 0x10]
mov ecx, dword [esi]
call fcn.004029c8
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.004079dc
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, 0x5284a0
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x527f74
cmp dword [esi], 0
je 0x527f74
lea edx, [ebp - 0x274]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x274]
lea eax, [ebx + 0x38]
call fcn.004044e8
jmp 0x527f7c
lea eax, [ebx + 0x38]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x5284b4
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x527fd6
cmp dword [esi], 0
je 0x527fd6
lea edx, [ebp - 0x278]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x278]
lea eax, [ebx + 0x3c]
call fcn.004044e8
jmp 0x527fde
lea eax, [ebx + 0x3c]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x5284c8
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x528038
cmp dword [esi], 0
je 0x528038
lea edx, [ebp - 0x27c]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x27c]
lea eax, [ebx + 0x40]
call fcn.004044e8
jmp 0x528040
lea eax, [ebx + 0x40]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x5284e0
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x5280fe
cmp dword [esi], 0
je 0x5280fe
lea edx, [ebp - 0x280]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x280]
lea eax, [ebx + 0x70]
call fcn.004044e8
mov al, byte [0x5284ec]
push eax
lea eax, [ebp - 0x284]
push eax
xor ecx, ecx
mov edx, 0x5284f8
mov eax, dword [ebx + 0x70]
call fcn.0040ecf0
mov edx, dword [ebp - 0x284]
lea eax, [ebx + 0x70]
call fcn.004044e8
mov al, byte [0x5284ec]
push eax
lea eax, [ebp - 0x288]
push eax
xor ecx, ecx
mov edx, 0x528504
mov eax, dword [ebx + 0x70]
call fcn.0040ecf0
mov edx, dword [ebp - 0x288]
lea eax, [ebx + 0x70]
call fcn.004044e8
mov eax, dword [ebx + 0x70]
call fcn.005275ac
fstp qword [ebx + 0x78]
wait
jmp 0x52810e
lea eax, [ebx + 0x70]
call fcn.00404494
xor eax, eax
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x7c], eax
lea eax, [ebp - 0x1c]
mov ecx, 0x528510
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x52816b
cmp dword [esi], 0
je 0x52816b
lea edx, [ebp - 0x28c]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x28c]
lea eax, [ebx + 0x80]
call fcn.004044e8
jmp 0x528176
lea eax, [ebx + 0x80]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x528528
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x5281d3
cmp dword [esi], 0
je 0x5281d3
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x290]
lea eax, [ebx + 0x8c]
call fcn.004044e8
jmp 0x5281de
lea eax, [ebx + 0x8c]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x528540
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x52823b
cmp dword [esi], 0
je 0x52823b
lea edx, [ebp - 0x294]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x294]
lea eax, [ebx + 0x90]
call fcn.004044e8
jmp 0x528246
lea eax, [ebx + 0x90]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x528558
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x5282a3
cmp dword [esi], 0
je 0x5282a3
lea edx, [ebp - 0x298]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x298]
lea eax, [ebx + 0x94]
call fcn.004044e8
jmp 0x5282ae
lea eax, [ebx + 0x94]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x528574
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x52830b
cmp dword [esi], 0
je 0x52830b
lea edx, [ebp - 0x29c]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x29c]
lea eax, [ebx + 0xa0]
call fcn.004044e8
jmp 0x528316
lea eax, [ebx + 0xa0]
call fcn.00404494
lea eax, [ebp - 0x1c]
mov ecx, 0x528588
mov edx, dword [ebx + 0xc0]
call fcn.004047b0
push esi
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404964
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 0x5283ed
cmp dword [esi], 0
je 0x5283ed
lea edx, [ebp - 0x2a0]
mov eax, dword [ebp - 0x10]
call fcn.00409fcc
mov edx, dword [ebp - 0x2a0]
lea eax, [ebx + 0xa4]
call fcn.004044e8
mov al, byte [0x5284ec]
push eax
lea eax, [ebp - 0x2a4]
push eax
xor ecx, ecx
mov edx, 0x5284f8
mov eax, dword [ebx + 0xa4]
call fcn.0040ecf0
mov edx, dword [ebp - 0x2a4]
lea eax, [ebx + 0xa4]
call fcn.004044e8
mov al, byte [0x5284ec]
push eax
lea eax, [ebp - 0x2a8]
push eax
xor ecx, ecx
mov edx, 0x528504
mov eax, dword [ebx + 0xa4]
call fcn.0040ecf0
mov edx, dword [ebp - 0x2a8]
lea eax, [ebx + 0xa4]
call fcn.004044e8
mov eax, dword [ebx + 0xa4]
call fcn.005275ac
fstp qword [ebx + 0xa8]
wait
jmp 0x528406
lea eax, [ebx + 0xa4]
call fcn.00404494
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 0x52844a
lea eax, [ebp - 0x2a8]
mov edx, 0xe
call fcn.004044b8
lea eax, [ebp - 0x25c]
mov edx, 2
call fcn.004044b8
lea eax, [ebp - 0x1c]
call fcn.00404494
ret