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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10081270
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1f0
mov dword [esp + 0x38], edx
mov dword [esp + 4], 0xffffffff
push ebx
mov dword [esp + 0xc], 0xeb44952
xor ebx, ebx
mov dword [esp + 0x14], 0xffffffff
push esi
mov dword [esp + 0x20], ebx
push edi
mov dword [esp + 0x24], 0x9a67b9c5
mov edi, ecx
mov dword [esp + 0x14], ebx
jmp 0x1001949f
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1e8], 0xb51404fc
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1001948c
mov dword [esp + 0x10], 0xfffffffb
cmp dword [esp + 0x10], ebx
jne 0x10019563
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
test eax, eax
mov eax, dword [esp + 0x1c]
setle cl
xor edx, edx
cmp ecx, 0xffffffff
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x14]
setge cl
mov dword [esp + 0x28], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
cmp ecx, 0xfffffff8
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, 0xc6c8951b
jbe 0x10019514
cmp dword [esp + 0x10], ebx
jne 0x10019514
mov edx, ebx
jmp 0x10019517
xor edx, edx
inc edx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
sub edx, eax
mov eax, dword [esp + 0x10]
cmp edx, eax
setle cl
cmp ecx, dword [esp + 0x10]
jge 0x10019538
cmp dword [esp + 0x14], ebx
jne 0x10019538
mov edx, ebx
jmp 0x1001953b
xor edx, edx
inc edx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
setle cl
imul ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x10019555
cmp dword [esp + 0x10], ebx
je 0x1001955f
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x10], ebx
jne 0x10019563
mov ecx, ebx
jmp 0x10019566
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x1c]
mov esi, dword [sym.imp.USER32.dll_GetDesktopWindow]
imul eax, ecx
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x6daafd55
mov dword [esp + 0x1e8], eax
setle cl
add ecx, 5
je 0x100195a7
mov dword [esp + 0x24], 0xd4c01e07
inc dword [esp + 0x24]
jmp 0x100195ee
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x100195ee
push 0x934
push 0x14b
push 0xa8b
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
push 0x1dc8
push 0x21fd
push 0x974
push 0x7a5
call esi
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov dword [esp + 0x14], 0x7d65121a
lea ecx, [esp + 0xa8]
push 4
call fcn.100169cf
mov dword [esp + 0x30], 0xfffffffa
xor edx, edx
mov dword [esp + 0x24], 0xfd522803
inc edx
mov dword [esp + 0x24], 0xa8db8846
mov dword [esp + 0x28], 0x7c8a
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebx
jmp 0x10019647
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x10019631
push 3
mov dword [esp + 0x24], ebx
pop ecx
jmp 0x1001966a
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x10c], 5
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ecx
jl 0x10019657
mov dword [esp + 0x20], ebx
jmp 0x10019689
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x1d0], 0xffffffff
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ecx
jl 0x10019676
mov dword [esp + 0x20], ebx
jmp 0x100196a8
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x1dc], 0x6c5533f2
inc dword [esp + 0x20]
cmp dword [esp + 0x20], ecx
jl 0x10019695
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp eax, edx
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0x30]
setle cl
xor edx, edx
cmp ecx, 1
mov dword [esi + 8], ecx
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xfd81
setge cl
sub eax, ecx
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x110]
cmp eax, 0x4a6b2c4e
setle cl
cmp dword [esp + 0x14], ecx
jg 0x10019718
mov eax, dword [esp + 0xa8]
cmp dword [eax + 4], ebx
jne 0x10019718
mov eax, ebx
jmp 0x1001971b
xor eax, eax
inc eax
add eax, 0x9e14
jne 0x1001972c
cmp dword [esi + 8], ebx
jne 0x1001972c
xor edx, edx
inc edx
jmp 0x1001972e
mov edx, ebx
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x110]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1d4], eax
jne 0x1001975b
cmp dword [esp + 0x14], ebx
jne 0x1001975b
mov edx, ebx
jmp 0x1001975e
xor edx, edx
inc edx
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x30]
setge cl
xor edx, edx
cmp ecx, eax
lea ecx, [esp + 0xa8]
setne dl
xor eax, eax
cmp edx, 6
setne al
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1e4], 8
call fcn.1001729d
mov dword [esp + 0x14], 0xfa51
lea ecx, [esp + 0xb4]
mov dword [esp + 0x1c], 0x540d7f82
push 3
call fcn.100169cf
mov dword [esp + 0x204], ebx
mov dword [esp + 0x28], 0xfffffffc
mov dword [esp + 0x1c], ebx
jmp 0x100197eb
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xb4]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x100197d5
mov dword [esp + 0x1c], ebx
jmp 0x10019a7f
push 3
lea ecx, [esp + 0x98]
call fcn.100169cf
xor edx, edx
inc edx
mov byte [esp + 0x204], dl
mov dword [esp + 0x24], 0xd0357257
mov dword [esp + 0x24], 0x3f0244c3
mov dword [esp + 0x30], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], 0x4e7f
mov dword [esp + 0x20], ebx
jmp 0x10019853
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x94]
mov dword [eax + ecx*4], 0xfc0272a
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x1001983d
mov dword [esp + 0x20], ebx
jmp 0x10019873
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x178], 0x81eca6c8
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x10019860
mov dword [esp + 0x20], ebx
jmp 0x10019893
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x190], 0x5a60c437
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 4
jl 0x10019880
mov dword [esp + 0x20], ebx
jmp 0x100198b3
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xa0], 0x158e
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x100198a0
mov ecx, dword [esp + 0x2c]
mov esi, edx
mov eax, dword [esp + 0x30]
inc dword [esp + 0x2c]
cmp ecx, eax
cmove esi, ebx
inc dword [esp + 0x190]
mov eax, dword [esp + 0x30]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xb4]
mov dword [eax], 0xfffffff6
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov eax, dword [esp + 0x1c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x178]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setle dl
sub edx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], edx
xor edx, edx
cmp esi, dword [esp + 0x24]
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x1c]
setl cl
xor edx, edx
imul ecx, ecx, 0x5465
cmp ecx, eax
mov eax, dword [esp + 0x10]
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x28]
setl cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x24], eax
mov eax, dword [esp + 0x94]
setne cl
xor edx, edx
cmp ecx, 0xc462
setne dl
xor ecx, ecx
cmp dword [eax + 8], edx
setg cl
imul eax, ecx, 0x426c
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], ebx
je 0x100199d7
mov dword [esp + 0x10], ebx
jmp 0x100199b3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa0], 0x7f49
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100199a0
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019a68
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_UnionRect]
jmp 0x10019a68
push 2
lea ecx, [esp + 0x11c]
call fcn.100169cf
mov dword [esp + 0x10], ebx
jmp 0x10019a01
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x118]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100199eb
mov dword [esp + 0x10], ebx
jmp 0x10019a55
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x94]
mov ecx, dword [eax + ecx*4]
cmp ecx, 0x87f9bd85
mov eax, dword [esp + 0x118]
mov dword [edx + esi*4], ecx
mov dword [eax], ecx
sbb eax, eax
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xb4]
mov dword [eax], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jle 0x10019a0e
lea ecx, [esp + 0x118]
call fcn.1001729d
lea ecx, [esp + 0x94]
mov byte [esp + 0x204], bl
call fcn.1001729d
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff8
jle 0x100197fb
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019aa9
push 0x1fd6
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_RedrawWindow]
or dword [esp + 0x204], 0xffffffff
lea ecx, [esp + 0xb4]
call fcn.1001729d
mov dword [esp + 0x14c], ebx
xor esi, esi
mov dword [esp + 0x150], ebx
inc esi
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x1c], esi
dec dword [esp + 0x1c]
mov dword [esp + 0x1c], ebx
jmp 0x10019b1b
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], 7
jmp 0x10019b10
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10019b0c
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegLoadKeyW]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff6
jle 0x10019af8
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xa
jl 0x10019aea
push dword [esp + 0x40]
movdqa xmm0, xmmword [0x10007ca0]
lea eax, [esp + 0x1b4]
mov dword [esp + 0x2c], 3
lea ecx, [esp + 0x74]
mov dword [esp + 0x2c], 0xbaf43b7c
push eax
mov dword [esp + 0x30], 0xffffffff
lea eax, [esp + 0x1a8]
mov dword [esp + 0x30], 2
push eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x34], 0x6f5a9c4c
mov dword [esp + 0x34], 0xfffffffa
push ebx
movdqu xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
call fcn.1001809b
mov dword [esp + 0x204], 2
lea ecx, [esp + 0xc0]
push dword [esp + 0x40]
movdqa xmm0, xmmword [0x10007c60]
mov eax, 0x674f
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x2c], 0x598aaf0a
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
lea eax, [esp + 0x1d4]
push eax
lea eax, [esp + 0x1c8]
mov dword [esp + 0xc8], ebx
push eax
push ebx
movdqu xmmword [esp + 0x1d0], xmm0
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
call fcn.1001809b
dec dword [esp + 0xe0]
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x70]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xc0]
call fcn.1001729d
or dword [esp + 0x204], 0xffffffff
lea ecx, [esp + 0x70]
call fcn.1001729d
push 2
pop edx
mov dword [esp + 0x28], edx
xor ecx, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, 0x941f
push 0xfffffffffffffff8
setl cl
mov dword [esp + 0x150], ecx
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], 0x3d5943e2
mov dword [esp + 0x18], 0xe2db
pop eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x2c], 0x8530de9b
mov dword [esp + 0x28], 0x83e7
mov dword [esp + 0x24], 0xb221494f
mov dword [esp + 0x1c], ebx
push 4
pop ecx
jmp 0x10019cf3
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x13c], 0xffffffff
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ecx
jl 0x10019ce0
inc dword [esp + 0x14]
push 3
mov dword [esp + 0x18], ebx
pop esi
cmp dword [esp + 0x14], esi
jg 0x10019def
mov dword [esp + 0x28], 0xe3e4
mov dword [esp + 0x30], 0xac06e326
mov dword [esp + 0x30], 0xc8e12b6a
mov dword [esp + 0x1c], ebx
jmp 0x10019d3b
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x124], esi
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x10019d2c
cmp dword [esp + 0x28], ebx
jne 0x10019d4e
mov eax, dword [esp + 0x144]
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x15c], eax
inc dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x144]
cmp eax, 0xf20bab1f
mov eax, dword [esp + 0x12c]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x128]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x144]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setge dl
mov dword [esp + 0x28], edx
xor edx, edx
cmp eax, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
setge dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0xc8cdab0b
sbb eax, eax
add eax, 0x46bc
mov dword [esp + 0x140], eax
mov dword [esp + 0x12c], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jle 0x10019d0e
push 2
pop edx
push 4
pop ecx
mov dword [esp + 0x10], 0x99dada43
mov dword [esp + 0x28], 0xc8100c43
mov dword [esp + 0x14], ebx
jmp 0x10019e15
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x4c], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x10019e05
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], ebx
jl 0x10019e79
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x4c]
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x4c]
mov dword [esp + 0x28], 0x4f230135
cmp dword [esp + 0x28], ebx
jne 0x10019e79
dec dword [esp + 0x10]
jns 0x10019e25
mov eax, dword [esp + 0x4c]
imul eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov byte [esp + 0x1b], bl
mov dword [esp + 0x2c], 0x34392f20
mov dword [esp + 0x28], 0xd635
mov dword [esp + 0x10], ebx
jmp 0x10019eac
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x38], esi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x10019ea0
mov dword [esp + 0x10], ebx
jmp 0x10019ec5
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x7c], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10019eb9
mov dword [esp + 0x38], 0x19
jmp 0x10019fb8
mov dword [esp + 0x10], 0x48f69f7f
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], 0xc8d46758
mov dword [esp + 0x10], ebx
jmp 0x10019fa9
mov dword [esp + 0x1c], 0x657689a
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + eax*4 + 0x7c]
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x7c], ecx
test ecx, ecx
jne 0x10019f23
mov dword [esp + 0x14], 0xfffa
cmp dword [esp + 0x14], ebx
jne 0x10019f23
mov edx, ebx
jmp 0x10019f26
xor edx, edx
inc edx
cmp dword [esp + 0x38], 0xfd06
jne 0x10019f3b
cmp dword [esp + 0x1c], ebx
je 0x10019f3b
xor eax, eax
inc eax
jmp 0x10019f3d
mov eax, ebx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x2c]
je 0x10019f55
cmp dword [esp + 0x24], ebx
jne 0x10019f55
mov ecx, ebx
jmp 0x10019f58
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x1c]
sub eax, ecx
xor ecx, ecx
cmp edx, eax
push 2
setne cl
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 0xffffffe3
pop edx
cmp dword [esp + 0x1c], 0xc
jl 0x10019fa5
mov dword [esp + 0x14], ebx
jmp 0x10019f99
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x7c], 0xfbb9cf7d
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10019f89
inc dword [esp + 0x1c]
jmp 0x10019f7c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jle 0x10019ef5
dec dword [esp + 0x38]
cmp dword [esp + 0x38], 0xfffffffa
jl 0x10019ed8
cmp byte [esp + 0x1b], 0
je 0x1001a16f
push edx
lea ecx, [esp + 0x188]
call fcn.100169cf
push 1
lea ecx, [esp + 0xd0]
mov dword [esp + 0x208], esi
call fcn.100169cf
mov dword [esp + 0x10], ebx
jmp 0x1001a008
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x184]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10019ff6
mov dword [esp + 0x10], ebx
jmp 0x1001a02b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0x2ee76f50
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001a015
mov eax, dword [esp + 0xcc]
mov dword [eax], ebx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a061
push 0xb17
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PolyPolyline]
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a079
push ebx
push 0x23b7
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov eax, dword [esp + 0xcc]
inc dword [eax]
cmp dword [eax], 1
jle 0x1001a03b
lea ecx, [esp + 0xcc]
call fcn.1001729d
or dword [esp + 0x204], 0xffffffff
lea ecx, [esp + 0x184]
call fcn.1001729d
push ebx
push 0x79af
push 0x8c7
call fcn.1001c090
add esp, 0xc
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x28], 0x10977a12
lea ecx, [esp + 0x100]
mov dword [esp + 0x24], 4
mov dword [esp + 0x28], 0x4ff5452f
push 2
call fcn.100169cf
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebx
jmp 0x1001a108
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x100]
mov dword [eax + ecx*4], 5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1001a0f2
mov eax, dword [esp + 0x24]
xor edx, edx
cmp eax, 1
setge dl
xor ecx, ecx
imul edx, dword [esp + 0x24]
imul edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
cmp edx, eax
mov eax, dword [esp + 0x2c]
setne cl
xor edx, edx
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
neg edx
sbb edx, edx
inc edx
imul ecx, edx, 0xb064
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x100]
lea ecx, [esp + 0x100]
setg dl
mov dword [eax + 4], edx
mov dword [esp + 0x30], edx
call fcn.1001729d
cmp dword [edi + 0x10], ebx
jne 0x1001a17b
xor al, al
jmp 0x1001a657
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x16c]
push 1
mov dword [eax], ebx
mov dword [esp + 0x18], 0x7ad95e17
mov dword [esp + 0x2c], 0xfffffff7
call fcn.100169cf
xor ecx, ecx
mov dword [esp + 0x204], 4
inc ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ebx
jmp 0x1001a1ce
mov eax, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x180], 0x4e2db58
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], ecx
jl 0x1001a1bb
lea eax, [esp + 0x16c]
push eax
push 0x30e9
push 0x20af
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.1001a73e
push 0x44cb
lea eax, [esp + 0x58]
push ebx
push eax
call fcn.1001c6f9
add esp, 0x20
mov dword [esp + 0x14], 0xffffffeb
jmp 0x1001a230
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a22c
push 0x75c4
push ebx
push 0x34cd
call fcn.1001cf36
add esp, 0xc
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffe7
je 0x1001a20e
or dword [esp + 0x204], 0xffffffff
lea ecx, [esp + 0x16c]
call fcn.1001729d
cmp dword [edi + 0x14], 0x10
jb 0x1001a255
mov ecx, dword [edi]
jmp 0x1001a257
mov ecx, edi
cmp dword [edi + 0x14], 0x10
mov dword [esp + 0x48], ecx
jb 0x1001a265
mov edx, dword [edi]
jmp 0x1001a267
mov edx, edi
mov eax, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
je 0x1001a3f7
mov al, byte [ecx]
cmp al, 0x30
jl 0x1001a29d
cmp al, 0x39
jg 0x1001a29d
push ebx
push 0x191e
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.10024e96
mov ecx, dword [esp + 0x58]
add esp, 0x10
inc ecx
jmp 0x1001a257
push 2
mov dword [esp + 0x30], 0xffffffff
lea ecx, [esp + 0xec]
pop edi
mov dword [esp + 0x28], 0x10977a12
mov dword [esp + 0x24], 4
mov dword [esp + 0x28], 0x4ff5452f
push edi
call fcn.100169cf
lea eax, [esp + 0x90]
mov dword [esp + 0x204], 5
push eax
push ebx
lea eax, [esp + 0xf0]
mov dword [esp + 0x38], ebx
push eax
push 0x7165
push 0x33d1
call fcn.1001c28c
mov eax, dword [esp + 0x38]
xor edx, edx
add esp, 0x14
cmp eax, 1
setge dl
xor ecx, ecx
imul edx, dword [esp + 0x24]
imul edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
cmp edx, eax
mov eax, dword [esp + 0x2c]
setne cl
xor edx, edx
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
neg edx
sbb edx, edx
inc edx
imul ecx, edx, 0xb064
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0xe8]
setg dl
mov dword [eax + 4], edx
mov dword [esp + 0x30], edx
or dword [esp + 0x204], 0xffffffff
call fcn.1001729d
mov eax, dword [esp + 0x44]
mov dword [eax], ebx
mov dword [esp + 0x1c], 0x860b4ffb
mov dword [esp + 0x14], ebx
jmp 0x1001a387
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x58], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1001a37b
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], ebx
jl 0x1001a3e1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x14], edi
cmp dword [esp + 0x14], ebx
jl 0x1001a3db
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x58]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x58], ecx
dec dword [esp + 0x14]
jns 0x1001a3a5
dec dword [esp + 0x1c]
jns 0x1001a397
lea eax, [esp + 0x37]
mov byte [esp + 0x37], bl
push ebx
push eax
call fcn.1001a6aa
pop ecx
pop ecx
jmp 0x1001a174
push dword [esp + 0x90]
movdqa xmm0, xmmword [0x10007c10]
lea eax, [esp + 0x1c4]
push eax
lea eax, [esp + 0x1b8]
mov dword [esp + 0x6c], ebx
push eax
push ebx
lea ecx, [esp + 0x74]
mov dword [esp + 0x78], ebx
movdqu xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0x7c], ebx
call fcn.1001809b
mov dword [esp + 0x204], 6
lea ecx, [esp + 0x130]
mov dword [esp + 0x20], 0xfffffffa
mov dword [esp + 0x28], 0x8e1b61ba
mov dword [esp + 0x28], 0x2a82a10a
mov dword [esp + 0x24], 0x6bc044b0
push esi
call fcn.100169cf
mov byte [esp + 0x204], 7
mov dword [esp + 0x1c], 7
mov dword [esp + 0x14], ebx
jmp 0x1001a499
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x130]
mov dword [eax + ecx*4], 0x5cd3860a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1001a483
mov dword [esp + 0x20], ebx
jmp 0x1001a636
mov dword [esp + 0x30], 0x15e1abe8
lea ecx, [esp + 0x84]
mov dword [esp + 0x24], 0xfffffff7
mov dword [esp + 0x2c], 0x74c38b6b
push 1
call fcn.100169cf
push esi
lea ecx, [esp + 0xf8]
mov byte [esp + 0x208], 8
call fcn.100169cf
mov dword [esp + 0x10], ebx
jmp 0x1001a4ff
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0x2bf33880
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001a4e9
mov dword [esp + 0x10], ebx
jmp 0x1001a522
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xf4]
mov dword [eax + ecx*4], 0xf0cf
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001a50c
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001a53a
push ebx
call dword [sym.imp.GDI32.dll_CreatePalette]
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x130]
mov ecx, dword [edx + 4]
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x64]
inc dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebx
je 0x1001a5c2
mov eax, dword [esp + 0x84]
mov ecx, 0x9eed08e1
cmp ecx, dword [eax]
mov eax, dword [esp + 0x24]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
sete cl
cmp ecx, dword [esp + 0x2c]
jl 0x1001a59c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x64]
cmp dword [eax + ecx*4], ebx
jne 0x1001a5a6
cmp dword [esp + 0x28], ebx
jne 0x1001a5a6
mov edx, ebx
jmp 0x1001a5a9
xor edx, edx
inc edx
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov eax, dword [esp + 0x20]
imul ecx, edx
add eax, ecx
je 0x1001a5c2
xor ecx, ecx
inc ecx
jmp 0x1001a5c4
mov ecx, ebx
mov eax, dword [esp + 0x84]
xor edx, edx
mov eax, dword [eax]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x30]
add ecx, 0xffff87fc
cmp ecx, eax
setle dl
add edx, dword [esp + 0x30]
cmp edx, 0x5a4e
jge 0x1001a5f8
cmp dword [esp + 0x2c], ebx
je 0x1001a5f8
xor ecx, ecx
inc ecx
jmp 0x1001a5fa
mov ecx, ebx
mov eax, dword [esp + 0x1c]
sub ecx, eax
je 0x1001a606
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xf4]
mov dword [esp + 0x30], 1
call fcn.1001729d
lea ecx, [esp + 0x84]
mov byte [esp + 0x204], 7
call fcn.1001729d
inc dword [esp + 0x20]
cmp dword [esp + 0x20], esi
jle 0x1001a4a8
lea ecx, [esp + 0x130]
call fcn.1001729d
lea ecx, [esp + 0x64]
call fcn.1001729d
mov al, 1
mov ecx, dword [esp + 0x1fc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret