Function at 0x10029af0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006d574
mov eax, dword fs:[0]
push eax
mov eax, 0x22b4
call fcn.1004f4c0
mov eax, dword [0x1008b06c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2274], 0
mov byte [ebp - 0x2210], 0
push 0x1fff
push 0
lea eax, [ebp - 0x220f]
push eax
call fcn.10051430
add esp, 0xc
lea ecx, [ebp - 0x2210]
push ecx
push 0x2000
push 0
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
jne 0x10029b86
push 0x1007ff30
mov ecx, dword [ebp + 8]
call fcn.10004e40
mov eax, dword [ebp - 0x2274]
or eax, 1
mov dword [ebp - 0x2274], eax
mov eax, dword [ebp + 8]
jmp 0x10029f41
mov dword [ebp - 0x2284], 0
mov dword [ebp - 0x2278], 0
lea ecx, [ebp - 0x2278]
push ecx
lea edx, [ebp - 0x2284]
push edx
push str.VarFileInfoTranslation
lea eax, [ebp - 0x2210]
push eax
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10029d7e
mov ecx, dword [ebp - 0x2284]
mov dword [ebp - 0x2288], ecx
mov dword [ebp - 0x227c], 0
jmp 0x10029be9
mov edx, dword [ebp - 0x227c]
add edx, 1
mov dword [ebp - 0x227c], edx
mov eax, dword [ebp - 0x2278]
shr eax, 2
cmp dword [ebp - 0x227c], eax
jae 0x10029d7e
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x227c]
mov eax, dword [ebp - 0x2288]
movzx ecx, word [eax + edx*4 + 2]
push ecx
mov edx, dword [ebp - 0x227c]
mov eax, dword [ebp - 0x2288]
movzx ecx, word [eax + edx*4]
push ecx
push str.StringFileInfo_04x_04x_s
push 0x80
lea edx, [ebp - 0x110]
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
add esp, 0x18
mov dword [ebp - 0x228c], 0
mov dword [ebp - 0x2278], 0
lea eax, [ebp - 0x2278]
push eax
lea ecx, [ebp - 0x228c]
push ecx
lea edx, [ebp - 0x110]
push edx
lea eax, [ebp - 0x2210]
push eax
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10029d79
cmp dword [ebp - 0x2278], 0
je 0x10029cd5
mov ecx, dword [ebp - 0x2278]
push ecx
mov edx, dword [ebp - 0x228c]
push edx
lea ecx, [ebp - 0x2240]
call fcn.1002a960
mov dword [ebp - 0x229c], eax
mov eax, dword [ebp - 0x229c]
mov dword [ebp - 0x22a0], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x2274]
or ecx, 2
mov dword [ebp - 0x2274], ecx
mov edx, dword [ebp - 0x22a0]
mov dword [ebp - 0x2290], edx
jmp 0x10029d06
push 0x1007ffa0
lea ecx, [ebp - 0x2228]
call fcn.10004e40
mov dword [ebp - 0x22a4], eax
mov eax, dword [ebp - 0x2274]
or eax, 4
mov dword [ebp - 0x2274], eax
mov ecx, dword [ebp - 0x22a4]
mov dword [ebp - 0x2290], ecx
mov edx, dword [ebp - 0x2290]
mov dword [ebp - 0x22a8], edx
mov eax, dword [ebp - 0x22a8]
push eax
mov ecx, dword [ebp + 8]
call fcn.10004dc0
mov ecx, dword [ebp - 0x2274]
or ecx, 1
mov dword [ebp - 0x2274], ecx
mov edx, dword [ebp - 0x2274]
and edx, 4
je 0x10029d4d
and dword [ebp - 0x2274], 0xfffffffb
lea ecx, [ebp - 0x2228]
call fcn.10004d70
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2274]
and eax, 2
je 0x10029d71
and dword [ebp - 0x2274], 0xfffffffd
lea ecx, [ebp - 0x2240]
call fcn.10004d70
mov eax, dword [ebp + 8]
jmp 0x10029f41
jmp 0x10029bda
mov dword [ebp - 0x22c0], 0x40904b0
mov dword [ebp - 0x22bc], 0x40904e4
mov dword [ebp - 0x2280], 0
jmp 0x10029dad
mov ecx, dword [ebp - 0x2280]
add ecx, 1
mov dword [ebp - 0x2280], ecx
cmp dword [ebp - 0x2280], 2
jae 0x10029f22
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x2280]
mov ecx, dword [ebp + eax*4 - 0x22c0]
push ecx
push str.StringFileInfo_08x_s
push 0x80
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.SHLWAPI.dll_wnsprintfW]
add esp, 0x14
mov dword [ebp - 0x2294], 0
mov dword [ebp - 0x2278], 0
lea eax, [ebp - 0x2278]
push eax
lea ecx, [ebp - 0x2294]
push ecx
lea edx, [ebp - 0x210]
push edx
lea eax, [ebp - 0x2210]
push eax
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10029f1d
cmp dword [ebp - 0x2278], 0
je 0x10029e7c
mov ecx, dword [ebp - 0x2278]
push ecx
mov edx, dword [ebp - 0x2294]
push edx
lea ecx, [ebp - 0x2270]
call fcn.1002a960
mov dword [ebp - 0x22ac], eax
mov eax, dword [ebp - 0x22ac]
mov dword [ebp - 0x22b0], eax
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x2274]
or ecx, 8
mov dword [ebp - 0x2274], ecx
mov edx, dword [ebp - 0x22b0]
mov dword [ebp - 0x2298], edx
jmp 0x10029ead
push 0x1007ffd4
lea ecx, [ebp - 0x2258]
call fcn.10004e40
mov dword [ebp - 0x22b4], eax
mov eax, dword [ebp - 0x2274]
or eax, 0x10
mov dword [ebp - 0x2274], eax
mov ecx, dword [ebp - 0x22b4]
mov dword [ebp - 0x2298], ecx
mov edx, dword [ebp - 0x2298]
mov dword [ebp - 0x22b8], edx
mov eax, dword [ebp - 0x22b8]
push eax
mov ecx, dword [ebp + 8]
call fcn.10004dc0
mov ecx, dword [ebp - 0x2274]
or ecx, 1
mov dword [ebp - 0x2274], ecx
mov edx, dword [ebp - 0x2274]
and edx, 0x10
je 0x10029ef4
and dword [ebp - 0x2274], 0xffffffef
lea ecx, [ebp - 0x2258]
call fcn.10004d70
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2274]
and eax, 8
je 0x10029f18
and dword [ebp - 0x2274], 0xfffffff7
lea ecx, [ebp - 0x2270]
call fcn.10004d70
mov eax, dword [ebp + 8]
jmp 0x10029f41
jmp 0x10029d9e
push 0x1007ffd8
mov ecx, dword [ebp + 8]
call fcn.10004e40
mov ecx, dword [ebp - 0x2274]
or ecx, 1
mov dword [ebp - 0x2274], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004e421
mov esp, ebp
pop ebp
ret