Function at 0x412ab0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
mov eax, dword [0x439004]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ecx + 0x14], 8
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, edx
mov dword [ebp - 0x22c], eax
mov eax, ecx
mov dword [ebp - 0x224], ecx
jb 0x412ae7
mov eax, dword [ecx]
lea ecx, [ebp - 0x234]
push ecx
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov dword [ebp - 0x220], eax
test eax, eax
je 0x412f4c
push eax
call fcn.00414f63
mov ecx, dword [ebp - 0x224]
add esp, 4
mov dword [ebp - 0x228], eax
cmp dword [ecx + 0x14], 8
jb 0x412b20
mov ecx, dword [ecx]
push eax
push dword [ebp - 0x220]
push 0
push ecx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x230]
push eax
push 0x434d40
push dword [ebp - 0x228]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x412dfa
mov eax, dword [ebp - 0x230]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x224], eax
mov eax, ecx
shr eax, 0x10
push eax
push 0x435cb8
lea eax, [ebp - 0x218]
mov dword [ebp - 0x21c], ecx
push 0x104
push eax
call fcn.004019c0
lea ecx, [ebp - 0x218]
add esp, 0x10
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412b97
sub ecx, edx
mov edx, dword [esi + 0x14]
sar ecx, 1
cmp ecx, edx
ja 0x412be7
mov dword [ebp - 0x220], esi
mov eax, esi
cmp edx, 8
jb 0x412bc2
mov eax, dword [esi]
mov dword [ebp - 0x220], eax
mov dword [esi + 0x10], ecx
lea esi, [ecx + ecx]
push esi
lea ecx, [ebp - 0x218]
push ecx
push eax
call fcn.00415ee0
mov eax, dword [ebp - 0x220]
add esp, 0xc
xor ecx, ecx
mov word [esi + eax], cx
jmp 0x412c03
lea eax, [ebp - 0x218]
mov byte [ebp - 0x220], 0
push eax
push dword [ebp - 0x220]
push ecx
mov ecx, esi
call fcn.004042b0
mov eax, dword [ebp - 0x21c]
movzx eax, ax
push eax
push 0x435cb8
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.004019c0
lea ecx, [ebp - 0x218]
add esp, 0x10
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412c30
sub ecx, edx
mov edx, dword [edi + 0x14]
sar ecx, 1
cmp ecx, edx
ja 0x412c80
mov dword [ebp - 0x220], edi
mov eax, edi
cmp edx, 8
jb 0x412c5b
mov eax, dword [edi]
mov dword [ebp - 0x220], eax
lea esi, [ecx + ecx]
mov dword [edi + 0x10], ecx
push esi
lea ecx, [ebp - 0x218]
push ecx
push eax
call fcn.00415ee0
mov eax, dword [ebp - 0x220]
add esp, 0xc
xor ecx, ecx
mov word [esi + eax], cx
jmp 0x412c9c
lea eax, [ebp - 0x218]
mov byte [ebp - 0x21c], 0
push eax
push dword [ebp - 0x21c]
push ecx
mov ecx, edi
call fcn.004042b0
mov eax, dword [ebp - 0x224]
shr eax, 0x10
push eax
push 0x435cb8
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.004019c0
lea ecx, [ebp - 0x218]
add esp, 0x10
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412cd0
mov eax, dword [ebp - 0x22c]
sub ecx, edx
sar ecx, 1
mov edx, dword [eax + 0x14]
cmp ecx, edx
ja 0x412d14
mov edi, eax
cmp edx, 8
jb 0x412cf5
mov edi, dword [eax]
lea esi, [ecx + ecx]
mov dword [eax + 0x10], ecx
push esi
lea eax, [ebp - 0x218]
push eax
push edi
call fcn.00415ee0
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
jmp 0x412d30
lea edx, [ebp - 0x218]
mov byte [ebp - 0x21c], 0
push edx
push dword [ebp - 0x21c]
push ecx
mov ecx, eax
call fcn.004042b0
mov eax, dword [ebp - 0x224]
movzx eax, ax
push eax
push 0x435cb8
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.004019c0
lea ecx, [ebp - 0x218]
add esp, 0x10
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412d60
mov eax, dword [ebx + 0x14]
sub ecx, edx
sar ecx, 1
cmp ecx, eax
ja 0x412dbd
mov edi, ebx
cmp eax, 8
jb 0x412d7f
mov edi, dword [ebx]
lea esi, [ecx + ecx]
mov dword [ebx + 0x10], ecx
push esi
lea eax, [ebp - 0x218]
push eax
push edi
call fcn.00415ee0
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
push dword [ebp - 0x228]
call fcn.00414f6c
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00414df1
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x218]
mov byte [ebp - 0x21c], 0
push eax
push dword [ebp - 0x21c]
push ecx
mov ecx, ebx
call fcn.004042b0
push dword [ebp - 0x228]
call fcn.00414f6c
add esp, 4
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00414df1
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x14]
cmp ecx, 1
jb 0x412e3c
mov dword [ebp - 0x224], esi
mov eax, esi
cmp ecx, 8
jb 0x412e17
mov eax, dword [esi]
mov dword [ebp - 0x224], eax
push 2
push 0x4354d8
push eax
mov dword [esi + 0x10], 1
call fcn.00415ee0
mov eax, dword [ebp - 0x224]
add esp, 0xc
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x412e57
push 0x4354d8
mov byte [ebp - 0x21c], 0
mov ecx, esi
push dword [ebp - 0x21c]
push 1
call fcn.004042b0
mov eax, dword [edi + 0x14]
cmp eax, 1
jb 0x412e87
mov esi, edi
cmp eax, 8
jb 0x412e68
mov esi, dword [edi]
push 2
push 0x4354d8
push esi
mov dword [edi + 0x10], 1
call fcn.00415ee0
add esp, 0xc
xor eax, eax
mov word [esi + 2], ax
jmp 0x412ea2
push 0x4354d8
mov byte [ebp - 0x21c], 0
mov ecx, edi
push dword [ebp - 0x21c]
push 1
call fcn.004042b0
mov eax, dword [ebp - 0x22c]
mov ecx, dword [eax + 0x14]
cmp ecx, 1
jb 0x412ed8
mov esi, eax
cmp ecx, 8
jb 0x412eb9
mov esi, dword [eax]
push 2
push 0x4354d8
push esi
mov dword [eax + 0x10], 1
call fcn.00415ee0
add esp, 0xc
xor eax, eax
mov word [esi + 2], ax
jmp 0x412ef3
push 0x4354d8
mov byte [ebp - 0x21c], 0
mov ecx, eax
push dword [ebp - 0x21c]
push 1
call fcn.004042b0
mov eax, dword [ebx + 0x14]
cmp eax, 1
jb 0x412f23
mov esi, ebx
cmp eax, 8
jb 0x412f04
mov esi, dword [ebx]
push 2
push 0x4354d8
push esi
mov dword [ebx + 0x10], 1
call fcn.00415ee0
add esp, 0xc
xor eax, eax
mov word [esi + 2], ax
jmp 0x412f3e
push 0x4354d8
mov byte [ebp - 0x21c], 0
mov ecx, ebx
push dword [ebp - 0x21c]
push 1
call fcn.004042b0
push dword [ebp - 0x228]
call fcn.00414f6c
add esp, 4
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00414df1
mov esp, ebp
pop ebp
ret