Function at 0x1001af09
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10084ee3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1d0
mov dword [esp + 0x18], 0xfffd
mov dword [esp + 0x10], 0x2cfb6318
mov dword [esp + 0x14], 6
mov dword [esp + 0x14], 0x9fa85f8
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x18]
push ebx
push esi
mov dword [esp + 0x18], eax
xor ebx, ebx
push edi
mov dword [esp + 0xc0], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], 3
jmp 0x1001afe8
mov dword [esp + 0x14], 0xa3cfce2
mov ecx, 0xee28
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x14]
sub ecx, eax
cmp ecx, dword [esp + 0x14]
jle 0x1001af96
mov eax, dword [esp + 0x14]
xor edx, edx
inc edx
jmp 0x1001af98
mov edx, ebx
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
cmp ecx, eax
setl dl
mov dword [esp + 0x20], edx
xor edx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov eax, dword [esp + 0x14]
setg dl
xor ecx, ecx
cmp eax, edx
setg cl
mov dword [esp + 0x20], ecx
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jg 0x1001af70
mov edi, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [esp + 0x24], 1
mov dword [esp + 0xc], 0x69
mov dword [esp + 0x20], 1
mov dword [esp + 0x20], 0x5c1d1022
mov dword [esp + 0x28], ebx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1001b02b
call edi
push eax
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], ebx
je 0x1001b041
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x6c]
mov eax, dword [esp + 0x24]
push dword [esp + 0x3c]
movdqa xmm0, xmmword [0x10008250]
lea eax, [esp + 0x194]
push eax
lea eax, [esp + 0x188]
mov dword [esp + 0x28], 0xade0980a
push eax
mov dword [esp + 0x2c], 2
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], 0xfffffffa
push ebx
movdqu xmmword [esp + 0x190], xmm0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
call fcn.1001a4c0
mov dword [esp + 0x1e4], ebx
xor edx, edx
mov dword [esp + 0x10], 0xffffffff
inc edx
mov dword [esp + 0xc], edx
mov dword [esp + 0xc], ebx
jmp 0x1001b0d5
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0xdc], 0x3342eb9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1001b0c2
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], ebx
jl 0x1001b11e
mov dword [esp + 0x14], 0x9aed23b6
mov dword [esp + 0x14], ebx
jmp 0x1001b112
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0xdc]
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xdc], ecx
mov dword [esp + 0xc], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jle 0x1001b0f4
dec dword [esp + 0x10]
jns 0x1001b0e6
mov dword [esp + 0x10], ebx
jmp 0x1001b130
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x12
jne 0x1001b124
movdqa xmm0, xmmword [0x10008260]
lea eax, [esp + 0x1a0]
push 3
pop esi
push dword [esp + 0x3c]
mov dword [esp + 0x48], 0xffff
lea ecx, [esp + 0xac]
push eax
lea eax, [esp + 0x198]
mov dword [esp + 0x24], esi
push eax
push ebx
movdqu xmmword [esp + 0x1a0], xmm0
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc0], ebx
call fcn.1001a4c0
mov byte [esp + 0x1e4], 1
lea ecx, [esp + 0x11c]
mov dword [esp + 0xc], 8
push esi
call fcn.10018e04
mov byte [esp + 0x1e4], 2
mov dword [esp + 0xc], ebx
jmp 0x1001b1ce
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x11c]
mov dword [eax + ecx*4], 0xff68e10d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001b1b8
mov dword [esp + 0x1c], esi
cmp dword [esp + 0x1c], 0xfffffff1
jl 0x1001b2c0
mov esi, dword [esp + 0x11c]
push dword [esp + 0x3c]
movdqa xmm0, xmmword [0x10008270]
lea eax, [esp + 0x1c4]
push eax
lea eax, [esp + 0x1b8]
mov dword [esp + 0x98], ebx
push eax
push ebx
lea ecx, [esp + 0xa0]
mov dword [esp + 0xa4], ebx
movdqu xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0xa8], ebx
call fcn.1001a4c0
mov edx, dword [esp + 0x90]
mov dword [esp + 0xc], ebx
mov dword [edx + 8], 3
mov dword [esp + 0xc], ebx
cmp dword [esp + 0x1c], 8
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, dword [edx + 4]
mov eax, 0x3b01
setl cl
sub eax, ecx
jne 0x1001b26c
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x90]
xor ecx, ecx
cmp dword [eax], 1
setl cl
xor eax, eax
cmp ecx, dword [edx + 0xc]
setne al
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 4], eax
dec dword [edx + 8]
jns 0x1001b243
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0x90]
mov eax, dword [eax]
sub eax, 0x5e4b
mov dword [esp + 0xc], eax
call fcn.10018e86
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff1
jge 0x1001b1ea
lea ecx, [esp + 0x11c]
call fcn.10018e86
lea ecx, [esp + 0xa8]
mov byte [esp + 0x1e4], bl
call fcn.10018e86
mov esi, dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0xc], 0xffffffff
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001b30d
push ebx
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001b33b
push ebx
push 0x17fc
push ebx
push ebx
push 0x23dc
push 0x763
push 0x130
call edi
push eax
call esi
push eax
call dword [sym.imp.GDI32.dll_ExtTextOutA]
mov dword [esp + 0xc], 3
lea ecx, [esp + 0x140]
push 2
call fcn.10018e04
mov byte [esp + 0x1e4], 3
push 0xfffffffffffffff7
pop esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc], 0xfffffff9
mov dword [esp + 0xc], 0x60f2
mov dword [esp + 0x10], ebx
jmp 0x1001b38c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x140]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001b376
mov dword [esp + 0x10], ebx
jmp 0x1001b3ac
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1cc], 0xfe35fe57
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001b399
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x1c], ebx
jl 0x1001b437
push 1
lea ecx, [esp + 0x15c]
call fcn.10018e04
mov dword [esp + 0xc], ebx
jmp 0x1001b3e7
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x158]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x1001b3d5
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], 0xe0bec035
mov dword [esp + 0x14], ebx
jmp 0x1001b41e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x140]
mov dword [eax + ecx*4], 0x93826a05
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1001b408
lea ecx, [esp + 0x158]
call fcn.10018e86
dec dword [esp + 0x1c]
jns 0x1001b3c1
lea ecx, [esp + 0x140]
mov byte [esp + 0x1e4], bl
call fcn.10018e86
mov dword [esp + 0xc], 0x7c44d996
mov eax, dword [esp + 0x20]
neg eax
push 1
sbb eax, eax
xor edx, edx
neg eax
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add ecx, 7
cmp ecx, eax
mov eax, dword [esp + 0x70]
setl dl
xor ecx, ecx
mov dword [eax + 8], edx
mov eax, dword [esp + 0x24]
cmp edx, eax
mov eax, dword [esp + 0x48]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x28]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x24]
setl cl
xor edx, edx
cmp eax, ecx
lea ecx, [esp + 0x108]
setne dl
sub edx, dword [esp + 0x28]
sub edx, dword [esp + 0x2c]
neg edx
sbb edx, edx
inc edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0xc184c506
mov dword [esp + 0x24], ebx
call fcn.10018e04
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x1001b4ee
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2c], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b4de
mov dword [esp + 0x10], ebx
jmp 0x1001b510
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x104]
mov dword [eax + ecx*4], 0x7c650ba4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b4fa
mov dword [esp + 0x10], ebx
jmp 0x1001b5be
mov dword [esp + 0x20], ebx
xor edx, edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x2c]
mov dword [esp + 0x20], 0x9668
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x2c]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setle dl
sub edx, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x10]
sub edx, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x10]
neg edx
sbb edx, edx
inc edx
cmp edx, dword [esp + eax*4 + 0x2c]
jl 0x1001b599
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x104]
mov dword [eax], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jle 0x1001b51f
lea ecx, [esp + 0x104]
call fcn.10018e86
mov eax, dword [esp + 0x6c]
lea ecx, [esp + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
or dword [esp + 0x1e4], 0xffffffff
call fcn.10018e86
mov dword [esp + 0x28], 0x76b0f738
mov eax, 0x662a2b3b
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0xa9ac70c3
mov dword [esp + 0x28], 0x822b1658
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
inc dword [esp + 0x100]
mov dword [esp + 0xc], 0xfffffff4
jmp 0x1001b66d
mov dword [esp + 0x20], 0x7d50f82b
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001b665
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetRgnBox]
dec dword [esp + 0x20]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x13
jle 0x1001b64a
push dword [esp + 0x3c]
movdqa xmm0, xmmword [0x100082a0]
lea eax, [esp + 0x1b4]
push eax
lea eax, [esp + 0x1a8]
mov dword [esp + 0xbc], ebx
push eax
push ebx
lea ecx, [esp + 0xc4]
mov dword [esp + 0xc8], ebx
movdqu xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0xcc], ebx
call fcn.1001a4c0
mov dword [esp + 0x28], 0xba22e974
xor ecx, ecx
mov dword [esp + 0x28], 0x952f3411
inc ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x28], 0xbc42
mov dword [esp + 0xc], ebx
jmp 0x1001b6f0
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x5c], 0xac204e2d
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1001b6e0
mov dword [esp + 0x5c], ebx
cmp dword [esp + 0x5c], 0xb
jle 0x1001b7ae
push 3
pop edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], ebx
jmp 0x1001b791
mov dword [esp + 0x10], 0x3a0b8ee4
mov dword [esp + 0xc], ebx
jmp 0x1001b738
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x174], 0xfffffffe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1001b725
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], edx
jg 0x1001b771
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb4]
push 3
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x20]
inc dword [esp + 0x14]
pop edx
cmp dword [esp + 0x10], edx
jle 0x1001b748
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], ebx
jl 0x1001b78d
mov dword [esp + 0x20], 0x9986e3e4
inc dword [esp + 0x20]
dec dword [esp + 0x10]
jns 0x1001b77b
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jle 0x1001b717
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], eax
inc dword [esp + 0x5c]
cmp dword [esp + 0x5c], 0xb
jg 0x1001b709
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001b7c2
call edi
push eax
call dword [sym.imp.USER32.dll_GetParent]
lea ecx, [esp + 0xb4]
call fcn.10018e86
push 3
pop esi
push esi
lea ecx, [esp + 0xc8]
call fcn.10018e04
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ebx
jmp 0x1001b7fe
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc4]
mov dword [eax + ecx*4], 0xfdf99ff6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001b7e8
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x1001b89f
mov dword [esp + 0x10], ebx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001b82e
call edi
push eax
call dword [sym.imp.USER32.dll_HideCaret]
mov dword [esp + 0x10], ebx
jmp 0x1001b88b
mov dword [esp + 0x28], 0x60915bb0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc4]
cmp dword [ecx + eax*4], ebx
jne 0x1001b892
cmp dword [ecx + 8], ebx
jne 0x1001b85d
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc4]
mov esi, dword [eax + 4]
cmp dword [eax + ecx*4], esi
setl dl
xor eax, eax
cmp edx, esi
setl al
sub eax, 0x1a1c0
mov dword [esp + 0x28], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x1001b834
dec dword [esp + 0x14]
jns 0x1001b816
push 3
pop esi
lea ecx, [esp + 0xc4]
call fcn.10018e86
push 1
lea ecx, [esp + 0x4c]
call fcn.10018e04
push 4
pop edi
mov dword [esp + 0x1e4], edi
xor edx, edx
mov dword [esp + 0x14], 0xc668
inc edx
mov dword [esp + 0x10], 2
mov dword [esp + 0x24], 0x9b037144
mov dword [esp + 0x24], 0x99369e1d
mov dword [esp + 0x1c], 0xd476fc58
mov dword [esp + 0xc], 0xc89aed29
mov dword [esp + 0x20], 0x78a82fb3
mov dword [esp + 0xc], 0xfb5d6221
mov dword [esp + 0x10], ebx
jmp 0x1001b918
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b909
mov dword [esp + 0x10], ebx
jmp 0x1001b937
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x164], 6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1001b924
mov dword [esp + 0x10], ebx
jmp 0x1001b94f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x40], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001b943
mov eax, dword [esp + 0x48]
push esi
mov eax, dword [eax]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x168]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x174]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [eax]
mov eax, dword [esp + 0x28]
cmp eax, 0x4199
setle cl
xor eax, eax
cmp ecx, edx
setle al
imul eax, eax, 6
add eax, edx
xor edx, edx
imul eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x4c]
cmp ecx, dword [eax]
setle dl
xor ecx, ecx
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
cmp eax, 0x374484a8
setle cl
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
mov edx, dword [eax]
xor eax, eax
test edx, edx
setle al
xor ecx, ecx
sub eax, edx
cmp eax, edx
setge cl
xor eax, eax
cmp ecx, edx
setne al
xor edx, edx
imul eax, eax, 0xa246
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
cmp ecx, dword [eax]
lea ecx, [esp + 0x138]
setg dl
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], 0xffffffff
call fcn.10018e04
mov dword [esp + 0xc], ebx
jmp 0x1001ba6c
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x134]
mov dword [eax + ecx*4], 0x373d2ef8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001ba56
mov eax, dword [esp + 0x48]
cmp dword [eax], ebx
jne 0x1001ba7e
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
je 0x1001ba89
xor eax, eax
inc eax
jmp 0x1001ba8b
mov eax, ebx
cmp dword [esp + 0x14], eax
jg 0x1001ba9b
cmp dword [esp + 0x14], ebx
jne 0x1001ba9b
mov edx, ebx
jmp 0x1001ba9e
xor edx, edx
inc edx
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
imul ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
cmp ecx, dword [eax]
mov eax, dword [esp + 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x10]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setle dl
imul eax, dword [esp + 0x1c]
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x48]
setne cl
xor edx, edx
cmp ecx, dword [eax]
lea ecx, [esp + 0x134]
mov eax, dword [esp + 0x134]
setl dl
mov dword [eax], edx
call fcn.10018e86
or dword [esp + 0x1e4], 0xffffffff
lea ecx, [esp + 0x48]
call fcn.10018e86
push 2
lea ecx, [esp + 0x7c]
call fcn.10018e04
mov dword [esp + 0x1e4], 5
lea ecx, [esp + 0x84]
mov dword [esp + 0x1c], 0x7df2f4a8
mov dword [esp + 0x10], ebx
push 2
call fcn.10018e04
mov dword [esp + 0x14], 0x9cee
mov dword [esp + 0xc], ebx
jmp 0x1001bb60
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1001bb4e
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001bb7f
push ebx
push 0x17ef
push ebx
call dword [sym.imp.GDI32.dll_GetRegionData]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x84]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [ecx + 4], eax
cmp eax, dword [esp + 0x1c]
jle 0x1001bba7
cmp dword [ecx + 4], ebx
je 0x1001bba7
xor ecx, ecx
inc ecx
jmp 0x1001bba9
mov ecx, ebx
mov eax, dword [esp + 0x10]
sub ecx, eax
mov eax, 0xfff9
cmp eax, ecx
sbb eax, eax
inc eax
sub eax, dword [esp + 0x10]
neg eax
sbb eax, eax
xor edx, edx
inc eax
imul ecx, eax, 0x4856
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [esp + 0x14]
je 0x1001bc02
mov dword [esp + 0x28], 0x374fd522
mov dword [esp + 0x28], 0xb0881d
mov dword [esp + 0x20], 0xb51f
inc dword [esp + 0x20]
jmp 0x1001bc7c
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x1001bc57
mov dword [esp + 0x1c], ebx
jmp 0x1001bc4d
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
xor edx, edx
mov dword [esp + 0x14], ebx
inc edx
jmp 0x1001bc43
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x84]
cmp dword [eax + ecx*4], ebx
jne 0x1001bc49
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jle 0x1001bc2f
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edx
jle 0x1001bc11
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jle 0x1001bc0b
mov dword [esp + 0x10], ebx
jmp 0x1001bc75
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001bc63
lea ecx, [esp + 0x84]
call fcn.10018e86
mov dword [esp + 0x14], 0xd4e06482
mov dword [esp + 0x24], 0xfffffffe
push 2
mov dword [esp + 0x24], 0xf086
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1001bcb9
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x54], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001bca9
mov dword [esp + 0x10], ebx
jmp 0x1001bcd8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x178], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001bcc5
mov dword [esp + 0x14], 0xffffffe7
jmp 0x1001bd78
mov dword [esp + 0x10], 0xd925b0e4
mov dword [esp + 0x10], ebx
jmp 0x1001bd6d
mov dword [esp + 0x1c], 0x887cf2e5
mov dword [esp + 0x28], 0x3d37a5b7
mov dword [esp + 0x1c], 0xffffffec
jmp 0x1001bd62
push esi
lea ecx, [esp + 0x114]
call fcn.10018e04
mov dword [esp + 0xc], ebx
jmp 0x1001bd3c
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x110]
mov dword [eax + ecx*4], 0xfffb
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x1001bd26
mov eax, dword [esp + 0x110]
xor ecx, ecx
inc ecx
mov dword [eax], ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x110]
call fcn.10018e86
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff2
jle 0x1001bd13
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 8
jne 0x1001bcf9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x1d
jne 0x1001bceb
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
je 0x1001bda3
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x58]
jge 0x1001bdad
cmp dword [esp + 0x58], ebx
jne 0x1001bdad
mov ecx, ebx
jmp 0x1001bdb0
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x54]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x20]
push 0xfffffffffffffffb
setge dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
setle cl
sub edx, ecx
neg edx
pop edi
sbb edx, edx
inc edx
sub eax, edx
mov dword [esp + 0x178], eax
dec dword [esp + 0x24]
mov dword [esp + 0x38], ebx
jmp 0x1001bdfa
mov eax, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x1c0], edi
inc dword [esp + 0x38]
cmp dword [esp + 0x38], esi
jl 0x1001bdeb
push 1
lea ecx, [esp + 0x150]
call fcn.10018e04
mov dword [esp + 0xc], 0x81c2900
mov dword [esp + 0xc], ebx
jmp 0x1001be32
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14c]
mov dword [eax + ecx*4], 0x1713b910
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x1001be1c
mov dword [esp + 0xc], ebx
jmp 0x1001be55
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001be51
push ebx
call dword [sym.imp.USER32.dll_RegisterClassW]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x1001be3f
lea ecx, [esp + 0x14c]
call fcn.10018e86
push 0x6ce5
push ebx
push 0x454e
push 0x130d
push 0x6f7c
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x90]
push eax
call fcn.1001f1a6
add esp, 0x1c
mov dword [esp + 0xc], 0x94592404
lea ecx, [esp + 0x128]
push 2
call fcn.10018e04
push 2
mov dword [esp + 0x14], ebx
pop edx
jmp 0x1001bec0
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x30], 0x24a8c6a5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001beb0
mov dword [esp + 0x10], ebx
jmp 0x1001bee2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x128]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001becc
mov dword [esp + 0x30], 0xb
jmp 0x1001c0b9
mov dword [esp + 0x1c], ebx
xor ecx, ecx
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x20], 0x97bde515
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
cmp eax, 0xcd9d7
setg cl
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
neg eax
sbb eax, eax
neg eax
cmp eax, 0xa3187110
mov eax, dword [esp + 0x30]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp eax, ecx
setg dl
dec edx
jne 0x1001bf49
cmp dword [esp + 0x30], ebx
jne 0x1001bf49
mov eax, ebx
jmp 0x1001bf4c
xor eax, eax
inc eax
imul ecx, dword [esp + 0x30], 0x21df
sub ecx, eax
mov eax, dword [esp + 0x30]
neg ecx
sbb ecx, ecx
inc ecx
add eax, ecx
je 0x1001c018
mov dword [esp + 0x24], 0xd1ed
cmp dword [esp + 0x24], ebx
je 0x1001bfce
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [esp + 0xc]
cmp eax, 0xfffffff7
setne cl
imul ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x1001bf92
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x24]
imul ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
add ecx, 0xab0c3e5f
cmp ecx, eax
mov eax, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x1c]
jle 0x1001bfce
xor ecx, ecx
inc ecx
jmp 0x1001bfd0
mov ecx, ebx
xor eax, eax
cmp ecx, esi
setg al
xor ecx, ecx
cmp eax, 0x171c2502
setne cl
add ecx, dword [esp + 0x14]
imul ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1001bff2
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
xor edx, edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
add ecx, eax
mov eax, dword [esp + 0x24]
cmp ecx, eax
setge dl
mov dword [esp + 0x14], edx
jmp 0x1001c0af
mov dword [esp + 0x24], 0x36352b72
mov dword [esp + 0x10], 0x6546d79
mov dword [esp + 0x10], 0x9acce304
mov dword [esp + 0x28], 0x51263067
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x30]
jne 0x1001c04c
cmp dword [esp + 0x24], ebx
jne 0x1001c04c
mov ecx, ebx
jmp 0x1001c04f
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0x24]
cmp ecx, edi
setne dl
xor ecx, ecx
cmp eax, edx
setl cl
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
dec eax
neg eax
sbb eax, eax
neg eax
sub eax, edx
neg eax
sbb eax, eax
inc eax
imul eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
cmp dword [esp + 0xc], ebx
jne 0x1001c0c4
dec dword [esp + 0x30]
cmp dword [esp + 0x30], 0xfffffff4
jle 0x1001bef5
mov eax, dword [esp + 0x128]
lea ecx, [esp + 0x128]
mov dword [esp + 0x30], 0x4064
mov dword [eax], 1
call fcn.10018e86
push 2
lea ecx, [esp + 0xa0]
call fcn.10018e04
xor edx, edx
mov dword [esp + 0x1c], 0xfffffff8
inc edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ebx
jmp 0x1001c11e
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x9c]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1001c108
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x1c], ebx
jl 0x1001c245
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x14], 0xcf13e13a
mov dword [esp + 0xc], ebx
jmp 0x1001c158
lea ecx, [esp + 0x9c]
call fcn.10018e86
mov eax, dword [esp + 0x78]
mov dword [eax], ebx
mov eax, dword [esp + 0x78]
cmp dword [eax], esi
jge 0x1001c306