Function at 0x1003cecb
Capabilities:
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10069d4b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x350
push ebx
push esi
push edi
xor edi, edi
mov dword [esp + 0x50], ecx
inc edi
mov dword [esp + 0x3c], edx
push edi
lea ecx, [esp + 0x194]
call fcn.1002a3c2
xor ebx, ebx
mov dword [esp + 0x364], ebx
mov dword [esp + 0x14], ebx
jmp 0x1003cf2c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x190]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1003cf16
mov dword [esp + 0x24], 0x24f4
cmp dword [esp + 0x24], 0x560
jge 0x1003d0a1
lea eax, [esp + 0xe4]
push eax
push 0x10007748
call fcn.1005056b
mov esi, edi
mov dword [esp + 0x34], edi
pop ecx
pop ecx
cmp dword [esp + 0xe4], edi
jl 0x1003d0a1
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xcc]
push eax
push 0x10007774
call fcn.1005056b
add esp, 0xc
push esi
push 0x10007c50
call fcn.10050853
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x2c], edi
pop ecx
pop ecx
cmp eax, edi
jl 0x1003d07e
mov edx, eax
mov edi, 0x10e93624
shl edx, 2
xor eax, eax
mov ecx, edx
shr edx, 2
shr ecx, 2
xor esi, esi
rep stosd dword es:[edi], eax
lea eax, [esi + 1]
mov ecx, edx
mov edi, 0x10e92ef4
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc8]
mov dword [eax*4 + 0x10e9c2e0], eax
inc eax
cmp eax, ecx
jle 0x1003cfd8
mov esi, dword [esp + 0x2c]
xor edi, edi
inc edi
jmp 0x1003d07e
dec eax
mov dword [esp + 0x60], eax
lea eax, [esp + 0x8c]
push eax
push 0x10007768
call fcn.1005056b
cmp byte [esp + 0x94], 0x54
pop ecx
pop ecx
jne 0x1003d045
lea eax, [esp + 0x19c]
push eax
lea eax, [esp + 0x80]
push eax
push 0x10007774
call fcn.1005056b
mov ecx, dword [esp + 0x88]
add esp, 0xc
mov edx, dword [esp + 0x19c]
call fcn.1003cdab
jmp 0x1003d07e
lea eax, [esp + 0x7c]
push eax
push 0x10007748
call fcn.1005056b
mov edx, dword [esp + 0x84]
mov ecx, edx
call fcn.1003cd73
push dword [edx*4 + 0x10e93620]
push dword [eax*4 + 0x10e92ef0]
push eax
push 0x10007c44
call fcn.10050853
add esp, 0x18
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x1003cff0
dec eax
inc esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + 0xe4]
jle 0x1003cf6f
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], bl
je 0x1003d0bc
push 0x1c1a
push 0x1633
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov eax, dword [esp + 0x190]
or dword [esp + 0x364], 0xffffffff
push eax
mov dword [eax], 0xfffffff8
call fcn.10050a29
pop ecx
push 2
pop esi
push esi
lea ecx, [esp + 0x68]
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], ebx
call fcn.1002a3c2
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0xfffffff8
mov dword [esp + 0x1c], ebx
jmp 0x1003d11f
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x1a0], 0x648261f9
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jl 0x1003d10c
mov dword [esp + 0x1c], ebx
jmp 0x1003d13f
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
mov dword [eax + ecx*4], 0xd29be1d9
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1003d12c
mov eax, dword [esp + 0x64]
mov dword [eax], esi
mov dword [esp + 0x10], 0x887cf2e5
mov dword [esp + 0x28], 0x5faafe30
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x1003d177
mov dword [esp + 0x2c], 0x3d37a5b7
inc dword [esp + 0x2c]
dec dword [esp + 0x10]
jns 0x1003d165
mov dword [esp + 0x28], ebx
jmp 0x1003d239
mov eax, dword [eax]
mov dword [esp + 0x2c], 0xfffffff9
mov dword [esp + 0x24], 6
cmp dword [esp + eax*4 + 0x1a0], ebx
je 0x1003d229
cmp dword [esp + 0x10], ebx
je 0x1003d229
mov eax, dword [esp + 0x1a4]
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
mov eax, dword [esp + eax*4 + 0x1a0]
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
mov eax, dword [esp + eax*4 + 0x1a0]
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
sub ecx, 0xd64bda99
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x64]
setl dl
xor ecx, ecx
sub edx, 0x6fcb1efb
mov eax, dword [eax]
mov eax, dword [esp + eax*4 + 0x1a0]
cmp edx, eax
setle cl
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
sub ecx, eax
mov ecx, edi
jne 0x1003d22b
mov ecx, ebx
mov eax, dword [esp + 0x28]
sub ecx, eax
mov dword [esp + 0x24], ecx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], esi
mov eax, dword [esp + 0x64]
jle 0x1003d180
dec dword [eax]
jns 0x1003d14b
mov dword [esp + 0x20], 0x18
jmp 0x1003d28b
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], esi
mov dword [esp + 0x24], 0x7cd3e5c7
mov dword [esp + 0x24], 9
mov eax, dword [eax]
mov dword [esp + 0x24], 0x15e40c88
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], eax
inc dword [esp + 0x2c]
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffff4
jg 0x1003d259
push dword [esp + 0x64]
call fcn.10050a29
mov eax, dword [0x10e9d110]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
pop ecx
test al, 1
jne 0x1003d34a
or eax, edi
mov dword [0x10e9d110], eax
push ebx
mov dword [esp + 0x368], edi
push ebx
mov dword [0x10e9d120], ebx
mov dword [0x10e9d124], ebx
call fcn.1004038d
mov dword [0x10e9d120], eax
mov dword [0x10e9d128], ebx
mov dword [0x10e9d130], ebx
mov byte [esp + 0x364], 3
mov ecx, 0x10e9d128
mov dword [esp + 0x1ac], eax
lea eax, [esp + 0x1ac]
push eax
push 0x10
push ebx
lea eax, [esp + 0x194]
mov dword [0x10e9d13c], 0x3f800000
push eax
mov dword [0x10e9d12c], ebx
call fcn.10040165
push 0x1006a38c
mov dword [0x10e9d134], 7
mov dword [0x10e9d138], 8
call fcn.10050829
or dword [esp + 0x368], 0xffffffff
pop ecx
mov dword [esp + 0x20], 0xa4c9
lea ecx, [esp + 0xa8]
push esi
call fcn.1002a3c2
mov dword [esp + 0x364], 4
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], 0xfffffff7
mov dword [esp + 0x1c], ebx
jmp 0x1003d38c
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x54], 0x8f8
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1003d37c
mov dword [esp + 0x1c], ebx
jmp 0x1003d3ae
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 7
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], esi
jl 0x1003d398
cmp dword [esp + 0x58], ebx
je 0x1003d3e1
mov eax, dword [esp + 0x58]
mov edx, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xa8]
mov eax, dword [eax]
neg eax
jne 0x1003d3e3
mov edx, ebx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x10]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x54]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x58]
setg dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x58]
setge cl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
add eax, edx
jne 0x1003d587
cmp dword [esp + 0x10], ebx
jne 0x1003d587
mov dword [esp + 0x24], 0x2a93f045
lea ecx, [esp + 0x118]
push 3
call fcn.1002a3c2
mov byte [esp + 0x364], 5
mov dword [esp + 0x14], ebx
jmp 0x1003d475
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x118]
mov dword [eax + ecx*4], 0xcb296ad9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003d45f
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], edi
jg 0x1003d559
mov esi, dword [esp + 0x118]
push 3
lea ecx, [esp + 0x134]
call fcn.1002a3c2
mov dword [esp + 0x2c], 0xfffffff8
mov dword [esp + 0x14], ebx
jmp 0x1003d4c3
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x130]
mov dword [eax + ecx*4], 0x5f7a0d7c
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003d4ad
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x130]
inc dword [ecx + 8]
mov dword [esp + eax*4 + 0x54], 0x8140
xor eax, eax
mov edx, dword [esp + 0x20]
cmp dword [ecx + 8], ebx
sete al
xor ecx, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x8140
mov eax, dword [esp + 0xa8]
setl cl
imul ecx, dword [eax + edx*4]
imul ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x20]
push dword [esp + 0x130]
neg eax
sbb eax, eax
inc eax
mov dword [esi + 8], eax
call fcn.10050a29
mov dword [esp + 0x134], ebx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x13c], ebx
inc dword [esp + 0x24]
pop ecx
cmp dword [esp + 0x20], edi
jle 0x1003d491
push 2
pop esi
cmp dword [esp + 0x118], 0
je 0x1003d5de
push dword [esp + 0x118]
call fcn.10050a29
pop ecx
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], ebx
jmp 0x1003d5de
mov dword [esp + 0x20], ebx
jmp 0x1003d5d7
mov dword [esp + 0x24], edi
cmp dword [esp + 0x24], ebx
je 0x1003d5b1
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003d5d3
push 0x14e4
push edi
push ebx
call dword [sym.imp.GDI32.dll_PtInRegion]
jmp 0x1003d5d3
mov dword [esp + 0x10], ebx
jmp 0x1003d5cd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0xc214f163
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1003d5b7
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffff
jg 0x1003d58d
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003d5ff
push ebx
push 0x762
push 0x1df5
push 0x50d
call dword [sym.imp.GDI32.dll_GetDIBColorTable]
or dword [esp + 0x364], 0xffffffff
cmp dword [esp + 0xa8], 0
je 0x1003d633
push dword [esp + 0xa8]
call fcn.10050a29
pop ecx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
imul eax, dword [esp + 0x50], 0x2710
lea ecx, [esp + 0x100]
push esi
add eax, dword [esp + 0x40]
mov dword [esp + 0xc8], eax
mov dword [esp + 0x34], 0xffff
mov dword [esp + 0x38], edi
call fcn.1002a3c2
mov dword [esp + 0x14], 0x49c4b05e
mov dword [esp + 0x28], 3
mov dword [esp + 0x2c], 0xb319bd12
mov dword [esp + 0x38], 0x68d270c1
mov dword [esp + 0x24], 0x5dc8ff05
mov dword [esp + 0x14], ebx
jmp 0x1003d6a3
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x100]
mov dword [eax + ecx*4], 0xc5051dd2
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1003d68d
mov eax, dword [esp + 0x100]
mov dword [eax], edi
cmp dword [esp + 0x30], ebx
je 0x1003d6bc
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
xor edx, edx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
cmp ecx, eax
mov eax, dword [esp + 0x30]
setl dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x100]
cmp dword [eax + 4], 0xf3f07903
ja 0x1003d6fe
mov eax, edi
cmp dword [esp + 0x28], ebx
jne 0x1003d700
mov eax, ebx
cmp eax, dword [esp + 0x38]
je 0x1003d70e
mov ecx, edi
cmp dword [esp + 0x38], ebx
je 0x1003d710
mov ecx, ebx
mov dword [esp + 0x14], 0xdcaa
xor edx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov eax, dword [esp + 0x28]
push dword [esp + 0x100]
setg dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [esp + 0x28], ecx
call fcn.10050a29
pop ecx
lea eax, [esp + 0xc4]
mov dword [esp + 0x100], ebx
push eax
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
call fcn.1003f7a8
mov eax, dword [eax]
test eax, eax
je 0x1003d77b
mov dword [esp + 0x1d0], eax
jmp 0x1003f333
push dword [esp + 0x188]
movdqa xmm0, xmmword [0x10007e40]
lea eax, [esp + 0x240]
push eax
mov dword [esp + 0x2c], edi
lea eax, [esp + 0x234]
mov dword [esp + 0x2c], 0x735e
lea ecx, [esp + 0xe0]
push eax
mov dword [esp + 0x4c], 0xc3825062
mov dword [esp + 0x4c], 9
mov dword [esp + 0x4c], 0xf446cd5f
push ebx
movdqu xmmword [esp + 0x23c], xmm0
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
call fcn.1002f372
mov dword [esp + 0x40], 0xb586fa66
mov dword [esp + 0x40], 0xac25
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003d819
push 0x23e7
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
cmp dword [esp + 0xd8], 0
je 0x1003d845
push dword [esp + 0xd8]
call fcn.10050a29
pop ecx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov eax, dword [0x10e9d110]
test al, 2
jne 0x1003d8eb
or eax, esi
mov dword [0x10e9d110], eax
push ebx
mov dword [esp + 0x368], 6
push ebx
mov dword [0x10e9d140], ebx
mov dword [0x10e9d144], ebx
call fcn.1004038d
mov dword [0x10e9d140], eax
mov dword [0x10e9d148], ebx
mov dword [0x10e9d150], ebx
mov byte [esp + 0x364], 8
mov ecx, 0x10e9d148
mov dword [esp + 0x1bc], eax
lea eax, [esp + 0x1bc]
push eax
push 0x10
push ebx
lea eax, [esp + 0x1f8]
mov dword [0x10e9d15c], 0x3f800000
push eax
mov dword [0x10e9d14c], ebx
call fcn.10040165
push 0x1006a387
mov dword [0x10e9d154], 7
mov dword [0x10e9d158], 8
call fcn.10050829
or dword [esp + 0x368], 0xffffffff
pop ecx
mov dword [esp + 0x28], 0x72d4ea68
lea ecx, [esp + 0x154]
mov dword [esp + 0x10], 0x785
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], 0x6890c544
push esi
call fcn.1002a3c2
push 6
pop edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], ebx
jmp 0x1003d933
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x154]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1003d921
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x154]
cmp dword [eax + 4], ebx
je 0x1003d96b
mov dword [eax], edi
mov eax, dword [esp + 0x30]
dec eax
neg eax
sbb eax, eax
inc eax
imul eax, eax, 0x3671
sub eax, dword [esp + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
dec dword [esp + 0x34]
mov dword [esp + 0x28], 0xeb32
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
sub eax, 0xf39f3c5a
neg eax
sbb eax, eax
xor edx, edx
inc eax
cmp eax, edi
setl dl
xor ecx, ecx
add edx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
cmp edx, eax
push dword [esp + 0x154]
setg cl
cmp ecx, edi
sbb eax, eax
inc eax
mov dword [esp + 0x30], eax
call fcn.10050a29
mov dword [esp + 0x158], ebx
xorps xmm0, xmm0
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], ebx
movdqu xmmword [esp + 0x17c], xmm0
mov dword [esp + 0x24], 0xfffffff8
mov dword [esp + 0x3c], 0xf7d1649b
mov dword [esp + 0x30], 0x47b6c411
pop ecx
mov dword [esp + 0x14], ebx
jmp 0x1003da0f
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xb4], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1003da00
mov dword [esp + 0x20], 3
cmp dword [esp + 0x20], ebx
jl 0x1003db52
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], 0x5540fff0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + eax*4 + 0xb4]
mov eax, dword [esp + 0x20]
mov dword [esp + eax*4 + 0xb4], ecx
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], ebx
jl 0x1003db48
mov dword [esp + 0x2c], ebx
xor edx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + eax*4 + 0xb4]
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov eax, dword [esp + 0x20]
setne dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0xb4]
cmp eax, edx
setle cl
imul ecx, dword [esp + 0x10]
neg ecx
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + eax*4 + 0xb4]
mov eax, dword [esp + 0x34]
cmp eax, 0x2e88
setge cl
xor eax, eax
cmp ecx, edx
setne al
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0xb4]
cmp eax, dword [esp + 0x38]
jge 0x1003daf5
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0xb4], ebx
jne 0x1003dafd
mov ecx, ebx
cmp dword [esp + 0x20], ebx
je 0x1003daff
mov ecx, edi
mov eax, dword [esp + 0x10]
cmp ecx, dword [esp + eax*4 + 0xb4]
jle 0x1003db10
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
dec eax
neg eax
sbb eax, eax
neg eax
imul eax, dword [esp + 0xb8]
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003db3e
push ebx
push 0x1b5a
call dword [sym.imp.GDI32.dll_SetTextColor]
dec dword [esp + 0x10]
jns 0x1003da68
dec dword [esp + 0x20]
jns 0x1003da28
mov dword [esp + 0x20], ebx
jmp 0x1003dbdf
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x24], 0xfffffffd
mov dword [esp + 0x40], 0xc71f8b10
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x2c], 0x172c
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
inc edx
neg edx
sbb edx, edx
add edx, 0x7565d9da
neg edx
sbb edx, edx
neg eax
inc edx
xor ecx, ecx
cmp eax, edx
mov eax, 0xf7cec7e9
setne cl
cmp eax, ecx
sbb eax, eax
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], eax
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edi
jle 0x1003db5b
lea eax, [esp + 0x50]
push eax
call fcn.1003f80a
mov esi, dword [eax]
mov dword [esp + 0x10], 0x6d44418
mov dword [esp + 0x2c], 0x318b4743
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], ebx
jmp 0x1003dc22
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1dc], 0xfd5464b5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1003dc0f
mov dword [esp + 0x10], edi
cmp dword [esp + 0x10], ebx
jl 0x1003dcac
mov dword [esp + 0x30], 2
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x1e0]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1e0]
imul eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
add eax, 0x6ee46391
imul ecx, eax
test ecx, ecx
jne 0x1003dc79
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], 0xd7865925
mov eax, dword [esp + 0x30]
sbb edx, edx
xor ecx, ecx
neg edx
sub edx, 0x6b5a
cmp edx, eax
setge cl
mov dword [esp + 0x24], ecx
dec dword [esp + 0x10]
jns 0x1003dc33
cmp byte [ebp + 0xc], 0
jne 0x1003dcba
test esi, esi
jne 0x1003ec9b
mov dword [esp + 0x1c], 0xd1e814b7
mov dword [esp + 0x10], 0x8807383c
mov dword [esp + 0x14], ebx
jmp 0x1003dce3
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1f0], 0xfffffffa
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003dcd0
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jne 0x1003dd1c
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp eax, 0x5ed0
mov eax, ebx
setle cl
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], ebx
je 0x1003dd14
mov eax, edi
cmp eax, dword [esp + 0x10]
je 0x1003dd1c
mov edi, ebx
mov eax, dword [esp + 0x10]
xor edx, edx
cmp edi, eax
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1f0]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setge dl
xor eax, eax
cmp edx, 0x46758e35
setg al
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x10], ebx
jmp 0x1003dd6f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1f0], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1003dd60
mov dl, byte [ebp + 0xc]
lea eax, [esp + 0x280]
mov ecx, dword [esp + 0x50]
push eax
call fcn.10031fef
mov esi, eax
lea edi, [esp + 0x17c]
pop ecx
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 + 0x14], ebx
jmp 0x1003ddb1
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x278], 0xae9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1003dd9e
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003ddd1
push ebx
push 0xe51
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov dword [esp + 0x24], 0x1816
cmp dword [esp + 0x24], 0x584
jge 0x1003dece
lea eax, [esp + 0x1e4]
push eax
lea eax, [esp + 0x50]
push eax
push 0x100077a4
call fcn.1005056b
add esp, 0xc
lea ecx, [esp + 0x1b0]
push dword [esp + 0x4c]
call fcn.1002a3c2
mov dword [esp + 0x364], 9
cmp dword [esp + 0x4c], 0
mov edi, dword [esp + 0x1b0]
mov dword [esp + 0x24], ebx
jle 0x1003de49
mov esi, edi
push esi
push 0x1000774c
call fcn.1005056b
inc ebx
add esi, 4
pop ecx
pop ecx
cmp ebx, dword [esp + 0x4c]
jl 0x1003de30
xor ebx, ebx
mov esi, dword [esp + 0x1b4]
push esi
push edi
call fcn.1002e320
mov eax, dword [esp + 0x1ec]
pop ecx
pop ecx
test eax, eax
jne 0x1003de7e
xor esi, esi
mov eax, 0x10007790
inc esi
mov ecx, 0x100077bc
cmp dword [edi], esi
cmovne eax, ecx
push eax
call fcn.10050b42
jmp 0x1003dea5
cmp eax, dword [esp + 0x4c]
jne 0x1003de89
push dword [esi - 4]
jmp 0x1003de9a
mov ecx, dword [edi + eax*4 - 4]
cmp ecx, dword [edi + eax*4]
jne 0x1003de99
push 0x10007790
jmp 0x1003de77
push ecx
push 0x10007750
call fcn.10050853
pop ecx
or dword [esp + 0x368], 0xffffffff
pop ecx
test edi, edi
je 0x1003dece
push edi
call fcn.10050a29
pop ecx
mov dword [esp + 0x1b0], ebx
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b8], ebx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003dee4
push 0x128d
call dword [sym.imp.GDI32.dll_GetBkColor]
xor edi, edi
inc edi
cmp byte [ebp + 0xc], 0
je 0x1003dfb9
cmp dword [esp + 0x180], 0
je 0x1003dfb9
mov eax, dword [esp + 0x184]
lea ecx, [esp + 0x13c]
push edi
mov dword [esp + 0x1d8], eax
call fcn.1002a3c2
mov dword [esp + 0x14], ebx
jmp 0x1003df36
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x13c]
mov dword [eax + ecx*4], 0xffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1003df20
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003df55
push ebx
push 0x17ba
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003df7f
push 0xd24
push 0x961
push 0x1b86
push 0x1f9b
push 0x111e
call dword [sym.imp.GDI32.dll_Ellipse]
cmp dword [esp + 0x13c], 0
je 0x1003dfab
push dword [esp + 0x13c]
call fcn.10050a29
pop ecx
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], ebx
mov eax, dword [esp + 0x180]
mov dword [esp + 0x1d8], eax
cmp dword [esp + 0x34], 0
jne 0x1003ec9b
cmp dword [esp + 0x178], 0
jle 0x1003ec9b
push dword [esp + 0x1ec]
movdqa xmm0, xmmword [0x10007df0]
lea eax, [esp + 0x230]
push eax
lea eax, [esp + 0x224]
mov dword [esp + 0x28], 0xfffffffe
push eax
mov dword [esp + 0x28], ebx
lea ecx, [esp + 0xa8]
push ebx
movdqu xmmword [esp + 0x22c], xmm0
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
call fcn.1002f372
mov dword [esp + 0x10], ebx
jmp 0x1003e03a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x44], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x1003e02e
mov dword [esp + 0x24], 0x16b2
cmp dword [esp + 0x24], 0x770
jge 0x1003e10b
movdqa xmm0, xmmword [0x10007e00]
lea eax, [esp + 0x18c]
push eax
movdqu xmmword [esp + 0x240], xmm0
lea eax, [esp + 0x1ec]
mov dword [esp + 0x270], 0x29
movdqa xmm0, xmmword [0x10007e10]
movdqu xmmword [esp + 0x250], xmm0
push eax
movdqa xmm0, xmmword [0x10007e20]
push 0x10007774
movdqu xmmword [esp + 0x268], xmm0
mov dword [esp + 0x27c], 0x2b
mov dword [esp + 0x280], 0x2f
call fcn.1005056b
mov esi, dword [esp + 0x198]
add esp, 0xc
mov edx, dword [esp + 0x1e8]
mov cl, bl
mov eax, ebx
cmp edx, dword [esp + eax*4 + 0x23c]
jne 0x1003e0ef
cmp esi, dword [esp + eax*4 + 0x240]
movzx ecx, cl
cmove ecx, edi
inc eax
cmp eax, 0xe
jl 0x1003e0d9
test cl, cl
je 0x1003e100
push 0x10007c5c
jmp 0x1003e105
push 0x10007c64
call fcn.10050853
pop ecx
mov dword [esp + 0x10], ebx
jmp 0x1003e124
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x210], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1003e111
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], ebx
jl 0x1003e329
mov dword [esp + 0x10], 0xb275cf8
mov dword [esp + 0x2c], 0xfffffffa
mov eax, dword [esp + 0x20]
cmp dword [esp + eax*4 + 0x44], ebx
je 0x1003e21d
mov dword [esp + 0x28], 0xbbd4aa41
mov dword [esp + 0x2c], 3
mov eax, dword [esp + 0x20]
cmp dword [esp + eax*4 + 0x44], ebx
jne 0x1003e329
cmp dword [esp + 0x20], ebx
je 0x1003e202
mov eax, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov eax, dword [esp + 0x20]
setne dl
imul ecx, edx, 0x686a
sub ecx, dword [esp + eax*4 + 0x44]
je 0x1003e1b2
mov eax, edi
cmp dword [esp + 0x28], ebx
jne 0x1003e1b4
mov eax, ebx
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x2c], ebx
jne 0x1003e1c6
mov eax, dword [esp + 0x20]
mov eax, dword [esp + eax*4 + 0x44]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
imul eax, ecx
imul ecx, eax, 0xbaf9
mov eax, dword [esp + 0x10]
cmp ecx, eax
setg dl
add edx, dword [esp + 0x28]
jne 0x1003e1f2
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + eax*4 + 0x44]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
neg eax
inc eax
neg eax
sbb eax, eax
inc eax
imul eax, eax, 0x2b83
mov dword [esp + 0x10], eax
jmp 0x1003e31f
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x214]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
inc edx
neg edx
sbb edx, edx
add edx, 0xfffffffc
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
sete cl
xor eax, eax
cmp ecx, 0x618b
setne al
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + eax*4 + 0x44]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x24], eax
mov esi, dword [esp + 0x9c]
setge cl
xor eax, eax
cmp ecx, edx
setle al
mov dword [esp + 0x24], eax
mov dword [esi + 4], eax
mov eax, dword [esp + 0x1c]
imul eax, dword [esp + 0x24]
neg eax
cmp eax, 0xe3b919d6
ja 0x1003e2a3
mov edx, edi
cmp dword [esp + 0x2c], ebx
jne 0x1003e2a5
mov edx, ebx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
mov eax, dword [esp + 0x20]
setl dl
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x44]
cmp eax, edx
mov eax, dword [esp + 0x20]
setge cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov eax, dword [esp + eax*4 + 0x44]
cmp eax, dword [esp + 0x24]
setne cl
sub ecx, dword [esp + 0x10]
je 0x1003e2f5
cmp dword [esp + 0x28], ebx
jne 0x1003e329
jmp 0x1003e31f
mov dword [esp + 0x28], ebx
jmp 0x1003e305
cmp dword [esp + 0x2c], ebx
jne 0x1003e30c
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 0x19
jle 0x1003e2fb
mov dword [esp + 0x38], 0xd3ea
imul eax, dword [esp + 0x38], 0x22a5
mov dword [esi + 4], eax
dec dword [esp + 0x20]
jns 0x1003e139
cmp dword [esp + 0x9c], 0
je 0x1003e355
push dword [esp + 0x9c]
call fcn.10050a29
pop ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x1c], 5
lea ecx, [esp + 0xf4]
mov dword [esp + 0x2c], ebx
push 2
call fcn.1002a3c2
mov dword [esp + 0x38], 0x2a3062a4
mov dword [esp + 0x24], 0x7d6446bd
mov dword [esp + 0x2c], 0xa83acdd7
mov dword [esp + 0x14], ebx
jmp 0x1003e3a3
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xf4]
mov dword [eax + ecx*4], 8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1003e38d
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xf4]
imul ecx, dword [eax]
mov dword [eax + 4], ecx
mov ecx, edi
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0xf4]
cmp dword [eax], ebx
je 0x1003e406
mov ecx, edi
cmp dword [esp + 0x38], ebx
jne 0x1003e408
mov ecx, ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
xor eax, eax
mov edx, dword [esp + 0x2c]
cmp ecx, edi
setne al
sub edx, eax
mov eax, dword [esp + 0x1c]
push dword [esp + 0xf4]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setle cl
mov dword [esp + 0x30], ecx
call fcn.10050a29
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
mov dword [esp + 0x20], 0xd1e814b7
mov dword [esp + 0x14], 0x8807383c
pop ecx
mov dword [esp + 0x14], ebx
jmp 0x1003e47c
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1fc], 0xfffffffa
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003e469
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x1c], ebx
jne 0x1003e4b5
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp eax, 0x5ed0
mov eax, ebx
setle cl
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], ebx
je 0x1003e4ad
mov eax, edi
mov ecx, ebx
cmp eax, dword [esp + 0x10]
jne 0x1003e4b7
mov ecx, edi
mov eax, dword [esp + 0x10]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x10]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1fc]
mov eax, dword [esp + 0x10]
cmp eax, ecx
setge dl
xor eax, eax
cmp edx, 0x46758e35
setg al
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x10], ebx
jmp 0x1003e50a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1fc], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1003e4fb
mov dword [esp + 0x1c], 0x3ae35568
mov dword [esp + 0x28], 7
mov dword [esp + 0x1c], ebx
jmp 0x1003e828
mov dword [esp + 0x10], 5
lea ecx, [esp + 0x90]
push edi
call fcn.1002a3c2
mov dword [esp + 0x364], 0xa
mov dword [esp + 0x40], 8
mov dword [esp + 0x38], 0x46bd29a2
mov dword [esp + 0x24], 3
mov dword [esp + 0x14], ebx
jmp 0x1003e57e
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x90]
mov dword [eax + ecx*4], 0x6d2e8588
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1003e568
dec dword [esp + 0x10]
mov dword [esp + 0x28], ebx
jmp 0x1003e7e6
mov dword [esp + 0x2c], edi
mov dword [esp + 0x10], ebx
jmp 0x1003e690
push 4
lea ecx, [esp + 0x14c]
call fcn.1002a3c2
mov dword [esp + 0x14], ebx
jmp 0x1003e5c8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x148]
mov dword [eax + ecx*4], 0x3c61c71b
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1003e5b2
mov eax, dword [esp + 0x148]
mov dword [eax + 4], ebx
mov ebx, eax
mov dword [esp + 0x38], 0x746a
inc dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x90]
push 0
cmp eax, dword [ecx + edx*4]
mov eax, dword [esp + 0x94]
pop ecx
setle cl
xor edx, edx
cmp dword [eax], ecx
mov eax, dword [esp + 0x2c]
setl dl
xor ecx, ecx
sub eax, edx
cmp eax, 0xba3f
mov eax, dword [esp + 0x10]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x90]
setne dl
xor ecx, ecx
cmp dword [eax + esi*4], edx
sete cl
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x38]
inc dword [ebx + 4]
cmp dword [ebx + 4], 0
mov dword [esp + 0x24], eax
jle 0x1003e5db
push dword [esp + 0x148]
call fcn.10050a29
xor ebx, ebx
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
inc dword [esp + 0x14]
pop ecx
cmp dword [esp + 0x10], ebx
jle 0x1003e59e
mov dword [esp + 0x24], 0x1e41
cmp dword [esp + 0x24], 0x5ea
jge 0x1003e7c5
mov edx, 0x10007c68
mov ecx, 0x1065a538
call fcn.1002e74e
lea eax, [esp + 0x48]
mov ecx, 0x1065a5f0
push eax
call fcn.10029e81
mov esi, dword [esp + 0x48]
mov edx, 0x10007c90
push esi
push ecx
mov ecx, 0x1065a538
call fcn.1002e74e
pop ecx
mov ecx, eax
call fcn.1002a191
mov edx, 0x10007c84
mov ecx, eax
call fcn.1002e74e
test esi, esi
jle 0x1003e719
lea ebx, [esp + 0x290]
push ebx
mov ecx, 0x1065a5f0
call fcn.10029e81
add ebx, 4
dec esi
jne 0x1003e702
mov esi, dword [esp + 0x48]
xor ebx, ebx
mov edx, 0x10007c98
mov ecx, 0x1065a538
call fcn.1002e74e
lea ecx, [esi - 1]
test ecx, ecx
jle 0x1003e76c
mov edx, ecx
mov dword [esp + 0x2c], ecx
mov eax, ebx
test ecx, ecx
jle 0x1003e764
mov esi, dword [esp + eax*4 + 0x290]
mov edx, dword [esp + eax*4 + 0x294]
cmp esi, edx
jle 0x1003e75b
mov dword [esp + eax*4 + 0x290], edx
mov dword [esp + eax*4 + 0x294], esi
inc eax
cmp eax, ecx
jl 0x1003e73b
mov edx, dword [esp + 0x2c]
dec ecx
dec edx
mov dword [esp + 0x2c], edx
jne 0x1003e735
mov esi, 0x1065a538
mov edx, 0x10007cc0
mov ecx, esi
call fcn.1002e74e
mov edx, 0x10007ce0
mov ecx, esi
call fcn.1002e74e
cmp dword [esp + 0x48], 0
mov esi, ebx
jle 0x1003e7ba
mov ebx, dword [esp + 0x48]
push dword [esp + esi*4 + 0x290]
mov ecx, 0x1065a538
call fcn.1002a191
mov edx, 0x10007c40
mov ecx, eax
call fcn.1002e74e
inc esi
cmp esi, ebx
jl 0x1003e796
xor ebx, ebx
push 0x1065a538
call fcn.1002e4e1
pop ecx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003e7e2
push 0xfe2
push ebx
push 0x1862
push ebx
call dword [sym.imp.USER32.dll_LoadStringA]
inc dword [esp + 0x28]
cmp dword [esp + 0x28], ebx
jle 0x1003e591
or dword [esp + 0x364], 0xffffffff
cmp dword [esp + 0x90], 0
je 0x1003e824
push dword [esp + 0x90]
call fcn.10050a29
pop ecx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
dec dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0xffffffee
jle 0x1003e52a
push 4
lea ecx, [esp + 0x74]
call fcn.1002a3c2
mov dword [esp + 0x364], 0xb
mov dword [esp + 0x20], 6
mov dword [esp + 0x1c], 0xfffffff9
mov dword [esp + 0x14], ebx
jmp 0x1003e872
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
mov dword [eax + ecx*4], 0xfff6
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1003e85f
mov dword [esp + 0x20], 3
cmp dword [esp + 0x20], ebx
jl 0x1003eabd
mov dword [esp + 0x28], 0x4c821046
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x70]
cmp dword [eax + ecx*4], ebx
je 0x1003e8c7
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0x70]
cmp dword [eax + 0xc], ebx
setne cl
imul eax, ecx, 0xfffffff7
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
cmp eax, dword [ecx + edx*4]
jle 0x1003e8e4
mov ecx, edi
cmp dword [esp + 0x20], ebx
jne 0x1003e8e6
mov ecx, ebx
mov edi, dword [esp + 0x20]
xor edx, edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x70]
setl dl
xor ecx, ecx
cmp edx, eax
setle cl
cmp ecx, 0xfffffffc
sbb eax, eax
xor edx, edx
inc eax
cmp eax, dword [esi + edi*4]
mov eax, dword [esp + 0x24]
setne dl
xor ecx, ecx
cmp edx, dword [esi + eax*4]
mov eax, dword [esp + 0x40]
setne cl
xor edx, edx
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 0x5c]
add eax, 0xa6d7d044
add ecx, eax
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x70]
sete dl
xor ecx, ecx
cmp edx, dword [eax + esi*4]
mov eax, dword [esp + 0x20]
setle cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp dword [esp + 0x24], eax
setle cl
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], 3
cmp dword [esp + 0x1c], ebx
jl 0x1003eab0
xor esi, esi
mov dword [esp + 0x10], ebx
jmp 0x1003e9d2
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003e9a6
cmp dword [esp + 0x10], 3
jle 0x1003e98e
mov dword [esp + 0x10], 3
cmp dword [esp + 0x10], ebx
jl 0x1003eaa6
dec dword [esp + 0x20]
push 1
pop edi
jns 0x1003e88b
mov dword [esp + 0x1c], ebx
jmp 0x1003ead9
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 3
jle 0x1003eac3
or dword [esp + 0x364], 0xffffffff
cmp dword [esp + 0x70], 0
je 0x1003eb05
push dword [esp + 0x70]
call fcn.10050a29
pop ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
cmp dword [esp + 0x17c], 0
je 0x1003ec9b
mov dword [esp + 0x1c], 0xfe0a8eac
lea ecx, [esp + 0xe8]
push 3
call fcn.1002a3c2
mov dword [esp + 0x364], 0xc
mov dword [esp + 0x14], ebx
jmp 0x1003eb50
mov dword [esp + 0x28], 0xb9f9b319
lea ecx, [esp + 0x10c]
push 3
call fcn.1002a3c2
push 4
pop esi
push esi
lea ecx, [esp + 0x170]
mov dword [esp + 0x368], 0xd
call fcn.1002a3c2
mov byte [esp + 0x364], 0xe
mov dword [esp + 0x10], ebx
jmp 0x1003ecec
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10c]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1003ecda
mov dword [esp + 0x10], ebx
jmp 0x1003ed0f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x16c]
mov dword [eax + ecx*4], 0x9393dda3
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1003ecf9
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x28], esi
jge 0x1003edbd
mov esi, dword [esp + 0x10c]
mov dword [esp + 0x24], 0xe60b
lea ecx, [esp + 0x160]
mov dword [esp + 0x40], 0xfffffff6
push 3
call fcn.1002a3c2
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], 0x33fd52a4
mov dword [esp + 0x14], ebx
jmp 0x1003ed70
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], 0x23d1bca9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003ed5a
mov eax, dword [esp + 0x24]
mov dword [esi + 8], eax
inc dword [esp + 0x2c]
cmp dword [esp + 0x160], 0
je 0x1003edae
push dword [esp + 0x160]
call fcn.10050a29
pop ecx
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebx
mov dword [esp + 0x168], ebx
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 4
jl 0x1003ed2a
cmp dword [esp + 0x16c], 0
je 0x1003ede9
push dword [esp + 0x16c]
call fcn.10050a29
pop ecx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], ebx
or dword [esp + 0x364], 0xffffffff
cmp dword [esp + 0x10c], 0
je 0x1003ee1d
push dword [esp + 0x10c]
call fcn.10050a29
pop ecx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], ebx
lea ecx, [esp + 0x178]
call fcn.1003937c
mov dword [esp + 0x20], 0x304b25b3
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x14], ebx
jmp 0x1003ee52
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x208], edi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1003ee43
mov esi, edi
cmp dword [esp + 0x20], ebx
jne 0x1003ee63
mov esi, ebx
mov eax, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp ecx, eax
setne dl
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jne 0x1003eea0
mov edx, ebx
cmp dword [esp + 0x10], ebx
je 0x1003eea2
mov edx, edi
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
add ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x20]
cmp esi, ecx
setl al
cmp eax, dword [esp + 0x20]
je 0x1003f09c
cmp dword [esp + 0x1c], ebx
je 0x1003f09c
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0xcc]
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x40], 0xfffffffb
mov dword [esp + 0x40], 0xffffffff
push edi
call fcn.1002a3c2
mov dword [esp + 0x14], ebx
jmp 0x1003ef15
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0xb88c8eca
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jl 0x1003eeff
mov dword [esp + 0x20], 0x17
jmp 0x1003f063
mov dword [esp + 0x38], 0x58e9
push 6
mov dword [esp + 0x44], 0xb90cb933
pop edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], ebx
jmp 0x1003f041
mov dword [esp + 0x24], 0x57951f1b
mov dword [esp + 0x1c], ebx
jmp 0x1003f02f
mov dword [esp + 0x30], 0x5c8b
mov dword [esp + 0x14], ebx
jmp 0x1003f021
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x28], edi
cmp dword [esp + 0x28], ebx
jl 0x1003f01d
mov eax, dword [esp + 0x1c]
cmp dword [esp + eax*4 + 0x208], ebx
je 0x1003ef99
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov ecx, edi
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
sub ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
mov dword [esp + 0x40], ecx
mov ecx, ebx
cmp dword [esp + 0x30], ebx
je 0x1003efd1
mov ecx, edi
xor eax, eax
cmp ecx, 0x433c
setle al
neg eax
cmp eax, 3
jne 0x1003efe7
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
xor ecx, ecx
sub eax, dword [esp + 0x30]
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x40], 0xa137
mov eax, dword [esp + 0x40]
cmp eax, edx
mov eax, dword [esp + 0xcc]
setne cl
mov dword [eax], ecx
dec dword [esp + 0x28]
jns 0x1003ef80
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x1003ef6a
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], edi
jle 0x1003ef59
dec dword [esp + 0x24]
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jle 0x1003ef48
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0xcc]
cmp dword [ecx], eax
setl dl
mov dword [ecx], edx
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 2
je 0x1003ef28
cmp dword [esp + 0xcc], 0
je 0x1003f0bd
push dword [esp + 0xcc]
call fcn.10050a29
pop ecx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
jmp 0x1003f0bd
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003f0bd
push 0x8a8
push ebx
push 0x1e0f
push 0x19f1
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov esi, dword [esp + 0x34]
test esi, esi
je 0x1003f29b
mov dword [esp + 0x10], 0xdb3ae355
lea ecx, [esp + 0x124]
push edi
call fcn.1002a3c2
mov dword [esp + 0x30], ebx
jmp 0x1003f0fa
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x124]
mov dword [eax + ecx*4], 0x8d7cbae8
inc dword [esp + 0x30]
cmp dword [esp + 0x30], edi
jl 0x1003f0e4
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], 0xffffffe6
jg 0x1003f179
mov dword [esp + 0x30], 0x5d09ea9
inc dword [esp + 0x30]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
neg esi
sbb esi, esi
neg esi
cmp dword [esp + 0x30], 0x615e82aa
jge 0x1003f133
mov eax, dword [esp + 0x30]
imul eax, dword [esp + 0x10], 0x167c
neg eax
sbb eax, eax
neg eax
cmp eax, edi
mov eax, dword [esp + 0x10]
sbb ecx, ecx
xor edx, edx
neg ecx
sub ecx, 8
cmp ecx, eax
mov eax, dword [esp + 0x124]
setge dl
dec edx
add edx, dword [esp + 0x10]
neg edx
sbb edx, edx
inc edx
add edx, esi
mov dword [eax], edx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xffffffe6
jle 0x1003f10b
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x124], 0
je 0x1003f1a5
push dword [esp + 0x124]
call fcn.10050a29
pop ecx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
mov edx, dword [esp + 0x3c]
mov ecx, esi
call fcn.1003cd69
mov esi, eax
mov dword [esp + 0x14], 0xfffffffc
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x14], 0xfffffff9
jmp 0x1003f253
push edi
lea ecx, [esp + 0x84]
call fcn.1002a3c2
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
jmp 0x1003f1fb
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*4], 0x473eb905
inc dword [esp + 0x30]
cmp dword [esp + 0x30], edi
jl 0x1003f1e5
cmp dword [esp + 0x14], ebx
jne 0x1003f260
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x34], ebx
jl 0x1003f223
mov dword [esp + 0x3c], 0xd3f7bf4
dec dword [esp + 0x3c]
dec dword [esp + 0x34]
jns 0x1003f211
cmp dword [esp + 0x80], 0
je 0x1003f24f
push dword [esp + 0x80]
call fcn.10050a29
pop ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xf
jle 0x1003f1ce
jmp 0x1003f28c
cmp dword [esp + 0x80], 0
je 0x1003f28c
push dword [esp + 0x80]
call fcn.10050a29
pop ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
lea eax, [esp + 0xc4]
push eax
call fcn.1003f7a8
mov dword [eax], esi
mov dword [esp + 0x34], 0xd4914d2e
mov dword [esp + 0x24], ebx
mov dword [esp + 0x3c], 0x9a695768
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x3c], 0xb9a733e3
mov dword [esp + 0x3c], edi
mov dword [esp + 0x3c], edi
cmp dword [esp + 0x34], ebx
je 0x1003f2fc
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], ebx
jne 0x1003f2fe
mov edi, ebx
mov dword [esp + 0x3c], edi
xor edx, edx
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
cmp eax, ecx
mov eax, dword [esp + 0x34]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1003f333
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
mov eax, dword [ebp + 8]
lea esi, [esp + 0x1d0]
mov ecx, dword [esp + 0x35c]
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