Function at 0x1001f180
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff97c
mov eax, dword [0x1002b134]
xor eax, ebp
mov dword [ebp - 0x2c], eax
mov word [ebp - 0x450], 0
lea eax, [ebp - 0x44e]
push 0x208
push 0
push eax
call fcn.1000c060
sub esp, 0xfffffff4
cmp dword [ebp + 0x18], 0
je 0x1001f1da
mov ecx, dword [ebp + 0x18]
movzx edx, word [ecx]
or edx, edx
je 0x1001f1da
lea ecx, [ebp - 0x450]
push 0x104
mov eax, dword [ebp + 0x18]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
jmp 0x1001f1ee
lea edx, [ebp - 0x450]
push 0x104
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x23e]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x454], 0
mov dword [ebp - 0x458], 0
mov word [ebp - 0x240], 0
push 0x208
push 0
push eax
call fcn.1000c060
lea ecx, [ebp - 0x450]
add esp, 0xc
mov dword [ebp - 4], 0
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x1c], 0
push 0
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x1001f282
xor al, al
jmp 0x1001f72a
mov edx, dword [ebp - 0x24]
add edx, 1
push edx
call fcn.1000b563
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp - 0x67c]
mov dword [ebp - 0x14], eax
add esp, 4
cmp dword [ebp - 0x14], 0
jne 0x1001f2ad
xor al, al
jmp 0x1001f72a
mov ecx, dword [ebp - 0x24]
add ecx, 1
push ecx
push 0
mov edx, dword [ebp - 0x14]
push edx
call fcn.1000c060
mov eax, dword [ebp - 0x14]
sub esp, 0xfffffff4
lea edx, [ebp - 0x450]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
push 0
push edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x1001f2e6
jmp 0x1001f702
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x18]
push ecx
push str.VarFileInfoTranslation
mov edx, dword [ebp - 0x14]
push edx
call sub.VERSION.dll_VerQueryValueW
or eax, eax
jne 0x1001f30d
jmp 0x1001f702
mov dword [ebp - 0x10], 0
jmp 0x1001f31f
mov eax, dword [ebp - 0x10]
sub eax, 0xffffffff
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x458]
shr ecx, 2
cmp dword [ebp - 0x10], ecx
jae 0x1001f39c
push 0x10027788
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + ecx*4 + 2]
push eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + edx*4]
push ecx
push str.StringFileInfo_04x_04x_s
push 0x104
lea edx, [ebp - 0x240]
push edx
call fcn.1000c9e8
sub esp, 0xffffffe8
mov dword [ebp - 4], 0
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x240]
push edx
mov eax, dword [ebp - 0x14]
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x1001f397
cmp dword [ebp - 0x454], 0
jbe 0x1001f397
mov byte [ebp - 0x25], 1
jmp 0x1001f39c
jmp 0x1001f316
movzx ecx, byte [ebp - 0x25]
test ecx, ecx
je 0x1001f702
lea edx, [ebp - 0x676]
mov word [ebp - 0x678], 0
push 0x208
push 0
push edx
call fcn.1000c060
add esp, 0xc
cmp dword [ebp - 0x454], 0x104
jbe 0x1001f3df
mov dword [ebp - 0x684], 0x104
jmp 0x1001f3eb
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x684], edx
mov ecx, dword [ebp - 0x684]
push ecx
lea eax, [ebp - 0x678]
mov edx, dword [ebp - 4]
push edx
push eax
call fcn.1000c9ab
sub esp, 0xfffffff4
lea ecx, [ebp - 0x678]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
movzx edx, word [eax]
test edx, edx
je 0x1001f436
mov eax, dword [ebp - 4]
movzx edx, word [eax]
cmp edx, 0x2c
jne 0x1001f42b
mov ecx, dword [ebp - 4]
mov word [ecx], 0x2e
mov ecx, dword [ebp - 4]
add ecx, 2
mov dword [ebp - 4], ecx
jmp 0x1001f40e
lea edx, [ebp - 0x678]
mov byte [ebp - 0x25], 0
mov dword [ebp - 0x464], 0
lea eax, [ebp - 0x678]
mov dword [ebp - 0x460], 0
mov word [ebp - 0x45c], 0
mov dword [ebp - 0x464], edx
push 0x2e
push eax
call fcn.100064d0
mov dword [ebp - 0x460], eax
add esp, 8
cmp dword [ebp - 0x460], 0
jne 0x1001f48d
jmp 0x1001f702
mov ecx, dword [ebp - 0x460]
mov word [ecx], 0
mov edx, dword [ebp - 0x464]
push edx
call fcn.1000bfe6
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x460]
mov word [eax], 0x2e
add esp, 4
lea ecx, [ebp - 0x678]
push 0x2e
push ecx
call fcn.100064d0
add esp, 8
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x1001f4df
jmp 0x1001f702
mov edx, dword [ebp - 0x464]
movzx eax, word [edx]
cmp eax, 0x30
jl 0x1001f4fb
mov edx, dword [ebp - 0x464]
movzx ecx, word [edx]
cmp ecx, 0x39
jle 0x1001f50c
mov eax, dword [ebp - 0x464]
add eax, 2
mov dword [ebp - 0x464], eax
jmp 0x1001f4df
mov ecx, dword [ebp - 0x464]
movzx edx, word [ecx]
test edx, edx
jne 0x1001f523
jmp 0x1001f702
mov edx, dword [ebp - 0x464]
mov dword [ebp - 0x460], edx
mov ecx, dword [ebp - 0x460]
movzx edx, word [ecx]
cmp edx, 0x30
jl 0x1001f55c
mov ecx, dword [ebp - 0x460]
movzx eax, word [ecx]
cmp eax, 0x39
jg 0x1001f55c
mov edx, dword [ebp - 0x460]
sub edx, 0xfffffffe
mov dword [ebp - 0x460], edx
jmp 0x1001f52f
mov eax, dword [ebp - 0x460]
movzx ecx, word [eax]
or ecx, ecx
jne 0x1001f573
jmp 0x1001f702
mov ecx, dword [ebp - 0x460]
mov ax, word [ecx]
mov word [ebp - 0x45c], ax
mov ecx, dword [ebp - 0x460]
mov word [ecx], 0
mov edx, dword [ebp - 0x464]
push edx
call fcn.1000bfe6
sub esp, 0xfffffffc
mov dword [ebp - 0x20], eax
mov cx, word [ebp - 0x45c]
mov eax, dword [ebp - 0x460]
mov word [eax], cx
push 0x2e
mov edx, dword [ebp - 0x464]
push edx
call fcn.100064d0
add esp, 8
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
jne 0x1001f5da
jmp 0x1001f702
mov eax, dword [ebp - 0x464]
movzx edx, word [eax]
test edx, edx
je 0x1001f616
mov ecx, dword [ebp - 0x464]
movzx eax, word [ecx]
cmp eax, 0x30
jl 0x1001f605
mov ecx, dword [ebp - 0x464]
movzx edx, word [ecx]
cmp edx, 0x39
jg 0x1001f605
jmp 0x1001f616
mov eax, dword [ebp - 0x464]
add eax, 2
mov dword [ebp - 0x464], eax
jmp 0x1001f5da
mov ecx, dword [ebp - 0x464]
movzx edx, word [ecx]
test edx, edx
jne 0x1001f62d
jmp 0x1001f702
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x460], eax
mov eax, dword [ebp - 0x460]
movzx edx, word [eax]
cmp edx, 0x30
jl 0x1001f666
mov eax, dword [ebp - 0x460]
movzx ecx, word [eax]
cmp ecx, 0x39
jg 0x1001f666
mov eax, dword [ebp - 0x460]
add eax, 2
mov dword [ebp - 0x460], eax
jmp 0x1001f639
mov eax, dword [ebp - 0x460]
mov word [eax], 0
mov ecx, dword [ebp - 0x464]
push ecx
call fcn.1000bfe6
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x460]
add edx, 2
mov dword [ebp - 0x460], edx
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 0
je 0x1001f6c6
mov ecx, dword [ebp - 0x464]
movzx edx, word [ecx]
test edx, edx
je 0x1001f6c6
mov eax, dword [ebp - 0x464]
push eax
call fcn.1000bfe6
sub esp, 0xfffffffc
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 8], 0
je 0x1001f6d4
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [ecx], edx
cmp dword [ebp + 0xc], 0
je 0x1001f6e2
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
cmp dword [ebp + 0x10], 0
je 0x1001f6f0
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
mov dword [edx], eax
cmp dword [ebp + 0x14], 0
je 0x1001f6fe
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], edx
mov byte [ebp - 0x25], 1
cmp dword [ebp - 0x14], 0
je 0x1001f720
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x680], eax
mov ecx, dword [ebp - 0x680]
push ecx
call fcn.1000c535
sub esp, 0xfffffffc
mov dword [ebp - 0x14], 0
mov al, byte [ebp - 0x25]
mov ecx, dword [ebp - 0x2c]
xor ecx, ebp
call fcn.1000bda4
mov esp, ebp
pop ebp
ret