Function at 0x10019b7f
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
push ebx
mov dword [ebp - 0x48], edx
xor ebx, ebx
mov dword [ebp - 0x2c], 0xfffffff6
inc ebx
push esi
mov dword [ebp - 4], 0xfe7d8a87
or esi, 0xffffffff
push edi
mov dword [ebp - 0x10], esi
mov edi, ecx
xor edx, edx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], edi
mov dword [ebp - 8], edx
jmp 0x10019bc2
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x4c], 9
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x10019bb4
mov dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jl 0x10019c8f
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], 0x19c4
mov dword [ebp - 8], edx
jmp 0x10019bf3
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xb0], 0x62bb2c59
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jl 0x10019be2
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x10019c0a
push edx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
xor edx, edx
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x4c]
cmp dword [ebp - 4], edx
je 0x10019c5a
mov eax, dword [ebp - 0x10]
xor ecx, ecx
cmp eax, 9
setne cl
xor eax, eax
cmp ecx, 0xfffffffd
setne al
xor ecx, ecx
sub eax, dword [ebp - 0x10]
cmp eax, 4
mov eax, dword [ebp - 4]
setne cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 4]
setle dl
xor ecx, ecx
cmp eax, esi
setne cl
xor eax, eax
cmp ecx, edx
setne al
cmp eax, dword [ebp - 0x4c]
jg 0x10019c58
mov eax, ebx
jmp 0x10019c5c
xor edx, edx
mov eax, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
sub edx, 0x5a9cea44
neg edx
push 0
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
pop edx
setle cl
mov dword [ebp - 0x1c], ecx
dec dword [ebp - 4]
jns 0x10019bd3
mov dword [ebp - 0x10], edx
jmp 0x10019ca8
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x10019ca5
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor edx, edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x1b
jne 0x10019c94
mov dword [ebp - 0x20], 0x58d32ffa
mov eax, 0x91704d9f
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x18], 0x55126ed4
mov dword [ebp - 0x1c], 0x321ee01e
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
push 3
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x84], 0xffffffe2
pop esi
jmp 0x10019e34
mov dword [ebp - 4], 0xa35f394
mov dword [ebp - 4], 0xfffffff8
jmp 0x10019db2
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x10], edx
jmp 0x10019d94
mov dword [ebp - 8], edx
mov dword [ebp - 8], edx
jmp 0x10019d42
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x98], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x10019d31
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x10019d6f
push 0x1acb
push edx
push edx
push edx
push edx
push 0x251d
push 0x1e0a
call ebx
push eax
call dword [sym.imp.USER32.dll_ScrollWindowEx]
xor edx, edx
mov dword [ebp - 8], edx
jmp 0x10019d8b
mov dword [ebp - 0x18], 0xc660
inc dword [ebp - 0x18]
mov dword [ebp - 0x98], 0x727cad7d
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xfffffff7
jle 0x10019d74
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffe6
jle 0x10019d29
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x10019daf
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
xor edx, edx
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffff4
jg 0x10019d21
mov dword [ebp - 4], 0xfffffffe
jmp 0x10019e28
xor ecx, ecx
mov dword [ebp - 0x14], 0xfffffff7
inc ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], edx
jmp 0x10019de8
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x12c], 0xa6dfe160
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10019dd7
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], 0x8f1f
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
add eax, 0x6fc75dfc
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x124], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x14
jg 0x10019dc5
inc dword [ebp - 0x84]
cmp dword [ebp - 0x84], 0xd
jne 0x10019d0e
xor ecx, ecx
inc ecx
or eax, 0xffffffff
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x10], 0xb036
mov dword [ebp - 0x1c], 0xbc99
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 4], edx
jmp 0x10019e77
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x14c], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x10019e6a
mov dword [ebp - 4], edx
jmp 0x10019e93
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x17c], 0x740826f3
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10019e82
mov eax, dword [ebp - 0x10]
mov eax, ecx
cmp dword [ebp - 0x10], edx
jne 0x10019ea5
mov eax, edx
xor edx, edx
cmp eax, 0x107
mov eax, dword [ebp - 0x10]
setg dl
xor ecx, ecx
cmp eax, edx
setle cl
cmp ecx, 0xb000cd9d
sbb edx, edx
neg edx
sub edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
sub ecx, 0x1f78
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setl al
cmp eax, dword [ebp - 0x10]
je 0x10019ee3
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
or eax, 0xffffffff
dec dword [ebp - 0x18]
xor ecx, ecx
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x1c], 0xa835a23e
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x1c], 0xfffffffb
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], ecx
jmp 0x10019f22
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x160], 0x76f5
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10019f11
mov dword [ebp - 4], ecx
jmp 0x10019f3d
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x114], 7
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10019f2c
push 0x734
push 0x1c43
push ecx
lea eax, [ebp - 0x58]
push eax
call fcn.1001c78b
xor edx, edx
mov dword [ebp - 4], 0x632667a8
xor ecx, ecx
mov dword [ebp - 4], edx
add esp, 0x10
inc ecx
jmp 0x10019f78
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x60], 0x99ff
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10019f6a
mov dword [ebp - 4], edx
jmp 0x10019f93
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x144], 0xfffffffd
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10019f82
mov dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jl 0x1001a061
mov dword [ebp - 0x10], 0xfffffff8
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], 0x15aa961
mov dword [ebp - 0x18], 0xdf6f9781
mov dword [ebp - 0x18], 0xfffffffd
mov dword [ebp - 0x18], 0xc33c017f
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], edx
jmp 0x1001a033
mov dword [ebp - 8], edx
mov dword [ebp - 8], ecx
mov dword [ebp - 8], 0xfffffffe
mov dword [ebp - 8], ecx
mov dword [ebp - 8], 0xe9378f1e
mov dword [ebp - 8], edx
mov dword [ebp - 8], 2
mov dword [ebp - 8], 4
mov dword [ebp - 8], edx
jmp 0x1001a010
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xe4], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10019fff
mov eax, dword [ebp - 0x10]
xor ecx, ecx
push 1
mov eax, dword [ebp + eax*4 - 0x60]
cmp eax, 1
sete cl
mov dword [ebp - 0x144], ecx
dec dword [ebp - 0x18]
inc dword [ebp - 0x10]
pop ecx
cmp dword [ebp - 0x10], edx
jle 0x10019fd2
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x1001a055
push 0xdc3
push edx
push edx
push 0x7d5
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
xor edx, edx
dec dword [ebp - 4]
push 1
pop ecx
jns 0x10019fa4
mov dword [ebp - 4], ecx
jmp 0x1001a084
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x10], edx
jmp 0x1001a07c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x60], 0xfd8f
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x1001a06e
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1001a066
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
sub eax, 0x1078b534
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x10c], eax
je 0x1001a0a5
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x58]
xor ecx, ecx
cmp eax, 1
setg cl
cmp ecx, 9
mov ecx, dword [ebp - 0x34]
sbb eax, eax
inc eax
sub ecx, eax
mov eax, dword [ebp - 0x28]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
setne dl
imul edx, dword [ebp - 0x2c]
sub edx, 0x67df2ddf
sub edx, dword [ebp - 0x20]
neg edx
sbb edx, edx
inc edx
mov dword [ebp - 0x20], edx
xor edx, edx
cmp dword [edi + 0x10], edx
jne 0x1001a0ed
xor al, al
jmp 0x1001abe7
mov dword [ebp - 0x2c], esi
xor ecx, ecx
mov dword [ebp - 8], esi
inc ecx
mov dword [ebp - 0x28], 0xeec5
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x10], 0x4ddb84c6
mov dword [ebp - 0x18], 0x4426
mov dword [ebp - 0x14], 0xde72
mov dword [ebp - 4], edx
jmp 0x1001a12a
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x9c], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1001a11d
mov dword [ebp - 4], edx
jmp 0x1001a141
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x16c], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x1001a134
mov dword [ebp - 4], edx
jmp 0x1001a15c
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x138], 0x560277ed
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x1001a14b
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x34]
sub eax, 0xfffffffa
neg eax
sbb eax, eax
inc ecx
add eax, ecx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
inc dword [ebp - 0x14]
cmp ecx, eax
jne 0x1001a19e
xor eax, eax
inc eax
jmp 0x1001a1a0
mov eax, edx
mov edx, 0x46d68740
xor ecx, ecx
sub edx, eax
sub edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x18]
add edx, dword [ebp - 0x10]
imul edx, dword [ebp - 8]
mov eax, dword [ebp - 8]
push 2
cmp edx, eax
setle cl
or eax, 0xffffffff
mov dword [ebp - 0x10], ecx
xor edx, edx
mov dword [ebp - 4], 0x1a36
pop ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0xfffffff2
je 0x1001a2da
mov dword [ebp - 0x14], 0xfffffffc
mov dword [ebp - 0x20], 1
mov dword [ebp - 4], edx
jmp 0x1001a241
mov dword [ebp - 8], edx
jmp 0x1001a230
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xa0], 0x622a149c
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001a21f
cmp dword [ebp - 0xa0], edx
jne 0x1001a247
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffffa
jle 0x1001a21a
mov dword [ebp - 4], esi
cmp dword [ebp - 4], edx
jl 0x1001a2ca
mov dword [ebp - 0x20], 0xfffffff8
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], edx
jne 0x1001a26d
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 4]
xor edx, edx
push 0
mov eax, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x94]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, 0x13a6
mov eax, dword [ebp - 4]
setle dl
inc edx
mov dword [ebp + eax*4 - 0x94], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x20]
cmp edx, eax
pop edx
setne cl
imul ecx, dword [ebp - 0x20]
mov dword [ebp - 0x20], ecx
or ecx, 0xffffffff
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
dec dword [ebp - 4]
jns 0x1001a24f
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfffffff2
jne 0x1001a207
push 2
pop ecx
mov dword [ebp - 4], 1
mov dword [ebp - 4], 0xb9f9b319
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x28], 0xfffffffc
mov dword [ebp - 8], edx
jmp 0x1001a30c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xac], 0x5b676bd7
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x1001a2fb
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0x10
jne 0x1001a435
or ebx, 0xffffffff
mov dword [ebp - 0x10], 0xffff
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 8], edx
jmp 0x1001a344
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x108], 1
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001a333
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x1001a361
push 0x40b
push edx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
xor edx, edx
cmp dword [ebp - 0x10], edx
jne 0x1001a400
mov eax, dword [ebp - 4]
mov ecx, 0xfd52a42b
cmp ecx, eax
mov ecx, 0xa3205f5a
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x10]
cmp ecx, eax
sbb eax, eax
neg eax
imul eax, eax, 7
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
add edx, 0x4d8a3075
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, 0x907865e1
setl cl
cmp eax, ecx
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x20], eax
imul ecx, dword [ebp - 0x20], 0xa0ce
mov eax, dword [ebp - 4]
cmp eax, ecx
mov eax, dword [ebp - 0x10]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
sub ecx, dword [ebp - 0x10]
lea eax, [ecx + 0xffff]
cmp eax, ebx
mov dword [ebp - 0xac], eax
sete dl
xor ecx, ecx
imul edx, dword [ebp - 4]
mov eax, dword [ebp - 0x104]
cmp edx, eax
setne cl
xor edx, edx
cmp ecx, dword [ebp - 0x104]
jge 0x1001a400
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0xa8], edx
jne 0x1001a417
cmp dword [ebp - 0xac], edx
jne 0x1001a417
mov ecx, edx
jmp 0x1001a41a
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x28]
sub ecx, eax
mov dword [ebp - 0x34], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x10
je 0x1001a321
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 8], edx
jmp 0x1001a448
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x3c], 4
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001a43a
mov dword [ebp - 4], 0x544d1878
mov dword [ebp - 0x18], 0x6896e60b
mov dword [ebp - 0x28], 5
mov dword [ebp - 8], edx
jmp 0x1001a476
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x44], 0x4b5f
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001a468
cmp dword [ebp - 0x44], edx
je 0x1001a4e4
mov dword [ebp - 8], 0xd444182b
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 5
jl 0x1001a64a
mov esi, 0x9cc25fa
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], esi
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 4], eax
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x1001a4d6
push 0x11b5
push 0x19a0
call dword [sym.imp.USER32.dll_SetCaretPos]
xor edx, edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 5
jge 0x1001a49a
jmp 0x1001a64a
mov dword [ebp - 0x10], 5
mov dword [ebp - 0x14], 0x90f5f2fe
mov dword [ebp - 0x34], 0x6d56
mov dword [ebp - 0x1c], 0x7742
mov dword [ebp - 8], edx
jmp 0x1001a516
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xf8], 0xf0d6
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x1001a505
mov dword [ebp - 4], 0xe
cmp dword [ebp - 4], 0xfffffffc
jne 0x1001a5e6
push 0xfffffffffffffffb
or ebx, 0xffffffff
pop edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x2c], 5
mov dword [ebp - 0x28], 0x446b7d86
mov dword [ebp - 8], edx
jmp 0x1001a552
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x54], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001a548
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
cmp eax, 0x5a7d
setne dl
xor ecx, ecx
neg edx
cmp edx, ebx
setge cl
xor eax, eax
cmp ecx, ebx
setge al
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
cmp dword [ebp - 0x10], 0xf95e
jg 0x1001a590
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
test eax, eax
sets cl
mov dword [ebp - 0x28], ecx
mov ecx, 0x5769e8a2
mov eax, dword [ebp - 0x10]
sub ecx, eax
jne 0x1001a5c8
mov eax, dword [ebp - 0x10]
neg eax
mov dword [ebp - 0x54], eax
jne 0x1001a5c8
xor edx, edx
mov eax, edx
jmp 0x1001a5cd
xor eax, eax
inc eax
xor edx, edx
mov dword [ebp - 0x14], eax
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffffc
je 0x1001a532
mov edi, dword [ebp - 0x24]
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x44], edx
jne 0x1001a613
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setne dl
neg edx
jne 0x1001a611
xor edx, edx
mov ecx, edx
jmp 0x1001a616
xor edx, edx
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x39428f8a
setg al
sub eax, esi
neg eax
sbb eax, eax
inc eax
cmp eax, 0xc8d67996
jae 0x1001a637
cmp dword [ebp - 0x1c], edx
jne 0x1001a637
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
mov eax, dword [ebp - 0xf0]
sub ecx, eax
mov dword [ebp - 4], ecx
mov dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jl 0x1001a66f
push 0x32c0
push edx
lea eax, [ebp - 0x35]
mov byte [ebp - 0x35], dl
push eax
call fcn.1001aca4
add esp, 0xc
dec dword [ebp - 4]
push 0
pop edx
jns 0x1001a652
mov dword [ebp - 0x10], 0xfffffffa
mov dword [ebp - 8], edx
jmp 0x1001a689
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x50], 0xac8b13ec
inc dword [ebp - 8]
cmp dword [ebp - 8], 1
jl 0x1001a67b
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x1001a6ae
push 0x2572
push 0xb16
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_CreateCaret]
xor edx, edx
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edx
jl 0x1001a6c9
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x50], ecx
dec dword [ebp - 0x10]
jns 0x1001a6b6
mov dword [ebp - 4], edx
cmp dword [ebp - 4], edx
jl 0x1001a781
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x3c]
mov dword [ebp - 0x3c], 1
cmp dword [ebp - 4], edx
je 0x1001a704
mov dword [ebp - 0x24], 0xc7153413
cmp dword [ebp - 0x24], edx
jne 0x1001a781
jmp 0x1001a75b
mov dword [ebp - 8], 7
mov dword [ebp - 8], edx
jmp 0x1001a71d
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xec], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1001a710
mov dword [ebp - 8], edx
jmp 0x1001a738
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x3c]
mov dword [ebp - 0xe8], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1b
jge 0x1001a728
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x1001a75b
push edx
push 0x10de
push 0x36d
push edx
call dword [sym.imp.GDI32.dll_GetPaletteEntries]
xor edx, edx
lea eax, [ebp - 0x2d]
mov byte [ebp - 0x2d], dl
push eax
push 0x5007
push edx
push 0x1a32
call fcn.1001c2f6
add esp, 0x10
dec dword [ebp - 4]
push 0
pop edx
jns 0x1001a6d5
push 0x37f8
lea eax, [ebp - 0x48]
push eax
push edx
push 0x7707
push 0x53a2
call fcn.1001c89f
add esp, 0x14
cmp dword [edi + 0x14], 0x10
jb 0x1001a7a7
mov ecx, dword [edi]
jmp 0x1001a7a9
mov ecx, edi
mov esi, dword [sym.imp.USER32.dll_GetDC]
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x40], ecx
jb 0x1001a7bc
mov edx, dword [edi]
jmp 0x1001a7be
mov edx, edi
mov eax, dword [edi + 0x10]
add eax, edx
xor edx, edx
cmp ecx, eax
je 0x1001ab05
mov dword [ebp - 0x10], 0x3fcb50bf
mov dword [ebp - 0x14], 0x4157736
mov dword [ebp - 0x1c], 2
mov dword [ebp - 8], edx
jmp 0x1001a7f5
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x74], 0xa8eac8b
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001a7e7
mov dword [ebp - 0x10], 3
cmp dword [ebp - 0x10], edx
jl 0x1001a930
push 0xfffffffffffffffb
pop ebx
mov dword [ebp - 4], edx
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 3
jg 0x1001a8bf
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x24], 0x31e1
mov dword [ebp - 0x24], 0x589fe57f
cmp dword [ebp - 4], edx
jne 0x1001a841
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x74], edx
jne 0x1001a841
mov eax, edx
jmp 0x1001a844
xor eax, eax
inc eax
mov dword [ebp - 0x14], eax
xor edx, edx
mov eax, dword [ebp - 4]
push 0
mov ecx, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 4]
setge dl
xor ecx, ecx
sub edx, dword [ebp + eax*4 - 0x74]
cmp edx, 0x3735b263
setg cl
sub ecx, dword [ebp - 4]
mov eax, dword [ebp - 4]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 4]
setne dl
imul edx, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0x74]
cmp ebx, eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, edx
mov eax, dword [ebp - 0x10]
setle cl
add eax, 0xffffbc34
xor edx, edx
add ecx, eax
mov eax, dword [ebp - 0x6c]
cmp ecx, eax
setne dl
mov dword [ebp - 0x24], edx
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
pop edx
jle 0x1001a81e
mov eax, dword [ebp - 0x74]
xor ecx, ecx
cmp eax, 0x1efe0c23
setne cl
mov dword [ebp - 0x6c], ecx
test ecx, ecx
je 0x1001a8e6
cmp dword [ebp - 4], edx
jne 0x1001a8e3
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
je 0x1001a8e6
xor edx, edx
inc edx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
setg cl
xor edx, edx
cmp eax, ecx
setle dl
sub edx, dword [ebp - 4]
neg edx
sbb edx, edx
inc edx
sub edx, 0x8e18
jne 0x1001a919
cmp dword [ebp - 4], edx
jne 0x1001a91b
mov eax, edx
jmp 0x1001a91e
xor edx, edx
xor eax, eax
inc eax
mov dword [ebp - 0x14], eax
dec dword [ebp - 0x10]
jns 0x1001a80e
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x1001a947
call ebx
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
xor edx, edx
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
cmp al, 0x30
jl 0x1001aa44
cmp al, 0x39
jg 0x1001aa44
mov dword [ebp - 0x10], 0x68ec0ae9
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 8], 0xffff
mov dword [ebp - 0x1c], 0xd5943e2f
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 4], edx
jmp 0x1001a995
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x120], 0x779a7b44
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x1001a984
mov dword [ebp - 4], edx
jmp 0x1001a9b1
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x18c], 0xa4f0
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x1001a9a0
mov dword [ebp - 0x10], edx
jmp 0x1001a9d1
mov byte [ebp - 9], dl
cmp byte [ebp - 9], 0
je 0x1001a9ce
push edx
call fcn.1001ac2c
pop ecx
xor edx, edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x13
jg 0x1001a9bc
cmp dword [ebp - 0x14], edx
je 0x1001a9fe
mov eax, dword [ebp - 8]
xor ecx, ecx
test eax, eax
mov dword [ebp - 0x120], eax
sete cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
sub ecx, eax
je 0x1001a9fe
xor eax, eax
inc eax
jmp 0x1001aa00
mov eax, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
push 0x6fe
lea eax, [ebp - 0x40]
mov dword [ebp - 0x24], 1
push eax
push edx
lea eax, [ebp - 0x48]
push eax
call fcn.100221ee
mov ecx, dword [ebp - 0x40]
add esp, 0x10
inc ecx
jmp 0x1001a7af
mov eax, 0x4039b642
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 8], edx
mov dword [ebp - 4], 1
mov dword [ebp - 0x24], 0xe69
inc dword [ebp - 4]
push 3
mov dword [ebp - 4], edx
pop ebx
jmp 0x1001aadf
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xa4], 9
mov dword [ebp - 8], edx
jmp 0x1001aaa0
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x154], 1
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x1001aa8f
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0xc0]
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xc0], ecx
mov dword [ebp - 8], edx
cmp dword [ebp - 8], ebx
jg 0x1001aadc
push edx
lea eax, [ebp - 0xa4]
push eax
call fcn.1001c103
inc dword [ebp - 8]
pop ecx
pop ecx
push 0
pop edx
cmp dword [ebp - 8], ebx
jle 0x1001aac2
inc dword [ebp - 4]
cmp dword [ebp - 4], ebx
jle 0x1001aa7d
push 0x3002
push 0x17ec
push 0x3e61
push edx
lea eax, [ebp - 0x48]
push eax
call fcn.1001c0a3
add esp, 0x14
jmp 0x1001a0e6
xor ecx, ecx
inc edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x24], 0x507e6732
mov dword [ebp - 0x24], 0x2006887e
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 0x1c], 0x41e4f1f1
push 0xfffffffffffffffb
pop eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x24], 0xfffffff8
mov dword [ebp - 0x18], 0x765e4b
mov dword [ebp - 4], ecx
jmp 0x1001ab54
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x5c], 0x6444696a
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x1001ab46
mov dword [ebp - 4], ecx
jmp 0x1001ab68
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x64], ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x1001ab5e
cmp dword [ebp - 0x24], ecx
je 0x1001ab7b
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x64]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x64]
setge cl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
add eax, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov dword [ebp - 8], 0xcff0ea75
mov dword [ebp - 8], 0
jmp 0x1001abdf
cmp dword [ebp - 8], 0
jne 0x1001abe5
mov byte [ebp - 9], 0
cmp byte [ebp - 9], 0
je 0x1001abdc
call ebx
push eax
call esi
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffe7
jg 0x1001abc7
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret