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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1006246a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2b8
push ebx
push esi
push edi
mov dword [esp + 0x4c], ecx
mov esi, edx
mov dword [esp + 0x14], 0x1d61
cmp dword [esp + 0x14], 0x105d
push 0
mov dword [esp + 0x28], esi
pop ebx
jge 0x1003f676
lea eax, [esp + 0x44]
push eax
push 0x10007784
call fcn.1004833b
jmp 0x1003f667
push 0x1181fe14
dec eax
push 0x1181fe50
push 0x10007a30
mov dword [esp + 0x50], eax
call fcn.1004833b
add esp, 0xc
push 0x2f
push ebx
push 0x1181fe20
call fcn.10014121
add esp, 0xc
call fcn.1003f4c3
push eax
push 0x10007a24
call fcn.10048556
mov eax, dword [esp + 0x4c]
pop ecx
pop ecx
test eax, eax
jne 0x1003f62b
dec eax
mov dword [esp + 0x44], eax
mov dword [esp + 0xc], 0x5a136951
or edi, 0xffffffff
mov dword [esp + 0x38], edi
mov dword [esp + 0x14], 0x5dc1b6ea
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebx
jmp 0x1003f6a7
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x3c], 0xc0ae9714
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1003f697
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], 0
je 0x1003f6ce
push 0x6a6
push 0x687
push 0x1fb8
call dword [sym.imp.GDI32.dll_LineTo]
mov dword [esp + 0xc], ebx
jmp 0x1003f794
mov dword [esp + 0x14], 0x7c869b7d
xor edx, edx
mov dword [esp + 0x2c], 0x261718bc
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ebx
imul ecx, dword [esp + 0x14], 0xcf81
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x3c]
setg dl
xor ecx, ecx
cmp edx, eax
setge cl
inc ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
sub eax, 0xcd44
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffffc
mov eax, dword [esp + 0x38]
setle cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0xc]
setl dl
add edx, dword [esp + eax*4 + 0x3c]
mov eax, dword [esp + 0xc]
cmp edx, 0xf5047c4d
sbb ecx, ecx
neg ecx
cmp dword [esp + eax*4 + 0x3c], ecx
jge 0x1003f762
cmp dword [esp + 0x20], ebx
je 0x1003f762
xor edx, edx
inc edx
jmp 0x1003f764
mov edx, ebx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x2c]
setle dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, edi
setle al
mov dword [esp + 0x3c], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x1003f6d7
mov eax, dword [0x118203b0]
test al, 1
jne 0x1003f840
or eax, 1
mov dword [0x118203b0], eax
push ebx
mov dword [esp + 0x2d0], ebx
push ebx
mov dword [0x11820390], ebx
mov dword [0x11820394], ebx
call fcn.10015ebd
mov dword [0x11820390], eax
mov dword [0x11820398], ebx
mov dword [0x118203a0], ebx
mov byte [esp + 0x2cc], 2
mov ecx, 0x11820398
mov dword [esp + 0x1d0], eax
lea eax, [esp + 0x1d0]
push eax
push 0x10
push ebx
lea eax, [esp + 0x24c]
mov dword [0x118203ac], 0x3f800000
push eax
mov dword [0x1182039c], ebx
call fcn.10015c6a
push 0x10062738
mov dword [0x118203a4], 7
mov dword [0x118203a8], 8
call fcn.1004852c
pop ecx
mov dword [esp + 0x2cc], edi
mov dword [esp + 0xc], 0x42eb90da
lea ecx, [esp + 0x6c]
push 4
call fcn.1000b4e9
push 3
pop edi
push 4
lea ecx, [esp + 0xdc]
mov dword [esp + 0x2d0], edi
call fcn.1000b4e9
mov byte [esp + 0x2cc], 4
mov dword [esp + 0xc], ebx
jmp 0x1003f88c
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x1003f879
mov dword [esp + 0xc], ebx
jmp 0x1003f8ab
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xd8]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x1003f899
mov dword [esp + 0xc], 0xf
cmp dword [esp + 0xc], 0xfffffff3
jne 0x1003f96a
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x14], 0xfffffffc
lea ecx, [esp + 0x1c4]
push 1
call fcn.1000b4e9
mov dword [esp + 0x10], ebx
jmp 0x1003f8ff
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c4]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1003f8ec
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov dword [esi + 4], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], 0xfffe
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
cmp dword [eax], ebx
mov eax, dword [esp + 0x1c4]
sete cl
add ecx, dword [edi + 4]
push eax
mov dword [eax], ecx
call fcn.100486c7
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1d0], ebx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffff3
pop ecx
je 0x1003f8d0
mov esi, dword [esp + 0x24]
push 3
pop edi
mov dword [esp + 0xc], ebx
jmp 0x1003f983
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0xf62c4df8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x1003f970
cmp dword [esp + 0xd8], 0
je 0x1003f9b6
push dword [esp + 0xd8]
call fcn.100486c7
pop ecx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
or eax, 0xffffffff
mov dword [esp + 0x2cc], eax
cmp dword [esp + 0x6c], 0
je 0x1003f9dd
push dword [esp + 0x6c]
call fcn.100486c7
pop ecx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
imul eax, dword [esp + 0x4c], 0x2710
lea ecx, [esp + 0xfc]
push 1
add eax, esi
mov dword [esp + 0x9c], eax
call fcn.1000b4e9
mov dword [esp + 0x2cc], 5
lea ecx, [esp + 0x114]
mov dword [esp + 0x14], 0xd15de05d
mov dword [esp + 0x14], 0x7c04ccb6
push edi
call fcn.1000b4e9
xor edx, edx
mov byte [esp + 0x2cc], 6
mov dword [esp + 0xc], ebx
inc edx
jmp 0x1003fa47
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xfc]
mov dword [eax + ecx*4], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1003fa35
mov dword [esp + 0xc], ebx
jmp 0x1003fa69
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x114]
mov dword [eax + ecx*4], 0x278fa8f9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edi
jl 0x1003fa53
mov eax, dword [esp + 0xfc]
push 9
pop ecx
cmp dword [eax], ebx
je 0x1003fae6
mov dword [esp + 0x20], edx
or eax, 0xffffffff
mov dword [esp + 0x20], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x20], 0xffcf
mov dword [esp + 0x10], ebx
jmp 0x1003fac9
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x298], 0x56f9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1003fab6
inc dword [esp + 0x14]
xor edi, edi
dec dword [esp + 0x20]
inc edi
mov esi, dword [esp + 0xfc]
jmp 0x1003fbcc
or eax, 0xffffffff
mov dword [esp + 0x20], 0x5f88e10e
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x16c]
push edx
call fcn.1000b4e9
xor edi, edi
mov dword [esp + 0x10], ebx
inc edi
jmp 0x1003fb21
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], 0xd8c65816
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1003fb0b
cmp dword [esp + 0x20], 0xea28c7ff
mov esi, dword [esp + 0x114]
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0x15f
setle cl
xor edx, edx
cmp ecx, 0x2b7b88cd
setge dl
xor eax, eax
cmp edx, dword [esi + 8]
setle al
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], 0xa2ef7e29
je 0x1003fb6c
mov eax, ebx
cmp dword [esi + 8], ebx
je 0x1003fb6e
mov eax, edi
xor edx, edx
cmp eax, dword [esi + 8]
mov eax, dword [esp + 0x20]
sete dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x16c]
setne cl
xor edx, edx
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov esi, dword [esp + 0xfc]
push dword [esp + 0x16c]
setne dl
mov dword [esp + 0x18], edx
mov eax, dword [esi]
mov dword [esp + 0x30], eax
call fcn.100486c7
pop ecx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], ebx
cmp dword [esp + 0x114], 0
je 0x1003fbf8
push dword [esp + 0x114]
call fcn.100486c7
pop ecx
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], ebx
or eax, 0xffffffff
push esi
mov dword [esp + 0x2d0], eax
call fcn.100486c7
pop ecx
lea eax, [esp + 0x98]
mov dword [esp + 0xfc], ebx
push eax
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
call fcn.10041bea
mov esi, dword [eax]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], 0x971db956
mov dword [esp + 0x18], 0xfffffffa
cmp dword [esp + 0x18], 0xffffffe3
jl 0x1003fdef
or eax, 0xffffffff
mov dword [esp + 0xc], 8
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 9
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], ebx
jne 0x1003fde0
mov dword [esp + 0x14], 0x85c2f4fe
mov dword [esp + 0x10], ebx
jmp 0x1003fc96
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x9c], 0x80c170c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1003fc83
mov dword [esp + 0xa0], ebx
jmp 0x1003fdad
push 3
lea ecx, [esp + 0x64]
call fcn.1000b4e9
mov dword [esp + 0x14], 0xab83eb61
mov dword [esp + 0x14], 0x3e1b8d81
mov dword [esp + 0x10], ebx
jmp 0x1003fcdd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x56974edf
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1003fcca
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x2c], ebx
je 0x1003fd0a
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], 9
xor edx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
cmp ecx, dword [eax + 8]
mov eax, dword [esp + 0x18]
setne dl
xor ecx, ecx
cmp edx, eax
sete cl
cmp ecx, edi
jge 0x1003fd71
mov dword [esp + 0x38], 3
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], ebx
jne 0x1003fd69
mov eax, ebx
cmp dword [esp + 0x38], ebx
je 0x1003fd6b
mov eax, edi
mov dword [esp + 0x2c], eax
jmp 0x1003fd77
cmp dword [esp + 0x2c], ebx
jne 0x1003fdbd
mov dword [esp + 0x34], 0xfffffff7
jmp 0x1003fd89
dec dword [esp + 0x30]
dec dword [esp + 0x34]
cmp dword [esp + 0x34], 0xffffffef
jg 0x1003fd81
push dword [esp + 0x60]
call fcn.100486c7
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
inc dword [esp + 0xa4]
pop ecx
cmp dword [esp + 0xa0], 0x12
jle 0x1003fca9
jmp 0x1003fdd3
push dword [esp + 0x60]
call fcn.100486c7
pop ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
inc dword [esp + 0xc]
je 0x1003fc75
or eax, 0xffffffff
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe3
jge 0x1003fc4f
test esi, esi
je 0x1003fdff
mov dword [esp + 0xb0], esi
jmp 0x10041819
mov eax, dword [0x118203b0]
test al, 2
jne 0x1003fea3
or eax, 2
mov dword [0x118203b0], eax
push 7
pop esi
push ebx
mov dword [esp + 0x2d0], esi
push ebx
mov dword [0x118203c0], ebx
mov dword [0x118203c4], ebx
call fcn.10015ebd
mov dword [0x118203c0], eax
mov dword [0x118203c8], ebx
mov dword [0x118203d0], ebx
mov byte [esp + 0x2cc], 9
mov ecx, 0x118203c8
mov dword [esp + 0x1f0], eax
lea eax, [esp + 0x1f0]
push eax
push 0x10
push ebx
lea eax, [esp + 0x94]
mov dword [0x118203dc], 0x3f800000
push eax
mov dword [0x118203cc], ebx
call fcn.10015c6a
push 0x10062733
mov dword [0x118203d4], esi
mov dword [0x118203d8], 8
call fcn.1004852c
or eax, 0xffffffff
pop ecx
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x14], 0xdc4b4e12
push 0xfffffffffffffffc
pop esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x14], 0xaaeb9ae7
mov dword [esp + 0x14], 0x1ded6804
mov dword [esp + 0x14], 0xdfe4d9ed
mov dword [esp + 0x14], 0x3f6085e0
mov dword [esp + 0x14], 0x5132d7af
mov dword [esp + 0xc], ebx
jmp 0x1003fef3
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x290], edi
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x1003fee4
mov dword [esp + 0xc], ebx
jmp 0x1003ff13
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x2a4], 7
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x1003ff00
dec dword [esp + 0x14]
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], 0
je 0x1003ff40
push ebx
push 0x1b6c
push ebx
push 0xb7a
push 0x22f1
call dword [sym.imp.GDI32.dll_ExtCreatePen]
lea eax, [esp + 0x4c]
xorps xmm0, xmm0
push eax
movdqu xmmword [esp + 0x1ac], xmm0
call fcn.10041c4c
lea ecx, [esp + 0x154]
mov edi, dword [eax]
or eax, 0xffffffff
mov dword [esp + 0x18], 0x68206240
mov dword [esp + 0xc], 0x37d660f1
mov dword [esp + 0x14], 0x894628ae
mov dword [esp + 0x14], eax
xor eax, eax
inc eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x204], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], eax
push eax
call fcn.1000b4e9
mov dword [esp + 0x2cc], 0xa
mov dword [esp + 0x10], ebx
jmp 0x1003ffce
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1003ffb8
mov dword [esp + 0x18], 0xfffffffb
jmp 0x10040128
push dword [esp + 0x88]
movdqa xmm0, xmmword [0x10007e40]
lea eax, [esp + 0x268]
push eax
lea eax, [esp + 0x25c]
mov dword [esp + 0x58], ebx
push eax
push ebx
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], ebx
movdqu xmmword [esp + 0x264], xmm0
mov dword [esp + 0x68], ebx
call fcn.10037293
cmp dword [esp + 0x18], ebx
je 0x1004006b
mov eax, dword [esp + 0x50]
xor ecx, ecx
cmp dword [eax], 0xeb59
setne cl
cmp dword [esp + 0x18], ecx
jge 0x1004006b
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], 0
je 0x10040107
push 0x5f4
push 0xd41
push ebx
push ebx
push 0x160c
push 0x16b7
call dword [sym.imp.USER32.dll_ToUnicode]
jmp 0x10040107
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
jmp 0x10040088
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x184], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10040075
mov dword [esp + 0x18c], 0xfffffffd
jmp 0x100400fd
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x18c]
cmp eax, dword [esp + 0x20]
jge 0x100400d4
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
cmp dword [eax], ebx
mov eax, dword [esp + 0x18]
setne cl
add eax, 0xfffffffb
add eax, ecx
je 0x100400d4
xor edx, edx
inc edx
jmp 0x100400d6
mov edx, ebx
mov eax, dword [esp + 0x50]
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [esp + 0x20]
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x9676
setge al
mov dword [esp + 0x14], eax
dec dword [esp + 0x18c]
cmp dword [esp + 0x18c], 0xfffffff2
jle 0x1004009c
cmp dword [esp + 0x50], 0
je 0x10040124
push dword [esp + 0x50]
call fcn.100486c7
pop ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 0x11
jl 0x1003ffe2
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], ebx
jmp 0x100401bb
mov byte [esp + 0x2b], bl
cmp byte [esp + 0x2b], 0
je 0x100401a1
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + eax*4 + 0x204]
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x204], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jle 0x1004018f
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], 0xe
je 0x10040233
or ebx, 0xffffffff
mov dword [esp + 0x10], ebx
mov ecx, 0x89f4
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
sub ecx, eax
imul eax, ecx, 0x3f20
sub eax, dword [esp + 0x10]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xc81
je 0x100401fd
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
neg esi
mov eax, dword [esp + 0xc]
sbb esi, esi
xor edx, edx
neg esi
cmp ecx, eax
setne dl
imul edx, dword [esp + 0x20]
imul edx, esi
mov dword [esp + 0x18], edx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xe
jne 0x100401d0
xor ebx, ebx
or eax, 0xffffffff
mov dword [esp + 0x2cc], eax
cmp dword [esp + 0x154], 0
je 0x10040269
push dword [esp + 0x154]
call fcn.100486c7
pop ecx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], ebx
cmp byte [ebp + 0xc], 0
jne 0x10040277
test edi, edi
jne 0x100406d2
mov dword [esp + 0x14], 1
mov byte [esp + 0x1f], bl
mov dword [esp + 0x14], 0x1ac9
cmp dword [esp + 0x14], 0x1170
jge 0x10040359
lea eax, [esp + 0x40]
push eax
push 0x10007788
call fcn.1004833b
pop ecx
jmp 0x10040347
dec eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0x84]
push eax
push 0x10007788
call fcn.1004833b
mov esi, dword [esp + 0x8c]
mov edi, ebx
pop ecx
pop ecx
mov ecx, esi
and ecx, 0x80000001
jns 0x100402df
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x10040302
mov eax, esi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
inc edi
mov eax, esi
and eax, 0x80000001
jns 0x100402f9
dec eax
or eax, 0xfffffffe
inc eax
je 0x100402e1
mov dword [esp + 0x84], esi
mov al, bl
mov byte [esp + 0x2b], al
push 2
pop ecx
cmp esi, 4
jl 0x1004032b
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x10040329
inc ecx
mov eax, ecx
imul eax, ecx
cmp eax, esi
jle 0x10040310
mov al, byte [esp + 0x2b]
jmp 0x1004032b
mov al, 1
cmp esi, 1
jne 0x100403e8
cmp edi, esi
jne 0x100403f9
mov eax, 0x10007d74
push eax
call fcn.10048716
mov eax, dword [esp + 0x44]
pop ecx
test eax, eax
jne 0x100402ae
dec eax
mov dword [esp + 0x40], eax
cmp byte [esp + 0x1f], 0
je 0x10040367
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1004037b
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x2b0]
mov ecx, dword [esp + 0x4c]
push eax
call section..vqcdru_1
mov esi, eax
lea edi, [esp + 0x1ac]
pop ecx
push 4
lea ecx, [esp + 0x10c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], 0x5e48d327
call fcn.1000b4e9
push 3
lea ecx, [esp + 0xf4]
mov dword [esp + 0x2d0], 0xb
call fcn.1000b4e9
push 1
lea ecx, [esp + 0xd0]
mov byte [esp + 0x2d0], 0xc
call fcn.1000b4e9
mov dword [esp + 0x18], ebx
jmp 0x10040419
cmp edi, 1
jne 0x1004033c
test al, al
jne 0x1004033c
mov eax, 0x10007d64
jmp 0x10040341
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x108]
mov dword [eax + ecx*4], 0x7f737a9a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x10040403
mov dword [esp + 0x18], ebx
jmp 0x1004043c
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xf0]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 3
jl 0x10040426
xor edx, edx
mov dword [esp + 0x18], ebx
inc edx
jmp 0x1004045e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edx
jl 0x1004044c
mov dword [esp + 0xc], 0x11
cmp dword [esp + 0xc], 0x19
jl 0x100404bb
mov edx, dword [esp + 0x108]
mov esi, dword [esp + 0xf0]
mov dword [esp + 0x20], 0xdade0980
mov eax, dword [esp + 0xc]
mov dword [edx + 8], eax
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xcc]
mov ecx, dword [esi + 4]
mov dword [eax], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x19
jge 0x10040481
cmp dword [esp + 0xcc], 0
je 0x100404e7
push dword [esp + 0xcc]
call fcn.100486c7
pop ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
cmp dword [esp + 0xf0], 0
je 0x10040513
push dword [esp + 0xf0]
call fcn.100486c7
pop ecx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
or eax, 0xffffffff
mov dword [esp + 0x2cc], eax
cmp dword [esp + 0x108], 0
je 0x10040549
push dword [esp + 0x108]
call fcn.100486c7
pop ecx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
cmp byte [ebp + 0xc], 0
je 0x100406ce
cmp dword [esp + 0x1b0], 0
je 0x100406ce
push 2
pop ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], 0xf0dfbc43
mov dword [esp + 0x10], ebx
jmp 0x10040589
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa4], 6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10040576
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], ecx
jg 0x10040640
push dword [esp + 0x88]
movdqa xmm0, xmmword [0x10007e50]
lea eax, [esp + 0x258]
push eax
lea eax, [esp + 0x24c]
mov dword [esp + 0x80], ebx
push eax
push ebx
lea ecx, [esp + 0x88]
mov dword [esp + 0x8c], ebx
movdqu xmmword [esp + 0x254], xmm0
mov dword [esp + 0x90], ebx
call fcn.10037293
mov esi, dword [esp + 0x78]
mov dword [esi + 4], 2
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x10040610
push 0x6a
push 0x1c48
push 0x91c
call dword [sym.imp.USER32.dll_SetClassLongA]
dec dword [esi + 4]
jns 0x100405f3
push dword [esp + 0x78]
call fcn.100486c7
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
pop ecx
jle 0x1004059e
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xa4]
imul eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xc]
cmp eax, ecx
mov eax, dword [esp + 0xa4]
setne dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0xa4]
setl cl
xor edx, edx
cmp eax, 0xfd947597
mov eax, dword [esp + 0xac]
setne dl
sub edx, ecx
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x1b0]
sete cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb8], eax
mov edi, dword [esp + 0x34]
mov dword [esp + 0x14], 0xc60edac7
lea ecx, [esp + 0x13c]
mov dword [esp + 0x20], 0xfffffffd
push 2
call fcn.1000b4e9
push 0xd
pop esi
push 2
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x2d0], esi
call fcn.1000b4e9
push 2
mov dword [esp + 0x24], 0x26ed4bca
mov dword [esp + 0x10], ebx
pop edx
jmp 0x1004072f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x13c]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x10040719
mov dword [esp + 0xc], ebx
jmp 0x10040751
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1d4]
mov dword [eax + ecx*4], 0xfcb8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1004073b
mov eax, dword [esp + 0x14]
xor edx, edx
mov ecx, dword [esp + 0x1d4]
cmp eax, 1
push ecx
setle dl
xor eax, eax
cmp edx, dword [ecx + 4]
setge al
mov dword [esp + 0x24], eax
call fcn.100486c7
or eax, 0xffffffff
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x2d0], eax
cmp dword [esp + 0x140], 0
pop ecx
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1dc], ebx
je 0x100407c8
push dword [esp + 0x13c]
call fcn.100486c7
pop ecx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], ebx
test edi, edi
jne 0x10040ee1
cmp dword [esp + 0x1a8], edi
jle 0x10040ee1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x30], ebx
jmp 0x1004080a
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10], 0xffffffee
jmp 0x100407ff
cmp dword [esp + 0x30], ebx
jne 0x10040806
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe2
jne 0x100407f5
inc dword [esp + 0x30]
cmp dword [esp + 0x30], esi
jne 0x100407e7
mov dword [esp + 0xc], 0x3c891c55
lea ecx, [esp + 0x120]
mov dword [esp + 0x38], 0xaa6e6f7
mov dword [esp + 0x20], 0x9598aaf0
push 2
call fcn.1000b4e9
mov dword [esp + 0x14], 1
mov dword [esp + 0x14], 0x2be197e7
mov dword [esp + 0x10], ebx
jmp 0x10040862
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 0xa3d7f191
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1004084c
mov dword [esp + 0x14], 0x1eb2
cmp dword [esp + 0x14], 0xed0
jge 0x10040912
lea eax, [esp + 0x1e0]
push eax
lea eax, [esp + 0x1bc]
push eax
lea eax, [esp + 0x1fc]
push eax
lea eax, [esp + 0x1cc]
push eax
lea eax, [esp + 0x1cc]
push eax
push 0x10007d80
call fcn.1004833b
mov edx, dword [esp + 0x1d4]
add esp, 0x18
mov eax, dword [esp + 0x1b8]
mov ecx, edx
imul ecx, dword [esp + 0x1c0]
imul edx, dword [esp + 0x1f4]
lea esi, [ecx + eax*2]
mov eax, dword [esp + 0x1e0]
lea edi, [edx + eax*2]
cmp esi, edi
jne 0x100408f2
push 0x10007d90
call fcn.10048716
pop ecx
cmp esi, edi
jle 0x100408ff
push 0x10007d9c
call fcn.10048716
pop ecx
cmp esi, edi
jge 0x1004090e
push 0x10007da4
call fcn.10048716
pop ecx
mov edi, dword [esp + 0x34]
cmp dword [esp + 0xc], ebx
je 0x10040959
mov eax, dword [esp + 0xc]
xor ecx, ecx
test eax, eax
sets cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x120]
mov dword [eax], ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
add eax, 6
imul eax, dword [esp + 0xc]
test eax, eax
je 0x10040959
xor eax, eax
inc eax
jmp 0x1004095b
mov eax, ebx
inc dword [esp + 0x38]
cmp eax, 1
sbb eax, eax
inc eax
add eax, dword [esp + 0x38]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0xc]
jl 0x1004097e
cmp dword [esp + 0xc], ebx
jne 0x1004097e
mov edx, ebx
jmp 0x10040981
xor edx, edx
inc edx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
setg cl
cmp dword [esp + 0x120], 0
mov dword [esp + 0x14], ecx
je 0x100409bc
push dword [esp + 0x120]
call fcn.100486c7
pop ecx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
push 2
lea ecx, [esp + 0x90]
call fcn.1000b4e9
mov dword [esp + 0x2cc], 0xe
lea ecx, [esp + 0x160]
mov dword [esp + 0x14], 5
push 1
call fcn.1000b4e9
mov dword [esp + 0x14], 0xfffffff8
mov dword [esp + 0x20], 0x5b042041
mov dword [esp + 0x38], 0x5f58
mov dword [esp + 0xc], ebx
jmp 0x10040a1f
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x8c]
mov dword [eax + ecx*4], 8
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10040a09
mov dword [esp + 0xc], ebx
jmp 0x10040a42
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], 0xca3691f6
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x10040a2c
mov esi, dword [esp + 0x8c]
mov dword [esi], ebx
mov dword [esp + 0x10], ebx
jmp 0x10040a6b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xe4], 0xaf9f7c8b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10040a58
mov eax, dword [esp + 0xec]
xor ecx, ecx
cmp dword [esi + 4], 0xfffd
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x160]
setg dl
xor ecx, ecx
mov dword [eax], edx
mov eax, dword [esp + 0x8c]
cmp edx, dword [eax]
setg cl
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xec]
mov eax, dword [esp + 0xec]
mov eax, dword [esp + 0xec]
mov eax, dword [esi + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xe4]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xe8]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xec], 0x20725fc1
dec dword [eax]
cmp dword [eax], 0xffffffe7
jne 0x10040a52
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x8c]
push dword [esp + 0x160]
mov dword [esi], eax
call fcn.100486c7
pop ecx
or eax, 0xffffffff
mov dword [esp + 0x160], ebx
push esi
mov dword [esp + 0x168], ebx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x2d0], eax
call fcn.100486c7
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], 5
pop ecx
mov dword [esp + 0xc], 0xffffffe8
jmp 0x10040c45
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebx
je 0x10040b94
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0xc]
je 0x10040b90
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [esp + 0xc]
jg 0x10040baa
cmp dword [esp + 0x18], ebx
je 0x10040bae
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
cmp eax, 0xffff
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
cmp ecx, eax
mov ecx, dword [esp + 0x18]
setl dl
xor eax, eax
inc edx
cmp edx, 0x7d660f18
setle al
xor edx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
cmp ecx, eax
mov byte [esp + 0x1f], bl
setg dl
xor eax, eax
cmp edx, dword [esp + 0x14]
setg al
cmp eax, 0xfffffffd
jne 0x10040c33
cmp byte [esp + 0x1f], 0
je 0x10040c41
push 0x966
push ebx
push ebx
push ebx
push ebx
push 0xfbe
push 0xee8
push 0x118f
call dword [sym.imp.USER32.dll_ScrollWindowEx]
jmp 0x10040c41
cmp byte [esp + 0x1f], 0
je 0x10040c41
push ebx
call dword [sym.imp.USER32.dll_CharUpperW]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0xe
jl 0x10040b68
cmp dword [esp + 0x1ac], 0
mov dword [esp + 0x20], ebx
je 0x10040ee1
mov dword [esp + 0x30], 0xf5540d7f
mov dword [esp + 0x30], ebx
jmp 0x10040d83
mov dword [esp + 0x14], 0x1d4a
cmp dword [esp + 0x14], 0x102c
jge 0x10040d42
lea eax, [esp + 0x48]
push eax
push 0x10007794
call fcn.1004833b
pop ecx
pop ecx
push dword [esp + 0x48]
lea ecx, [esp + 0x224]
call fcn.1000b4e9
mov dword [esp + 0x2cc], 0xf
cmp dword [esp + 0x48], 0
mov esi, dword [esp + 0x220]
mov dword [esp + 0x14], ebx
jle 0x10040ce2
mov edi, esi
push edi
push 0x10007788
call fcn.1004833b
inc ebx
add edi, 4
pop ecx
pop ecx
cmp ebx, dword [esp + 0x48]
jl 0x10040cc9
xor ebx, ebx
push dword [esp + 0x224]
push esi
call fcn.1000ea31
mov eax, dword [esp + 0x50]
mov edi, ebx
pop ecx
pop ecx
mov ecx, dword [esi + eax*4 - 4]
sub ecx, dword [esi]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
test edx, edx
jle 0x10040d1f
lea ebx, [esi + edx*4]
mov eax, dword [ebx]
lea ebx, [ebx + 4]
sub eax, dword [esi + edi*4]
cmp ecx, eax
cmovg ecx, eax
inc edi
cmp edi, edx
jl 0x10040d0b
push ecx
push 0x10007794
call fcn.10048556
pop ecx
pop ecx
or eax, 0xffffffff
lea ecx, [esp + 0x220]
mov dword [esp + 0x2cc], eax
call fcn.1000ba34
mov dword [esp + 0x10], 0x13dce9d0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], ebx
jmp 0x10040d78
cmp dword [esp + 0x14], ebx
jne 0x10040d7f
cmp dword [esp + 0x10], 0xffffffe9
jl 0x10040d58
dec dword [esp + 0x30]
cmp dword [esp + 0x30], 0xffffffec
jle 0x10040c73
mov ecx, dword [esp + 0x1ac]
call fcn.1003f464
push 2
lea ecx, [esp + 0x17c]
mov edi, eax
call fcn.1000b4e9
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x10], 9
push 2
mov dword [esp + 0x18], 0xfffffffe
mov dword [esp + 0x14], ebx
pop edx
jmp 0x10040ddd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x178]
mov dword [eax + ecx*4], 0xf603fa75
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10040dc7
mov eax, dword [esp + 0x2c]
dec dword [esp + 0x2c]
mov esi, dword [esp + 0x178]
mov eax, dword [esi]
imul eax, dword [esi + 4]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
je 0x10040e1c
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
jmp 0x10040f1a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x238], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10040f07
mov dword [esp + 0x134], 1
cmp dword [esp + 0x134], ebx
jl 0x10040fcf
mov dword [esp + 0x2c], 0x3eee2fde
mov eax, dword [esp + 0x134]
cmp dword [esp + eax*4 + 0x238], ebx
jne 0x10040fcf
mov dword [esp + 0x2c], 1
cmp dword [esp + 0x2c], ebx
jl 0x10040fc2
push 1
lea ecx, [esp + 0x1e8]
call fcn.1000b4e9
mov dword [esp + 0x10], ebx
jmp 0x10040f89
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1e4]
mov dword [eax + ecx*4], 5
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x10040f73
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x1e4]
push ecx
mov dword [ecx], eax
call fcn.100486c7
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1f0], ebx
dec dword [esp + 0x30]
pop ecx
jns 0x10040f5f
dec dword [esp + 0x134]
jns 0x10040f39
lea ecx, [esp + 0x1a8]
call fcn.1003b9d2
mov dword [esp + 0xc], 0xb1b6fd43
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 8
mov dword [esp + 0x10], ebx
jmp 0x10041008
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x270], 0xfffffffd
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10040ff5
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0xc]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0xc]
jle 0x10041038
cmp dword [esp + 0xc], ebx
jne 0x10041038
mov ecx, ebx
jmp 0x1004103b
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x87a5
setge al
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
cmp eax, 0xd1cb
setle cl
sub ecx, dword [esp + 0x18]
neg ecx
sbb ecx, ecx
xor eax, eax
neg ecx
cmp ecx, 1
sete al
cmp eax, 0x40e13f5e
jle 0x10041075
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
dec ecx
cmp ecx, eax
setne dl
xor ecx, ecx
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
cmp eax, 0x4f9a
setne cl
imul ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 3
cmp dword [esp + 0x18], ebx
jl 0x10041120
mov esi, 0x10007a24
mov dword [esp + 0x14], 0x24e4
cmp dword [esp + 0x14], 0x116f
jge 0x1004110d
push 0x117be31c
push 0x1181fe18
push 0x117be38c
push 0x100077b8
call fcn.1004833b
mov ecx, dword [0x117be31c]
add esp, 0x10
mov edx, dword [0x1181fe18]
cmp ecx, edx
jge 0x100410f4
push ecx
jmp 0x10041105
mov eax, dword [0x117be38c]
cmp ecx, eax
jle 0x10041104
sub eax, ecx
add eax, edx
push eax
jmp 0x10041105
push edx
push esi
call fcn.10048556
pop ecx
pop ecx
mov eax, dword [esp + 0x18]
cmp dword [esp + eax*4 + 0x270], ebx
jne 0x10041120
dec dword [esp + 0x18]
jns 0x100410b3
test edi, edi
je 0x10041557
push 1
lea ecx, [esp + 0x194]
call fcn.1000b4e9
mov dword [esp + 0x2cc], 0x10
lea ecx, [esp + 0x19c]
mov dword [esp + 0x14], 7
push 2
call fcn.1000b4e9
mov dword [esp + 0x20], 0x9a07b304
mov dword [esp + 0x14], 0x95ff79fa
mov dword [esp + 0xc], ebx
jmp 0x10041183
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x190]
mov dword [eax + ecx*4], 0x8bd4dfbd
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jl 0x1004116d
mov dword [esp + 0xc], ebx
jmp 0x100411a3
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x19c]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10041190
mov eax, dword [esp + 0x19c]
xor ecx, ecx
inc dword [eax]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x190]
mov edx, dword [eax]
mov eax, dword [esp + 0x20]
cmp eax, edx
mov esi, dword [esp + 0x190]
push dword [esp + 0x19c]
setge cl
xor eax, eax
cmp ecx, edx
setg al
mov dword [esi], eax
mov dword [esp + 0x18], eax
call fcn.100486c7
pop ecx
or eax, 0xffffffff
mov dword [esp + 0x19c], ebx
push esi
mov dword [esp + 0x1a4], ebx
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x2d0], eax
call fcn.100486c7
mov edx, dword [esp + 0x28]
pop ecx
mov ecx, edi
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], ebx
call fcn.1003f49f
mov esi, eax
xor eax, eax
inc eax
mov dword [esp + 0xb0], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], 0x8f0ed693
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], 7
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], 0xfffffff9
jl 0x10041548
push 3
pop edi
or esi, 0xffffffff
mov dword [esp + 0x38], 0xd7be7e55
mov dword [esp + 0x20], 0xfffffffa
mov dword [esp + 0x30], 5
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], 0xffff
mov dword [esp + 0x10], ebx
jmp 0x100412c0
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x22c], 2
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100412ad
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x100412e2
push 0x241
push ebx
push 0x1acf
call dword [sym.imp.GDI32.dll_Polygon]
mov ecx, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0xc]
cmp ecx, eax
setle dl
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0xc]
jne 0x10041309
cmp dword [esp + 0x20], ebx
jne 0x10041309
mov edx, ebx
jmp 0x1004130c
xor edx, edx
inc edx
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp edx, eax
setg cl
cmp ecx, 0xcd04cd02
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, esi
setle cl
sub ecx, dword [esp + 0x30]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
cmp eax, ecx
mov eax, dword [esp + 0x22c]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
inc edx
imul eax, ecx
add eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0xc]
jge 0x100413a0
mov ecx, ebx
cmp dword [esp + 0x30], ebx
je 0x100413a2
mov ecx, edx
mov eax, dword [esp + 0x38]
sub eax, ecx
mov ecx, 0xd863780d
neg eax
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
inc eax
sub eax, 0x15ecda5c
je 0x100414bc
push edi
lea ecx, [esp + 0xc4]
call fcn.1000b4e9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
jmp 0x100413ef
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc0]
mov dword [eax + ecx*4], 0xf5e2d0b1
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x100413d9
mov dword [esp + 0x18], ebx
jmp 0x1004140e
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x264], 0xfffffff6
inc dword [esp + 0x18]
cmp dword [esp + 0x18], edi
jl 0x100413fb
mov eax, dword [esp + 0xc0]
cmp dword [eax + 4], ebx
je 0x10041424
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
xor edx, edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x268], ecx
mov eax, dword [esp + 0x234]
cmp eax, ecx
mov eax, dword [esp + 0xc0]
setne dl
xor ecx, ecx
cmp edx, dword [eax + 8]
mov eax, dword [esp + 0xc]
setg cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x24], eax
setg cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x2c]
jne 0x10041473
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x22c]
imul edx, eax
mov eax, dword [esp + 0x30]
push dword [esp + 0xc0]
cmp edx, eax
sete cl
mov dword [esp + 0x38], ecx
call fcn.100486c7
pop ecx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
jmp 0x1004152f
mov dword [esp + 0x24], ebx
mov dword [esp + 0x14], 5
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edx
xor edx, edx
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
cmp ecx, eax
setg dl
cmp edx, 1
jb 0x10041506
cmp dword [esp + 0x34], ebx
jne 0x10041506
mov eax, ebx
jmp 0x10041509
xor eax, eax
inc eax
cmp esi, eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp ecx, eax
setle dl
sub edx, dword [esp + 0x14]
imul edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff9
push 1
pop eax
jge 0x10041283
mov esi, dword [esp + 0xb0]
lea eax, [esp + 0x98]
push eax
call fcn.10041bea
mov dword [eax], esi
mov dword [esp + 0xc], 0x8a61928c
or eax, 0xffffffff
mov dword [esp + 0x24], 4
mov dword [esp + 0x24], 0xca8fecf7
mov dword [esp + 0x24], 0x93bd5de1
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], ebx
jmp 0x10041597
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x280], 0xfffffff9
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x10041584
mov dword [esp + 0xc], ebx
jmp 0x100415b7
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x288], 0x9e3d3b0c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 2
jl 0x100415a4
mov dword [esp + 0xc], ebx
jmp 0x100415fa
mov dword [esp + 0x14], 0xb165
xor edx, edx
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x14]
setne dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 0x1d
jg 0x100415c4
mov dword [esp + 0xc], ebx
jmp 0x1004180e
mov dword [esp + 0x30], 0xfffffff8
mov dword [esp + 0x24], 0x3e0566a9
mov dword [esp + 0x24], 0x67d50f82
mov dword [esp + 0x24], 0x162e
cmp dword [esp + 0x24], 0x128c
jge 0x10041750
lea eax, [esp + 0x5c]
mov ecx, 0x10652fb0
push eax
call fcn.1000b1d9
mov esi, dword [esp + 0x5c]
lea ecx, [esp + 0x214]
push esi
call fcn.1000b4e9
push esi
lea ecx, [esp + 0x1fc]
mov dword [esp + 0x2d0], 0x11
call fcn.1000b4e9
mov byte [esp + 0x2cc], 0x12
test esi, esi
jle 0x100416ac
mov edi, dword [esp + 0x214]
mov ebx, esi
push edi
call fcn.1004185c
add edi, 4
dec ebx
jne 0x10041685
mov edi, dword [esp + 0x1f8]
mov esi, dword [esp + 0x5c]
push edi
call fcn.1004185c
add edi, 4
dec esi
jne 0x1004169c
mov esi, dword [esp + 0x5c]
mov ecx, ebx
mov edx, ebx
mov dword [esp + 0x14], ecx
test esi, esi
jle 0x10041721
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], ebx
cmp ecx, esi
jge 0x10041711
mov ebx, eax
mov edi, esi
mov eax, dword [esp + 0x214]
sub eax, dword [esp + 0x1f8]
sub edi, ecx
mov ecx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x24]
or eax, dword [ebx]
or ecx, dword [esi + ebx]
lea ebx, [ebx + 4]
mov dword [esp + 0x24], eax
add eax, ecx
cmp eax, edx
cmovg edx, eax
dec edi
jne 0x100416e9
mov esi, dword [esp + 0x5c]
xor ebx, ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
inc ecx
add eax, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
cmp ecx, esi
jl 0x100416c3
push edx
call fcn.10041982
push eax
call fcn.1000ea73
pop ecx
lea ecx, [esp + 0x1f8]
call fcn.1000ba34
or eax, 0xffffffff
lea ecx, [esp + 0x214]
mov dword [esp + 0x2cc], eax
call fcn.1000ba34
mov dword [esp + 0x24], 0x4dc41fd9
or ecx, 0xffffffff
mov dword [esp + 0x24], 0x5466bc65
mov dword [esp + 0x24], 0xb6917ab6
mov dword [esp + 0x24], ebx
mov dword [esp + 0x24], 0xd06721f7
push 2
pop eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x24], 0x7626a9d9
mov dword [esp + 0x24], 0xfffffff7
mov dword [esp + 0x24], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x24], 0xf4864854
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x148]
push eax
call fcn.1000b4e9
mov dword [esp + 0x2c], ebx
jmp 0x100417cb
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 2
jl 0x100417b5
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
inc dword [esp + 0x38]
cmp dword [esp + 0x148], 0
je 0x1004180a
push dword [esp + 0x148]
call fcn.100486c7
pop ecx
mov dword [esp + 0x148], ebx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
dec dword [esp + 0xc]
cmp dword [esp + 0xc], 0xfffffff5
jge 0x1004160a
mov eax, dword [ebp + 8]
lea esi, [esp + 0xb0]
mov ecx, dword [esp + 0x2c4]
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