Function at 0x40ceb0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x680
mov eax, dword [0x4e2210]
xor eax, ebp
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x67c], ecx
mov word [ebp - 0x448], 0
push 0x208
push 0
lea eax, [ebp - 0x446]
push eax
call fcn.0049d120
add esp, 0xc
cmp dword [ebp + 0x18], 0
je 0x40cf10
mov ecx, dword [ebp + 0x18]
movzx edx, word [ecx]
test edx, edx
je 0x40cf10
push 0x104
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x448]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
jmp 0x40cf24
push 0x104
lea edx, [ebp - 0x448]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x44c], 0
mov dword [ebp - 0x450], 0
mov word [ebp - 0x238], 0
push 0x208
push 0
lea eax, [ebp - 0x236]
push eax
call fcn.0049d120
add esp, 0xc
mov dword [ebp - 4], 0
mov byte [ebp - 0x21], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x18], 0
push 0
lea ecx, [ebp - 0x448]
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x40cfb1
xor al, al
jmp 0x40d46b
mov edx, dword [ebp - 0x20]
add edx, 1
push edx
call fcn.0049b68a
add esp, 4
mov dword [ebp - 0x674], eax
mov eax, dword [ebp - 0x674]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x40cfdc
xor al, al
jmp 0x40d46b
mov ecx, dword [ebp - 0x20]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp - 0x10]
push edx
call fcn.0049d120
add esp, 0xc
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
push 0
lea edx, [ebp - 0x448]
push edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x40d015
jmp 0x40d443
lea eax, [ebp - 0x450]
push eax
lea ecx, [ebp - 0x14]
push ecx
push 0x4ca958
mov edx, dword [ebp - 0x10]
push edx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x40d03c
jmp 0x40d443
mov dword [ebp - 0x454], 0
jmp 0x40d057
mov eax, dword [ebp - 0x454]
add eax, 1
mov dword [ebp - 0x454], eax
mov ecx, dword [ebp - 0x450]
shr ecx, 2
cmp dword [ebp - 0x454], ecx
jae 0x40d0dd
push str.FileVersion
mov edx, dword [ebp - 0x454]
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + edx*4 + 2]
push ecx
mov edx, dword [ebp - 0x454]
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + edx*4]
push ecx
push str.StringFileInfo_04x_04x_s
push 0x104
lea edx, [ebp - 0x238]
push edx
call fcn.0049fbe2
add esp, 0x18
mov dword [ebp - 4], 0
lea eax, [ebp - 0x44c]
push eax
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x238]
push edx
mov eax, dword [ebp - 0x10]
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x40d0d8
cmp dword [ebp - 0x44c], 0
jbe 0x40d0d8
mov byte [ebp - 0x21], 1
jmp 0x40d0dd
jmp 0x40d048
movzx ecx, byte [ebp - 0x21]
test ecx, ecx
je 0x40d443
mov word [ebp - 0x670], 0
push 0x208
push 0
lea edx, [ebp - 0x66e]
push edx
call fcn.0049d120
add esp, 0xc
cmp dword [ebp - 0x44c], 0x104
jbe 0x40d120
mov dword [ebp - 0x680], 0x104
jmp 0x40d12c
mov eax, dword [ebp - 0x44c]
mov dword [ebp - 0x680], eax
mov ecx, dword [ebp - 0x680]
push ecx
mov edx, dword [ebp - 4]
push edx
lea eax, [ebp - 0x670]
push eax
call fcn.004a0021
add esp, 0xc
lea ecx, [ebp - 0x670]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movzx eax, word [edx]
test eax, eax
je 0x40d177
mov ecx, dword [ebp - 4]
movzx edx, word [ecx]
cmp edx, 0x2c
jne 0x40d16c
mov eax, dword [ebp - 4]
mov word [eax], 0x2e
mov ecx, dword [ebp - 4]
add ecx, 2
mov dword [ebp - 4], ecx
jmp 0x40d14f
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0
mov word [ebp - 0x458], 0
lea edx, [ebp - 0x670]
mov dword [ebp - 0x460], edx
push 0x2e
lea eax, [ebp - 0x670]
push eax
call fcn.004099d0
add esp, 8
mov dword [ebp - 0x45c], eax
cmp dword [ebp - 0x45c], 0
jne 0x40d1ce
jmp 0x40d443
mov ecx, dword [ebp - 0x45c]
mov word [ecx], 0
mov edx, dword [ebp - 0x460]
push edx
call fcn.0049fb60
add esp, 4
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x45c]
mov word [eax], 0x2e
push 0x2e
lea ecx, [ebp - 0x670]
push ecx
call fcn.004099d0
add esp, 8
mov dword [ebp - 0x460], eax
cmp dword [ebp - 0x460], 0
jne 0x40d220
jmp 0x40d443
mov edx, dword [ebp - 0x460]
movzx eax, word [edx]
cmp eax, 0x30
jl 0x40d23c
mov ecx, dword [ebp - 0x460]
movzx edx, word [ecx]
cmp edx, 0x39
jle 0x40d24d
mov eax, dword [ebp - 0x460]
add eax, 2
mov dword [ebp - 0x460], eax
jmp 0x40d220
mov ecx, dword [ebp - 0x460]
movzx edx, word [ecx]
test edx, edx
jne 0x40d264
jmp 0x40d443
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x45c], eax
mov ecx, dword [ebp - 0x45c]
movzx edx, word [ecx]
cmp edx, 0x30
jl 0x40d29d
mov eax, dword [ebp - 0x45c]
movzx ecx, word [eax]
cmp ecx, 0x39
jg 0x40d29d
mov edx, dword [ebp - 0x45c]
add edx, 2
mov dword [ebp - 0x45c], edx
jmp 0x40d270
mov eax, dword [ebp - 0x45c]
movzx ecx, word [eax]
test ecx, ecx
jne 0x40d2b4
jmp 0x40d443
mov edx, dword [ebp - 0x45c]
mov ax, word [edx]
mov word [ebp - 0x458], ax
mov ecx, dword [ebp - 0x45c]
mov word [ecx], 0
mov edx, dword [ebp - 0x460]
push edx
call fcn.0049fb60
add esp, 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x45c]
mov cx, word [ebp - 0x458]
mov word [eax], cx
push 0x2e
mov edx, dword [ebp - 0x460]
push edx
call fcn.004099d0
add esp, 8
mov dword [ebp - 0x460], eax
cmp dword [ebp - 0x460], 0
jne 0x40d31b
jmp 0x40d443
mov eax, dword [ebp - 0x460]
movzx ecx, word [eax]
test ecx, ecx
je 0x40d357
mov edx, dword [ebp - 0x460]
movzx eax, word [edx]
cmp eax, 0x30
jl 0x40d346
mov ecx, dword [ebp - 0x460]
movzx edx, word [ecx]
cmp edx, 0x39
jg 0x40d346
jmp 0x40d357
mov eax, dword [ebp - 0x460]
add eax, 2
mov dword [ebp - 0x460], eax
jmp 0x40d31b
mov ecx, dword [ebp - 0x460]
movzx edx, word [ecx]
test edx, edx
jne 0x40d36e
jmp 0x40d443
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x45c], eax
mov ecx, dword [ebp - 0x45c]
movzx edx, word [ecx]
cmp edx, 0x30
jl 0x40d3a7
mov eax, dword [ebp - 0x45c]
movzx ecx, word [eax]
cmp ecx, 0x39
jg 0x40d3a7
mov edx, dword [ebp - 0x45c]
add edx, 2
mov dword [ebp - 0x45c], edx
jmp 0x40d37a
mov eax, dword [ebp - 0x45c]
mov word [eax], 0
mov ecx, dword [ebp - 0x460]
push ecx
call fcn.0049fb60
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x45c]
add edx, 2
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp - 0x45c]
mov dword [ebp - 0x460], eax
cmp dword [ebp - 0x460], 0
je 0x40d407
mov ecx, dword [ebp - 0x460]
movzx edx, word [ecx]
test edx, edx
je 0x40d407
mov eax, dword [ebp - 0x460]
push eax
call fcn.0049fb60
add esp, 4
mov dword [ebp - 0x18], eax
cmp dword [ebp + 8], 0
je 0x40d415
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [ecx], edx
cmp dword [ebp + 0xc], 0
je 0x40d423
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
cmp dword [ebp + 0x10], 0
je 0x40d431
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
mov dword [edx], eax
cmp dword [ebp + 0x14], 0
je 0x40d43f
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x18]
mov dword [ecx], edx
mov byte [ebp - 0x21], 1
cmp dword [ebp - 0x10], 0
je 0x40d461
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x678], eax
mov ecx, dword [ebp - 0x678]
push ecx
call fcn.0049daed
add esp, 4
mov dword [ebp - 0x10], 0
mov al, byte [ebp - 0x21]
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.0049d270
mov esp, ebp
pop ebp
ret 0x14