Function at 0x10018697
Capabilities:
Allocate thread local storage
Encrypt data using speck
Log keystrokes via polling

Disassembly:
mov eax, 0x1005f34c
call fcn.1005eaf8
sub esp, 0x354
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x90]
push 2
mov dword [ebp - 0x74], edx
call fcn.1001ab0d
xor ebx, ebx
lea eax, [ebp - 0x290]
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0xb8]
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000c2a0]
xor edi, edi
push eax
lea eax, [ebp - 0x2a0]
mov dword [ebp - 0xb8], ebx
inc edi
mov dword [ebp - 0xb4], ebx
push eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x34], edi
push ebx
movdqu xmmword [ebp - 0x2a0], xmm0
mov dword [ebp - 0xb0], ebx
call fcn.1001d50a
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0x1e0], ebx
mov dword [ebp - 0x1dc], ebx
mov dword [ebp - 0x1d8], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1001873a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x90]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1001872a
mov dword [ebp - 0x14], ebx
jmp 0x1001886e
mov dword [ebp - 0x20], 0xf2000252
mov dword [ebp - 0x28], 0xfffffff7
mov dword [ebp - 0x28], ebx
jmp 0x1001876c
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0xd4], 0x94e8fe75
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jl 0x1001875b
mov dword [ebp - 0x20], edi
cmp dword [ebp - 0x20], ebx
jl 0x1001886b
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], ebx
jl 0x10018845
mov esi, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x90]
cmp dword [eax + ecx*4], 0xd177cce4
mov eax, dword [ebp - 0x18]
sete dl
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
sub eax, 0x18d3cb34
je 0x100187d6
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x90]
cmp dword [eax + ecx*4], ebx
mov ecx, edi
jne 0x100187d8
mov ecx, ebx
mov eax, dword [ebp - 0x20]
sub ecx, eax
jne 0x100187e2
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xd4], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
add eax, edx
cmp eax, 4
mov eax, dword [ebp - 0x18]
setge cl
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + ecx*4]
cmp eax, dword [esi + 4]
jne 0x10018834
mov eax, ebx
cmp dword [ebp - 0x14], ebx
je 0x10018836
mov eax, edi
mov dword [ebp - 0x1d8], eax
dec dword [ebp - 0x18]
jns 0x10018792
mov dword [ebp - 0x28], ebx
jmp 0x1001885c
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], bl
je 0x10018859
push ebx
call dword [sym.imp.KERNEL32.dll_ClearCommBreak]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xa
je 0x1001884a
dec dword [ebp - 0x20]
jns 0x1001877d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x10018748
lea ecx, [ebp - 0xb8]
call fcn.1001ab8f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
call fcn.1001ab8f
mov eax, dword [0x106097a0]
test al, 1
jne 0x10018924
or eax, edi
mov dword [0x106097a0], eax
push ebx
mov dword [ebp - 4], edi
push ebx
mov dword [0x106097b0], ebx
mov dword [0x106097b4], ebx
call fcn.1001cd0d
mov dword [0x106097b0], eax
mov dword [0x106097b8], ebx
mov dword [0x106097c0], ebx
mov byte [ebp - 4], 3
mov ecx, 0x106097b8
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0xac]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x254]
mov dword [0x106097cc], 0x3f800000
push eax
mov dword [0x106097bc], ebx
call fcn.1001cae5
push 0x10060128
mov dword [0x106097c4], 7
mov dword [0x106097c8], 8
call fcn.10049b5c
or dword [ebp - 4], 0xffffffff
pop ecx
imul eax, dword [ebp - 0x48], 0x2710
mov dword [ebp - 0x2c], 0x1000895c
add eax, dword [ebp - 0x74]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x24], 0x2530
cmp dword [ebp - 0x24], 0x2576
jle 0x100189b0
mov dword [ebp - 0x20], ebx
mov eax, ebx
mov dword [ebp - 0x28], 0x3e7c
mov dword [ebp - 0x14], eax
mov esi, eax
mov dword [ebp - 0x34], 0x6498
mov eax, esi
lea ecx, [ebp - 0x338]
cdq
push edx
push eax
call fcn.1000d6fa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001897a
mov eax, dword [eax]
push eax
call fcn.10049b86
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x338]
call fcn.1001af5d
dec esi
dec dword [ebp - 0x34]
jne 0x10018960
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x20]
add eax, esi
dec dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
jne 0x10018957
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x300b
jl 0x1001894b
mov dword [ebp - 0x20], ebx
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x30], 0xe294b58f
push edi
call fcn.1001ab0d
mov dword [ebp - 4], 4
mov dword [ebp - 0x38], 0xa4b1f059
mov dword [ebp - 0x18], ebx
jmp 0x100189e9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x84], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x100189dc
mov dword [ebp - 0x18], ebx
jmp 0x10018a05
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x25c], 0x9b03be46
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x100189f4
mov dword [ebp - 0x18], ebx
jmp 0x10018a23
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x22c]
mov dword [eax + ecx*4], 2
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10018a10
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 2
jg 0x10018c08
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ebx
jmp 0x10018a4e
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2ac], 0x611fb8eb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10018a3d
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 2
jg 0x10018bf7
mov dword [ebp - 0xa8], 0xfffffff8
mov dword [ebp - 0xa4], 0xfffffff8
mov dword [ebp - 0xa0], 0xfffffff8
mov dword [ebp - 0x9c], 0xfffffff8
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10018aa8
push ebx
push 0x2679
push 0x2519
push 0x172
call dword [sym.imp.GDI32.dll_GetCharWidth32A]
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x84], ebx
jne 0x10018ab7
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x84]
mov edx, dword [ebp - 0x18]
sub edx, eax
mov eax, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x7c]
setg cl
sub ecx, eax
cmp ecx, dword [ebp - 0x18]
jle 0x10018ae2
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x84]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x84]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x84]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x84]
mov dword [ebp - 0x30], 0x3240
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x30], 0xfffffffc
mov dword [ebp - 0x30], 0xd8c65816
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], 0x2714
cmp dword [ebp - 0x34], 0x271f
jle 0x10018b91
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov eax, esi
cdq
idiv dword [ebp - 0x28]
lea eax, [edi + edx]
xor eax, ecx
mov ecx, 0x106086b8
cdq
push edx
push eax
call fcn.1001a8dc
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x166c
jl 0x10018b41
inc esi
cmp esi, 0x734c
jl 0x10018b3e
inc edi
cmp edi, 0x7a54
jl 0x10018b3c
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x5746
jl 0x10018b3a
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
xor edi, edi
inc edi
mov dword [ebp - 0x30], 0xfffffff7
mov byte [ebp - 4], 5
cmp dword [ebp - 0x34], 0x2693
jge 0x10018bd5
mov edx, 0x10008988
mov ecx, 0x106086b8
call fcn.1001cde7
jmp 0x10018bd5
mov dword [ebp - 4], 4
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], 0x9bb643c8
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0x2ac]
inc dword [ebp - 0x18]
jmp 0x10018a57
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x25c], eax
inc dword [ebp - 0x20]
jmp 0x10018a2b
mov dword [ebp - 0x20], 8
jmp 0x10018c17
dec dword [ebp - 0x38]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1c
jge 0x10018c11
lea ecx, [ebp - 0x22c]
call fcn.1001ab8f
cmp dword [ebp - 0x24], 0x251c
jge 0x10018c3a
push dword [ebp - 0x2c]
call fcn.10049b86
pop ecx
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x78]
push eax
call fcn.1001abd1
mov eax, dword [eax]
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x14], ebx
jmp 0x10018c65
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xbc], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10018c58
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x10018d1a
mov dword [ebp - 0x14], ebx
jmp 0x10018c89
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x40], 0x4074dd03
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10018c7b
mov dword [ebp - 0x40], ebx
cmp dword [ebp - 0x40], ebx
jl 0x10018d11
mov dword [ebp - 0x28], 8
mov eax, dword [ebp - 0x40]
cmp dword [ebp + eax*4 - 0xbc], ebx
jne 0x10018d11
mov dword [ebp - 0x28], ebx
jmp 0x10018d07
mov dword [ebp - 0x14], ebx
jmp 0x10018cc1
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x44], 0x307d7c11
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10018cb3
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x44], ebx
jl 0x10018cec
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10018ce7
push 0xd4d
push 0x1206
call dword [sym.imp.USER32.dll_GetWindowLongA]
dec dword [ebp - 0x44]
jns 0x10018cce
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10018d04
push ebx
push ebx
push 0x60d
push ebx
push ebx
call dword [sym.imp.USER32.dll_CreateDialogIndirectParamA]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jle 0x10018cae
dec dword [ebp - 0x40]
jns 0x10018c96
dec dword [ebp - 0x20]
jns 0x10018c76
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x10018d5f
mov dword [ebp - 0x14], 0x3ab1943c
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x10018d46
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10018d41
push ebx
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
dec dword [ebp - 0x14]
jns 0x10018d31
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10018d5a
push 0x1d5d
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
dec dword [ebp - 0x20]
jns 0x10018d22
cmp dword [ebp - 0x34], 0
je 0x10018f45
push edi
lea ecx, [ebp - 0x1a4]
call fcn.1001ab0d
push 3
pop esi
push esi
lea ecx, [ebp - 0x13c]
mov dword [ebp - 4], 9
call fcn.1001ab0d
mov dword [ebp - 0x14], 0xce404d4
mov dword [ebp - 0x30], 0x1191
mov dword [ebp - 0x18], ebx
jmp 0x10018db1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1a4]
mov dword [eax + ecx*4], 0x3468
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10018d9e
mov dword [ebp - 0x18], ebx
jmp 0x10018dce
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x13c]
mov dword [eax + ecx*4], 0x30688cdf
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x10018dbb
mov dword [ebp - 0x18], ebx
jmp 0x10018de9
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x98], 0x96bc712b
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10018dd8
mov eax, dword [ebp - 0x13c]
mov ecx, edi
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x13c]
sub ecx, dword [eax]
mov dword [ebp - 0x94], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1a4]
cmp dword [eax], 0xfffffffb
mov eax, dword [ebp - 0x94]
setg cl
xor edx, edx
cmp ecx, 0xa227
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
test ecx, ecx
je 0x10018e45
mov ecx, edi
cmp dword [ebp - 0x94], ebx
jne 0x10018e47
mov ecx, ebx
xor eax, eax
cmp ecx, edi
lea ecx, [ebp - 0x13c]
setge al
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x14], eax
call fcn.1001ab8f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1a4]
call fcn.1001ab8f
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], 0xa48bbca6
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x18], 7
jmp 0x10018eea
mov dword [ebp - 0x14], 0x4d9edbda
mov dword [ebp - 0x24], 0xc383c67e
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jne 0x10018eaa
mov edx, ebx
cmp dword [ebp - 0x18], ebx
je 0x10018eac
mov edx, edi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setle cl
xor edx, edx
cmp ecx, edi
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x18]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x1a
jle 0x10018e8a
mov dword [ebp - 0x18], 0x17
jmp 0x10018f3a
push 4
lea ecx, [ebp - 0x1bc]
call fcn.1001ab0d
mov dword [ebp - 0x14], ebx
jmp 0x10018f1a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1bc]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10018f0b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1bc]
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0x1bc]
call fcn.1001ab8f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x1c
je 0x10018ef9
jmp 0x1001a83e
push 3
lea ecx, [ebp - 0x180]
call fcn.1001ab0d
mov dword [ebp - 4], 0xa
mov dword [ebp - 0x28], 0x246c3825
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
jmp 0x10018f7b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x180]
mov dword [eax + ecx*4], 0x313dd33a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10018f68
mov dword [ebp - 0x18], ebx
jmp 0x10018f94
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x4c], 0xfffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10018f86
mov dword [ebp - 0x18], ebx
jmp 0x10018faf
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xfc], 0xfffffff9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10018f9e
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x24], eax
mov dword [eax + 8], ebx
push 3
lea ecx, [ebp - 0x118]
call fcn.1001ab0d
mov dword [ebp - 0x14], ebx
jmp 0x10018fe5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x118]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10018fd2
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x118]
cmp eax, dword [esi + 8]
mov eax, dword [ebp - 0x118]
setge cl
xor edx, edx
cmp ecx, dword [eax + 4]
setle dl
xor ecx, ecx
add edx, dword [eax]
mov eax, dword [ebp - 0x4c]
cmp edx, eax
mov eax, dword [ebp - 0x24]
setg cl
mov eax, dword [eax + 8]
sub eax, ecx
add eax, 0x2a600bba
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xfc]
cmp dword [esi + 8], ebx
jne 0x10019041
mov eax, ebx
cmp dword [ebp - 0x4c], ebx
je 0x10019043
mov eax, edi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], ebx
jmp 0x10019069
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10019066
push ebx
push 0x960
push ebx
push 0x97a
call dword [sym.imp.GDI32.dll_GetTextExtentPointW]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 7
je 0x1001904b
lea ecx, [ebp - 0x118]
call fcn.1001ab8f
mov esi, dword [ebp - 0x24]
dec dword [esi + 8]
cmp dword [esi + 8], 0xfffffff8
jge 0x10018fc0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x180]
call fcn.1001ab8f
mov eax, dword [0x106097a0]
test al, 2
jne 0x10019131
or eax, 2
mov dword [0x106097a0], eax
push ebx
mov dword [ebp - 4], 0xb
push ebx
mov dword [0x10609770], ebx
mov dword [0x10609774], ebx
call fcn.1001cd0d
mov dword [0x10609770], eax
mov dword [0x10609778], ebx
mov dword [0x10609780], ebx
mov byte [ebp - 4], 0xd
mov ecx, 0x10609778
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xcc]
push eax
push 0x10
push ebx
lea eax, [ebp - 0x23c]
mov dword [0x1060978c], 0x3f800000
push eax
mov dword [0x1060977c], ebx
call fcn.1001cae5
push 0x10060123
mov dword [0x10609784], 7
mov dword [0x10609788], 8
call fcn.10049b5c
or dword [ebp - 4], 0xffffffff
pop ecx
mov dword [ebp - 0x28], 0x5d6c05ba
mov dword [ebp - 0x28], 0x12
jmp 0x10019171
mov dword [ebp - 0x14], 0xeede0b40
mov dword [ebp - 0x14], 0xfffffffe
jmp 0x10019168
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10019165
push 0xf88
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffeb
jge 0x10019151
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xd
jne 0x10019141
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10019188
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommState]
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x10c], xmm0
mov dword [ebp - 0x30], 0xffff
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100191b8
push 0x2283
push 0x1657
push 0x213a
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100191c7
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
lea eax, [ebp - 0x48]
push eax
call fcn.1001ac33
push 3
pop ecx
mov eax, dword [eax]
mov dword [ebp - 0x18], 8
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], 0x47e0fa1a
mov dword [ebp - 0x24], 0xfeee83ad
mov dword [ebp - 0x24], 0xdf851f08
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], ebx
jmp 0x1001920a
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3c], 0x8c6a53d0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100191fc
mov dword [ebp - 0x18], ebx
jmp 0x10019225
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2d0], 0x8e6bae05
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10019214
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x10019259
mov dword [ebp - 0x14], 0x7b1891f7
mov dword [ebp - 0x14], ebx
jmp 0x1001924f
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3c], ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1001923e
dec dword [ebp - 0x18]
jns 0x10019232
mov dword [ebp - 0x18], ebx
jmp 0x100192ca
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x3c]
cmp eax, 5
mov eax, dword [ebp - 0x3c]
sete cl
xor edx, edx
cmp ecx, edi
setg dl
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
cmp ecx, 0xfffffff6
setg dl
xor ecx, ecx
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0x18]
imul eax, edx
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x3c]
test eax, eax
mov eax, dword [ebp - 0x18]
sete cl
xor edx, edx
cmp ecx, edi
mov esi, dword [ebp + eax*4 - 0x3c]
setge dl
sub edx, 5
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, esi
setle al
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x1001925e
cmp byte [ebp + 0xc], 0
jne 0x100192df
cmp dword [ebp - 0x28], 0
jne 0x10019a41
mov dword [ebp - 0x14], 0x213532fe
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 0x20], 0x534de6f8
push edi
call fcn.1001ab0d
push 2
lea ecx, [ebp - 0x124]
mov dword [ebp - 4], 0xe
call fcn.1001ab0d
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x24], 0x7546
cmp dword [ebp - 0x24], 0x787d
jle 0x10019355
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, 0x106086b8
cdq
idiv edi
mov eax, edx
cdq
push edx
push eax
call fcn.1001a8dc
inc edi
cmp edi, 0x2b1d
jl 0x10019325
inc esi
cmp esi, 0x4c68
jl 0x10019323
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileType]
xor edi, edi
inc edi
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x24], 0x72cf
jge 0x10019392
mov edx, 0x10008a20
mov ecx, 0x106086b8
call fcn.1001cde7
jmp 0x10019392
mov dword [ebp - 0x18], ebx
jmp 0x100193aa
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c8]
mov dword [eax + ecx*4], 0x2ef51ae9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10019397
mov dword [ebp - 0x18], ebx
jmp 0x100193c7
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x124]
mov dword [eax + ecx*4], 0xfbebf0a0
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x100193b4
mov dword [ebp - 0x18], ebx
jmp 0x100193e3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xe8], 0x2c34ccbb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x100193d2
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x20]
jge 0x100193ff
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp - 0x1c8]
mov dword [eax], edx
neg edx
mov eax, dword [ebp - 0x14]
cmp eax, edx
setge cl
xor eax, eax
sub ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x20]
cmp ecx, 0xffffe3c6
setl al
add eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x124]
jge 0x1001943c
mov eax, edi
cmp dword [ecx + 4], ebx
jne 0x1001943e
mov eax, ebx
mov dword [ecx + 4], eax
test eax, eax
jne 0x1001944c
cmp dword [ebp - 0x20], ebx
jne 0x1001944c
mov edi, ebx
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x124]
imul eax, edi
add eax, dword [ebp - 0x14]
mov dword [ebp - 0xe8], eax
call fcn.1001ab8f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c8]
call fcn.1001ab8f
mov dl, byte [ebp + 0xc]
lea eax, [ebp - 0x360]
mov ecx, dword [ebp - 0x48]
push eax
call fcn.1000d775
mov esi, eax
lea edi, [ebp - 0x10c]
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x2c], 0xb64b5c6f
mov dword [ebp - 0x14], ebx
jmp 0x100194fb
mov dword [ebp - 0x20], 0xa162c9cc
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
imul edx, eax
mov eax, dword [ebp - 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
mov eax, dword [ebp - 0x20]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100194f8
push ebx
push 0x4c9
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffd
jle 0x100194a7
cmp byte [ebp + 0xc], 0
je 0x10019a3e
cmp dword [ebp - 0x104], 0
je 0x10019a3e
mov dword [ebp - 0xf8], 0xffffffff
mov dword [ebp - 0xf4], 0xffffffff
mov dword [ebp - 0xf0], 0xffffffff
mov dword [ebp - 0xec], 0xffffffff
mov dword [ebp - 0x18], 0xd8da8e97
mov dword [ebp - 0x24], 0x7d7c118
push 3
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x14], ebx
pop ecx
jmp 0x1001956a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x198], 0xf3b0639e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x10019559
xor edi, edi
mov dword [ebp - 0x18], ecx
inc edi
cmp dword [ebp - 0x18], ebx
jl 0x100196f9
mov dword [ebp - 0x24], edi
push 0xfffffffffffffffe
pop eax
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x24], 7
cmp dword [ebp - 0x24], ebx
jne 0x100195dd
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0xf8]
cmp eax, 0x39ee491
mov eax, dword [ebp - 0x18]
setl cl
imul ecx, dword [ebp + eax*4 - 0xf8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xf8]
neg ecx
sbb ecx, ecx
neg ecx
sub eax, ecx
mov ecx, ebx
je 0x100195df
mov ecx, edi
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
sete dl
imul edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0xf8]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
setle cl
mov dword [ebp - 0x194], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], 0x7fbf2121
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x18]
cmp eax, 0xa8c9
setge cl
sub ecx, dword [ebp - 0x38]
je 0x100196e9
mov dword [ebp - 0x2c], 0xffffffff
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100196d8
mov dword [ebp - 0x20], 0x4d
cmp dword [ebp - 0x20], 0x19f
jle 0x100196bc
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x14], 0x66ca
mov dword [ebp - 0x24], eax
cdq
lea ecx, [ebp - 0x308]
push edx
push eax
call fcn.1000d6fa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10019677
mov eax, dword [eax]
push eax
call fcn.10049b86
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x308]
call fcn.1001af5d
mov eax, dword [ebp - 0x24]
add eax, esi
dec dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
jne 0x1001965f
inc esi
cmp esi, 0x213d
jl 0x10019653
push ebx
push 0x1f3a
push 0xeb9
push 0x1213
push 0xfef
call dword [sym.imp.GDI32.dll_CreateBitmap]
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp - 0x20], 0x25
jge 0x100196d4
push 0x10008ab8
call fcn.10049b86
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x194]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1f4], eax
jmp 0x100196f1
cmp dword [ebp - 0x194], ebx
jne 0x100196f9
dec dword [ebp - 0x18]
jmp 0x10019575
mov dword [ebp - 0x38], 0x2ea9
cmp dword [ebp - 0x38], 0x2f6b
jle 0x1001975e
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov eax, edi
mov ebx, 0x320a
cdq
idiv esi
mov edi, edx
mov eax, edi
mov ecx, 0x106086b8
cdq
push edx
push eax
call fcn.1001a8dc
inc edi
dec ebx
jne 0x1001971c
mov edi, dword [ebp - 0x24]
inc esi
cmp esi, 0x2be9
jl 0x10019710
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x5bf
jl 0x1001970e
push ebx
push 0x24da
push ebx
push ebx
push 0x1c41
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
xor edi, edi
inc edi
mov eax, dword [ebp - 0x100]
mov dword [ebp - 4], 0x14
cmp dword [ebp - 0x38], 0x2c3d
mov dword [ebp - 0xa0], eax
jge 0x10019789
mov edx, 0x10008b08
mov ecx, 0x106086b8
call fcn.1001cde7
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x214], 0xfa516694
mov dword [ebp - 0x210], 0xfa516694
mov dword [ebp - 0x20c], 0xfa516694
mov dword [ebp - 0x208], 0xfa516694
mov dword [ebp - 0x15c], 0xffffffff
mov dword [ebp - 0x158], 0xffffffff
mov dword [ebp - 0x154], 0xffffffff
mov dword [ebp - 0x150], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x10019822
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x250], 0x8ec0ae97
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10019811
push 0xfffffffffffffffa
mov dword [ebp - 0x18], ebx
pop esi
cmp dword [ebp - 0x18], ebx
jg 0x10019a26
mov dword [ebp - 0x20], 0xbf5cd53b
mov dword [ebp - 0x30], 0x9849b76e
mov dword [ebp - 0x30], 0x7d393e75
mov dword [ebp - 0x24], 0xe83
cmp dword [ebp - 0x24], 0xf92
jle 0x100198c7
push ebx
push 0x201b
push 0x1475
push 0xf55
call dword [sym.imp.GDI32.dll_GetCharABCWidthsFloatA]
mov edx, ebx
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov ecx, ebx
mov eax, esi
shl eax, cl
mov ecx, 0x106086b8
xor eax, edi
or eax, edx
cdq
push edx
push eax
call fcn.1001a8dc
mov edx, dword [ebp - 0x14]
inc ebx
cmp ebx, 0x25d8
jl 0x1001987d
inc esi
push 0
pop ebx
cmp esi, 0x4413
jl 0x1001987a
inc edi
cmp edi, 0x1cd5
jl 0x10019878
inc edx
mov dword [ebp - 0x14], edx
cmp edx, 0x1488
jl 0x10019876
xor edi, edi
push 0xfffffffffffffffa
inc edi
pop esi
mov dword [ebp - 0x30], edi
mov dword [ebp - 4], 0x16
cmp dword [ebp - 0x24], 0xd85
jge 0x100198e9
mov edx, 0x10008b80
mov ecx, 0x106086b8
call fcn.1001cde7
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x30], 0x9a7b445a
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x30], 0x5943e2f7
mov dword [ebp - 0x30], 0x4c6a37d7
push 3
call fcn.1001ab0d
mov dword [ebp - 4], 0x18
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x30], 0x1fafbf26
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x14], ebx
jmp 0x1001995f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x248]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10019950
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x10019a0f
mov dword [ebp - 0x14], 0xfffffffb
lea ecx, [ebp - 0x238]
mov dword [ebp - 0x30], 8
push edi
call fcn.1001ab0d
mov dword [ebp - 0x14], ebx
jmp 0x100199a3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x238]
mov dword [eax + ecx*4], 0xdc1b6eab
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10019990
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x100199fb
mov dword [ebp - 0x30], 0xce4a6f44
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0x30], 0xfffffffc
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x100199f0
push 0x3de
push ebx
push 0x10b8
call dword [sym.imp.GDI32.dll_Polygon]
inc dword [ebp - 0x154]
dec dword [ebp - 0x14]
jns 0x100199b0
lea ecx, [ebp - 0x238]
call fcn.1001ab8f
dec dword [ebp - 0x20]
jns 0x10019971
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x248]
call fcn.1001ab8f
inc dword [ebp - 0x18]
jmp 0x1001982d
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x208], 0x7b187b35
mov dword [ebp - 0x9c], eax
jmp 0x10019a41
xor edi, edi
inc edi
mov dword [ebp - 0x24], 0x2c79
cmp dword [ebp - 0x24], 0x2d39
jle 0x10019ab6
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
cdq
lea ecx, [ebp - 0x320]
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.1000d6fa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10019a75
mov eax, dword [eax]
push eax
call fcn.10049b86
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x320]
call fcn.1001af5d
mov eax, dword [ebp - 0x14]
inc esi
cmp esi, 0x803c
jl 0x10019a58
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x3e4e
jl 0x10019a56
push ebx
push 0x21f6
push 0xbbc
push 0x1686
call dword [sym.imp.GDI32.dll_SetViewportOrgEx]
mov dword [ebp - 0x30], 0xcf5720e
lea ecx, [ebp - 0x274]
mov dword [ebp - 0x30], 0xf94f378
mov dword [ebp - 0x30], 0xd9532bb1
push 3
call fcn.1001ab0d
mov dword [ebp - 4], 0x19
lea ecx, [ebp - 0x168]
mov dword [ebp - 0x30], 0x74c7af5a
push 3
call fcn.1001ab0d
push 3
mov dword [ebp - 0x18], ebx
pop edx
jmp 0x10019b0a
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x274]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x10019afb
mov dword [ebp - 0x18], ebx
jmp 0x10019b27
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x168]
mov dword [eax + ecx*4], 0xdbea5223
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x10019b14
mov eax, dword [ebp - 0x168]
inc dword [eax + 4]
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10019b54
push ebx
push 0x26f6
push 0x247c
push 0x1de9
call dword [sym.imp.GDI32.dll_GetSystemPaletteEntries]
lea ecx, [ebp - 0x168]
call fcn.1001ab8f
lea ecx, [ebp - 0x274]
call fcn.1001ab8f
cmp dword [ebp - 0x24], 0x2a36
jge 0x10019b7e
push 0x10008c10
call fcn.10049b86
pop ecx
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x28], 0
jne 0x1001a164
cmp dword [ebp - 0x10c], 0
jle 0x1001a164
mov dword [ebp - 0x24], 0x1f21
cmp dword [ebp - 0x24], 0x229f
jle 0x10019bd2
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
mov ecx, 0x106086b8
cdq
push edx
push eax
call fcn.1001a8dc
inc edi
cmp edi, 0x120b
jl 0x10019bad
inc esi
cmp esi, 0x7e78
jl 0x10019bab
xor edi, edi
inc edi
mov dword [ebp - 4], 0x1c
cmp dword [ebp - 0x24], 0x1d9d
jge 0x10019bf1
mov edx, 0x10008c60
mov ecx, 0x106086b8
call fcn.1001cde7
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 5
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x14], ebx
jmp 0x10019c41
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x268], 0xe18b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10019c30
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10019c57
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
je 0x10019c65
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
imul eax, dword [ebp - 0x18]
neg ecx
sub eax, ecx
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x20]
jl 0x10019d36
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x38], 0xcc167df2
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x18], 0xfffffff0
jmp 0x10019cee
mov dword [ebp - 0x2c], ebx
xor edx, edx
mov dword [ebp - 0x24], 3
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x24], ecx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10019ceb
push ebx
push ebx
push 0x1769
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x16
jle 0x10019cb1
cmp dword [ebp - 0x14], ebx
jne 0x10019d18
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
cmp eax, 0x50e8
jle 0x10019d0e
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x260]
mov ecx, ebx
jmp 0x10019d1a
mov ecx, edi
mov eax, dword [ebp - 0x20]
xor edx, edx
add eax, ecx
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
setne dl
neg edx
mov dword [ebp - 0x24], edx
jmp 0x10019da1
push 3
lea ecx, [ebp - 0x1b0]
call fcn.1001ab0d
mov dword [ebp - 0x24], 0xfffffffa
mov dword [ebp - 0x14], ebx
jmp 0x10019d62
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1b0]
mov dword [eax + ecx*4], 0xd06de21e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10019d4f
mov esi, dword [ebp - 0x1b0]
xor edx, edx
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp - 0x24]
cmp dword [esi + 8], eax
mov eax, dword [ebp - 0x260]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esi + 8]
setne cl
add eax, 0xffff2310
add eax, ecx
lea ecx, [ebp - 0x1b0]
mov dword [ebp - 0x24], eax
call fcn.1001ab8f
mov dword [ebp - 0x14], 0xad3b3152
mov dword [ebp - 0x14], ebx
jmp 0x10019dbe
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2d8], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10019dad
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x14], 0x11
jmp 0x10019df0
mov dword [ebp - 0x2c], 0xa23e86f8
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x10019dea
push ebx
push edi
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [ebp - 0x2c], edi
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xffffffed
jle 0x10019dd0
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x38], eax
test eax, eax
je 0x1001a164
push edi
lea ecx, [ebp - 0x64]
call fcn.1001ab0d
mov dword [ebp - 4], 0x1e
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ebx
jmp 0x10019e2c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x64]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10019e1f
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x10019f47
mov dword [ebp - 0x28], 0xf84b8114
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x64]
cmp dword [eax + ecx*4], ebx
jne 0x10019f47
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jg 0x10019f3f
mov dword [ebp - 0x24], 0x183c
cmp dword [ebp - 0x24], 0x194f
jle 0x10019ec5
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov eax, esi
xor eax, ecx
lea ecx, [ebp - 0x350]
cdq
push edx
push eax
call fcn.1000d6fa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10019e92
push 2
lea ecx, [ebp - 0x1d4]
call fcn.1001ab0d
cmp dword [ebp - 0x24], 0x1574
jge 0x10019ee6
dec dword [ebp - 0x18]
jmp 0x10019e34
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1001a039
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x14], 0x62d50c85
mov dword [ebp - 0x14], ebx
jmp 0x10019f77
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2b8], 0xfff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10019f66
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x64]
cmp dword [eax + ecx*4], ebx
jne 0x10019ffb
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x64]
call fcn.1001ab8f
mov ecx, dword [ebp - 0x38]
call fcn.100185a5
push edi
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x28], eax
call fcn.1001ab0d
mov dword [ebp - 4], 0x21
mov dword [ebp - 0x2c], 0x912491e2
mov dword [ebp - 0x24], 0x4278
cmp dword [ebp - 0x24], 0x45cd
jle 0x1001a0bf
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov edi, ebx
mov ebx, dword [ebp - 0x14]
mov ecx, edi
mov eax, esi
sar eax, cl
mov ecx, 0x106086b8
or eax, ebx
cdq
push edx
push eax
call fcn.1001a8dc
inc edi
cmp edi, 0x11c7
jl 0x1001a084
inc esi
push 0
pop ebx
cmp esi, 0x6c40
jl 0x1001a07f
mov byte [ebp - 4], 0x22
cmp dword [ebp - 0x24], 0x4186
jge 0x1001a0fc
mov edx, 0x10008cc4
mov ecx, 0x106086b8
call fcn.1001cde7
jmp 0x1001a0fc
mov dword [ebp - 0x14], ebx
jmp 0x1001a114
push dword [ebp + 8]
movdqa xmm0, xmmword [0x1000c2b0]
lea eax, [ebp - 0x280]
push eax
lea eax, [ebp - 0x290]
mov dword [ebp - 0xc8], ebx
push eax
push ebx
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xc4], ebx
movdqu xmmword [ebp - 0x290], xmm0
mov dword [ebp - 0xc0], ebx
call fcn.1001d50a
mov dword [ebp - 0x18], 0x1f665683
mov dword [ebp - 0x18], ebx
jmp 0x1001a1bf
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc8]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1001a1af
mov dword [ebp - 0x18], ebx
jmp 0x1001a1d7
mov dword [ebp - 0x24], 0x4ddb
dec dword [ebp - 0x24]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 8
jl 0x1001a1ca
lea ecx, [ebp - 0xc8]
call fcn.1001ab8f
lea ecx, [ebp - 0x10c]
call fcn.100141ad
push edi
lea ecx, [ebp - 0x70]
call fcn.1001ab0d
mov dword [ebp - 4], 0x24
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ebx
jmp 0x1001a218
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1001a20b
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1001a2a0
mov dword [ebp - 0x14], 0xf84b8114
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
cmp dword [eax + ecx*4], ebx
jne 0x1001a2a0
mov dword [ebp - 0x14], ebx
jmp 0x1001a296
push 2
lea ecx, [ebp - 0x174]
call fcn.1001ab0d
mov dword [ebp - 0x20], ebx
jmp 0x1001a261
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x174]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x1001a24e
mov esi, dword [ebp - 0x174]
mov dword [esi + 4], ebx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x70]
mov edx, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [esi + 4]
cmp dword [esi + 4], 0
jle 0x1001a270
lea ecx, [ebp - 0x174]
call fcn.1001ab8f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1001a23c
dec dword [ebp - 0x18]
jns 0x1001a225
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1001a392
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x14], 0x62d50c85
mov dword [ebp - 0x14], ebx
jmp 0x1001a2d0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2c4], 0xfff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1001a2bf
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
cmp dword [eax + ecx*4], ebx
jne 0x1001a354
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
mov edx, dword [eax]
sub edx, dword [eax + ecx*4]
neg edx
sbb edx, edx
add edx, 0x2a01507b
neg edx
sbb edx, edx
inc edx
cmp edx, dword [ebp - 0x18]
je 0x1001a30f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x70]
cmp dword [edx + eax*4], ebx
jne 0x1001a312
mov ecx, ebx
jmp 0x1001a314
mov edx, dword [ebp - 0x70]
mov ecx, edi
xor eax, eax
cmp ecx, 5
setg al
xor ecx, ecx
cmp eax, dword [edx]
setne cl
mov dword [ebp - 0x2c4], ecx
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x2c], ecx
xor ecx, ecx
cmp dword [edx], ebx
sete cl
xor eax, eax
cmp ecx, dword [ebp - 0x2c]
setg al
add eax, dword [edx + esi*4]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x18]
mov eax, ebx
je 0x1001a356
mov eax, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], ebx
jmp 0x1001a384
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x1001a381
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1001a37c
push ebx
push edi
push 0x8c7
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
dec dword [ebp - 0x14]
jns 0x1001a366
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x1001a35e
dec dword [ebp - 0x18]
jns 0x1001a2ac
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x70]
call fcn.1001ab8f
mov dword [ebp - 0x2c], 0x1f9d
cmp dword [ebp - 0x2c], 0x2100
mov dword [ebp - 0x30], 0x10008d0c
jle 0x1001a42e
mov dword [ebp - 0x18], ebx
mov edx, ebx
mov dword [ebp - 0x14], ebx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov eax, esi
and eax, ecx
lea ecx, [ebp - 0x2f0]
and eax, edx
or eax, dword [ebp - 0x18]
cdq
push edx
push eax
call fcn.1000d6fa
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001a3e5
mov eax, dword [eax]
push eax
call fcn.10049b86
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x2f0]
call fcn.1001af5d
mov ecx, dword [ebp - 0x20]
inc esi
mov edx, dword [ebp - 0x14]
cmp esi, 0x6358
jl 0x1001a3c4
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0x4c90
jl 0x1001a3c2
inc edx
mov dword [ebp - 0x14], edx
cmp edx, 0x26f5
jl 0x1001a3bd
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x667c
jl 0x1001a3b8
cmp dword [ebp - 0x34], 0
jne 0x1001a6bb
cmp dword [ebp - 0x28], 0
je 0x1001a6bb
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x204], 0xfa516694
mov dword [ebp - 0x200], 0xfa516694
mov dword [ebp - 0x1fc], 0xfa516694
mov dword [ebp - 0x1f8], 0xfa516694
mov dword [ebp - 0x14c], 0xffffffff
mov dword [ebp - 0x148], 0xffffffff
mov dword [ebp - 0x144], 0xffffffff
mov dword [ebp - 0x140], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x1001a4af
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x24c], 0x8ec0ae97
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1001a49e
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jg 0x1001a693
mov dword [ebp - 0x20], 0xbf5cd53b
lea ecx, [ebp - 0x280]
mov dword [ebp - 0x24], 0x9849b76e
mov dword [ebp - 0x24], 0x7d393e75
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x24], 0x9a7b445a
mov dword [ebp - 0x24], 0x5943e2f7
mov dword [ebp - 0x24], 0x4c6a37d7
push 3
call fcn.1001ab0d
mov dword [ebp - 4], 0x25
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0x1fafbf26
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x14], ebx
jmp 0x1001a522
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x280]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1001a513
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x1001a67c
mov dword [ebp - 0x14], 0xfffffffb
lea ecx, [ebp - 0x220]
mov dword [ebp - 0x24], 8
push edi
call fcn.1001ab0d
mov byte [ebp - 4], 0x26
mov dword [ebp - 0x14], ebx
jmp 0x1001a56a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x220]
mov dword [eax + ecx*4], 0xdc1b6eab
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x1001a557
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x1001a665
mov dword [ebp - 0x24], 0xce4a6f44
push 0xfffffffffffffffa
pop eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x24], 0xfffffffc
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1001a657
mov dword [ebp - 0x34], 0x3520
cmp dword [ebp - 0x34], 0x3697
jle 0x1001a602
inc dword [ebp - 0x144]
dec dword [ebp - 0x14]
jmp 0x1001a572
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 0x25
call fcn.1001ab8f
dec dword [ebp - 0x20]
jmp 0x1001a52b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x280]
call fcn.1001ab8f
inc dword [ebp - 0x18]
jmp 0x1001a4b7
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x1f8], 0x7b187b35
call fcn.1001868d
mov esi, eax
lea eax, [ebp - 0x78]
push eax
mov dword [ebp - 0xa4], esi
call fcn.1001abd1
mov dword [eax], esi
cmp dword [ebp - 0x2c], 0x1f86
jge 0x1001a6cd
push dword [ebp - 0x30]
call fcn.10049b86
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18c]
push 4
call fcn.1001ab0d
mov dword [ebp - 4], 0x2b
mov dword [ebp - 0x34], 0xe13a6c9c
mov dword [ebp - 0x2c], 0xb44c
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x2c], 0x5909
cmp dword [ebp - 0x2c], 0x5c92
jle 0x1001a737
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x106086b8
and eax, esi
cdq
push edx
push eax
call fcn.1001a8dc
inc edi
cmp edi, 0x15d1
jl 0x1001a711
inc esi
cmp esi, 0x35b4
jl 0x1001a70f
xor edi, edi
inc edi
mov dword [ebp - 0x14], 5
mov byte [ebp - 4], 0x2c
cmp dword [ebp - 0x2c], 0x5826
jge 0x1001a77b
mov edx, 0x10008d74
mov ecx, 0x106086b8
call fcn.1001cde7
jmp 0x1001a77b
mov dword [ebp - 0x18], ebx
jmp 0x1001a78e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], 0x9cec79e6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x1001a780
mov dword [ebp - 0x18], ebx
jmp 0x1001a7ac
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18c]
mov dword [eax + ecx*4], 0x3371247a
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x1001a799
mov dword [ebp - 0x18], ebx
jmp 0x1001a7c4
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd0], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x1001a7b7
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x34]
dec dword [ebp - 0x34]
cmp ecx, eax
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
cmovg edi, ebx
mov ecx, dword [ebp - 0x58]
xor edx, edx
mov eax, dword [ebp - 0x58]
cmp ecx, eax
setle dl
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18c]
mov dword [eax + 4], edi
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x50], 0xb15b45be
mov eax, dword [ebp - 0x14]
sbb edx, edx
xor ecx, ecx
inc edx
sub edx, eax
mov eax, dword [ebp - 0x58]
cmp eax, edx
mov eax, dword [ebp - 0x58]
setne cl
add eax, ecx
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], 0x4a0435e4
call fcn.1001ab8f
mov eax, dword [ebp + 8]
lea esi, [ebp - 0xa4]
mov ecx, dword [ebp - 0xc]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret