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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100742e5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x520
push ebx
push esi
push edi
xor edi, edi
mov dword [esp + 0x60], ecx
inc edi
mov dword [esp + 0x68], edx
push edi
lea ecx, [esp + 0x130]
call fcn.1000c0ba
xor ebx, ebx
mov dword [esp + 0x534], ebx
push 8
mov dword [esp + 0x10], 0x81c2900
pop esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], ebx
jmp 0x10021ea4
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x12c]
mov dword [eax + ecx*4], 0x1713b910
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x10021e8e
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], ebx
jg 0x10021f71
push 2
lea ecx, [esp + 0x190]
call fcn.1000c0ba
mov dword [esp + 0x20], ebx
jmp 0x10021ee2
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18c]
mov dword [eax + ecx*4], 0x56ebf4d
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x10021ecc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x12c]
cmp dword [eax + ecx*4], ebx
jne 0x10021f1f
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x12c]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
mov edx, ebx
test eax, eax
je 0x10021f21
mov edx, edi
mov eax, dword [esp + 0x18c]
xor ecx, ecx
cmp dword [eax], ebx
setne cl
imul eax, ecx, 0x3860
cmp eax, 0xffffffff
jg 0x10021f3e
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov eax, dword [esp + 0x18c]
cmp edx, dword [eax]
setle cl
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x18c]
call fcn.1000c116
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x10021eb8
push 8
pop esi
or dword [esp + 0x534], 0xffffffff
lea ecx, [esp + 0x12c]
call fcn.1000c116
mov eax, dword [0x10f36798]
test al, 1
jne 0x10022023
or eax, edi
mov dword [0x10f36798], eax
push ebx
mov dword [esp + 0x538], edi
push ebx
mov dword [0x10f367c0], ebx
mov dword [0x10f367c4], ebx
call fcn.10014be9
mov dword [0x10f367c0], eax
mov dword [0x10f367c8], ebx
mov dword [0x10f367d0], ebx
mov byte [esp + 0x534], 3
mov ecx, 0x10f367c8
mov dword [esp + 0x114], eax
lea eax, [esp + 0x114]
push eax
push 0x10
push ebx
lea eax, [esp + 0x2a4]
mov dword [0x10f367dc], 0x3f800000
push eax
mov dword [0x10f367cc], ebx
call fcn.1001498d
push 0x10075110
mov dword [0x10f367d4], 7
mov dword [0x10f367d8], esi
call fcn.10059596
or dword [esp + 0x538], 0xffffffff
pop ecx
mov dword [esp + 0x2c], 0xffffffff
lea ecx, [esp + 0x150]
mov dword [esp + 0x30], 0xfffffffc
push 3
call fcn.1000c0ba
push 3
mov dword [esp + 0x538], 4
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10022064
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x9c], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10022055
mov dword [esp + 0x10], ebx
jmp 0x10022086
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x150]
mov dword [eax + ecx*4], 0xae734f12
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10022070
mov dword [esp + 0xa0], 0xffffffe6
jmp 0x10022467
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], 0xed38
mov dword [esp + 0x20], ebx
jmp 0x100220bd
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x88], ebx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x100220ae
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
jl 0x100223e3
mov dword [esp + 0x30], 0x1ec3
cmp dword [esp + 0x30], 0x1120
jge 0x100223af
mov dword [esp + 0x54], 0xf
mov dword [esp + 0x50], ebx
mov byte [esp + 0x40], bl
push 0x1000a690
lea ecx, [esp + 0x100]
mov byte [esp + 0x538], 5
call fcn.1000c081
lea edx, [esp + 0x40]
mov byte [esp + 0x534], 6
mov ecx, 0x10665a70
mov dword [esp + 0x20], ebx
call fcn.10025c54
mov esi, dword [esp + 0x50]
mov edi, ebx
test esi, esi
jle 0x10022315
push ebx
push 0x6e
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp eax, esi
jae 0x10022315
xor eax, eax
lea ecx, [esp + 0xfc]
push 0x6e
inc eax
push eax
call fcn.10014216
push ebx
push 0x6e
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
push ebx
cmovae ecx, dword [esp + 0x44]
push 0x69
mov byte [eax + ecx], 0x20
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp eax, esi
jae 0x10022315
xor eax, eax
lea ecx, [esp + 0xfc]
push 0x69
inc eax
push eax
call fcn.10014216
push ebx
push 0x69
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
push ebx
cmovae ecx, dword [esp + 0x44]
push 0x6e
mov byte [eax + ecx], 0x20
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp eax, esi
jae 0x10022315
xor eax, eax
lea ecx, [esp + 0xfc]
push 0x6e
inc eax
push eax
call fcn.10014216
push ebx
push 0x6e
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
push ebx
cmovae ecx, dword [esp + 0x44]
push 0x65
mov byte [eax + ecx], 0x20
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp eax, esi
jae 0x10022315
xor eax, eax
lea ecx, [esp + 0xfc]
push 0x65
inc eax
push eax
call fcn.10014216
push ebx
push 0x65
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
push ebx
cmovae ecx, dword [esp + 0x44]
push 0x74
mov byte [eax + ecx], 0x20
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp eax, esi
jae 0x10022315
xor eax, eax
lea ecx, [esp + 0xfc]
push 0x74
inc eax
push eax
call fcn.10014216
push ebx
push 0x74
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
push ebx
cmovae ecx, dword [esp + 0x44]
push 0x65
mov byte [eax + ecx], 0x20
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp eax, esi
jae 0x10022315
xor eax, eax
lea ecx, [esp + 0xfc]
push 0x65
inc eax
push eax
call fcn.10014216
push ebx
push 0x65
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
push ebx
cmovae ecx, dword [esp + 0x44]
push 0x65
mov byte [eax + ecx], 0x20
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp eax, esi
jae 0x10022315
xor eax, eax
lea ecx, [esp + 0xfc]
push 0x65
inc eax
push eax
call fcn.10014216
push ebx
push 0x65
lea ecx, [esp + 0x48]
call fcn.1002489a
cmp dword [esp + 0x54], 0x10
lea ecx, [esp + 0x40]
inc edi
cmovae ecx, dword [esp + 0x40]
mov byte [eax + ecx], 0x20
cmp edi, esi
jl 0x10022138
xor edi, edi
inc edi
jmp 0x10022378
push ecx
push ecx
lea eax, [esp + 0x2fc]
push eax
lea ecx, [esp + 0x108]
call fcn.10024913
mov edx, 0x1000a9c8
mov byte [esp + 0x534], 7
mov ecx, eax
call fcn.100258d7
push ebx
push edi
lea ecx, [esp + 0x2fc]
mov byte [esp + 0x2f], al
mov byte [esp + 0x53c], 6
call fcn.1000c21a
cmp byte [esp + 0x27], 0
je 0x10022369
inc dword [esp + 0x20]
push 7
push ebx
lea ecx, [esp + 0x104]
call fcn.1000c351
cmp dword [esp + 0x10c], edi
ja 0x1002231a
push dword [esp + 0x20]
mov ecx, 0x106659b8
call fcn.100109c9
push eax
call fcn.10014ec1
pop ecx
push ebx
push edi
lea ecx, [esp + 0x104]
call fcn.1000c21a
push ebx
push edi
lea ecx, [esp + 0x48]
call fcn.1000c21a
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x100223d9
push ebx
push 0xbd0
push 0x24ec
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetCharABCWidthsW]
dec dword [esp + 0x18]
jns 0x100220d1
mov eax, dword [esp + 0x88]
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, edi
setge cl
add ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
inc ecx
add ecx, dword [esp + 0x34]
cmp ecx, 6
jle 0x10022413
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x88]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x2c]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
cmp edi, ecx
sbb eax, eax
inc eax
mov dword [esp + 0x30], eax
inc dword [esp + 0xa0]
cmp dword [esp + 0xa0], 0x14
jg 0x1002209c
mov eax, dword [esp + 0x150]
xor edx, edx
cmp dword [eax], edi
setne dl
xor ecx, ecx
cmp edx, dword [eax + 4]
mov eax, dword [esp + 0xa4]
setne cl
imul eax, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x150]
sbb ecx, ecx
or dword [esp + 0x534], 0xffffffff
inc ecx
mov dword [eax], ecx
lea ecx, [esp + 0x150]
call fcn.1000c116
imul eax, dword [esp + 0x60], 0x2710
add eax, dword [esp + 0x68]
mov dword [esp + 0xb0], eax
mov dword [esp + 0x30], 0x23e9
cmp dword [esp + 0x30], 0xeeb
jge 0x10022615
lea eax, [esp + 0xb4]
push eax
push 0x1000a6d8
call fcn.100593cb
pop ecx
pop ecx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
call fcn.10025871
mov dword [esp + 0x94], eax
mov dword [esp + 0x534], 8
mov edi, ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0xb4], edi
jle 0x100225f1
lea eax, [esp + 0x58]
push eax
push 0x1000a6d8
call fcn.100593cb
mov esi, dword [esp + 0x60]
pop ecx
pop ecx
test esi, esi
je 0x100225d6
mov ecx, dword [esp + 0x94]
mov edx, ecx
mov eax, dword [ecx + 4]
cmp byte [eax + 0xd], 0
jne 0x1002258d
cmp dword [eax + 0x10], esi
jge 0x1002256a
mov eax, dword [eax + 8]
jmp 0x1002256e
mov edx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x10022560
cmp edx, ecx
je 0x1002258d
cmp esi, dword [edx + 0x10]
jl 0x1002258d
mov dword [esp + 0x13c], edx
lea eax, [esp + 0x13c]
jmp 0x1002259b
mov dword [esp + 0x128], ecx
lea eax, [esp + 0x128]
cmp dword [eax], ecx
lea eax, [esp + 0x58]
lea ecx, [esp + 0x94]
push eax
jne 0x100225b8
call fcn.10025185
mov dword [eax], 1
jmp 0x100225d6
call fcn.10025185
lea ecx, [esp + 0x94]
inc dword [eax]
lea eax, [esp + 0x58]
push eax
inc edi
call fcn.10025185
cmp dword [eax], 2
jg 0x100225ee
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0xb4]
jl 0x10022531
jmp 0x100225f1
or edi, 0xffffffff
push edi
push 0x1000a7c4
call fcn.100595c0
or dword [esp + 0x53c], 0xffffffff
pop ecx
pop ecx
lea ecx, [esp + 0x94]
call fcn.10024fd2
xor edi, edi
inc edi
mov dword [esp + 0x10], 0xec2e0cf5
mov dword [esp + 0x10], 8
jmp 0x100226c5
mov dword [esp + 0xc], edi
mov dword [esp + 0x30], 0xfffffff7
mov dword [esp + 0xc], ebx
jmp 0x100226b6
mov dword [esp + 0x2c], 3
cmp dword [esp + 0x10], ebx
jne 0x10022690
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp eax, 7
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x10]
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x2c]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
add edx, 0xa522
cmp edx, eax
setge cl
cmp ecx, dword [esp + 0x2c]
mov ecx, ebx
jne 0x10022692
mov ecx, edi
mov eax, dword [esp + 0x10]
xor edx, edx
sub ecx, eax
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setge dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [esp + 0x30], ecx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff9
jle 0x1002263c
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff2
jg 0x1002262a
lea eax, [esp + 0xb0]
push eax
call fcn.10025123
push edi
lea ecx, [esp + 0x21c]
mov esi, dword [eax]
mov dword [esp + 0x34], esi
call fcn.1000c0ba
mov dword [esp + 0x20], 0xb50bf34f
mov dword [esp + 0x20], ebx
jmp 0x10022714
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x218]
mov dword [eax + ecx*4], 0x8b13eca4
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x100226fe
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x10022740
push 0x208f
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_PolyPolygon]
mov dword [esp + 0x20], ebx
jmp 0x1002275c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x218]
mov dword [eax + ecx*4], 0xe60f951
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x10022746
lea ecx, [esp + 0x218]
call fcn.1000c116
mov dword [esp + 0xc], edi
push edi
test esi, esi
je 0x100229ab
mov dword [esp + 0x24], edi
lea ecx, [esp + 0xd8]
call fcn.1000c0ba
push 3
lea ecx, [esp + 0x204]
mov dword [esp + 0x538], 9
call fcn.1000c0ba
push 3
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x538], 0xa
call fcn.1000c0ba
push 2
lea ecx, [esp + 0x228]
mov byte [esp + 0x538], 0xb
call fcn.1000c0ba
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x68], 0xfff6
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], ebx
jmp 0x10022800
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0xb2e5f58c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x100227ea
push 3
mov dword [esp + 0x18], ebx
pop edx
jmp 0x10022825
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x200]
mov dword [eax + ecx*4], 0xc83b9135
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1002280f
mov dword [esp + 0x14], ebx
jmp 0x10022847
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1a4]
mov dword [eax + ecx*4], 0xea37
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x10022831
mov dword [esp + 0x14], ebx
jmp 0x10022869
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x224]
mov dword [eax + ecx*4], 0x37e05af8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10022853
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xd4]
mov dword [eax], edi
mov eax, dword [esp + 0xc]
cmp eax, edi
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
setle cl
sub edx, ecx
neg edx
sbb edx, edx
neg edx
add eax, edx
jne 0x100228a8
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xd4]
mov edi, dword [esp + 0x200]
mov esi, dword [esp + 0x1a4]
cmp dword [eax], ebx
mov eax, dword [esp + 0x224]
setne dl
xor ecx, ecx
cmp edx, dword [edi + 8]
sete cl
imul ecx, dword [esi + 4]
mov dword [eax + 4], ecx
xor ecx, ecx
cmp dword [edi], ebx
setne cl
xor eax, eax
cmp ecx, dword [esi]
setl al
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1a4]
cmp dword [eax], ebx
jne 0x10022918
cmp dword [esi + 4], ebx
je 0x1002291d
xor eax, eax
lea ebx, [eax + 1]
xor edx, edx
mov dword [esp + 0x68], ebx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
cmp eax, ecx
mov eax, dword [esp + 0xd4]
setge dl
xor ecx, ecx
cmp edx, dword [eax]
mov eax, dword [esp + 0x2c]
setl cl
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, ecx
mov eax, dword [esp + 0xd4]
setg dl
inc edx
sub edx, dword [edi + 8]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x32af
setg cl
mov dword [eax], ecx
lea ecx, [esp + 0x224]
call fcn.1000c116
lea ecx, [esp + 0x1a4]
call fcn.1000c116
lea ecx, [esp + 0x200]
call fcn.1000c116
lea ecx, [esp + 0xd4]
call fcn.1000c116
mov eax, dword [esp + 0x30]
mov dword [esp + 0x118], eax
jmp 0x10024876
mov dword [esp + 0x18], 0xd6887694
lea ecx, [esp + 0xcc]
mov dword [esp + 0x24], 6
mov dword [esp + 0x30], 0xffffffff
call fcn.1000c0ba
mov dword [esp + 0x534], 0xc
mov dword [esp + 0x20], ebx
jmp 0x100229f6
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xc8]
mov dword [eax + ecx*4], 0xaa08
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jl 0x100229e0
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], 0x7535
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0xc8]
setl dl
cmp edx, dword [eax]
jg 0x10022a3e
mov eax, ebx
cmp dword [esp + 0x20], ebx
je 0x10022a40
mov eax, edi
xor ecx, ecx
cmp eax, 0x6684
mov eax, dword [esp + 0xc8]
setle cl
inc ecx
imul ecx, dword [eax]
test ecx, ecx
jne 0x10022a61
mov ecx, ebx
cmp dword [esp + 0x20], ebx
je 0x10022a63
mov ecx, edi
mov dword [esp + 0xc], 6
xor edx, edx
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov eax, dword [esp + 0xc]
setne dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
jmp 0x10022b85
mov dword [esp + 0x30], 0x4c46983c
lea ecx, [esp + 0x24c]
push 3
call fcn.1000c0ba
mov dword [esp + 0x2c], 8
mov dword [esp + 0x34], 0xe879096a
mov dword [esp + 0x20], ebx
jmp 0x10022acc
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24c]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 3
jl 0x10022aba
mov dword [esp + 0x14], ebx
jmp 0x10022b6b
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x34], ecx
xor ecx, ecx
mov eax, dword [edi + eax*4]
cmp eax, dword [edi + edx*4]
setge cl
xor eax, eax
cmp ecx, dword [edi + esi*4]
mov ecx, dword [esp + 0x34]
setg al
sub eax, dword [edi + ecx*4]
neg eax
sbb eax, eax
inc eax
neg eax
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], 0x86e1
jge 0x10022b34
cmp dword [esp + 0x14], ebx
jne 0x10022b4b
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc8]
cmp dword [eax + ecx*4], ebx
jne 0x10022b4b
xor edi, edi
mov esi, ebx
inc edi
jmp 0x10022b50
xor edi, edi
inc edi
mov esi, edi
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0xc8]
cmp dword [eax + ecx*4], esi
setg dl
mov dword [esp + 0x34], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x10022adc
lea ecx, [esp + 0x24c]
call fcn.1000c116
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x10022a8e
or dword [esp + 0x534], 0xffffffff
lea ecx, [esp + 0xc8]
call fcn.1000c116
mov eax, dword [0x10f36798]
test al, 2
jne 0x10022c47
or eax, 2
mov dword [0x10f36798], eax
push ebx
mov dword [esp + 0x538], 0xd
push ebx
mov dword [0x10f367a0], ebx
mov dword [0x10f367a4], ebx
call fcn.10014be9
mov dword [0x10f367a0], eax
mov dword [0x10f367a8], ebx
mov dword [0x10f367b0], ebx
mov byte [esp + 0x534], 0xf
mov ecx, 0x10f367a8
mov dword [esp + 0x138], eax
lea eax, [esp + 0x138]
push eax
push 0x10
push ebx
lea eax, [esp + 0x78]
mov dword [0x10f367bc], 0x3f800000
push eax
mov dword [0x10f367ac], ebx
call fcn.1001498d
push 0x1007510b
mov dword [0x10f367b4], 7
mov dword [0x10f367b8], 8
call fcn.10059596
or dword [esp + 0x538], 0xffffffff
pop ecx
mov dword [esp + 0x1c], 0x532bb11a
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x14], 0x2d8cb4c2
mov dword [esp + 0x20], edi
push 2
call fcn.1000c0ba
push 0xfffffffffffffffe
mov dword [esp + 0x538], 0x10
mov dword [esp + 0x10], ebx
pop edx
jmp 0x10022c8f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1dc]
mov dword [eax + ecx*4], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10022c7d
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x1c], ebx
jge 0x10022d54
mov dword [esp + 0x30], 4
mov dword [esp + 0x20], ebx
jmp 0x10022cdd
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xc0], edx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x10022cce
mov dword [esp + 0x14], ebx
jmp 0x10022d49
mov dword [esp + 0x30], 0x4b6369dd
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0xc0]
cmp dword [esp + 0xc0], 0xfe51
jl 0x10022d15
mov eax, dword [esp + 0xc0]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0xc0]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0xc0]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x10022cea
jmp 0x10022e0e
mov dword [esp + 0xc], 0xc7592e0c
mov dword [esp + 0x20], ebx
jmp 0x10022d75
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x260], 0x8e20b458
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x10022d62
mov ecx, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0xc]
cmp ecx, eax
setle dl
imul eax, edx, 0xe333
test eax, eax
jne 0x10022d9f
cmp dword [esp + 0x1c], ebx
jne 0x10022d9f
mov eax, dword [esp + 0xc]
mov esi, 0xffff385c
mov dword [esp + 0x260], esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
sub edx, 0xb392
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
xor eax, eax
cmp ecx, esi
setg al
xor ecx, ecx
neg eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
cmp eax, edi
mov eax, dword [esp + 0xc]
setl cl
xor edx, edx
cmp dword [esp + 0x30], ecx
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x10022e0e
push edi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov dword [esp + 0x1c], ebx
jmp 0x10022e8e
mov dword [esp + 0x20], ebx
jmp 0x10022e84
mov dword [esp + 0x14], ebx
jmp 0x10022e68
push 2
lea ecx, [esp + 0x19c]
call fcn.1000c0ba
mov dword [esp + 0xc], ebx
jmp 0x10022e46
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x198]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10022e34
mov eax, dword [esp + 0x198]
lea ecx, [esp + 0x198]
cmp dword [eax], ebx
jne 0x10022e70
call fcn.1000c116
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x10022e20
jmp 0x10022e75
call fcn.1000c116
mov eax, dword [esp + 0x1dc]
cmp dword [eax], ebx
jne 0x10022e8a
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x10022e1a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jle 0x10022e14
or dword [esp + 0x534], 0xffffffff
lea ecx, [esp + 0x1dc]
call fcn.1000c116
lea eax, [esp + 0x60]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0xf0], xmm0
call fcn.100251d6
mov esi, dword [eax]
mov al, byte [ebp + 0xc]
mov dword [esp + 0x20], esi
test al, al
jne 0x10022ed3
test esi, esi
jne 0x100238fd
lea ecx, [esp + 0x318]
mov dl, al
push ecx
mov ecx, dword [esp + 0x64]
call fcn.10015ff4
mov esi, eax
mov dword [esp + 0xe4], ebx
lea edi, [esp + 0xf0]
mov dword [esp + 0xe8], ebx
pop ecx
push dword [esp + 0x6c]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x2bc]
push eax
lea eax, [esp + 0x2b0]
mov dword [esp + 0xf0], ebx
push eax
movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xec]
xorps xmm0, xmm0
push ebx
movdqu xmmword [esp + 0x2b8], xmm0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.10025f28
xor edi, edi
mov dword [esp + 0x534], 0x11
inc edi
mov dword [esp + 0x18], 0x90c4d8e5
mov dword [esp + 0x1c], 0xe63a5bed
lea ecx, [esp + 0x274]
push edi
call fcn.1000c0ba
mov byte [esp + 0x534], 0x12
mov dword [esp + 0x30], 0x1577
cmp dword [esp + 0x30], 0xb71
jge 0x10023043
call fcn.1005b677
push eax
push 0x1000a91c
push 0x1000a920
call fcn.1005bc71
add esp, 0xc
call fcn.1005b677
add eax, 0x20
push eax
push 0x1000a928
push 0x1000a92c
call fcn.1005bc71
add esp, 0xc
lea eax, [esp + 0x64]
push eax
push 0x1000a6d8
call fcn.100593cb
mov eax, dword [esp + 0x6c]
pop ecx
pop ecx
test eax, eax
je 0x10023043
mov edi, ebx
test eax, eax
jle 0x10022ff1
lea esi, [esp + 0x328]
push esi
push 0x1000a6d8
call fcn.100593cb
mov eax, dword [esp + 0x6c]
inc edi
pop ecx
add esi, 4
pop ecx
cmp edi, eax
jl 0x10022fd8
lea edi, [eax + 1]
mov ecx, eax
mov edx, ebx
test edi, edi
jle 0x10023027
test ecx, ecx
je 0x10023018
mov esi, dword [esp + edx*4 + 0x328]
cmp ecx, esi
jle 0x10023010
lea ecx, [esi - 1]
jmp 0x10023011
dec ecx
inc edx
cmp edx, edi
jl 0x10022ffc
jmp 0x10023027
sub eax, edx
push eax
push 0x1000a7c4
call fcn.100595c0
pop ecx
pop ecx
lea eax, [esp + 0x64]
push eax
push 0x1000a6d8
call fcn.100593cb
mov eax, dword [esp + 0x6c]
pop ecx
pop ecx
test eax, eax
jne 0x10022fcb
xor edi, edi
inc edi
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0xc], ebx
jmp 0x10023063
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x274]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x10023051
mov dword [esp + 0x18], ebx
jmp 0x10023322
mov dword [esp + 0xc], 0xe31d8329
lea ecx, [esp + 0x280]
push 3
call fcn.1000c0ba
mov byte [esp + 0x534], 0x13
mov dword [esp + 0xc], ebx
jmp 0x100230ac
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x280]
mov dword [eax + ecx*4], 5
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x10023096
mov dword [esp + 0xc], ebx
jmp 0x100232ff
mov dword [esp + 0x14], 0x87a912e7
mov dword [esp + 0x10], 0xc415
mov dword [esp + 0x10], ebx
jmp 0x100230e5
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2e8], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100230d2
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x18]
jle 0x1002310e
mov edx, edi
cmp dword [esp + 0xc], ebx
jne 0x10023110
mov edx, ebx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
setg cl
xor edx, edx
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xe0]
setle cl
mov eax, dword [eax + esi*4]
sub eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1c], ebx
jmp 0x100232f0
push 2
lea ecx, [esp + 0x210]
call fcn.1000c0ba
mov byte [esp + 0x534], 0x14
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x1002318d
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xac], 0xdbfad241
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1002317a
mov dword [esp + 0x10], ebx
jmp 0x100231af
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20c]
mov dword [eax + ecx*4], 0x3999ea34
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10023199
mov dword [esp + 0x14], 3
cmp dword [esp + 0x14], ebx
jl 0x100232d8
push edi
lea ecx, [esp + 0x16c]
call fcn.1000c0ba
mov dword [esp + 0x10], ebx
jmp 0x100231f1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x168]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100231db
mov dword [esp + 0x10], ebx
jmp 0x10023210
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x29c], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100231fd
mov dword [esp + 0x10], ebx
jmp 0x100232b3
mov eax, dword [esp + 0x168]
push 0
dec dword [eax]
mov dword [esp + 0x2a0], edi
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
cmp eax, 1
mov edx, dword [esp + 0xe4]
pop eax
setg al
sub eax, dword [edx + ecx*4]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x30], eax
xor eax, eax
cmp dword [esp + 0x30], 0xc327
setge al
cmp eax, dword [edx + edi*4]
jl 0x1002327a
cmp dword [esp + 0x29c], ebx
jne 0x1002327a
xor edi, edi
mov eax, ebx
inc edi
jmp 0x1002327f
xor edi, edi
inc edi
mov eax, edi
mov dword [esp + 0x2ec], eax
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0xac]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0xac]
cmp eax, 0xdf97
mov eax, dword [esp + 0x20c]
setg cl
mov dword [eax], ecx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x10023220
cmp dword [esp + 0x2c], ebx
lea ecx, [esp + 0x168]
call fcn.1000c116
dec dword [esp + 0x14]
jns 0x100231c8
lea ecx, [esp + 0x20c]
mov byte [esp + 0x534], 0x13
call fcn.1000c116
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jle 0x10023156
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jle 0x100230bc
lea ecx, [esp + 0x280]
mov byte [esp + 0x534], 0x12
call fcn.1000c116
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jle 0x10023072
lea ecx, [esp + 0x274]
call fcn.1000c116
or dword [esp + 0x534], 0xffffffff
lea ecx, [esp + 0xe0]
call fcn.1000c116
cmp byte [ebp + 0xc], 0
je 0x100238f9
cmp dword [esp + 0xf4], 0
je 0x100238f9
mov dword [esp + 0xc], 0xfffd
mov eax, 0xbc90
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], 9
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x10], ebx
jmp 0x100233b7
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x140], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x100233a4
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0xc]
dec eax
add eax, dword [esp + 0xc]
neg eax
push 2
sbb eax, eax
xor edx, edx
neg eax
cmp eax, 0x9694d2b5
pop esi
setne dl
xor eax, eax
test ecx, ecx
setg al
xor ecx, ecx
cmp eax, edx
setle cl
xor eax, eax
cmp ecx, 0x3707
setle al
imul eax, dword [esp + 0xc]
sub eax, 6
sub eax, dword [esp + 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], 0xfffffff6
mov dword [esp + 0x10], 0xfffffff8
cmp dword [esp + 0x10], 0xffffffe7
jl 0x100235d0
mov dword [esp + 0x2c], 0x516035e9
mov dword [esp + 0xc], ebx
jmp 0x10023453
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x8c], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10023444
mov dword [esp + 0x18], 0xffffffee
jmp 0x10023501
mov dword [esp + 0xc], 0xbdae8940
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
sub ecx, eax
je 0x10023484
mov eax, dword [esp + 0x90]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
sub ecx, eax
mov dword [esp + 0x148], ecx
neg ecx
mov eax, dword [esp + 0x238]
cmp ecx, eax
jg 0x100234ad
mov edx, edi
cmp dword [esp + 0x18], ebx
jne 0x100234af
mov edx, ebx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
setle cl
sub edx, 0x6e2c9bf5
neg edx
push 4
sbb edx, edx
inc edx
sub edx, ecx
neg edx
pop ecx
sbb edx, edx
inc edx
sub eax, edx
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ebx
jmp 0x100234f7
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x140], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x100234e8
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x1c
jle 0x10023466
mov dword [esp + 0xc], ebx
jmp 0x100235bd
mov dword [esp + 0x14], 3
mov dword [esp + 0x18], ebx
jmp 0x10023536
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x1b0], 0x489718b2
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x10023523
cmp dword [esp + 0x8c], ebx
je 0x1002354c
mov eax, dword [esp + 0x90]
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b0]
mov eax, dword [esp + 0x148]
dec ecx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, eax
mov eax, dword [esp + 0x90]
setge dl
xor ecx, ecx
sub edx, eax
mov eax, dword [esp + 0x1c]
cmp edx, eax
setle cl
add ecx, dword [esp + 0x148]
mov dword [esp + 0x2c], ecx
mov ecx, edi
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
dec dword [esp + 0x14]
cmp eax, 0x7874d2d9
cmovle ecx, ebx
xor eax, eax
test ecx, ecx
setle al
add eax, dword [esp + 0x90]
mov dword [esp + 0x148], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jle 0x10023515
dec dword [esp + 0x10]
jmp 0x1002342b
mov eax, dword [esp + 0xf8]
lea ecx, [esp + 0x174]
push esi
mov dword [esp + 0x120], eax
call fcn.1000c0ba
mov dword [esp + 0x534], 0x15
mov dword [esp + 0xc], 0x9beb0647
mov dword [esp + 0x1c], 0x8c683368
mov dword [esp + 0x38], 0xffff
mov dword [esp + 0xc], ebx
jmp 0x1002362a
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x174]
mov dword [eax + ecx*4], 0xbca63185
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x10023614
mov dword [esp + 0xc], edi
cmp dword [esp + 0xc], ebx
jl 0x100238d7
mov esi, dword [esp + 0x174]
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], 0xa1245c81
mov dword [esp + 0x28], 0xa90611bc
mov dword [esp + 0x28], 0x7ee39f3f
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0xdd013d0b
mov dword [esp + 0x28], 9
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 5
mov dword [esp + 0x28], edi
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], 0x14b11f38
mov dword [esp + 0x28], 0xaae07ea4
mov dword [esp + 0x28], 0xb3799040
mov dword [esp + 0x28], 7
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0xbcabebf3
push 0xfffffffffffffff7
pop eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], 0x58bbe58
push 0xfffffffffffffffd
pop ecx
mov dword [esp + 0x28], 0xf23d37f4
mov dword [esp + 0x28], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x28c]
mov dword [esp + 0x28], 0xfffffffc
push 3
call fcn.1000c0ba
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], 0x7d9cc132
mov dword [esp + 0x30], 0x1c19
cmp dword [esp + 0x30], 0x4a0
jge 0x1002380a
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0xac]
push eax
push 0x1000a9d4
call fcn.100593cb
mov edi, ebx
add esp, 0xc
cmp dword [esp + 0xa8], edi
jle 0x10023807
mov eax, edi
and eax, 0x80000001
jns 0x10023762
dec eax
or eax, 0xfffffffe
inc eax
jne 0x10023780
mov esi, ebx
cmp dword [esp + 0x3c], esi
jle 0x100237ea
push 0x1000a890
call fcn.100595c0
inc esi
pop ecx
cmp esi, dword [esp + 0x3c]
jl 0x1002376c
jmp 0x100237ea
mov eax, edi
and eax, 0x80000003
jns 0x1002378e
dec eax
or eax, 0xfffffffc
inc eax
cmp eax, 1
jne 0x100237ba
mov eax, dword [esp + 0x3c]
mov esi, ebx
dec eax
test eax, eax
jle 0x100237b3
push 0x1000a804
call fcn.100595c0
mov eax, dword [esp + 0x40]
inc esi
dec eax
pop ecx
cmp esi, eax
jl 0x1002379e
push 0x1000a890
jmp 0x100237ef
cmp eax, 3
jne 0x100237f5
push 0x1000a890
call fcn.100595c0
mov eax, dword [esp + 0x40]
mov esi, ebx
dec eax
pop ecx
test eax, eax
jle 0x100237ea
push 0x1000a804
call fcn.100595c0
mov eax, dword [esp + 0x40]
inc esi
dec eax
pop ecx
cmp esi, eax
jl 0x100237d5
push 0x1000a690
call fcn.10059696
pop ecx
inc edi
cmp edi, dword [esp + 0xa8]
jl 0x10023754
mov esi, dword [esp + 0x34]
xor edi, edi
inc edi
mov dword [esp + 0x10], ebx
jmp 0x1002381f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x124], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10023810
mov dword [esp + 0x10], ebx
jmp 0x1002383d
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28c]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1002382b
mov eax, dword [esp + 0x18]
add eax, 0x6003
dec dword [esp + 0x18]
cmp eax, 0xfffffff7
jle 0x1002387e
mov eax, dword [esp + 0x124]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x174]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, ebx
cmp dword [esp + 0x2c], ebx
je 0x10023880
mov eax, edi
add eax, 0xa104b736
jne 0x1002388f
mov ecx, ebx
cmp dword [esp + 0x14], ebx
je 0x10023891
mov ecx, edi
mov eax, 0x4d9e
sub eax, ecx
jne 0x100238a2
mov eax, ebx
cmp dword [esp + 0x38], ebx
je 0x100238a4
mov eax, edi
cmp eax, dword [esi + 4]
je 0x100238b1
mov edx, ebx
cmp dword [esp + 0x1c], ebx
je 0x100238b3
mov edx, edi
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esi + 4], ecx
lea ecx, [esp + 0x28c]
call fcn.1000c116
dec dword [esp + 0xc]
jns 0x10023649
or dword [esp + 0x534], 0xffffffff
lea ecx, [esp + 0x174]
call fcn.1000c116
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x120], eax
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], 0xd073
lea ecx, [esp + 0x1b8]
mov dword [esp + 0xc], 0x951ea66e
mov dword [esp + 0x2c], 0xfffffffe
push 4
call fcn.1000c0ba
mov dword [esp + 0x18], ebx
jmp 0x1002393f
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1b8]
mov dword [eax + ecx*4], 0x2314
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10023929
mov eax, dword [esp + 0x10]
cmp dword [esp + 0xc], ebx
je 0x10023954
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp ecx, eax
setle dl
dec edx
add edx, dword [esp + 0x10]
neg edx
sbb edx, edx
add edx, 2
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x10]
jge 0x100239b0
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x100239d3
push 0x1a1
push 0x1030
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetPixel]
jmp 0x100239d3
mov dword [esp + 0xc], ebx
jmp 0x100239cc
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1b8]
mov dword [eax + ecx*4], 0xa0f0
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x100239b6
lea ecx, [esp + 0x1b8]
call fcn.1000c116
test esi, esi
jne 0x10023ff0
cmp dword [esp + 0xec], esi
jle 0x10023ff0
mov dword [esp + 0x10], ebx
lea ecx, [esp + 0x1f4]
push edi
call fcn.1000c0ba
mov dword [esp + 0x534], 0x16
mov dword [esp + 0x28], 0xc2489102
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
jmp 0x10023a38
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1f4]
mov dword [eax + ecx*4], 0x9b2cfb63
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10023a22
mov dword [esp + 0x10], ebx
jmp 0x10023a57
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x258], 0x3090707e
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10023a44
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0xffffffe4
jge 0x10023c53
mov dword [esp + 0xc], 0x10b999fb
mov dword [esp + 0x28], 0x8e10e5e5
mov dword [esp + 0x2c], 0xffff
mov dword [esp + 0x28], 0x28c7fffa
mov dword [esp + 0x28], 0xb26c4f32
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0xce35a12a
mov dword [esp + 0x28], 0xb756fd8c
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x28], 0xa44f34d8
mov dword [esp + 0x28], ebx
mov dword [esp + 0x28], 0xfffffff7
mov dword [esp + 0x28], 0x3b3bbbb5
mov dword [esp + 0x28], 0x160c6370
mov dword [esp + 0x28], 4
mov dword [esp + 0xc], ebx
jmp 0x10023c36
mov dword [esp + 0x1c], 0xd00585b7
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x28], 0x920b2455
mov dword [esp + 0x28], 0xf944dcd6
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x18], ebx
jmp 0x10023b27
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x30c], 0x6a67606e
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10023b14
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], ebx
jl 0x10023c32
mov dword [esp + 0x30], 5
lea ecx, [esp + 0x268]
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 4
mov dword [esp + 0x30], 0x69b45c76
push 2
call fcn.1000c0ba
mov dword [esp + 0x18], ebx
jmp 0x10023b86
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x268]
mov dword [eax + ecx*4], 0xcec02dfc
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x10023b70
dec dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
sub ecx, 0xf497c316
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x28]
setne dl
neg edx
sub edx, 0xfffffff8
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x1f4]
setge cl
xor edx, edx
cmp dword [eax + esi*4], ecx
sete dl
xor eax, eax
cmp edx, 5
setle al
mov dword [esp + 0x258], eax
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x10023c1c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x10023ae6
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe4
jl 0x10023a6d
mov esi, dword [esp + 0x20]
or dword [esp + 0x534], 0xffffffff
lea ecx, [esp + 0x1f4]
call fcn.1000c116
mov dword [esp + 0x28], 0xd5e4
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x10023c95
push 0x1ce4
push 0x24d7
push 0x135d
push 0xcba
push ebx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x10023cad
push 0x2b0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp dword [esp + 0xf0], 0
je 0x10023ff0
mov dword [esp + 0x18], 0xc5416513
lea ecx, [esp + 0x240]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xc], 0x289aa508
mov dword [esp + 0x28], 0x12fd89d6
mov dword [esp + 0x38], ebx
push 2
call fcn.1000c0ba
mov dword [esp + 0x10], 9
mov dword [esp + 0x20], ebx
jmp 0x10023d09
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x240]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x20]
cmp dword [esp + 0x20], 2
jl 0x10023cf7
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
inc eax
je 0x10023d2f
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
sub ecx, 5
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
je 0x10023d57
mov edx, edi
cmp dword [esp + 0xc], ebx
jne 0x10023d59
mov edx, ebx
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setle cl
sub eax, ecx
inc eax
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x18]
jg 0x10023d7e
mov ecx, edi
cmp dword [esp + 0xc], ebx
jne 0x10023d80
mov ecx, ebx
mov eax, dword [esp + 0x28]
sub ecx, eax
mov eax, 0x8298bbeb
cmp eax, ecx
lea ecx, [esp + 0x240]
sbb eax, eax
add eax, 0xfffffffd
mov dword [esp + 0x18], eax
dec dword [esp + 0x10]
call fcn.1000c116
mov ecx, dword [esp + 0xf0]
call fcn.10021dfe
mov dword [esp + 0x38], 0x65925ef2
lea ecx, [esp + 0x15c]
mov dword [esp + 0x34], 0x670012af
mov esi, eax
mov dword [esp + 0x28], 0x368a9017
mov dword [esp + 0x18], 0x4f204795
push 4
mov dword [esp + 0x24], eax
call fcn.1000c0ba
mov dword [esp + 0x534], 0x17
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x28], ebx
mov dword [esp + 0xc], 0xfffffffa
mov dword [esp + 0x28], 0x24f0
cmp dword [esp + 0x28], 0xc7d
jge 0x10023e95
mov dword [esp + 0x1c], 0x4ec2e0cf
mov dword [esp + 0x28], 0x6c20b133
mov dword [esp + 0x1c], ebx
jmp 0x1002410b
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0xae7b79f6
mov dword [esp + 0x38], edi
mov dword [esp + 0xc], 0xfffffff5
jmp 0x100240fc
mov dword [esp + 0x14], 0x92bd
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], 8
cmp dword [esp + 0x1c], ebx
je 0x1002408a
mov dword [esp + 0x2c], 0x329b3a00
mov dword [esp + 0x28], 0x99a5
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x2c], ebx
je 0x1002405e
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
cmp eax, edi
setge cl
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 0x10]
test eax, eax
jne 0x10024086
mov eax, ebx
cmp dword [esp + 0x2c], ebx
je 0x100240f4
mov eax, edi
jmp 0x100240f4
mov dword [esp + 0x18], 0xffffffff
cmp dword [esp + 0xc], ebx
jne 0x100240cc
cmp dword [esp + 0x38], ebx
jne 0x100240a6
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x2c], edi
jl 0x100240b0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], 0xa2589d38
mov edx, ebx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x1c], ebx
je 0x100240ce
mov edx, edi
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setle cl
imul eax, ecx
imul eax, eax, 0xadbd
sub eax, dword [esp + 0x14]
neg eax
sbb eax, eax
inc eax
imul eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xffffffe5
jne 0x10024026
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff9
jl 0x10024009
mov dword [esp + 0x1c], 0x13
jmp 0x10024130
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xfffffff0
jge 0x10024120
lea ecx, [esp + 0xec]
call fcn.1001e7cf
mov dword [esp + 0x10], 0xdc9ed9ba
lea ecx, [esp + 0x1d0]
mov dword [esp + 0x18], 0xfffffff6
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], 0x310c13fe
mov dword [esp + 0x14], edi
push 4
call fcn.1000c0ba
mov dword [esp + 0x534], 0x19
mov dword [esp + 0xc], ebx
jmp 0x10024198
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1d0]
mov dword [eax + ecx*4], 0xfff9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x10024182
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x18], edi
jl 0x100241d2
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jne 0x10024209
mov byte [esp + 0x27], bl
cmp byte [esp + 0x27], 0
je 0x10024458
push edi
push 0x208
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
jmp 0x10024458
push dword [esp + 0x6c]
movdqa xmm0, xmmword [0x1000af80]
lea eax, [esp + 0x2ec]
push eax
lea eax, [esp + 0x2e0]
mov dword [esp + 0x84], ebx
push eax
push ebx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x90], ebx
movdqu xmmword [esp + 0x2e8], xmm0
mov dword [esp + 0x94], ebx
call fcn.10025f28
push 3
mov dword [esp + 0x1c], ebx
pop eax
cmp dword [esp + 0x18], eax
jg 0x1002444f
mov dword [esp + 0x30], 0xbc0ba889
mov dword [esp + 0x10], ebx
jmp 0x100243b1
lea ecx, [esp + 0x7c]
call fcn.1000c116
cmp dword [esp + 0x18], ebx
jne 0x10024466
mov eax, dword [ebp + 8]
lea esi, [esp + 0x118]
mov ecx, dword [esp + 0x52c]
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