Function at 0x56a690
Capabilities:
Get file version info

Disassembly:
push ebp
lea ebp, [esp - 0x390]
sub esp, 0x410
mov eax, dword [0x704e7c]
xor eax, ebp
mov dword [ebp + 0x38c], eax
mov ecx, dword [ebp + 0x398]
push ebx
push esi
push edi
cmp ecx, 2
jae 0x56a8a9
mov eax, dword [0x747a04]
cmp dword [0x748288], eax
jne 0x56a6d6
mov eax, dword [ecx*4 + 0x748238]
jmp 0x56a8ab
cmp byte [0x748233], 0
mov dword [0x748288], eax
je 0x56a707
mov ecx, 0x404
cmp ax, cx
jne 0x56a707
mov eax, 0x7000404
mov dword [0x748238], eax
mov dword [0x74823c], 0
jmp 0x56a8ab
cmp eax, 0xe0080404
je 0x56a73b
cmp eax, 0xe0090404
je 0x56a73b
cmp eax, 0xe00a0404
je 0x56a73b
cmp eax, 0xe00b0404
je 0x56a73b
cmp eax, 0xe00e0804
je 0x56a73b
xor eax, eax
mov dword [0x74823c], eax
mov dword [0x748238], eax
jmp 0x56a8a9
push 0x3ff
lea edx, [ebp - 0x74]
push edx
push eax
call sub.IMM32.dll_ImmGetIMEFileNameA
test eax, eax
je 0x56a72a
xor edi, edi
cmp dword [0x747a10], edi
jne 0x56a7ed
mov esi, dword [sym.imp.KERNEL32.dll_CompareStringA]
push 0xffffffffffffffff
push str.TINTLGNT.IME
push 0xffffffffffffffff
lea eax, [ebp - 0x74]
push eax
push 1
push 0x409
call esi
cmp eax, 2
je 0x56a7ed
push 0xffffffffffffffff
push str.CINTLGNT.IME
push 0xffffffffffffffff
lea ecx, [ebp - 0x74]
push ecx
push 1
push 0x409
call esi
cmp eax, 2
je 0x56a7ed
push 0xffffffffffffffff
push str.MSTCIPHA.IME
push 0xffffffffffffffff
lea edx, [ebp - 0x74]
push edx
push 1
push 0x409
call esi
cmp eax, 2
je 0x56a7ed
push 0xffffffffffffffff
push str.PINTLGNT.IME
push 0xffffffffffffffff
lea eax, [ebp - 0x74]
push eax
push 1
push 0x409
call esi
cmp eax, 2
je 0x56a7ed
push 0xffffffffffffffff
push str.MSSCIPYA.IME
push 0xffffffffffffffff
lea ecx, [ebp - 0x74]
push ecx
push 1
push 0x409
call esi
cmp eax, 2
jne 0x56a89d
lea edx, [ebp - 0x7c]
push edx
lea eax, [ebp - 0x74]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
movzx ebx, word [0x747a04]
mov esi, eax
cmp esi, edi
je 0x56a89d
call fcn.00615150
mov ecx, dword [ebp - 0x7c]
mov edi, esp
push edi
push esi
push ecx
lea edx, [ebp - 0x74]
push edx
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x56a89b
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x78]
push ecx
push 0x689484
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x56a89b
mov edx, dword [ebp - 0x78]
mov ecx, dword [edx + 8]
movzx eax, cl
shl eax, 8
and ecx, 0xffff0000
or eax, ecx
shl eax, 8
cmp dword [0x747a10], 0
jne 0x56a8ec
mov ecx, 0x404
cmp bx, cx
jne 0x56a8cd
cmp eax, 0x4020000
je 0x56a8ec
cmp eax, 0x4030000
je 0x56a8ec
cmp eax, 0x4040000
je 0x56a8ec
cmp eax, 0x5000000
je 0x56a8ec
cmp eax, 0x5010000
je 0x56a8ec
cmp eax, 0x5020000
je 0x56a8ec
cmp eax, 0x6000000
je 0x56a8ec
xor edi, edi
mov dword [0x748238], edi
mov dword [0x74823c], edi
xor eax, eax
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x38c]
xor ecx, ebp
call fcn.006108ae
add ebp, 0x390
mov esp, ebp
pop ebp
ret 4
mov ecx, 0x804
cmp bx, cx
jne 0x56a89b
cmp eax, 0x4010000
je 0x56a8ec
cmp eax, 0x4020000
je 0x56a8ec
cmp eax, 0x5030000
jne 0x56a89b
movzx ecx, bx
or ecx, eax
mov eax, dword [ebp + 0x398]
mov dword [0x748238], ecx
mov edx, dword [edx + 0xc]
mov dword [0x74823c], edx
mov eax, dword [eax*4 + 0x748238]
jmp 0x56a8ab