Function at 0x10014770
Capabilities:
Get file system object information
Get graphical window text
Get keyboard layout

Disassembly:
mov eax, 0x1006f865
call fcn.1006ec78
mov eax, 0x12bac
call fcn.1006ab00
push ebx
push esi
mov dword [ebp - 0x54], 0xf112
xor ebx, ebx
push edi
mov dword [ebp - 0x50], ecx
mov edi, 0xfffd
xor ecx, ecx
mov byte [ebp - 0x61], dl
mov dword [ebp - 0x54], ecx
mov edx, 0x3df603fa
mov dword [ebp - 0x54], edx
inc ebx
push 4
pop eax
mov dword [ebp - 0x54], eax
mov esi, 0x9fb37b04
mov dword [ebp - 0x54], 9
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], ebx
jge 0x100147e1
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x720], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x100147cc
push 4
pop eax
dec dword [ebp - 0x44]
mov dword [ebp - 0x54], 0xf112
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x54], 9
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], ebx
jge 0x10014821
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x7e8], esi
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x1001480c
push 4
pop eax
dec dword [ebp - 0x44]
lea ecx, [ebp - 0x684]
push eax
call fcn.1000ecc9
and dword [ebp - 4], 0
lea ecx, [ebp - 0x4ec]
mov dword [ebp - 0x28], 0x1dc6
push 2
call fcn.1000ecc9
push 4
pop edi
push edi
lea ecx, [ebp - 0x5dc]
mov byte [ebp - 4], bl
call fcn.1000ecc9
xor edx, edx
mov byte [ebp - 4], 2
mov dword [ebp - 0x14], edx
jmp 0x10014878
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x684]
mov dword [eax + ecx*4], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10014865
push 5
mov dword [ebp - 0x14], edx
pop ecx
jmp 0x10014892
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x4d4], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10014885
mov dword [ebp - 0x14], edx
jmp 0x100148ae
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2e0], 0xfffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1001489d
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 2
jge 0x100148d4
push 2
pop esi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4ec]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100148c0
mov dword [ebp - 0x14], edx
jmp 0x100148ec
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5dc]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x100148d9
mov esi, dword [ebp - 0x684]
mov dword [ebp - 0x30], esi
mov dword [esi + 8], 9
mov dword [ebp - 0x24], 0xb168f92
mov dword [ebp - 0x3c], 0xec1fcc8a
mov dword [ebp - 0x20], 0x5a52
mov dword [ebp - 0x10], 0xaebb1bb3
mov dword [ebp - 0x44], 0x895c4b79
mov dword [ebp - 0x48], 0x828c040c
mov dword [ebp - 0x38], 0x5eba
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], edx
je 0x1001496a
mov eax, dword [ebp - 0x24]
cmp dword [esi + 8], edx
je 0x10014967
mov dword [ebp - 0x3c], 6
mov eax, ebx
sub eax, dword [esi + 8]
mov dword [ebp - 0x4d4], ebx
mov dword [ebp - 0x2dc], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov eax, dword [esi + 8]
neg eax
je 0x10014974
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
xor eax, eax
cmp dword [esi + 8], edx
setne al
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x3c], edx
je 0x10014996
mov eax, dword [ebp - 0x4d4]
mov eax, dword [ebp - 0x2dc]
cmp eax, dword [ebp - 0x28]
jge 0x100149a8
mov ecx, edx
cmp dword [ebp - 0x48], edx
je 0x100149aa
mov ecx, ebx
xor eax, eax
cmp ecx, 0xfffffff8
push 0
setne al
xor ecx, ecx
sub eax, dword [ebp - 0x20]
cmp eax, 0xfffffffb
mov eax, dword [ebp - 0x48]
setle cl
xor edx, edx
cmp ecx, eax
setge dl
add edx, dword [ebp - 0x38]
neg edx
sbb edx, edx
inc edx
dec dword [esi + 8]
cmp dword [esi + 8], 3
mov dword [ebp - 0x2c], edx
pop edx
jg 0x10014901
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0xffffffe2
jg 0x10014b22
mov edi, dword [ebp - 0x5dc]
push 4
mov dword [ebp - 0x20], 0xa7276463
lea ecx, [ebp - 0x70c]
pop eax
mov dword [ebp - 0x38], 0xfffffff9
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x44], 0xffffffff
push eax
call fcn.1000ecc9
xor edx, edx
mov dword [ebp - 0x1c], edx
jmp 0x10014a30
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x45c], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10014a23
push 4
mov dword [ebp - 0x1c], edx
pop eax
cmp dword [ebp - 0x1c], eax
jge 0x10014a5e
push eax
pop esi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x70c]
mov dword [eax + ecx*4], 0xb80eaeaa
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10014a43
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x20], 2
cmp dword [ebp - 0x20], edx
jl 0x10014a9c
mov dword [ebp - 0x54], 0xb95dfea4
mov dword [ebp - 0x44], 0x3ff4914d
mov dword [ebp - 0x48], edx
jmp 0x10014a8e
mov eax, dword [ebp - 0x48]
mov dword [ebp + eax*4 - 0xa78], 0xbe0e206f
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 3
jl 0x10014a7d
dec dword [ebp - 0x44]
dec dword [ebp - 0x20]
jns 0x10014a6a
mov dword [ebp - 0x44], ebx
xor ecx, ecx
mov eax, dword [ebp - 0x44]
sub eax, dword [edi + 4]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x458]
mov eax, dword [ebp - 0x4ec]
cmp dword [eax], 0x7b70
setle cl
sub ecx, 0xa864
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, dword [eax]
mov eax, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x45c]
setl dl
xor ecx, ecx
cmp dword [edi + 4], eax
setl cl
sub ecx, edx
lea edx, [ecx + 0x53593517]
xor ecx, ecx
mov dword [ebp - 0x4d4], edx
mov eax, dword [ebp - 0x2dc]
cmp edx, eax
setge cl
mov dword [esi + 8], ecx
lea ecx, [ebp - 0x70c]
call fcn.1000f79f
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xffffffe2
jle 0x100149f5
lea ecx, [ebp - 0x5dc]
call fcn.1000f79f
lea ecx, [ebp - 0x4ec]
call fcn.1000f79f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x684]
call fcn.1000f79f
mov dword [ebp - 0x20], 0x6847dfa8
xor ecx, ecx
mov dword [ebp - 0x24], 0xfffffff6
mov dword [ebp - 0x38], 0xfffffffe
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], ebx
jge 0x10014b78
push 5
pop edx
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x68], edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jl 0x10014b69
push 0xa
pop eax
mov dword [ebp - 0x20], ecx
mov edx, 0x99244325
mov dword [ebp - 0x2c], eax
jmp 0x10014b91
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x24], edx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], eax
jne 0x10014b88
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x68], ecx
jne 0x10014bb5
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
cmp dword [ebp - 0x20], ecx
je 0x10014bb8
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov eax, dword [ebp - 0x68]
mov edx, ebx
mov eax, dword [ebp - 0x38]
mov esi, 0x48d4b906
sub edx, eax
mov eax, dword [ebp - 0x68]
cmp edx, eax
setle cl
mov dword [ebp - 0x68], ecx
xor ecx, ecx
mov dword [ebp - 0x54], 0xf112
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x30], 0x5baf43b
mov dword [ebp - 0x28], 0xffff
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x334], ecx
mov dword [ebp - 0x330], ecx
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x328], ecx
mov dword [ebp - 0x10], ebx
dec dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
je 0x10014ec2
mov dword [ebp - 0x48], 0xf0a9b27f
mov dword [ebp - 0x24], 0xb05ef135
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x38], 0x16dd
cmp dword [ebp - 0x38], 0xb54
jge 0x10014e0f
lea eax, [ebp - 0xbc]
push eax
push 0x1000775c
call fcn.10057f6b
mov eax, dword [ebp - 0xbc]
pop ecx
pop ecx
inc eax
lea ecx, [ebp - 0x504]
push eax
call fcn.100226e3
mov dword [ebp - 4], 3
mov edi, ebx
mov edx, dword [ebp - 0xbc]
cmp edx, ebx
jle 0x10014ce3
mov esi, dword [ebp - 0x504]
lea eax, [ebp - 0x1b0]
push eax
lea eax, [ebp - 0x19c]
push eax
push 0x1000786c
call fcn.10057f6b
imul ecx, dword [ebp - 0x19c], 0xc
lea eax, [ebp - 0x1b0]
add esp, 0xc
push eax
add ecx, esi
call fcn.10022681
imul ecx, dword [ebp - 0x1b0], 0xc
lea eax, [ebp - 0x19c]
push eax
add ecx, esi
call fcn.10022681
mov edx, dword [ebp - 0xbc]
inc edi
cmp edi, edx
jl 0x10014c93
or dword [ebp - 0x24], 0xffffffff
xor eax, eax
mov edi, eax
mov dword [ebp - 0x20c], eax
mov esi, eax
mov dword [ebp - 0x214], edi
mov dword [ebp - 0x210], esi
mov ecx, ebx
push 4
pop eax
mov byte [ebp - 4], al
mov dword [ebp - 0xd0], ecx
cmp edx, ebx
jl 0x10014d78
mov esi, dword [ebp - 0x504]
imul edi, ecx, 0xc
mov eax, dword [edi + esi + 4]
sub eax, dword [edi + esi]
and eax, 0xfffffffc
cmp eax, 4
jne 0x10014d49
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x214]
call fcn.10022681
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xd0]
jmp 0x10014d61
mov eax, dword [edi + esi + 4]
sub eax, dword [edi + esi]
sar eax, 2
cmp eax, 2
jbe 0x10014d61
cmp dword [ebp - 0x24], 0
jge 0x10014da9
mov dword [ebp - 0x24], ecx
inc ecx
mov dword [ebp - 0xd0], ecx
cmp ecx, edx
jle 0x10014d17
mov esi, dword [ebp - 0x210]
mov edi, dword [ebp - 0x214]
push 0x10007878
call fcn.10058aba
cmp dword [ebp - 0x24], 0
pop ecx
jge 0x10014db6
mov eax, esi
sub eax, edi
sar eax, 2
cmp eax, 2
jb 0x10014db6
push dword [edi + 4]
push dword [edi]
push 0x1000787c
call fcn.1005819f
add esp, 0xc
jmp 0x10014dee
push 0x10007874
call fcn.10058aba
pop ecx
jmp 0x10014dee
sub esi, edi
sar esi, 2
push esi
push 0x10007888
call fcn.1005819f
and dword [ebp - 0x38], 0
pop ecx
pop ecx
test esi, esi
je 0x10014dee
mov ebx, dword [ebp - 0x38]
push dword [edi + ebx*4]
push dword [ebp - 0x24]
push 0x10007890
call fcn.1005819f
add esp, 0xc
inc ebx
cmp ebx, esi
jb 0x10014dd3
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0x214]
call fcn.1000f79f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x504]
call fcn.1000f92a
mov esi, 0x48d4b906
xor ecx, ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x48], ecx
jne 0x10014e24
mov eax, ecx
cmp dword [ebp - 0x28], ecx
je 0x10014e26
mov eax, ebx
mov dword [ebp - 0x14], eax
xor edx, edx
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setg dl
add edx, dword [ebp - 0x48]
je 0x10014e3e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], ebx
xor edx, edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x330]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x330]
cmp ecx, eax
mov ecx, esi
setg dl
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x48]
sub ecx, eax
mov eax, dword [ebp - 0x330]
add eax, ecx
mov ecx, dword [ebp - 0x10]
add ecx, eax
je 0x10014e95
cmp dword [ebp - 0x20], 0
je 0x10014e95
mov ecx, ebx
jmp 0x10014e97
xor ecx, ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
add ecx, 0xfffffffc
cmp eax, ecx
setg dl
xor ecx, ecx
sub edx, dword [ebp - 0x20]
imul edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
add edx, 7
cmp eax, edx
setge cl
mov dword [ebp - 0x14], ecx
xor ecx, ecx
jmp 0x10015017
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 0x38], 0xb6057bad
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], cl
je 0x10014ee2
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
jmp 0x1001500d
mov dword [ebp - 0x3c], 0xdb9cc511
mov dword [ebp - 0x20], 0x14d19633
mov dword [ebp - 0x44], 0x7922c1e9
mov dword [ebp - 0x48], 0xe41e6f70
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
dec eax
cmp eax, ebx
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setg dl
xor ebx, ebx
sub edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
cmp edx, 0x1f3e
setne bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor ebx, ebx
inc ebx
cmp ecx, ebx
jle 0x10014fe7
mov dword [ebp - 0x38], 0x18fe3b64
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x330]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
sub edx, eax
mov eax, dword [ebp - 0x38]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], 0x39
jg 0x1001500a
xor ebx, ebx
mov dword [ebp - 0x38], 0x2d27084
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x10]
sub ecx, eax
sub edx, ecx
neg edx
sbb edx, edx
xor eax, eax
inc edx
sub edx, dword [ebp - 0x1c]
cmp edx, 0x242223aa
setge al
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x10014fd9
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegUnLoadKeyW]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0x39
jle 0x10014f9c
xor ebx, ebx
inc ebx
jmp 0x10015008
xor ecx, ecx
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], cl
je 0x1001500a
push 0x161b
push 0xb2d
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
xor ecx, ecx
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xffffffed
jl 0x10014eea
mov dword [ebp - 0x54], 0x3df603fa
mov dword [ebp - 0x44], 0x924b5411
mov dword [ebp - 0x20], 0xfd814383
push 2
mov dword [ebp - 0x10], ecx
pop edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x38], 0x1d73
cmp dword [ebp - 0x38], 0xaf9
jge 0x100150d1
lea eax, [ebp - 0x2b4]
push eax
lea eax, [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x2f8]
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x294]
push eax
push 0x1000789c
call fcn.10057f6b
mov edx, dword [ebp - 0x294]
add esp, 0x18
mov eax, dword [ebp - 0x2a4]
mov ecx, edx
imul ecx, dword [ebp - 0x338]
imul edx, dword [ebp - 0x2f8]
lea esi, [ecx + eax*2]
mov eax, dword [ebp - 0x2b4]
lea edi, [edx + eax*2]
cmp esi, edi
jne 0x100150b2
push 0x100078ac
call fcn.10058aba
pop ecx
cmp esi, edi
jle 0x100150bf
push 0x100078b8
call fcn.10058aba
pop ecx
cmp esi, edi
jge 0x100150ce
push 0x100078c0
call fcn.10058aba
pop ecx
push 2
pop edi
mov dword [ebp - 0x28], 0x336a
lea ecx, [ebp - 0x5f4]
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x24], 0x95cc9e52
push edi
call fcn.1000ecc9
xor ecx, ecx
mov dword [ebp - 0x3c], 0x2dc1b2d8
mov dword [ebp - 0x14], ecx
jmp 0x10015109
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x16c], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100150fc
mov dword [ebp - 0x14], ecx
jmp 0x10015125
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x1b8], 0x80335900
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10015114
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], edi
jge 0x1001514c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5f4]
mov dword [eax + ecx*4], 0x945cb296
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10015132
xor ecx, ecx
dec dword [ebp - 0x168]
inc dword [ebp - 0x44]
jne 0x10015161
mov eax, ecx
cmp dword [ebp - 0x168], ecx
je 0x10015163
mov eax, ebx
imul ecx, eax, 7
xor edx, edx
mov eax, dword [ebp - 0x168]
cmp ecx, eax
mov eax, dword [ebp - 0x168]
setl dl
sub edx, eax
mov dword [ebp - 0x10], edx
xor edx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x168]
mov eax, dword [ebp - 0x5f4]
cmp dword [eax], ecx
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
sub ecx, 0x2b5aa0f9
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x28]
jne 0x100151c9
mov eax, dword [ebp - 0x1b8]
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x168]
setle dl
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x5f4]
mov eax, dword [ebp - 0x168]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1b8]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xac80eabf
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
call fcn.1000f79f
push 4
pop eax
mov dword [ebp - 0x54], eax
lea ecx, [ebp - 0x51c]
push edi
call fcn.1000ecc9
mov dword [ebp - 0x28], ebx
xor edx, edx
mov dword [ebp - 0x24], 0x791f
mov dword [ebp - 0x38], 0x4e2095e0
mov dword [ebp - 0x3c], 0x74f
mov dword [ebp - 0x10], edx
jmp 0x1001525d
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x51c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x1001524d
mov esi, dword [ebp - 0x51c]
cmp dword [esi + 4], edx
je 0x100152c5
mov dword [ebp - 0x10], 0x2db8e964
xor ecx, ecx
mov dword [ebp - 0x28], 0xffffffff
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp eax, 0xfffffff7
setl cl
cmp dword [ebp - 0x10], ecx
jl 0x10015298
mov ecx, ebx
cmp dword [ebp - 0x10], edx
jne 0x1001529a
mov ecx, edx
mov eax, dword [ebp - 0x10]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x10]
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
xor eax, eax
cmp ecx, dword [esi + 4]
setg al
sub eax, 0xcd2466e9
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
jmp 0x100152ee
mov dword [ebp - 0x44], 0xaa12afd7
mov dword [ebp - 0x38], 9
mov eax, dword [ebp - 0x28]
cmp dword [esi + 4], eax
jne 0x100152e9
mov eax, dword [ebp - 0x44]
mov ecx, ebx
mov eax, dword [ebp - 0x44]
sub ecx, eax
mov eax, edx
je 0x100152eb
mov eax, ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x6a01
setl cl
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x51c]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
call fcn.1000f79f
mov dword [ebp - 0x54], 9
xor ecx, ecx
push 4
mov dword [ebp - 0x38], 0xfffffff9
mov dword [ebp - 0x10], ecx
pop edx
jmp 0x10015344
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x9e8], 0xeef20fe6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x10015333
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], cl
je 0x1001535a
push ecx
call dword [sym.imp.GDI32.dll_CreatePenIndirect]
xor ecx, ecx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x9e4], eax
mov dword [ebp - 0x54], ecx
push 0xfffffffffffffff8
pop eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x44], 0x151c
mov dword [ebp - 0x10], ecx
jmp 0x1001559b
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ecx
jmp 0x10015394
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x7c], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ebx
jl 0x10015386
mov dword [ebp - 0x38], 0x138f
cmp dword [ebp - 0x38], 0x9a3
jge 0x10015439
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x2c4]
push eax
push 0x100078cc
call fcn.10057f6b
mov esi, dword [ebp - 0x11c]
add esp, 0x10
mov ecx, dword [ebp - 0x124]
xor edi, edi
mov eax, ecx
cdq
idiv dword [ebp - 0x2c]
cmp edx, 7
je 0x10015427
mov eax, esi
cdq
idiv dword [ebp - 0x2c]
cmp edx, 7
je 0x10015427
sub esi, dword [ebp - 0x2c4]
mov dword [ebp - 0x11c], esi
jns 0x10015411
add esi, 0x3c
dec ecx
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x124], ecx
test ecx, ecx
jns 0x1001541e
add ecx, 0x18
mov dword [ebp - 0x124], ecx
inc edi
cmp edi, 0x5a0
jl 0x100153dd
push edi
push 0x10007888
call fcn.1005819f
pop ecx
pop ecx
push 2
xor ecx, ecx
pop edi
mov dword [ebp - 0x1c], ecx
jmp 0x1001544b
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x950], edi
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x1001543e
mov dword [ebp - 0x7c], ecx
cmp dword [ebp - 0x7c], 9
jl 0x10015598
mov dword [ebp - 0x28], 0x1860
xor edx, edx
mov dword [ebp - 0x38], 0xc6f1fdbd
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x7c]
cmp ecx, eax
push 5
setne dl
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
neg eax
pop ecx
sbb eax, eax
neg eax
cmp eax, ecx
mov eax, dword [ebp - 0x28]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x7c]
setge dl
sub edx, eax
mov eax, dword [ebp - 0x38]
add eax, edx
cmp eax, 0xf8067e3
jle 0x100154ed
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 0
jl 0x10015586
xor ebx, ebx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x100154e0
push ebx
push ebx
push ebx
push 0x17d
push 0x20cc
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentExPointA]
dec dword [ebp - 0x28]
jns 0x100154b6
xor ebx, ebx
inc ebx
jmp 0x10015586
xor ecx, ecx
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 0x18
jne 0x10015588
lea esi, [ebp - 0x844]
lea edi, [ebp - 0x834]
movdqa xmm0, xmmword [0x10007f50]
push ecx
push edi
push esi
lea ecx, [ebp - 0x814]
movdqu xmmword [ebp - 0x844], xmm0
call fcn.1000ed05
mov dword [ebp - 0x38], 0xfffffff7
xor edx, edx
mov dword [ebp - 0x24], 6
cmp dword [ebp - 0x24], edx
jne 0x10015565
mov eax, dword [ebp - 0x814]
xor ecx, ecx
cmp dword [eax + 8], 0x69cd
setne cl
cmp ecx, 0x5d
je 0x10015555
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
mov eax, edx
cmp dword [ebp - 0x44], edx
je 0x10015567
mov eax, ebx
cmp eax, 0xffff
lea ecx, [ebp - 0x814]
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
call fcn.1000f79f
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x18
je 0x10015508
xor ecx, ecx
inc dword [ebp - 0x7c]
cmp dword [ebp - 0x7c], 9
jge 0x1001545d
push 2
pop edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x18
jg 0x1001537e
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], 0
je 0x100155bd
push ecx
push 0xaa4
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayLock]
xor ecx, ecx
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x24], 0xf377cc42
push ebx
call fcn.1000ecc9
push 5
xor edx, edx
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x44], 0x204795ed
mov dword [ebp - 0x30], 0xfffffffb
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x10], 0xe0133d49
mov dword [ebp - 0x38], 0x1500
cmp dword [ebp - 0x38], 0x6ab
jge 0x10015739
lea eax, [ebp - 0x2fc]
push eax
lea eax, [ebp - 0xb0]
push eax
push 0x100078d8
call fcn.10057f6b
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
add esp, 0xc
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x270], ecx
inc eax
mov dword [ebp - 0x26c], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x738]
movsd qword [ebp - 0x738], xmm0
push ecx
push eax
lea ecx, [ebp - 0x274]
call fcn.10022959
xor ecx, ecx
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x280], ecx
inc eax
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x278], ecx
lea ecx, [ebp - 0x274]
push ecx
push eax
lea ecx, [ebp - 0x280]
call fcn.10022996
lea ecx, [ebp - 0x274]
call fcn.1000f79f
movd xmm0, dword [ebp - 0x2fc]
mov esi, dword [ebp - 0x280]
cvtdq2pd xmm0, xmm0
mov eax, dword [esi]
movsd qword [eax], xmm0
xor eax, eax
mov edi, eax
mov edx, eax
mov eax, dword [ebp - 0xb0]
test eax, eax
jle 0x1001571f
movsd xmm2, qword [0x10007eb8]
xor ebx, ebx
mov ecx, ebx
test edx, edx
js 0x10015714
mov eax, dword [esi]
movsd xmm1, qword [eax + ecx*8]
comisd xmm2, xmm1
ja 0x10015709
mov eax, dword [esi + 0xc]
subsd xmm1, xmm2
inc edi
movups xmm0, xmmword [eax + ecx*8]
mulsd xmm1, qword [0x10007eb0]
unpcklpd xmm1, xmm1
addpd xmm0, xmm1
movups xmmword [eax + ecx*8], xmm0
mov eax, dword [esi]
inc ecx
cmp ecx, edx
jle 0x100156dc
mov eax, dword [ebp - 0xb0]
inc edx
add esi, 0xc
cmp edx, eax
jl 0x100156d4
xor ebx, ebx
inc ebx
push edi
push 0x10007760
call fcn.1005819f
pop ecx
pop ecx
lea ecx, [ebp - 0x280]
call fcn.10022a38
xor edx, edx
mov dword [ebp - 0x2c], 0xfffffffd
mov dword [ebp - 0x14], edx
jmp 0x10015758
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2a0]
mov dword [eax + ecx*4], 0x695998ab
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jl 0x10015745
push 4
mov dword [ebp - 0x14], edx
pop ecx
jmp 0x10015776
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3ac], 0x79df9481
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10015765
mov dword [ebp - 0x14], edx
jmp 0x1001578d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x290], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10015780
mov eax, dword [ebp - 0x3ac]
cmp dword [ebp - 0x24], 0xffff
je 0x100157a5
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setle cl
xor edx, edx
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2a0]
mov dword [eax], edi
inc dword [ebp - 0x290]
mov esi, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x3a0]
mov eax, dword [ebp - 0x20]
add ecx, eax
mov eax, dword [ebp - 0x10]
cmp ecx, eax
lea eax, [esi + edi]
setle dl
mov dword [ebp - 0x48], edx
sub eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x48]
imul edx, eax, 9
sub edx, dword [ebp - 0x3a0]
mov eax, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x10]
setl cl
xor edx, edx
cmp ecx, eax
setge dl
sub edx, dword [ebp - 0x24]
add edx, dword [ebp - 0x20]
je 0x10015840
mov eax, dword [ebp - 0x2a0]
xor ecx, ecx
mov edx, ecx
cmp dword [eax], ecx
je 0x10015842
mov edx, ebx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x44]
setl cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x3a4]
setg dl
imul edx, eax
mov eax, dword [ebp - 0x30]
add eax, edx
mov edx, 0xfff9
je 0x100158a7
mov eax, dword [ebp - 0x2a0]
xor ecx, ecx
cmp dword [eax], ecx
je 0x100158a9
mov dword [ebp - 0x38], edx
xor edx, edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3a0]
mov ecx, dword [ebp - 0x3a4]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
push 0xa
setne dl
mov dword [ebp - 0x2c], edx
pop edi
jmp 0x1001595c
xor ecx, ecx
mov dword [ebp - 0x38], 0x50395763
mov dword [ebp - 0x1c], ecx
jmp 0x100158c6
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x71c], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x100158b5
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 2
jge 0x100158eb
push 4
pop ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x74c], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x100158d8
mov eax, dword [ebp - 0x71c]
mov eax, dword [ebp - 0x290]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x71c]
mov dword [ebp - 0x748], eax
push 0xa
mov dword [ebp - 0x30], 0xffffffe5
pop edi
cmp dword [ebp - 0x30], edi
jl 0x1001595c
xor ebx, ebx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x10015936
push 0x1b7c
push 0x23d2
push ebx
push 0x1038
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x10015951
push ebx
push 0x32d
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetScrollInfo]
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edi
jge 0x10015917
xor ebx, ebx
inc ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2a0]
call fcn.1000f79f
xor ecx, ecx
mov dword [ebp - 0x54], 0xffffffff
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], cl
je 0x1001598c
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_EndPaint]
xor ecx, ecx
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], 0
je 0x100159bb
push ecx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
push 0x724
push 0x1a55
push 0x14fc
push 0x22c4
push 0
call dword [sym.imp.USER32.dll_TrackPopupMenu]
xor ecx, ecx
mov dword [ebp - 0x3c], 0xfffd
mov dword [ebp - 0x10], ecx
jmp 0x100159d8
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x7a0], 0x9fb37b04
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ebx
jl 0x100159c7
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x20], 0xfffffffb
jmp 0x10015b20
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x2c], 0x7716e311
mov dword [ebp - 0x38], 0x73f5cfeb
mov dword [ebp - 0x38], 0xcb4e3473
dec dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0x2a
je 0x10015b1d
mov dword [ebp - 0x38], 0x1362395e
lea ecx, [ebp - 0x690]
push 3
call fcn.1000ecc9
xor edx, edx
mov dword [ebp - 0x2c], 0xe4bc795c
mov dword [ebp - 0x10], edx
jmp 0x10015a54
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x690]
mov dword [eax + ecx*4], 0xf27142b6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x10015a41
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x20], edx
je 0x10015a70
cmp dword [ebp - 0x38], 0xe4bf
mov esi, ebx
jg 0x10015a72
mov esi, edx
mov eax, dword [ebp - 0x14]
or edx, 0xffffffff
sub edx, eax
xor ecx, ecx
add edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
cmp edx, eax
mov eax, dword [ebp - 0x690]
setge cl
lea edx, [ecx + 0x18ebdb8]
xor ecx, ecx
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x14]
sub edx, eax
mov eax, dword [ebp - 0x14]
imul edx, esi
cmp edx, eax
setne cl
imul ecx, dword [ebp - 0x14]
sub ecx, 0xfff7
cmp ecx, 9
jne 0x10015ac0
xor eax, eax
mov edx, eax
cmp dword [ebp - 0x2c], eax
je 0x10015ac2
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
add ecx, dword [ebp - 0x14]
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0xf314d41b
mov eax, dword [ebp - 0x14]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
setne dl
add edx, edi
mov dword [ebp - 0x38], edx
je 0x10015afe
cmp dword [ebp - 0x44], 0
je 0x10015afe
mov eax, ebx
jmp 0x10015b00
xor eax, eax
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x690]
call fcn.1000f79f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x2a
jne 0x10015a1f
xor ecx, ecx
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffff9
jge 0x100159f3
dec dword [ebp - 0x3c]
mov esi, 0xfe77dd68
mov dword [ebp - 0x454], esi
mov dword [ebp - 0x450], esi
mov dword [ebp - 0x44c], esi
mov dword [ebp - 0x448], esi
mov dword [ebp - 0x2c], 0xfffffff6
push 0xfffffffffffffffd
pop edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x450]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
add eax, 0xfffd
imul eax, dword [ebp - 0x450]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], 0
je 0x10015b92
push 0x1fa
push ecx
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
xor ecx, ecx
mov dword [ebp - 0x46c], esi
mov dword [ebp - 0x468], esi
mov dword [ebp - 0x464], esi
mov dword [ebp - 0x460], esi
mov dword [ebp - 0x2c], 0xfffffff6
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x468]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
add eax, 0xfffd
imul eax, dword [ebp - 0x468]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], 0
je 0x10015bed
push 0x1fa
push ecx
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
push 2
lea ecx, [ebp - 0x7cc]
call fcn.1000ecc9
mov dword [ebp - 0x54], 0xa137b189
xor edx, edx
mov dword [ebp - 0x54], 0xfffffff6
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x2c], 0xa062b000
mov dword [ebp - 0x14], edx
jmp 0x10015c2c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x7cc]
mov dword [eax + ecx*4], 0x125d16df
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10015c19
push 4
mov dword [ebp - 0x14], edx
pop ecx
jmp 0x10015c4b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa88], 0x21dfe4b2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10015c3a
mov dword [ebp - 0x14], edx
jmp 0x10015c66
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa54], 0xfffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10015c55
inc dword [ebp - 0x2c]
lea ecx, [ebp - 0x7cc]
call fcn.1000f79f
mov dword [ebp - 0x38], 0x22dc
cmp dword [ebp - 0x38], 0xa10
jge 0x10015fbb
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x1b4]
push eax
push 0x100078e0
call fcn.10057f6b
add esp, 0x10
mov byte [ebp - 0x7d], 0
lea eax, [ebp - 0x7d]
lea ecx, [ebp - 0xa00]
push eax
push dword [ebp - 0x104]
call fcn.100225a7
xor ecx, ecx
mov dword [ebp - 4], 7
push eax
push dword [ebp - 0x1b4]
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x134], ecx
lea ecx, [ebp - 0x13c]
call fcn.10022a7c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa00]
call fcn.10022608
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x1a0], ebx
jl 0x10015fa0
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0xf8]
push eax
push 0x10007890
call fcn.10057f6b
mov ecx, dword [ebp - 0xf8]
add esp, 0xc
mov eax, dword [ebp - 0x12c]
dec ecx
mov esi, dword [ebp - 0x13c]
dec eax
mov dword [ebp - 0xf8], ecx
shl ecx, 4
push ebx
add ecx, esi
mov dword [ebp - 0x12c], eax
push ecx
push eax
lea eax, [ebp - 0x9d8]
push eax
call fcn.10022628
pop ecx
mov ecx, eax
call fcn.10022647
mov ecx, dword [ebp - 0xf8]
mov edi, dword [ebp - 0x12c]
mov dword [ebp - 0x28], ecx
test ecx, ecx
jle 0x10015e7e
test edi, edi
jle 0x10015e03
mov eax, ecx
lea ecx, [ebp - 0x960]
shl eax, 4
add eax, esi
mov dword [ebp - 0x38], eax
add eax, 0xfffffff0
push edi
push ecx
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015dfa
mov ecx, dword [ebp - 0x38]
lea eax, [edi - 1]
push eax
lea eax, [ebp - 0x9b8]
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015dfa
mov ecx, dword [ebp - 0x44]
lea eax, [edi - 1]
push eax
lea eax, [ebp - 0x930]
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
jne 0x10015fe7
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x104]
dec eax
cmp edi, eax
jge 0x10015e7e
mov eax, ecx
lea ecx, [ebp - 0x9a8]
shl eax, 4
add eax, esi
mov dword [ebp - 0x38], eax
add eax, 0xfffffff0
push edi
push ecx
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015e7e
mov ecx, dword [ebp - 0x38]
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x938]
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015e7e
mov ecx, dword [ebp - 0x44]
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0x948]
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
jne 0x10015fe7
mov eax, dword [ebp - 0x1b4]
dec eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
cmp eax, ecx
jge 0x10015f8d
test edi, edi
jle 0x10015f12
shl eax, 4
lea ecx, [ebp - 0x958]
add eax, dword [ebp - 0x13c]
mov dword [ebp - 0x38], eax
add eax, 0x10
push edi
push ecx
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015f0c
mov ecx, dword [ebp - 0x38]
lea eax, [edi - 1]
push eax
lea eax, [ebp - 0x968]
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015f0c
mov ecx, dword [ebp - 0x44]
lea eax, [edi - 1]
push eax
lea eax, [ebp - 0x978]
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
jne 0x10015fe7
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
cmp eax, ecx
jge 0x10015f8d
mov eax, dword [ebp - 0x104]
dec eax
cmp edi, eax
jge 0x10015f8d
mov eax, dword [ebp - 0x28]
lea ecx, [ebp - 0x970]
shl eax, 4
add eax, dword [ebp - 0x13c]
mov dword [ebp - 0x38], eax
add eax, 0x10
push edi
push ecx
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015f8d
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x928]
inc edi
push edi
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10015f8d
mov ecx, dword [ebp - 0x44]
lea eax, [ebp - 0x9c8]
push edi
push eax
call fcn.10022628
mov edx, ebx
mov esi, dword [eax]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
jne 0x10015fe7
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, dword [ebp - 0x1a0]
jle 0x10015d18
mov eax, dword [ebp - 0x2c]
push eax
push 0x10007888
call fcn.1005819f
pop ecx
pop ecx
lea ecx, [ebp - 0x13c]
call fcn.10022b20
push 2
lea ecx, [ebp - 0x72c]
call fcn.1000ecc9
mov dword [ebp - 0x54], 0xa137b189
xor edx, edx
mov dword [ebp - 0x54], 0xfffffff6
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x2c], 0xa062b000
mov dword [ebp - 0x14], edx
jmp 0x10015fff
mov eax, dword [ebp - 0x20]
jmp 0x10015fa3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x72c]
mov dword [eax + ecx*4], 0x125d16df
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10015fec
push 4
mov dword [ebp - 0x14], edx
pop ecx
jmp 0x1001601e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xab8], 0x21dfe4b2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x1001600d
mov dword [ebp - 0x14], edx
jmp 0x10016039
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa30], 0xfffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10016028
inc dword [ebp - 0x2c]
lea ecx, [ebp - 0x72c]
call fcn.1000f79f
mov dword [ebp - 0x14], 0xf7e2799a
xor edx, edx
push 4
pop eax
mov dword [ebp - 0x348], eax
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], eax
mov dword [ebp - 0x33c], eax
mov dword [ebp - 0x20], 0xd5ec7e01
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x38], 0x307758a8
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0xfffffff5
jle 0x10016146
mov dword [ebp - 0x28], 0xc7555b7c
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
jne 0x100160c2
mov ecx, edx
cmp dword [ebp - 0x28], edx
je 0x100160c9
mov ecx, ebx
cmp dword [ebp - 0x28], edx
jne 0x100160cc
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x340], ecx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x10], edx
jne 0x100160ef
mov eax, dword [ebp - 0x340]
mov eax, dword [ebp - 0x340]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setne dl
xor ecx, ecx
cmp edx, 0x183
push 0
setg cl
xor edx, edx
add ecx, 0xaee5
cmp ecx, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
pop edx
setne cl
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffff5
jg 0x1001609a
mov dword [ebp - 0x38], 0x1c30
cmp dword [ebp - 0x38], 0x137b
jge 0x1001625f
lea eax, [ebp - 0x88]
mov dword [ebp - 0x1c4], edx
push eax
lea eax, [ebp - 0x1c4]
mov dword [ebp - 0x88], edx
push eax
push 0x1000786c
call fcn.10057f6b
mov eax, dword [ebp - 0x88]
add esp, 0xc
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10051e9e
mov esi, eax
mov byte [ebp - 0x15], bl
xor eax, eax
mov dword [ebp - 0x120], eax
mov edi, eax
mov eax, dword [ebp - 0x88]
pop ecx
test eax, eax
jle 0x100161ee
lea eax, [ebp - 0x120]
push eax
push 0x1000775c
call fcn.10057f6b
mov eax, dword [ebp - 0x120]
mov dword [esi + edi*4], eax
mov eax, dword [ebp - 0x120]
pop ecx
pop ecx
cmp eax, ebx
je 0x1001623d
cmp eax, dword [ebp - 0x1c4]
je 0x1001623d
mov eax, dword [ebp - 0x88]
inc edi
cmp edi, eax
jl 0x100161b5
mov bl, byte [ebp - 0x15]
lea edx, [esi + eax*4]
mov byte [ebp - 0x300], 0
push dword [ebp - 0x300]
mov eax, edx
mov ecx, esi
sub eax, esi
sar eax, 2
push eax
call fcn.100232f2
mov edi, dword [ebp - 0x88]
pop ecx
pop ecx
add edi, 0xfffffffe
xor ecx, ecx
test edi, edi
jle 0x10016249
mov edx, dword [esi + ecx*4]
lea eax, [edx + 1]
cmp dword [esi + ecx*4 + 4], eax
jne 0x10016236
lea eax, [edx + 2]
cmp dword [esi + ecx*4 + 8], eax
je 0x10016247
inc ecx
cmp ecx, edi
jl 0x10016221
jmp 0x10016249
mov eax, dword [ebp - 0x88]
xor bl, bl
jmp 0x100161f1
xor bl, bl
test bl, bl
je 0x10016254
push 0x100078f0
jmp 0x10016259
push 0x100078f4
call fcn.10058aba
pop ecx
xor ebx, ebx
mov dword [ebp - 0x14], ebx
jmp 0x100162b6
mov dword [ebp - 0x2c], ebx
xor edx, edx
mov dword [ebp - 0x38], 0xfffffff9
mov dword [ebp - 0x44], 0xfffffffe
mov dword [ebp - 0x38], 6
mov eax, dword [ebp - 0x2c]
test eax, eax
mov dword [ebp - 0x344], eax
sets dl
sub edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
sub ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], 0xc4f4fcf4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jle 0x10016266
mov eax, 0xfe77dd68
mov dword [ebp - 0x4a4], eax
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], eax
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x14], 0xde2167fa
mov dword [ebp - 0x30], 0x13c27f35
mov dword [ebp - 0x10], ebx
jmp 0x100162fd
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1a8], 0xc0de450b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x100162ec
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
add eax, 0x3aaf
add eax, ecx
je 0x10016323
cmp dword [ebp - 0x14], ebx
je 0x10016323
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x14]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
setne bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x14]
setl cl
sub edx, ecx
neg edx
sbb edx, edx
add edx, 0xfffffffa
neg edx
sbb edx, edx
inc edx
imul edx, eax
mov dword [ebp - 0x1a8], edx
test edx, edx
je 0x1001683b
mov dword [ebp - 0x2c], 0x7b1466ac
mov dword [ebp - 0x44], 0xa7bf748b
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], 0x17fa
cmp dword [ebp - 0x38], 0xfa5
jge 0x10016470
lea eax, [ebp - 0xc0]
push eax
push 0x1000775c
call fcn.10057f6b
jmp 0x10016459
dec eax
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x2d4]
push eax
lea eax, [ebp - 0x7f8]
push eax
push 0x100078cc
call fcn.10057f6b
mov edi, dword [ebp - 0x2d4]
add esp, 0x10
mov esi, edi
jmp 0x1001643a
dec eax
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x10c]
push eax
push 0x1000786c
call fcn.10057f6b
add esp, 0xc
cmp dword [ebp - 0x128], edi
jl 0x1001643a
cmp esi, dword [ebp - 0x10c]
jl 0x1001643a
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x100163ee
dec eax
sub esi, edi
inc esi
mov dword [ebp - 0xb8], eax
push esi
push 0x10007888
call fcn.1005819f
mov eax, dword [ebp - 0xc0]
pop ecx
pop ecx
test eax, eax
jne 0x100163bb
dec eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x14], 0x15
cmp dword [ebp - 0x14], 9
jne 0x10016870
xor ebx, ebx
inc ebx
xor ecx, ecx
push 4
mov dword [ebp - 0x10], ecx
pop edx
jmp 0x1001649b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x48c], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001648e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x48c], ecx
je 0x100165a8
xor ebx, ebx
lea ecx, [ebp - 0x404]
inc ebx
push ebx
call fcn.1000ecc9
mov dword [ebp - 0x6dc], ebx
mov dword [ebp - 0x6d8], ebx
mov dword [ebp - 0x6d4], ebx
mov dword [ebp - 0x6d0], ebx
mov dword [ebp - 0x38], 0x192fe2cc
mov dword [ebp - 0x10], 0
jmp 0x100164fc
mov byte [ebp - 0x15], cl
cmp byte [ebp - 0x15], 0
je 0x100165d1
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
jmp 0x10016864
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
neg eax
jne 0x1001685b
mov eax, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
dec dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xffffffe8
mov eax, dword [ebp - 0x30]
jl 0x10016848
mov dword [ebp - 0x30], eax
push 3
pop esi
mov dword [ebp - 0x2c], 0xfffffff6
lea ecx, [ebp - 0x41c]
push esi
call fcn.1000ecc9
push 0xa
pop eax
push esi
lea ecx, [ebp - 0x4b0]
mov dword [ebp - 4], eax
call fcn.1000ecc9
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0x24], edx
inc ebx
mov dword [ebp - 0x38], 0x89e1
mov dword [ebp - 0x2c], 0x9c8c74c3
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x1c], edx
jmp 0x100168c6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x41c]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100168b6
mov dword [ebp - 0x1c], edx
jmp 0x100168e0