Function at 0x100144d8
Capabilities:
Get common file path
Get file attributes
Get graphical window text
Log keystrokes via polling
Query environment variable
Suspend thread

Disassembly:
mov eax, 0x1006bd90
call fcn.1006b078
mov eax, 0x3b7c
call fcn.10066f00
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_SuspendThread]
xor eax, eax
push esi
push edi
mov edi, 0xbf8f
mov byte [ebp - 0x65], dl
mov dword [ebp - 0x28], edi
mov esi, 0x3ba6aed1
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], esi
mov byte [ebp - 0x31], al
mov dword [ebp - 0x60], ecx
cmp byte [ebp - 0x31], al
je 0x10014522
push eax
call ebx
mov eax, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov eax, dword [ebp - 0x28]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x24], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], 0xffffffff
cmp dword [ebp - 0x30], ecx
je 0x1001455c
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
sub eax, 0xf43b
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], 0xfffffffc
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], esi
mov byte [ebp - 0x31], cl
cmp byte [ebp - 0x31], cl
je 0x10014587
push ecx
call ebx
mov eax, dword [ebp - 0x28]
xor edx, edx
mov eax, dword [ebp - 0x28]
test eax, eax
mov eax, dword [ebp - 0x28]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
or esi, 0xffffffff
mov dword [ebp - 0x24], ecx
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], esi
cmp dword [ebp - 0x30], ebx
je 0x100145c0
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
sub eax, 0xf43b
neg eax
sbb eax, eax
xor edx, edx
inc eax
inc edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0xf70ad6f2
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x10], ebx
jmp 0x100145f6
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1b0], 0xa90c6d21
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x100145e5
cmp dword [ebp - 0x14], ebx
je 0x100146c4
mov dword [ebp - 0x10], ebx
jmp 0x1001461b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xe4], 0xfffb
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001460a
mov dword [ebp - 0x14], ebx
jmp 0x100146b6
mov dword [ebp - 0x38], ebx
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x10014642
push 0x12ca
call dword [sym.imp.USER32.dll_GetQueueStatus]
xor edx, edx
inc edx
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0xe4], ebx
jne 0x10014668
mov eax, dword [ebp - 0xe4]
mov esi, ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0xe4]
cmp eax, dword [ebp - 0x38]
jne 0x1001466a
mov esi, edx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0xe4]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xe0]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
setl cl
xor eax, eax
cmp esi, ecx
setge al
xor edx, edx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
imul ecx, eax
mov eax, dword [ebp - 0x20]
imul eax, ecx
mov dword [ebp - 0x1b0], eax
inc dword [ebp - 0x14]
inc edx
cmp dword [ebp - 0x14], edx
jle 0x10014629
jmp 0x10014800
mov dword [ebp - 0x28], 8
mov dword [ebp - 0x10], ebx
jmp 0x100146e1
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x328], 0xfffffff6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100146d0
mov dword [ebp - 0x28], 0xfffffff7
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x31c]
mov dword [ebp - 0x1b0], ecx
mov eax, dword [ebp - 0x30]
sub ecx, eax
je 0x1001470d
mov eax, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x20]
add eax, 0x1210cbed
je 0x10014726
cmp dword [ebp - 0x20], ebx
je 0x10014726
mov ecx, edx
cmp dword [ebp - 0x1b0], ebx
jne 0x10014728
mov ecx, ebx
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x31c]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp dword [ebp - 0x28], ecx
jge 0x1001474c
cmp dword [ebp - 0x31c], ebx
je 0x1001474f
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
neg ecx
add eax, ecx
xor ecx, ecx
test eax, eax
mov dword [ebp - 0x31c], eax
setns cl
xor eax, eax
cmp eax, ecx
sbb eax, eax
xor edx, edx
neg eax
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
test ecx, ecx
jg 0x100147b3
mov eax, dword [ebp - 0x28]
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x31c], ecx
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x10014800
push ebx
push 0x2c1
push 0x1ac5
push 0x1ec1
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
xor edx, edx
inc edx
jmp 0x10014800
mov dword [ebp - 0x24], 0x555f25ad
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x38], esi
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x100147d6
push 0x34c
call dword [sym.imp.KERNEL32.dll_TlsFree]
xor edx, edx
inc edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x31c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x320]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x28], 0x99cdf9c7
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x14], 0x8974b66
jge 0x1001487a
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 0x28], 2
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp eax, edx
mov eax, dword [ebp - 0x14]
setge cl
xor edx, edx
cmp ecx, eax
setl dl
imul edx, dword [ebp - 0x14]
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
xor edx, edx
mov eax, dword [ebp - 0x14]
inc edx
mov eax, dword [ebp - 0x10]
mov ecx, edx
sub ecx, eax
je 0x10014868
cmp dword [ebp - 0x28], ebx
jne 0x1001486a
mov edx, ebx
mov eax, dword [ebp - 0x10]
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
mov dword [ebp - 0x10], ecx
inc edx
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [ebp - 0x38], edx
je 0x100148fd
or edi, 0xffffffff
xor edx, edx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x3c], 0x840c2c6f
mov dword [ebp - 0x38], 0x1460deea
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x10]
sub eax, 0xedbe
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setle dl
imul edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp edx, 0xe8b7dd14
sbb ecx, ecx
neg ecx
sub eax, ecx
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, edi
setge cl
mov dword [ebp - 0x30], ecx
jmp 0x10014912
mov byte [ebp - 0x31], 0
cmp byte [ebp - 0x31], 0
je 0x10014909
call ebx
mov eax, dword [ebp - 0x10]
or edi, 0xffffffff
mov dword [ebp - 0x14], eax
dec dword [ebp - 0x24]
lea ecx, [ebp - 0x600]
mov dword [ebp - 0x30], 0xfffffffc
push 3
call fcn.1000e5bc
xor edx, edx
xor ecx, ecx
mov dword [ebp - 4], edx
inc ecx
mov dword [ebp - 0x1c], edx
jmp 0x10014940
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x74], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x10014936
mov dword [ebp - 0x1c], edx
jmp 0x1001495d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x600]
mov dword [eax + ecx*4], 0x20f746e3
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1001494a
mov byte [ebp - 0x31], dl
cmp byte [ebp - 0x31], dl
je 0x1001497a
push edx
push 0x1a27
push edx
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
xor edx, edx
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x74], 0xffffffee
je 0x10014a0f
mov esi, dword [ebp - 0x600]
mov dword [ebp - 0x24], 0x92bd
lea ecx, [ebp - 0x4c8]
push 4
call fcn.1000e5bc
mov dword [ebp - 0x38], 0x9a2b82c4
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 4
jge 0x100149cd
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x4c8]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100149b8
mov eax, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x4c8]
mov eax, dword [ebp - 0x74]
cmp dword [ecx + 4], eax
lea ecx, [ebp - 0x4c8]
mov eax, dword [ebp - 0x38]
setl dl
sub edx, eax
mov dword [esi + 8], edx
call fcn.1000f0db
dec dword [ebp - 0x74]
cmp dword [ebp - 0x74], 0xffffffee
jne 0x1001498d
push 0xfffffffffffffffb
pop esi
lea ecx, [ebp - 0x600]
mov dword [ebp - 4], edi
call fcn.1000f0db
xor eax, eax
mov dword [ebp - 0x30], 0xb95520f3
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], 0xb4bc662a
mov dword [ebp - 0x44], 2
mov eax, dword [ebp - 0x14]
dec eax
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setne dl
xor ecx, ecx
add edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 0x8bff9cf0
setg cl
cmp ecx, edx
jl 0x10014b4e
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x38], 0x16d7
cmp dword [ebp - 0x38], 0xdfb
jge 0x10014ae6
lea eax, [ebp - 0x32c]
push eax
lea eax, [ebp - 0x29c]
push eax
push 0x100077d4
call fcn.100528eb
mov edi, dword [ebp - 0x29c]
add esp, 0xc
mov esi, dword [ebp - 0x32c]
mov ecx, edi
sub ecx, esi
lea eax, [ecx + 1]
imul eax, ecx
cdq
sub eax, edx
sar eax, 1
dec eax
add eax, esi
cmp esi, edi
jl 0x10014ad3
lea eax, [edi - 1]
push eax
push 0x100077ac
call fcn.10052b06
pop ecx
pop ecx
push 0xfffffffffffffffb
or edi, 0xffffffff
pop esi
mov dword [ebp - 0x44], 0xb6dad816
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x28], ecx
inc edx
jmp 0x10014b07
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xfc], edx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jl 0x10014afa
inc dword [ebp - 0xfc]
cmp dword [ebp - 0x1c], ecx
je 0x10014b3d
cmp dword [ebp - 0x10], ecx
je 0x10014b28
mov eax, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], 9
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x30], eax
sbb eax, eax
inc eax
cmp dword [ebp - 0x1c], eax
jg 0x10014b3f
mov edx, ecx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [ebp - 0x38], ecx
jmp 0x10014b5b
mov dword [ebp - 0x38], 0xbdf11caf
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], 0x3ba6aed1
xor eax, eax
mov dword [ebp - 0x14], 4
xor edx, edx
mov dword [ebp - 0x28], 0x99cdf9c7
inc edx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x14], 0x8974b66
jge 0x10014bde
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov dword [ebp - 0x28], 2
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp eax, edx
mov eax, dword [ebp - 0x14]
setge cl
xor edx, edx
cmp ecx, eax
setl dl
imul edx, dword [ebp - 0x14]
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
xor edx, edx
mov eax, dword [ebp - 0x14]
inc edx
mov eax, dword [ebp - 0x10]
mov ecx, edx
sub ecx, eax
je 0x10014bca
cmp dword [ebp - 0x28], 0
jne 0x10014bcc
xor edx, edx
mov eax, dword [ebp - 0x10]
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
xor eax, eax
mov dword [ebp - 0x10], ecx
inc edx
cmp dword [ebp - 0x38], edx
je 0x10014c58
mov dword [ebp - 0x10], edi
xor edx, edx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x1c], 0x840c2c6f
mov dword [ebp - 0x38], 0x1460deea
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x10]
sub eax, 0xedbe
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setle dl
imul edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x10]
cmp edx, 0xe8b7dd14
sbb ecx, ecx
neg ecx
sub eax, ecx
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, edi
setge cl
mov dword [ebp - 0x30], ecx
jmp 0x10014c69
mov byte [ebp - 0x31], al
cmp byte [ebp - 0x31], 0
je 0x10014c63
call ebx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
dec dword [ebp - 0x24]
xor ebx, ebx
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x10015182
mov dword [ebp - 0x38], 0x1f2a
cmp dword [ebp - 0x38], 0x656
jge 0x10014e2b
lea eax, [ebp - 0xcc]
push eax
push 0x1000775c
call fcn.100528eb
mov eax, dword [ebp - 0xcc]
pop ecx
pop ecx
test eax, eax
je 0x10014e24
dec eax
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x84c]
push eax
lea eax, [ebp - 0x94]
push eax
push 0x100077c8
call fcn.100528eb
add esp, 0x10
lea ecx, [ebp - 0x864]
push dword [ebp - 0x94]
call fcn.1000e5bc
xor eax, eax
mov edi, ebx
inc eax
mov dword [ebp - 4], eax
cmp dword [ebp - 0x94], 0
mov ebx, dword [ebp - 0x864]
jle 0x10014d1b
mov esi, ebx
push esi
push 0x1000775c
call fcn.100528eb
inc edi
add esi, 4
pop ecx
pop ecx
cmp edi, dword [ebp - 0x94]
jl 0x10014d02
xor eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
call fcn.10023c0f
mov dword [ebp - 0xd8], eax
mov byte [ebp - 4], 2
xor esi, esi
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jle 0x10014d62
mov edi, ebx
push edi
lea ecx, [ebp - 0xd8]
call fcn.10022bbb
add edi, 4
mov dword [eax], esi
inc esi
mov ecx, dword [ebp - 0xc4]
cmp esi, ecx
jl 0x10014d46
mov esi, ecx
mov edi, dword [ebp - 0xd4]
cmp ecx, dword [ebp - 0x94]
jge 0x10014dea
mov eax, esi
sub eax, ecx
lea ecx, [ebp - 0xd8]
mov eax, dword [ebx + eax*4]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebx + esi*4]
mov dword [ebp - 0x370], eax
lea eax, [ebp - 0x19c]
push eax
call fcn.10022bbb
mov ecx, esi
sub ecx, dword [ebp - 0xc4]
cmp dword [eax], ecx
jne 0x10014db8
lea eax, [ebp - 0x19c]
push eax
lea ecx, [ebp - 0xd8]
call fcn.10022c22
lea eax, [ebp - 0x370]
push eax
lea ecx, [ebp - 0xd8]
call fcn.10022bbb
mov dword [eax], esi
mov eax, dword [ebp - 0xd4]
cmp edi, eax
inc esi
cmovb eax, edi
mov edi, eax
cmp esi, dword [ebp - 0x94]
jge 0x10014dea
mov ecx, dword [ebp - 0xc4]
jmp 0x10014d72
push edi
push 0x100077ac
call fcn.10052b06
pop ecx
pop ecx
lea ecx, [ebp - 0xd8]
call fcn.1001c52f
or eax, 0xffffffff
lea ecx, [ebp - 0x864]
mov dword [ebp - 4], eax
call fcn.1000f0db
mov eax, dword [ebp - 0xcc]
push 0
pop ebx
test eax, eax
jne 0x10014caf
dec eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x14], 0x5d6c05ba
mov dword [ebp - 0x30], 0xab1943c6
mov dword [ebp - 0x44], 0xfac5
mov dword [ebp - 0x38], 0x1e42
cmp dword [ebp - 0x38], 0xf32
jge 0x10015007
lea eax, [ebp - 0x7c]
push eax
push 0x1000775c
call fcn.100528eb
pop ecx
pop ecx
lea eax, [ebp - 0x374]
mov dword [ebp - 0x374], ebx
push eax
mov eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x6b4]
inc eax
push eax
call fcn.10022aba
lea eax, [ebp - 0x26c]
mov dword [ebp - 4], 3
push eax
mov eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x4e0]
inc eax
mov dword [ebp - 0x26c], ebx
push eax
call fcn.10022aba
xor ebx, ebx
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x7c]
inc ebx
mov edi, ebx
cmp eax, ebx
jl 0x10014ed6
mov esi, dword [ebp - 0x6b4]
add esi, 4
push esi
push 0x1000775c
call fcn.100528eb
mov eax, dword [ebp - 0x7c]
inc edi
pop ecx
add esi, 4
pop ecx
cmp edi, eax
jle 0x10014ebe
mov edi, ebx
cmp eax, ebx
jl 0x10014efd
mov esi, dword [ebp - 0x4e0]
add esi, 4
push esi
push 0x1000775c
call fcn.100528eb
mov eax, dword [ebp - 0x7c]
inc edi
pop ecx
add esi, 4
pop ecx
cmp edi, eax
jle 0x10014ee5
lea ecx, [ebp - 0x7f]
mov byte [ebp - 0x7f], bl
push ecx
inc eax
lea ecx, [ebp - 0x710]
push eax
call fcn.1002299c
xor eax, eax
mov dword [ebp - 0x38], ebx
inc eax
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x7c], eax
jl 0x10014fd3
mov edi, dword [ebp - 0x4e0]
add edi, 4
push dword [edi]
and dword [ebp - 0x30], 0
lea eax, [ebp - 0x76c]
push eax
lea ecx, [ebp - 0x710]
call fcn.10022a1d
xor ecx, ecx
mov esi, dword [eax]
lea edx, [ecx + 1]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
je 0x10014fb4
mov ebx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x6b4]
lea ecx, [ebp - 0x710]
mov esi, dword [ebp - 0x38]
push dword [eax + esi*4]
lea eax, [ebp - 0xa1c]
push eax
call fcn.10022a1d
xor ecx, ecx
inc esi
mov dword [ebp - 0x38], esi
mov esi, dword [eax]
lea edx, [ecx + 1]
mov ecx, dword [eax + 4]
shl edx, cl
lea eax, [ebp - 0x76c]
not edx
lea ecx, [ebp - 0x710]
and dword [esi], edx
inc ebx
push dword [edi]
push eax
call fcn.10022a1d
xor ecx, ecx
mov esi, dword [eax]
lea edx, [ecx + 1]
mov ecx, dword [eax + 4]
shl edx, cl
test dword [esi], edx
jne 0x10014f57
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x24]
push dword [ebp - 0x30]
push 0x100078cc
call fcn.10052b06
inc ebx
add edi, 4
pop ecx
pop ecx
mov dword [ebp - 0x24], ebx
cmp ebx, dword [ebp - 0x7c]
jle 0x10014f2c
push 0x100076c5
call fcn.10052cc6
pop ecx
lea ecx, [ebp - 0x710]
call fcn.100229fd
lea ecx, [ebp - 0x4e0]
call fcn.1000f0db
or eax, 0xffffffff
lea ecx, [ebp - 0x6b4]
mov dword [ebp - 4], eax
call fcn.1000f0db
xor ebx, ebx
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0x16
jl 0x1001517b
push 0xfffffffffffffffb
pop esi
mov dword [ebp - 0x38], 0xc553
mov dword [ebp - 0x30], 0x245597e
mov dword [ebp - 0x10], ebx
jmp 0x1001503b
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x804], 0x4c01
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001502a
mov eax, dword [ebp - 0x14]
imul eax, dword [ebp - 0x38], 0xffff
cmp dword [ebp - 0x38], eax
jle 0x1001516b
xor eax, eax
mov dword [ebp - 0x24], 0x79d62bf
inc eax
lea ecx, [ebp - 0x4f8]
push eax
call fcn.1000e5bc
mov dword [ebp - 0x2c], ebx
jmp 0x1001507c
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x178], esi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 3
jl 0x1001506f
mov dword [ebp - 0x2c], ebx
jmp 0x10015098
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x460], 0xfffffff6
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x10015087
xor edx, edx
mov dword [ebp - 0x2c], ebx
inc edx
jmp 0x100150b9
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4f8]
mov dword [eax + ecx*4], 0x790
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edx
jl 0x100150a6
mov dword [ebp - 0x2c], ebx
jmp 0x100150d4
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x348], 0xc1731d49
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], edx
jl 0x100150c3
mov eax, dword [ebp - 0x174]
mov ecx, 0xfffd
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x174]
mov eax, dword [ebp - 0x174]
mov eax, dword [ebp - 0x174]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x174]
sub ecx, eax
jne 0x1001510c
mov eax, dword [ebp - 0x178]
mov eax, dword [ebp - 0x174]
xor ecx, ecx
mov eax, dword [ebp - 0x174]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x30], 0xd7f19125
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x460], eax
mov eax, dword [ebp - 0x24]
test eax, eax
setg cl
lea eax, [ecx - 0xbf6]
mov dword [ebp - 0x348], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x30], eax
jne 0x10015152
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x804], ebx
lea ecx, [ebp - 0x4f8]
cmp dword [ebp - 0x460], ebx
call fcn.1000f0db
jmp 0x1001516e
mov dword [ebp - 0x30], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x16
jge 0x10015017
push ebx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
movdqa xmm0, xmmword [0x10007d90]
lea ecx, [ebp - 0x8c0]
push ecx
lea eax, [ebp - 0x8b0]
push eax
push ecx
lea ecx, [ebp - 0x784]
movdqu xmmword [ebp - 0x8c0], xmm0
call fcn.1000e5f8
mov dword [ebp - 0x44], 0x6d0374c7
mov dword [ebp - 0x44], 4
mov dword [ebp - 0x38], 0x25c8
cmp dword [ebp - 0x38], 0x573
jge 0x1001535a
jmp 0x10015338
mov eax, dword [0x10664b3c]
mov edi, ebx
test eax, eax
jle 0x1001520e
mov byte [ebp - 0x81], bl
mov esi, ebx
lea ecx, [ebp - 0x81]
lea edx, [eax + 0x1065d2a0]
push ecx
add edx, esi
lea ecx, [esi + 0x1065d2a0]
call fcn.10023c65
mov eax, dword [0x10664b3c]
inc edi
add esi, 0x7c
pop ecx
cmp edi, eax
jl 0x100151e6
mov edi, ebx
test eax, eax
jle 0x1001523e
mov byte [ebp - 0x80], bl
mov esi, ebx
lea ecx, [ebp - 0x80]
lea edx, [eax + 0x10660eb0]
push ecx
add edx, esi
lea ecx, [esi + 0x10660eb0]
call fcn.10023c65
mov eax, dword [0x10664b3c]
inc edi
add esi, 0x7c
pop ecx
cmp edi, eax
jl 0x10015219
mov edi, ebx
test eax, eax
jle 0x1001526e
mov byte [ebp - 0x7e], bl
mov esi, ebx
lea ecx, [ebp - 0x7e]
lea edx, [eax + 0x1075a160]
push ecx
add edx, esi
lea ecx, [esi + 0x1075a160]
call fcn.10023c65
mov eax, dword [0x10664b3c]
inc edi
add esi, 0x7c
pop ecx
cmp edi, eax
jl 0x10015249
cmp dword [ebp - 0x104], 0
mov edi, ebx
jle 0x1001531d
lea eax, [ebp - 0x36c]
push eax
lea eax, [ebp - 0x27c]
push eax
push 0x100077f0
call fcn.100528eb
mov esi, dword [ebp - 0x27c]
add esp, 0xc
mov edx, dword [ebp - 0x36c]
test esi, esi
jle 0x100152c7
test edx, edx
jle 0x100152c5
imul eax, edx, 0x7c
xor ecx, ecx
inc ecx
mov byte [eax + esi + 0x1065d223], cl
imul eax, esi, 0x7c
mov byte [eax + edx + 0x1065d223], cl
jmp 0x10015310
test esi, esi
jns 0x100152f3
test edx, edx
jns 0x100152f3
imul eax, edx, 0x7c
mov ecx, 0x10660eb0
sub ecx, eax
xor eax, eax
sub ecx, esi
inc eax
mov byte [ecx - 0x7d], al
mov ecx, 0x10660eb0
imul eax, esi, 0x7c
sub ecx, eax
xor eax, eax
sub ecx, edx
inc eax
mov byte [ecx - 0x7d], al
jmp 0x10015310
test esi, esi
jle 0x10015302
test edx, edx
jns 0x10015302
imul eax, esi, 0x7c
sub eax, edx
jmp 0x10015307
imul eax, edx, 0x7c
sub eax, esi
xor ecx, ecx
inc ecx
mov byte [eax + 0x1075a0e3], cl
inc edi
cmp edi, dword [ebp - 0x104]
jl 0x1001527d
call fcn.100141fc
test al, al
je 0x1001532d
push 0x100078dc
jmp 0x10015332
push 0x100078e0
call fcn.10052b06
pop ecx
lea eax, [ebp - 0x104]
push eax
push 0x10664b3c
push 0x100078d4
call fcn.100528eb
add esp, 0xc
cmp eax, 2
je 0x100151d3
mov eax, dword [ebp - 0x784]
or esi, 0xffffffff
mov dword [ebp - 0x44], 0xfffffff6
mov dword [ebp - 0x44], esi
mov dword [eax], 0xfffffffe
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x1001538f
push ebx
push ebx
push 0x821
push 0x1cd9
push ebx
call dword [sym.imp.USER32.dll_InsertMenuW]
lea ecx, [ebp - 0x784]
mov dword [ebp - 4], esi
call fcn.1000f0db
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
test eax, eax
mov eax, dword [ebp - 0x20]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], esi
cmp dword [ebp - 0x3c], ebx
je 0x100153d1
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
sub eax, 0xf43b
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], 0x1ed1
cmp dword [ebp - 0x38], 0xccb
jge 0x1001565d
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x88]
push eax
push 0x100077d4
call fcn.100528eb
add esp, 0xc
mov dword [ebp - 0x28c], ebx
lea eax, [ebp - 0x28c]
lea ecx, [ebp - 0x9d8]
push eax
push dword [ebp - 0x6c]
call fcn.10022aba
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x114]
push eax
push dword [ebp - 0x88]
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x10c], ebx
call fcn.10023073
lea ecx, [ebp - 0x9d8]
mov dword [ebp - 4], esi
call fcn.1000f0db
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x6c]
test edx, edx
jle 0x100154a2
mov edi, dword [ebp - 0x114]
xor esi, esi
test eax, eax
jle 0x1001549a
mov eax, dword [edi]
lea eax, [eax + esi*4]
push eax
push 0x1000775c
call fcn.100528eb
mov eax, dword [ebp - 0x6c]
inc esi
pop ecx
pop ecx
cmp esi, eax
jl 0x1001547a
mov edx, dword [ebp - 0x88]
inc ebx
add edi, 0xc
cmp ebx, edx
jl 0x10015474
xor ecx, ecx
lea esi, [edx - 1]
mov dword [ebp - 0x38], esi
xorps xmm0, xmm0
movlpd qword [ebp - 0x48], xmm0
lea ebx, [ecx + 1]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x10], ecx
test esi, esi
js 0x10015536
imul edi, esi, 0xc
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x28], esi
add edi, dword [ebp - 0x114]
test bl, bl
je 0x1001552b
lea esi, [eax - 1]
test esi, esi
js 0x1001551a
mov edx, dword [edi]
mov eax, dword [edx + esi*4]
test eax, eax
jne 0x10015507
mov eax, dword [edi + 0xc]
mov ecx, dword [edx + esi*4 + 4]
cmp dword [eax + esi*4], ecx
cmovl ecx, dword [eax + esi*4]
lea eax, [ecx - 1]
mov ecx, dword [edi - 0xc]
cmp eax, dword [ecx + esi*4]
jle 0x10015515
cmp eax, dword [edx + esi*4 - 4]
jle 0x10015515
mov ecx, dword [ebp - 0x10]
mov dword [edx + esi*4], eax
cdq
add dword [ebp - 0x28], eax
adc ecx, edx
dec esi
mov dword [ebp - 0x10], ecx
jns 0x100154d9
jmp 0x10015517
xor bl, bl
mov eax, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x38]
sub edi, 0xc
mov ecx, dword [ebp - 0x10]
dec esi
mov dword [ebp - 0x38], esi
test esi, esi
jns 0x100154ce
mov edx, dword [ebp - 0x88]
mov esi, dword [ebp - 0x28]
jmp 0x1001553c
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x28], esi
xor eax, eax
mov edi, eax
test edx, edx
jle 0x1001562d
test bl, bl
je 0x10015642
mov esi, eax
mov eax, dword [ebp - 0x6c]
test eax, eax
jle 0x1001561b
test bl, bl
je 0x1001561b
test edi, edi
jle 0x10015593
mov ecx, dword [ebp - 0x114]
mov edx, dword [ebp - 0x114]
imul eax, edi, 0xc
movzx ebx, bl
mov ecx, dword [eax + ecx - 0xc]
mov eax, dword [eax + edx]
xor edx, edx
mov eax, dword [eax + esi*4]
cmp eax, dword [ecx + esi*4]
cmovle ebx, edx
mov edx, dword [ebp - 0x88]
lea eax, [edi + 1]
cmp eax, edx
jge 0x100155ba
mov ecx, dword [ebp - 0x114]
imul eax, edi, 0xc
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [eax + ecx]
movzx ecx, bl
xor ebx, ebx
mov eax, dword [eax + esi*4]
cmp eax, dword [edx + esi*4]
cmovge ecx, ebx
mov bl, cl
test esi, esi
jle 0x100155db
mov ecx, dword [ebp - 0x114]
imul eax, edi, 0xc
mov edx, dword [eax + ecx]
movzx ecx, bl
xor ebx, ebx
mov eax, dword [edx + esi*4]
cmp eax, dword [edx + esi*4 - 4]
cmovle ecx, ebx
mov bl, cl
mov eax, dword [ebp - 0x6c]
lea ecx, [esi + 1]
mov dword [ebp - 0x38], ecx
cmp ecx, eax
jge 0x1001560b
mov ecx, dword [ebp - 0x114]
imul eax, edi, 0xc
mov edx, dword [eax + ecx]
movzx ecx, bl
xor ebx, ebx
mov eax, dword [edx + esi*4]
cmp eax, dword [edx + esi*4 + 4]
mov eax, dword [ebp - 0x6c]
cmovge ecx, ebx
mov bl, cl
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x88]
mov esi, ecx
cmp esi, eax
jl 0x1001555d
inc edi
push 0
pop eax
cmp edi, edx
jl 0x10015548
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x28]
test bl, bl
je 0x10015642
push ecx
push esi
push 0x100078e4
call fcn.10052b06
add esp, 0xc
jmp 0x1001564d
push 0x100077ec
call fcn.10052cc6
pop ecx
lea ecx, [ebp - 0x114]
call fcn.10023131
xor ebx, ebx
or esi, 0xffffffff
xor eax, eax
lea ecx, [ebp - 0x60c]
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], 0x52f3
mov dword [ebp - 0x24], 2
mov dword [ebp - 0x10], 0xf36a5b5c
push 4
call fcn.1000e5bc
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], 0xfffffff9
mov dword [ebp - 0x10], ebx
jmp 0x100156a7
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x60c]
mov dword [eax + ecx*4], 0x78317d23
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10015694
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setge dl
cmp edx, 0xffff
jne 0x100156e6
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 9
setle al
cmp eax, dword [ebp - 0x1c]
jl 0x1001570b
cmp dword [ebp - 0x1c], ebx
je 0x1001570b
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x10015710
xor ecx, ecx
mov eax, ebx
inc ecx
push 5
pop edi
cmp edi, eax
sbb eax, eax
add eax, 0x2079655a
mov dword [ebp - 0x10], eax
imul eax, dword [ebp - 0x10], 0xca0b
test eax, eax
jne 0x10015754
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jne 0x1001573f
mov edx, ebx
cmp dword [ebp - 0x28], ebx
je 0x10015741
mov edx, ecx
mov eax, dword [ebp - 0x10]
xor ecx, ecx
cmp eax, edx
setne cl
sub ecx, dword [ebp - 0x28]
jne 0x10015754
mov eax, ebx
jmp 0x10015757
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x60c]
dec ecx
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
lea ecx, [ebp - 0x60c]
setg dl
mov dword [ebp - 0x30], edx
call fcn.1000f0db
mov dword [ebp - 0x38], 0x183f
cmp dword [ebp - 0x38], 0x451
jge 0x100158bc
lea eax, [ebp - 0xb8]
push eax
push 0x1000775c
call fcn.100528eb
mov eax, dword [ebp - 0xb8]
pop ecx
pop ecx
test eax, eax
je 0x100158b5
dec eax
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x108]
push eax
push 0x100077d4
call fcn.100528eb
add esp, 0xc
lea ecx, [ebp - 0x38c]
push dword [ebp - 0x108]
call fcn.1000e5bc
mov ecx, dword [ebp - 0x108]
mov eax, ebx
mov dword [ebp - 0x38], eax
test ecx, ecx
jle 0x10015842
mov esi, dword [ebp - 0x38c]
push esi
push 0x1000775c
call fcn.100528eb
mov eax, dword [esi]
cdq
idiv dword [ebp - 0x100]
mov eax, dword [ebp - 0x38]
add eax, edx
mov dword [esi], edx
mov edi, dword [ebp - 0x100]
add esi, 4
cdq
idiv edi
pop ecx
pop ecx
mov ecx, dword [ebp - 0x108]
inc ebx
mov eax, edx
mov dword [ebp - 0x38], eax
cmp ebx, ecx
jl 0x10015807
jmp 0x10015848
mov edi, dword [ebp - 0x100]
cdq
idiv edi
test edx, edx
jne 0x10015886
mov ebx, dword [ebp - 0x38c]
xor eax, eax
mov edx, eax
test ecx, ecx
jle 0x1001587e
cmp dword [ebx + edx*4], eax
jne 0x10015867
inc edx
cmp edx, ecx
jl 0x1001585d
test ecx, ecx
jle 0x1001587e
lea esi, [ecx - 1]
lea esi, [ebx + esi*4]
cmp dword [esi], 0
jne 0x1001587e
inc eax
sub esi, 4
cmp eax, ecx
jl 0x10015871
cmp edx, eax
cmovl eax, edx
sub ecx, eax
dec ecx
push ecx
push 0x100077ac
call fcn.10052b06
pop ecx
pop ecx
lea ecx, [ebp - 0x38c]
call fcn.1000f0db
mov eax, dword [ebp - 0xb8]
push 0
pop ebx
test eax, eax
jne 0x100157bf
push 5
or esi, 0xffffffff
pop edi
dec eax
mov dword [ebp - 0xb8], eax
xor eax, eax
lea ecx, [ebp - 0x510]
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], 0x52f3
mov dword [ebp - 0x24], 2
mov dword [ebp - 0x10], 0xf36a5b5c
push 4
call fcn.1000e5bc
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], 0xfffffff9
mov dword [ebp - 0x10], ebx
jmp 0x10015906
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x510]
mov dword [eax + ecx*4], 0x78317d23
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100158f3
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setge dl
cmp edx, 0xffff
jne 0x10015945
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 9
setle al
cmp eax, dword [ebp - 0x1c]
jl 0x1001596a
cmp dword [ebp - 0x1c], ebx
je 0x1001596a
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x1001596f
xor ecx, ecx
mov eax, ebx
inc ecx
cmp edi, eax
sbb eax, eax
add eax, 0x2079655a
mov dword [ebp - 0x10], eax
imul eax, dword [ebp - 0x10], 0xca0b
test eax, eax
jne 0x100159b0
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jne 0x1001599b
mov edx, ebx
cmp dword [ebp - 0x28], ebx
je 0x1001599d
mov edx, ecx
mov eax, dword [ebp - 0x10]
xor ecx, ecx
cmp eax, edx
setne cl
sub ecx, dword [ebp - 0x28]
jne 0x100159b0
mov eax, ebx
jmp 0x100159b3
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x510]
dec ecx
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
lea ecx, [ebp - 0x510]
setg dl
mov dword [ebp - 0x30], edx
call fcn.1000f0db
xor eax, eax
lea ecx, [ebp - 0x684]
inc eax
push eax
call fcn.1000e5bc
xor edx, edx
mov dword [ebp - 0x10], 0x3c7730f9
mov dword [ebp - 0x10], ebx
inc edx
jmp 0x10015a13
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x684]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x10015a04
mov byte [ebp - 0x31], bl
mov esi, 0x1f60
cmp byte [ebp - 0x31], 0
mov edi, 0x1324
mov ebx, dword [sym.imp.GDI32.dll_GetDeviceCaps]
je 0x10015a35
push esi
push edi
call ebx
xor edx, edx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jl 0x10015a52
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x684]
cmp dword [eax + ecx*4], edx
jne 0x10015a52
dec dword [ebp - 0x10]
jns 0x10015a3f
lea ecx, [ebp - 0x684]
call fcn.1000f0db
xor eax, eax
lea ecx, [ebp - 0x528]
inc eax
push eax
call fcn.1000e5bc
xor edx, edx
mov dword [ebp - 0x10], 0x3c7730f9
mov dword [ebp - 0x10], edx
jmp 0x10015a89
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x528]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x10]
xor eax, eax
inc eax
cmp dword [ebp - 0x10], eax
jl 0x10015a7a
mov byte [ebp - 0x31], dl
cmp byte [ebp - 0x31], dl
je 0x10015a9d
push esi
push edi
call ebx
xor ebx, ebx
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], ebx
jl 0x10015aba
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x528]
cmp dword [eax + ecx*4], ebx
jne 0x10015aba
dec dword [ebp - 0x10]
jns 0x10015aa7
lea ecx, [ebp - 0x528]
call fcn.1000f0db
push 2
lea ecx, [ebp - 0x894]
call fcn.1000e5bc
mov dword [ebp - 0x24], 0xc08901f2
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], 2
jge 0x10015afa
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x894]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x10015ae5
xor eax, eax
inc eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jl 0x10015b63
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x10015b19
push ebx
push 0x1c7a
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x10015b5e
push 0x1af2
push 0x117e
push 0x7b5
push 0x9b2
push 0x1ae7
push 0x1665
push 0x2164
push 0x6dc
push 0x7d9
push 0x1c1b
push 0x9e2
call dword [sym.imp.GDI32.dll_StretchBlt]
dec dword [ebp - 0x24]
jns 0x10015b05
lea ecx, [ebp - 0x894]
call fcn.1000f0db
xor eax, eax
lea ecx, [ebp - 0x72c]
inc eax
push eax
call fcn.1000e5bc
mov dword [ebp - 0x44], 0x4a12b57e
xor edx, edx
mov dword [ebp - 0x44], 4
inc edx
mov dword [ebp - 0x44], 0xffbe
push 3
mov dword [ebp - 0x44], edx
pop esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x44], 0x3c3ae507
mov dword [ebp - 0x1c], ebx
jmp 0x10015bbd
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x72c]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x10015baa
mov dword [ebp - 0x1c], ebx
jmp 0x10015bd8
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xa4c], 0xb7cefa9d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10015bc7
inc dword [ebp - 0x38]
lea ecx, [ebp - 0x72c]
call fcn.1000f0db
movdqa xmm0, xmmword [0x10007d60]
lea ecx, [ebp - 0x940]
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x930]
push ecx
push eax
push ecx
mov dword [ebp - 0x10], 0x52f3
lea ecx, [ebp - 0x258]
movdqu xmmword [ebp - 0x940], xmm0
call fcn.1000e5f8
xor eax, eax
mov dword [ebp - 4], 7
inc eax
lea ecx, [ebp - 0x624]
push eax
call fcn.1000e5bc
xor edx, edx
inc edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x24], 0x6d6d
mov dword [ebp - 0x30], 0xaa1dd5c0
mov dword [ebp - 0x28], ebx
jmp 0x10015c61
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x624]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jl 0x10015c52
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x24]
je 0x10015cb3
mov dword [ebp - 0x1c], ebx
jmp 0x10015c96
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x258]
cmp dword [eax + ecx*4], ebx
jne 0x10015c9b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x10015c85
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x10015d10
push edx
push 0x1157
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
jmp 0x10015d10
mov eax, dword [ebp - 0x624]
mov dword [ebp - 0x28], 0xfffd
mov dword [ebp - 0x38], edx
cmp dword [eax], ebx
jne 0x10015cde
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x258]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
imul ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x258]
imul ecx, dword [eax + 8]
test ecx, ecx
je 0x10015d06
mov ecx, edx
cmp dword [ebp - 0x1c], ebx
jne 0x10015d08
mov ecx, ebx
mov eax, dword [ebp - 0x258]
mov dword [eax], ecx
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x624]
call fcn.1000f0db
or edi, 0xffffffff
lea ecx, [ebp - 0x258]
mov dword [ebp - 4], edi
call fcn.1000f0db
push 2
pop ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], 0xb1a9565e
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], 0xf66b17b7
mov dword [ebp - 0x28], 0x9a01
mov dword [ebp - 0x14], ebx
jmp 0x10015d5f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa2c], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10015d52
mov eax, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setg dl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
sub edx, 0x2645a0d9
neg edx
sbb edx, edx
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, 2
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0x19
jne 0x10015e16
xor ecx, ecx
inc ecx
mov dword [ebp - 0x28], ebx
jmp 0x10015dcb
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x1a4], ecx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jl 0x10015dbe
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x10015e0d
mov dword [ebp - 0x38], 0x258d
xor ecx, ecx
mov dword [ebp - 0x38], 0x82f4e55
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x1a4]
test eax, eax
sets cl
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x1a4], ebx
jne 0x10015e0a
dec dword [ebp - 0x28]
jns 0x10015dd8
xor ecx, ecx
inc ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x19
je 0x10015db9
mov dword [ebp - 0x2c], 0xf36a5b5c
lea ecx, [ebp - 0x558]
push 4
call fcn.1000e5bc
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x1bc]
mov dword [ebp - 0x2c], 0x60f57a7c
push esi
call fcn.1000e5bc
push 5
mov dword [ebp - 0x38], 0xc0c8fbfc
pop eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x1c], ebx
jmp 0x10015e6c
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1bc]
mov dword [eax + ecx*4], 0xade2167
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10015e59
mov dword [ebp - 0x1c], ebx
jmp 0x10015e87
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xa3c], 0x80095520
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x10015e76
mov dword [ebp - 0x2c], 0x477862fd
mov dword [ebp - 0x2c], ebx
cmp dword [ebp - 0x2c], 2
jg 0x10015f63
mov esi, dword [ebp - 0x1bc]
mov dword [ebp - 0x30], 0xf3b06d9e
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1bc]
cmp dword [eax + ecx*4], ebx
jne 0x10015ebf
mov eax, dword [ebp - 0x2c]
cmp dword [esi + 4], 0xffff000f
je 0x10015ee9
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1bc]
cmp dword [eax + ecx*4], ebx
je 0x10015ee9
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1bc]
cmp dword [eax + ecx*4], ebx
je 0x10015ee9
xor eax, eax
inc eax
jmp 0x10015eeb
mov eax, ebx
cmp eax, dword [ebp - 0x2c]
jl 0x10015ef3
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x2c]
xor ebx, ebx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x1bc]
cmp eax, dword [ecx + edx*4]
mov eax, dword [ebp - 0x2c]
setl bl
xor ecx, ecx
cmp eax, ebx
setg cl
xor edx, edx
mov dword [ebp - 0xa3c], ecx
xor ebx, ebx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1bc]
cmp dword [eax + ecx*4], ebx
sete dl
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edi
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], bl
je 0x10015f53
push ebx
push 0x998
call dword [sym.imp.USER32.dll_ClientToScreen]
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jle 0x10015ea7
push 3
pop esi
lea ecx, [ebp - 0x1bc]
call fcn.1000f0db
mov dword [ebp - 0x54], edi
xor ecx, ecx
mov dword [ebp - 0x5c], 0xfffffff9
inc ecx
mov dword [ebp - 0x28], 0x2124f84b
mov dword [ebp - 0x28], ebx
jmp 0x10015f98
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x318], 0xfe387fb0
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jl 0x10015f87
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x28], ebx
jmp 0x10015fb6
mov dword [ebp - 0x38], edi
cmp dword [ebp - 0x38], ebx
jne 0x10015fbb
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jg 0x10015fab
mov dword [ebp - 0x2c], 0x57ad95e1
mov dword [ebp - 0x720], ebx
mov dword [ebp - 0x71c], ebx
mov dword [ebp - 0x718], ebx
mov dword [ebp - 0x714], ebx
mov dword [ebp - 0x38], 0xbca0becc
mov dword [ebp - 0x28], ebx
jmp 0x10015ff4
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x64], 0x4e2db58
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jl 0x10015fe6
mov dword [ebp - 0x2c], ebx
mov esi, 0xfffe
jmp 0x1001628f
mov dword [ebp - 0x38], 0x26f3
cmp dword [ebp - 0x38], 0xd36
jge 0x100161d0
lea eax, [ebp - 0x98]
push eax
push 0x1000775c
call fcn.100528eb
pop ecx
pop ecx
push dword [ebp - 0x98]
lea ecx, [ebp - 0x540]
call fcn.1000e5bc
mov byte [ebp - 4], 9
cmp dword [ebp - 0x98], 0
mov edi, dword [ebp - 0x540]
jle 0x1001606c
mov esi, edi
push esi
push 0x1000775c
call fcn.100528eb
inc ebx
add esi, 4
pop ecx
pop ecx
cmp ebx, dword [ebp - 0x98]
jl 0x10016053
mov esi, dword [ebp - 0x53c]
push esi
push edi
call fcn.10023c8c
pop ecx
pop ecx
sub esi, edi
push 2
pop ecx
sar esi, 2
cmp esi, ecx
jbe 0x10016099
mov eax, dword [edi + ecx*4 - 8]
cmp eax, dword [edi + ecx*4]
je 0x1001617b
inc ecx
cmp ecx, esi
jb 0x10016087
xor eax, eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov esi, eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x22c], esi
mov dword [ebp - 0x228], eax
push edi
lea ecx, [ebp - 0x1cc]
mov byte [ebp - 4], 0xb
call fcn.10022aeb
xor eax, eax
inc eax
mov ebx, eax
cmp dword [ebp - 0x98], eax
jle 0x10016112
lea esi, [edi + 4]
mov eax, dword [esi - 4]
lea ecx, [ebp - 0x1cc]
push esi
cmp eax, dword [esi]
jne 0x100160f8
lea ecx, [ebp - 0x230]
call fcn.10022aeb
inc ebx
add esi, 4
cmp ebx, dword [ebp - 0x98]
jl 0x100160e4
mov esi, dword [ebp - 0x22c]
mov dword [ebp - 0x38], esi
push 0x100078ec
call fcn.10052cc6
mov edi, dword [ebp - 0x1c8]
sub edi, dword [ebp - 0x1cc]
pop ecx
sar edi, 2
push edi
push 0x100077ac
call fcn.10052b06
pop ecx
xor ebx, ebx
pop ecx
test edi, edi
je 0x1001615c
mov esi, dword [ebp - 0x1cc]
push dword [esi + ebx*4]
push 0x100078cc
call fcn.10052b06
inc ebx
pop ecx
pop ecx
cmp ebx, edi
jb 0x10016145
mov esi, dword [ebp - 0x38]
mov ebx, 0x100076c5
push ebx
call fcn.10052cc6
mov edi, dword [ebp - 0x230]
sub esi, edi
pop ecx
sar esi, 2
push esi
push 0x100077ac
jmp 0x10016190
push 0x100078f0
call fcn.10052cc6
pop ecx
jmp 0x100161b7
push dword [edi + esi*4]
push 0x100078cc
call fcn.10052b06
dec esi
pop ecx
pop ecx
jns 0x10016188
push ebx
call fcn.10052cc6
pop ecx
lea ecx, [ebp - 0x230]
call fcn.1000f0db
lea ecx, [ebp - 0x1cc]
call fcn.1000f0db
lea ecx, [ebp - 0x540]
mov byte [ebp - 4], 8
call fcn.1000f0db
xor ebx, ebx
mov esi, 0xfffe
or edi, 0xffffffff
mov dword [ebp - 0x38], 0xb5cf0adc
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp + eax*4 - 0x64], ebx
je 0x100161ed
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x64], ebx
jne 0x100161f5
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
setl dl
imul edx, dword [ebp - 0x38]
neg edx
sub edx, dword [ebp - 0x2c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
mov dword [ebp - 0x718], edx
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x2c]
cmp eax, edx
setge cl
xor edx, edx
add ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setne dl
xor ebx, ebx
mov eax, dword [ebp + eax*4 - 0x64]
cmp edx, eax
mov eax, dword [ebp - 0x2c]
setl bl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x64]
cmp ebx, eax
mov eax, dword [ebp - 0x64]
setne cl
cmp ecx, esi
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax*4 - 0x64]
mov eax, dword [ebp - 0x64]
cmp ecx, eax
setl dl
add edx, 0x4c7605e8
mov dword [ebp - 0x30], edx
inc dword [ebp - 0x2c]
xor ebx, ebx
cmp dword [ebp - 0x2c], ebx
jle 0x10016006
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x100162ae
push 0x105c
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push 4
mov dword [ebp - 0x28], ebx
pop edx
jmp 0x100162c9
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x558]
mov dword [eax + ecx*4], 0x78317d23
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jl 0x100162b6
mov dword [ebp - 0x14], 0x9fdf99ff
lea ecx, [ebp - 0x268]
mov dword [ebp - 0x2c], edx
push 2
call fcn.1000e5bc
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x38], 0x1af02c1
mov dword [ebp - 0x5c], 7
mov dword [ebp - 0x28], ebx
jmp 0x1001630f
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x268]
mov dword [eax + ecx*4], 0x377963f6
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jl 0x100162fc
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xfffffffa
jge 0x10016592
mov edi, 0x7e2bd63a
mov dword [ebp - 0x28], 0xfffffffc
lea ecx, [ebp - 0x3a4]
mov dword [ebp - 0x24], 0x88ad88ca
mov dword [ebp - 0x3c], 0xfffffffb
mov dword [ebp - 0x498], edi
mov dword [ebp - 0x494], edi
mov dword [ebp - 0x490], edi
mov dword [ebp - 0x48c], edi
push 3
call fcn.1000e5bc
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x1c], ebx
jmp 0x1001637d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3a4]
mov dword [eax + ecx*4], 0x33419813
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1001636a
cmp dword [ebp - 0x28], ebx
je 0x100165f9
xor eax, eax
lea ecx, [ebp - 0x458]
inc eax
mov dword [ebp - 0x30], eax
push eax
call fcn.1000e5bc
push 4
lea ecx, [ebp - 0x6e4]
mov byte [ebp - 4], 0xe
call fcn.1000e5bc
push 0xf
pop eax
xor edx, edx
mov byte [ebp - 4], al
mov dword [ebp - 0x1c], ebx
inc edx
jmp 0x100163d0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x458]
mov dword [eax + ecx*4], 0xdfc1f7b4
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x100163bd
mov dword [ebp - 0x1c], ebx
jmp 0x100163ed
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x6e4]
mov dword [eax + ecx*4], 0x53d1edbc
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x100163da
cmp dword [ebp - 0x28], ebx
je 0x1001641d
mov eax, dword [ebp - 0x458]
xor ecx, ecx
mov edx, dword [eax]
mov eax, dword [ebp - 0x2c]
inc edx
cmp edx, eax
setl cl
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x268]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x440]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
dec dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
push 2
call fcn.1000e5bc
mov dword [ebp - 0x1c], ebx
jmp 0x10016463
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x440]
mov dword [eax + ecx*4], 0x3dfe8e23
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10016450
xor edx, edx
mov dword [ebp - 0x1c], ebx
inc edx
jmp 0x10016482
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xb0], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edx
jl 0x10016471
mov esi, dword [ebp - 0x268]
xor ecx, ecx
mov eax, dword [ebp - 0x38]
cmp eax, dword [esi + 4]
setl cl
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x440]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0xb0]
inc dword [ebp - 0xb0]
test eax, eax
jne 0x100164c1
mov ecx, ebx
cmp dword [ebp - 0xb0], ebx
je 0x100164c3
mov ecx, edx
mov eax, dword [ebp - 0x458]
xor edx, edx
cmp dword [eax], ebx
sete dl
cmp ecx, 0xffff
sbb eax, eax
xor ecx, ecx
neg eax
imul edx, eax
mov eax, dword [ebp - 0x38]
test edx, edx
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x6e4]
lea ecx, [ebp - 0x440]
setle dl
add edx, dword [eax]
mov eax, dword [ebp - 0x440]
neg edx
mov dword [eax], edx
mov dword [esi + 4], edx
call fcn.1000f0db
lea ecx, [ebp - 0x6e4]
call fcn.1000f0db
lea ecx, [ebp - 0x458]
call fcn.1000f0db
mov eax, dword [ebp - 0x3a4]
xor ebx, ebx
mov esi, dword [ebp - 0x268]
cmp dword [eax], ebx
setne bl
xor edx, edx
cmp dword [eax], 0xd41738dc
setne dl
xor ecx, ecx
mov dword [ebp - 0x490], edx
sub edx, dword [esi + 4]
add edx, dword [esi]
cmp dword [esi + 4], edx
mov eax, dword [ebp - 0x2c]
setg cl
mov byte [ebp - 4], 0xc
xor edx, edx
cmp eax, ecx
lea ecx, [ebp - 0x3a4]
setg dl
sub edx, dword [ebp - 0x5c]
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp ebx, edx
setne al
mov dword [esi + 4], eax
call fcn.1000f0db
xor ebx, ebx
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffa
jl 0x10016327
or edi, 0xffffffff
lea ecx, [ebp - 0x268]
call fcn.1000f0db
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
setge dl
cmp edx, 0xffff
jne 0x100165d6
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 9
setle al
cmp eax, dword [ebp - 0x20]
jl 0x10016620
cmp dword [ebp - 0x20], ebx
je 0x10016620
xor eax, eax
inc eax
jmp 0x10016622
mov dword [ebp - 0x490], 0xe8bcd064
cmp dword [ebp - 0x3c], ebx
je 0x10016524
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 0xc
call fcn.1000f0db
jmp 0x10016582
mov eax, ebx
push 5
pop ecx
cmp ecx, eax
sbb eax, eax
add eax, 0x2079655a
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], 0xb1a9565e
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], 0xf66b17b7
mov dword [ebp - 0x28], 0x9a01
mov dword [ebp - 0x14], ebx
jmp 0x1001665b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa04], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1001664e
mov eax, dword [ebp - 0x30]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
setg dl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
sub edx, 0x2645a0d9
neg edx
sbb edx, edx
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, 2
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x30]
neg eax
sbb eax, eax
xor edx, edx
neg eax
inc edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0x19
jne 0x1001670c
mov dword [ebp - 0x28], ebx
jmp 0x100166c8
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x1d0], edx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edx
jl 0x100166bb
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x10016707
mov dword [ebp - 0x38], 0x258d
xor ecx, ecx
mov dword [ebp - 0x38], 0x82f4e55
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x1d0]
test eax, eax
sets cl
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x1d0], ebx
jne 0x10016707
dec dword [ebp - 0x28]
jns 0x100166d5
inc dword [ebp - 0x1c]
jmp 0x100166b0
imul eax, dword [ebp - 0x2c], 0xca0b
test eax, eax
jne 0x1001673f
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], ebx
jne 0x1001672c
cmp dword [ebp - 0x10], ebx
jne 0x1001672c
mov edx, ebx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, edx
setne cl
sub ecx, dword [ebp - 0x10]
jne 0x1001673f
mov eax, ebx
jmp 0x10016742
xor eax, eax
inc eax
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x558]
dec ecx
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
cmp ecx, eax
lea ecx, [ebp - 0x558]
setg dl
mov dword [ebp - 0x5c], edx
mov dword [ebp - 4], edi
call fcn.1000f0db
mov esi, 0x13dd33a4
mov dword [ebp - 0x20], esi
push 0xffffffffffffffeb
mov dword [ebp - 0x54], 0xfffffffd
pop edi
mov dword [ebp - 0x1c], 3
mov dword [ebp - 0x20], edi
jmp 0x100168d4
mov dword [ebp - 0x2c], ebx
xor ecx, ecx
inc ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x38], 0x5c2f
mov dword [ebp - 0x28], 0x586fa66f
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], ebx
je 0x100167c8
cmp dword [ebp - 0x14], ebx
jne 0x100167c8
mov ecx, ebx
xor eax, eax
cmp ecx, 0xa0a5
setl al
cmp eax, 0xffff
sbb ecx, ecx
xor ebx, ebx
neg ecx
imul ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
setne bl
sub ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, eax
mov eax, dword [ebp - 0x2c]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
xor ebx, ebx
imul eax, ecx, 0xfffffffc
cmp eax, dword [ebp - 0x38]
jge 0x1001681c
cmp dword [ebp - 0x1c], ebx
jne 0x1001681c
xor ecx, ecx
mov eax, ebx
inc ecx
jmp 0x10016821
xor ecx, ecx
inc ecx
mov eax, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x28], ebx
je 0x1001683d
cmp dword [ebp - 0x1c], ebx
jne 0x100168de
jmp 0x100168d1
mov dword [ebp - 0x38], 0x132c2674
push 2
mov dword [ebp - 0x5c], 0x58c0f86f
mov dword [ebp - 0x10], ebx
pop edx
jmp 0x10016860
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x12c], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x10016853
mov dword [ebp - 0x14], ebx
jmp 0x1001687b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x12c], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jl 0x1001686a
cmp dword [ebp - 0x1c], ebx
jne 0x1001688b
mov eax, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x128]
cmp ecx, eax
setle dl
mov dword [ebp - 0x5c], edx
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe9
jne 0x10016799
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x54], 0xfffffffd
mov dword [ebp - 0x1c], 3
push 0xffffffffffffffe9
mov dword [ebp - 0x20], edi
pop edi
jmp 0x10016a35
cmp dword [ebp - 0x20], edi
jne 0x100168fa