Function at 0x100193e0
Capabilities:
Get file version info
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1022e4c3
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x102ca474]
xor eax, ebp
mov dword [ebp - 0x18], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x170], ebx
mov edi, dword [ebp + 8]
call fcn.1001b190
mov ecx, edi
call fcn.10079d00
test al, al
je 0x1001b0b1
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.10008714
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
mov dword [ebp - 0x180], esi
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x1001b0b1
push 0x102d1f90
push esi
call fcn.101e7872
add esp, 8
mov dword [ebp - 0x17c], eax
test eax, eax
je 0x1001b0b1
push eax
push esi
push dword [ebp - 0x20]
mov ecx, edi
call fcn.10008714
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov edi, dword [ebp - 0x17c]
test eax, eax
jne 0x100194ae
push edi
call fcn.101e7521
add esp, 4
jmp 0x1001b0b1
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
push 0x10277e48
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x100194f6
mov eax, dword [ebp - 0x15c]
test eax, eax
je 0x100194f6
cmp dword [ebp - 0x1c], 0x34
jne 0x100194f6
push 0x34
push eax
push ebx
call fcn.101feb30
add esp, 0xc
xor esi, esi
mov dword [ebp - 0x160], esi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
push str.VarFileInfoTranslation
push edi
mov ebx, dword [sym.imp.VERSION.dll_VerQueryValueW]
call ebx
test eax, eax
je 0x100195c0
cmp dword [ebp - 0x15c], esi
je 0x100195c0
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
movzx edx, ax
mov ecx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x1c]
add eax, ecx
cmp ecx, eax
jae 0x10019551
cmp word [ecx], dx
je 0x100195b6
add ecx, 4
cmp ecx, eax
jb 0x10019545
push 1
lea eax, [ebp - 0x160]
push eax
call esi
movzx eax, ax
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x15c]
call fcn.1001b120
test al, al
jne 0x100195ba
push 1
lea eax, [ebp - 0x160]
push eax
push 0
push dword [ebp - 0x1c]
push dword [ebp - 0x15c]
call fcn.1001b120
test al, al
jne 0x100195ba
push 1
lea eax, [ebp - 0x160]
push eax
push 9
push dword [ebp - 0x1c]
push dword [ebp - 0x15c]
call fcn.1001b120
test al, al
jne 0x100195ba
mov eax, dword [ebp - 0x15c]
mov esi, dword [eax]
jmp 0x100195c0
mov esi, dword [ecx]
jmp 0x100195c0
mov esi, dword [ebp - 0x160]
lea ecx, [ebp - 0x38]
call fcn.1000879d
mov dword [ebp - 4], 2
mov eax, esi
shr eax, 0x10
push eax
movzx eax, si
push eax
push str.StringFileInfo_04X_04X_
lea eax, [ebp - 0x38]
push eax
call fcn.100773d0
push str.CompanyName
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x158]
call fcn.1001b220
add esp, 0x14
mov byte [ebp - 4], 3
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x158]
call fcn.10008714
push eax
push edi
call ebx
test eax, eax
je 0x10019803
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019803
mov esi, dword [ebp - 0x170]
add esi, 0x34
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x16c], eax
cmp ebx, eax
ja 0x1001969f
mov esi, edi
cmp eax, 8
jb 0x1001966a
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x168], 0
lea eax, [ebp - 0x168]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x10019803
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0d1
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x34]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x178], ecx
cmp ecx, esi
ja 0x10019704
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019704
lea eax, [ecx + edx]
mov dword [ebp - 0x174], eax
lea eax, [ebp - 0x174]
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x10019716
or ecx, 0xffffffff
jmp 0x1001971e
cmp ecx, 0x1000
jb 0x10019747
lea eax, [ecx + 0x23]
or edx, 0xffffffff
cmp eax, ecx
cmovbe eax, edx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019758
test ecx, ecx
je 0x10019756
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x10019758
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x168], 0
lea eax, [ebp - 0x168]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x16c]
cmp ecx, 8
jb 0x100197dd
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x100197c9
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019803
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.FileDescription
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x140]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 4
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x140]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10019a2a
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019a2a
mov esi, dword [ebp - 0x170]
add esi, 0x4c
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x164], eax
cmp ebx, eax
ja 0x100198c4
mov esi, edi
cmp eax, 8
jb 0x1001988f
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x16c], 0
lea eax, [ebp - 0x16c]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x10019a2a
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0db
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x4c]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x178], ecx
cmp ecx, esi
ja 0x10019929
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019929
lea eax, [edx + ecx]
mov dword [ebp - 0x16c], eax
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001993b
or ecx, 0xffffffff
jmp 0x10019943
cmp ecx, 0x1000
jb 0x1001996e
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001997f
test ecx, ecx
je 0x1001997d
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001997f
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x174], 0
lea eax, [ebp - 0x174]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x164]
cmp ecx, 8
jb 0x10019a04
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x100199f0
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019a2a
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.FileVersion
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x128]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x128]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10019c51
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019c51
mov esi, dword [ebp - 0x170]
add esi, 0x64
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x10019aeb
mov esi, edi
cmp eax, 8
jb 0x10019ab6
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x10019c51
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0e0
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x64]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x10019b50
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019b50
lea eax, [edx + ecx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x10019b62
or ecx, 0xffffffff
jmp 0x10019b6a
cmp ecx, 0x1000
jb 0x10019b95
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019ba6
test ecx, ecx
je 0x10019ba4
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x10019ba6
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x10019c2b
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10019c17
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019c51
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.InternalName
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x110]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 6
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x110]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10019e78
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019e78
mov esi, dword [ebp - 0x170]
add esi, 0x7c
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x10019d12
mov esi, edi
cmp eax, 8
jb 0x10019cdd
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x10019e78
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0e5
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x7c]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x10019d77
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019d77
lea eax, [edx + ecx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x10019d89
or ecx, 0xffffffff
jmp 0x10019d91
cmp ecx, 0x1000
jb 0x10019dbc
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019dcd
test ecx, ecx
je 0x10019dcb
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x10019dcd
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x10019e52
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10019e3e
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019e78
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.LegalCopyright
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0xf8]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 7
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0xf8]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a0a5
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a0a5
mov esi, dword [ebp - 0x170]
add esi, 0x94
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x10019f3c
mov esi, edi
cmp eax, 8
jb 0x10019f07
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001a0a5
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0ea
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x94]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x10019fa4
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019fa4
lea eax, [edx + ecx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x10019fb6
or ecx, 0xffffffff
jmp 0x10019fbe
cmp ecx, 0x1000
jb 0x10019fe9
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019ffa
test ecx, ecx
je 0x10019ff8
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x10019ffa
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001a07f
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a06b
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a0a5
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.OriginalFileName
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0xe0]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 8
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0xe0]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a2d2
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a2d2
mov esi, dword [ebp - 0x170]
add esi, 0xac
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x1001a169
mov esi, edi
cmp eax, 8
jb 0x1001a134
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001a2d2
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0ef
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0xac]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x1001a1d1
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001a1d1
lea eax, [edx + ecx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001a1e3
or ecx, 0xffffffff
jmp 0x1001a1eb
cmp ecx, 0x1000
jb 0x1001a216
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001a227
test ecx, ecx
je 0x1001a225
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001a227
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001a2ac
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a298
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a2d2
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.ProductName
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0xc8]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 9
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a4ff
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a4ff
mov esi, dword [ebp - 0x170]
add esi, 0xc4
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x1001a396
mov esi, edi
cmp eax, 8
jb 0x1001a361
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001a4ff
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0f4
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0xc4]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x1001a3fe
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001a3fe
lea eax, [edx + ecx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001a410
or ecx, 0xffffffff
jmp 0x1001a418
cmp ecx, 0x1000
jb 0x1001a443
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001a454
test ecx, ecx
je 0x1001a452
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001a454
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001a4d9
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a4c5
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a4ff
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.ProductVersion
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0xb0]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0xb0]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a72c
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a72c
mov esi, dword [ebp - 0x170]
add esi, 0xdc
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x1001a5c3
mov esi, edi
cmp eax, 8
jb 0x1001a58e
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001a72c
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0f9
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0xdc]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x1001a62b
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001a62b
lea eax, [edx + ecx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001a63d
or ecx, 0xffffffff
jmp 0x1001a645
cmp ecx, 0x1000
jb 0x1001a670
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001a681
test ecx, ecx
je 0x1001a67f
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001a681
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001a706
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a6f2
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a72c
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.Comments
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x98]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x98]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a959
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a959
mov esi, dword [ebp - 0x170]
add esi, 0xf4
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x1001a7f0
mov esi, edi
cmp eax, 8
jb 0x1001a7bb
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001a959
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b0fe
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0xf4]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x1001a858
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001a858
lea eax, [ecx + edx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001a86a
or ecx, 0xffffffff
jmp 0x1001a872
cmp ecx, 0x1000
jb 0x1001a89d
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001a8ae
test ecx, ecx
je 0x1001a8ac
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001a8ae
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001a933
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a91f
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a959
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.LegalTrademarks
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x80]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x80]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001ab80
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001ab80
mov esi, dword [ebp - 0x170]
add esi, 0x10c
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x1001aa17
mov esi, edi
cmp eax, 8
jb 0x1001a9e2
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001ab80
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b103
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x10c]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x1001aa7f
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001aa7f
lea eax, [ecx + edx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001aa91
or ecx, 0xffffffff
jmp 0x1001aa99
cmp ecx, 0x1000
jb 0x1001aac4
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001aad5
test ecx, ecx
je 0x1001aad3
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001aad5
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001ab5a
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001ab46
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001ab80
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.PrivateBuild
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x68]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x68]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001ada7
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001ada7
mov esi, dword [ebp - 0x170]
add esi, 0x124
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x1001ac3e
mov esi, edi
cmp eax, 8
jb 0x1001ac09
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001ada7
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b108
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x124]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x1001aca6
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001aca6
lea eax, [ecx + edx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001acb8
or ecx, 0xffffffff
jmp 0x1001acc0
cmp ecx, 0x1000
jb 0x1001aceb
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001acfc
test ecx, ecx
je 0x1001acfa
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001acfc
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001ad81
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001ad6d
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001ada7
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push str.SpecialBuild
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x50]
call fcn.1001b220
add esp, 4
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x50]
call fcn.10008714
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001afce
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001afce
mov esi, dword [ebp - 0x170]
add esi, 0x13c
push eax
call fcn.10005f42
add esp, 4
mov ebx, eax
mov ecx, esi
call fcn.10005e30
mov edi, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x174], eax
cmp ebx, eax
ja 0x1001ae65
mov esi, edi
cmp eax, 8
jb 0x1001ae30
mov esi, dword [edi]
mov dword [edi + 0x10], ebx
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f10
add esp, 0xc
mov dword [ebp - 0x164], 0
lea eax, [ebp - 0x164]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
jmp 0x1001afce
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001b10d
mov ecx, esi
call fcn.1000608d
mov esi, eax
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx + 0x13c]
call fcn.10005e30
mov ecx, ebx
or ecx, 7
mov dword [ebp - 0x16c], ecx
cmp ecx, esi
ja 0x1001aecd
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001aecd
lea eax, [ecx + edx]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x16c]
push eax
call fcn.10005ed6
add esp, 8
mov esi, dword [eax]
lea eax, [esi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x1001aedf
or ecx, 0xffffffff
jmp 0x1001aee7
cmp ecx, 0x1000
jb 0x1001af12
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e74f1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001b0d6
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001af23
test ecx, ecx
je 0x1001af21
push ecx
call fcn.101e74f1
add esp, 4
jmp 0x1001af23
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], esi
mov esi, dword [ebp - 0x160]
push ebx
push dword [ebp - 0x168]
push esi
call fcn.10005f29
add esp, 0xc
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x178]
push eax
lea eax, [esi + ebx*2]
push eax
call fcn.10005eff
add esp, 8
mov ecx, dword [ebp - 0x174]
cmp ecx, 8
jb 0x1001afa8
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001af94
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001b0d6
mov eax, edx
push ecx
push eax
call fcn.101e74c0
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001afce
push edi
call fcn.10005f6e
add esp, 4
push eax
push 4
call fcn.10005b84
mov esi, eax
lea eax, [ebp - 0x160]
push eax
call fcn.10005f6e
add esp, 0xc
mov ecx, dword [eax]
mov dword [esi], ecx
push dword [ebp - 0x17c]
call fcn.101e7521
add esp, 4
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x50]
call fcn.10005e05
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x68]
call fcn.10005e05
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x80]
call fcn.10005e05
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x98]
call fcn.10005e05
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xb0]
call fcn.10005e05
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xc8]
call fcn.10005e05
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xe0]
call fcn.10005e05
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xf8]
call fcn.10005e05
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x110]
call fcn.10005e05
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x128]
call fcn.10005e05
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x140]
call fcn.10005e05
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x158]
call fcn.10005e05
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.10005e05
mov al, 1
jmp 0x1001b0b3
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.101e7040
mov esp, ebp
pop ebp
ret 4
call fcn.1000604b
call fcn.102086be
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
call fcn.1000604b
int3