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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1022bc63
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x102c6474]
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.1001a8c0
mov ecx, edi
call fcn.10077600
test al, al
je 0x1001a7e1
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.10007f54
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 0x1001a7e1
push 0x102cdf90
push esi
call fcn.101e5122
add esp, 8
mov dword [ebp - 0x17c], eax
test eax, eax
je 0x1001a7e1
push eax
push esi
push dword [ebp - 0x20]
mov ecx, edi
call fcn.10007f54
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
mov edi, dword [ebp - 0x17c]
test eax, eax
jne 0x10018bde
push edi
call fcn.101e4dd1
add esp, 4
jmp 0x1001a7e1
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x15c]
push eax
push 0x10274d50
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10018c26
mov eax, dword [ebp - 0x15c]
test eax, eax
je 0x10018c26
cmp dword [ebp - 0x1c], 0x34
jne 0x10018c26
push 0x34
push eax
push ebx
call fcn.101fc3e0
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 0x10018cf0
cmp dword [ebp - 0x15c], esi
je 0x10018cf0
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 0x10018c81
cmp word [ecx], dx
je 0x10018ce6
add ecx, 4
cmp ecx, eax
jb 0x10018c75
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.1001a850
test al, al
jne 0x10018cea
push 1
lea eax, [ebp - 0x160]
push eax
push 0
push dword [ebp - 0x1c]
push dword [ebp - 0x15c]
call fcn.1001a850
test al, al
jne 0x10018cea
push 1
lea eax, [ebp - 0x160]
push eax
push 9
push dword [ebp - 0x1c]
push dword [ebp - 0x15c]
call fcn.1001a850
test al, al
jne 0x10018cea
mov eax, dword [ebp - 0x15c]
mov esi, dword [eax]
jmp 0x10018cf0
mov esi, dword [ecx]
jmp 0x10018cf0
mov esi, dword [ebp - 0x160]
lea ecx, [ebp - 0x38]
call fcn.10007fd4
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.10074cd0
push str.CompanyName
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x158]
call fcn.1001a950
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.10007f54
push eax
push edi
call ebx
test eax, eax
je 0x10018f33
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10018f33
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 0x10018dcf
mov esi, edi
cmp eax, 8
jb 0x10018d9a
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 0x10018f33
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a801
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 0x10018e34
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10018e34
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 0x10018e46
or ecx, 0xffffffff
jmp 0x10018e4e
cmp ecx, 0x1000
jb 0x10018e77
lea eax, [ecx + 0x23]
or edx, 0xffffffff
cmp eax, ecx
cmovbe eax, edx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10018e88
test ecx, ecx
je 0x10018e86
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x10018e88
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 0x10018f0d
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10018ef9
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10018f33
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001915a
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001915a
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 0x10018ff4
mov esi, edi
cmp eax, 8
jb 0x10018fbf
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 0x1001915a
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a80b
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 0x10019059
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019059
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 0x1001906b
or ecx, 0xffffffff
jmp 0x10019073
cmp ecx, 0x1000
jb 0x1001909e
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x100190af
test ecx, ecx
je 0x100190ad
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x100190af
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 0x10019134
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10019120
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001915a
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10019381
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019381
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 0x1001921b
mov esi, edi
cmp eax, 8
jb 0x100191e6
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 0x10019381
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a810
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 0x10019280
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019280
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 0x10019292
or ecx, 0xffffffff
jmp 0x1001929a
cmp ecx, 0x1000
jb 0x100192c5
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x100192d6
test ecx, ecx
je 0x100192d4
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x100192d6
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 0x1001935b
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10019347
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019381
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x100195a8
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x100195a8
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 0x10019442
mov esi, edi
cmp eax, 8
jb 0x1001940d
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 0x100195a8
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a815
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 0x100194a7
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x100194a7
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 0x100194b9
or ecx, 0xffffffff
jmp 0x100194c1
cmp ecx, 0x1000
jb 0x100194ec
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x100194fd
test ecx, ecx
je 0x100194fb
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x100194fd
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 0x10019582
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001956e
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x100195a8
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x100197d5
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x100197d5
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 0x1001966c
mov esi, edi
cmp eax, 8
jb 0x10019637
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 0x100197d5
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a81a
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 0x100196d4
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x100196d4
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 0x100196e6
or ecx, 0xffffffff
jmp 0x100196ee
cmp ecx, 0x1000
jb 0x10019719
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001972a
test ecx, ecx
je 0x10019728
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x1001972a
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 0x100197af
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001979b
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x100197d5
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10019a02
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019a02
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 0x10019899
mov esi, edi
cmp eax, 8
jb 0x10019864
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 0x10019a02
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a81f
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 0x10019901
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019901
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 0x10019913
or ecx, 0xffffffff
jmp 0x1001991b
cmp ecx, 0x1000
jb 0x10019946
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019957
test ecx, ecx
je 0x10019955
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x10019957
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 0x100199dc
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x100199c8
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019a02
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10019c2f
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019c2f
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 0x10019ac6
mov esi, edi
cmp eax, 8
jb 0x10019a91
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 0x10019c2f
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a824
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 0x10019b2e
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019b2e
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 0x10019b40
or ecx, 0xffffffff
jmp 0x10019b48
cmp ecx, 0x1000
jb 0x10019b73
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019b84
test ecx, ecx
je 0x10019b82
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x10019b84
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 0x10019c09
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10019bf5
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019c2f
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x10019e5c
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x10019e5c
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 0x10019cf3
mov esi, edi
cmp eax, 8
jb 0x10019cbe
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 0x10019e5c
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a829
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 0x10019d5b
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019d5b
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 0x10019d6d
or ecx, 0xffffffff
jmp 0x10019d75
cmp ecx, 0x1000
jb 0x10019da0
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019db1
test ecx, ecx
je 0x10019daf
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x10019db1
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 0x10019e36
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x10019e22
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x10019e5c
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a089
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a089
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 0x10019f20
mov esi, edi
cmp eax, 8
jb 0x10019eeb
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 0x1001a089
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a82e
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 0x10019f88
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x10019f88
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 0x10019f9a
or ecx, 0xffffffff
jmp 0x10019fa2
cmp ecx, 0x1000
jb 0x10019fcd
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x10019fde
test ecx, ecx
je 0x10019fdc
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x10019fde
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 0x1001a063
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a04f
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a089
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a2b0
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a2b0
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 0x1001a147
mov esi, edi
cmp eax, 8
jb 0x1001a112
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 0x1001a2b0
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a833
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 0x1001a1af
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001a1af
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 0x1001a1c1
or ecx, 0xffffffff
jmp 0x1001a1c9
cmp ecx, 0x1000
jb 0x1001a1f4
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001a205
test ecx, ecx
je 0x1001a203
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x1001a205
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 0x1001a28a
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a276
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a2b0
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a4d7
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a4d7
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 0x1001a36e
mov esi, edi
cmp eax, 8
jb 0x1001a339
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 0x1001a4d7
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a838
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 0x1001a3d6
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001a3d6
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 0x1001a3e8
or ecx, 0xffffffff
jmp 0x1001a3f0
cmp ecx, 0x1000
jb 0x1001a41b
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001a42c
test ecx, ecx
je 0x1001a42a
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x1001a42c
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 0x1001a4b1
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a49d
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a4d7
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.1001a950
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.10007f54
push eax
push dword [ebp - 0x17c]
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1001a6fe
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x168], eax
test eax, eax
je 0x1001a6fe
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 0x1001a595
mov esi, edi
cmp eax, 8
jb 0x1001a560
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 0x1001a6fe
mov ecx, esi
call fcn.1000608d
cmp ebx, eax
ja 0x1001a83d
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 0x1001a5fd
mov edx, dword [eax + 0x14]
mov ecx, edx
shr ecx, 1
mov eax, esi
sub eax, ecx
cmp edx, eax
ja 0x1001a5fd
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 0x1001a60f
or ecx, 0xffffffff
jmp 0x1001a617
cmp ecx, 0x1000
jb 0x1001a642
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.101e4da1
add esp, 4
mov ecx, eax
test ecx, ecx
je 0x1001a806
lea eax, [ecx + 0x23]
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001a653
test ecx, ecx
je 0x1001a651
push ecx
call fcn.101e4da1
add esp, 4
jmp 0x1001a653
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 0x1001a6d8
mov eax, dword [edi]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x1001a6c4
add ecx, 0x23
mov edx, dword [eax - 4]
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001a806
mov eax, edx
push ecx
push eax
call fcn.101e4d70
add esp, 8
mov eax, dword [ebp - 0x160]
mov dword [edi], eax
jmp 0x1001a6fe
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.101e4dd1
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 0x1001a7e3
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.101e48f0
mov esp, ebp
pop ebp
ret 4
call fcn.1000604b
call fcn.10205f6e
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