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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, dword [0x10042040]
xor eax, esp
mov dword [esp + 0xa4], eax
push esi
mov esi, dword [0x100420ec]
push edi
mov edi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov eax, dword [edi + 0x186c]
mov byte [eax + 0x8e], 1
mov eax, dword [edi + 0x186c]
mov dword [esp + 0xc], eax
cmp byte [eax + 0x90], 0
jne 0x1001d5f4
mov ecx, dword [eax + 0x1a4]
xor edx, edx
mov eax, dword [eax + 0x1ac]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x28]
call fcn.1000c820
add esp, 4
mov dword [esp + 0x10], eax
cmp dword [edi + 0x188c], eax
jne 0x1001cd41
mov byte [edi + 0x1898], 1
mov edx, dword [esp + 0x24]
mov ecx, edx
cmp edx, 0xffffffff
jae 0x1001cd6a
nop dword [eax]
mov dl, byte [ecx]
test dl, dl
je 0x1001cd66
cmp dl, 0x23
jne 0x1001cd60
cmp byte [ecx + 1], dl
je 0x1001cd66
inc ecx
cmp ecx, 0xffffffff
jb 0x1001cd50
mov edx, dword [esp + 0x24]
movss xmm2, dword [edi + 0x179c]
mov eax, dword [edi + 0x1798]
mov dword [esp + 0x14], eax
movss dword [esp + 0x18], xmm2
cmp edx, ecx
jne 0x1001cd91
xorps xmm7, xmm7
movss dword [esp + 0x30], xmm7
jmp 0x1001cdef
movss xmm3, dword [0x1003f2e8]
push ecx
push ecx
push edx
push ecx
lea ecx, [esp + 0x2c]
mov dword [esp], 0xbf800000
push ecx
mov ecx, eax
call fcn.10035400
movss xmm0, dword [esp + 0x1c]
xorps xmm7, xmm7
comiss xmm0, xmm7
jbe 0x1001cdd0
mov eax, dword [esp + 0x14]
movss xmm1, dword [esp + 0x18]
divss xmm1, dword [eax]
subss xmm0, xmm1
addss xmm0, dword [0x1003f220]
movss xmm2, dword [esp + 0x20]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x30], xmm0
mov ecx, dword [esi + 0x186c]
movss xmm3, dword [ecx + 0x144]
comiss xmm7, xmm3
jbe 0x1001ce77
mov eax, dword [ecx + 0x1a0]
movss xmm4, dword [ecx + 0xd8]
movss xmm1, dword [ecx + 0x4c]
mov dword [esp + 0x14], eax
subss xmm4, dword [ecx + 0x14]
test eax, eax
je 0x1001ce63
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x14]
lea eax, [edx + 1]
movss xmm0, dword [ecx + 0x14]
test eax, eax
cmovns edx, eax
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [esp + 0x14]
movss xmm1, dword [edx + 0x18]
mov eax, dword [edx + 0x34]
subss xmm1, xmm0
mulss xmm1, dword [eax + ecx*4]
mov ecx, dword [esi + 0x186c]
addss xmm1, xmm0
subss xmm1, dword [ecx + 0x54]
subss xmm1, xmm4
addss xmm1, xmm3
movss xmm3, dword [0x1003f228]
maxss xmm3, xmm1
movss xmm5, dword [edi + 0x141c]
xorps xmm1, xmm1
cvttss2si eax, xmm3
addss xmm5, xmm5
movd xmm6, eax
mov eax, dword [ebp + 8]
addss xmm5, xmm2
cvtdq2ps xmm6, xmm6
movss xmm4, dword [eax]
xorps xmm2, xmm2
comiss xmm7, xmm4
movss xmm3, dword [eax + 4]
ja 0x1001ceae
comiss xmm7, xmm3
jbe 0x1001cf15
movss xmm1, dword [ecx + 0x4c]
movss xmm2, dword [ecx + 0x50]
mov ecx, dword [ecx + 0x1a0]
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x1001cf03
mov edx, dword [ecx + 0xc]
movss xmm0, dword [ecx + 0x14]
lea eax, [edx + 1]
test eax, eax
cmovns edx, eax
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [esp + 0x18]
movss xmm1, dword [edx + 0x18]
mov eax, dword [edx + 0x34]
subss xmm1, xmm0
mulss xmm1, dword [eax + ecx*4]
mov eax, dword [esi + 0x186c]
addss xmm1, xmm0
subss xmm1, dword [eax + 0x54]
mov eax, dword [esi + 0x186c]
add eax, 0x14
addss xmm1, dword [eax]
addss xmm2, dword [eax + 4]
comiss xmm7, xmm4
movss xmm0, dword [0x1003f288]
jb 0x1001cf46
ucomiss xmm4, xmm7
lahf
test ah, 0x44
jp 0x1001cf30
movaps xmm4, xmm6
jmp 0x1001cf46
mov eax, dword [esi + 0x186c]
subss xmm1, dword [eax + 0xd8]
maxss xmm1, xmm0
addss xmm4, xmm1
comiss xmm7, xmm3
jb 0x1001cf6f
ucomiss xmm3, xmm7
lahf
test ah, 0x44
jp 0x1001cf59
movaps xmm3, xmm5
jmp 0x1001cf6f
mov eax, dword [esi + 0x186c]
subss xmm2, dword [eax + 0xdc]
maxss xmm2, xmm0
addss xmm3, xmm2
mov ecx, dword [esp + 0xc]
movss xmm1, dword [esp + 0x30]
comiss xmm1, xmm7
movss xmm5, dword [ecx + 0xd8]
movss xmm2, dword [ecx + 0xdc]
movaps xmm0, xmm5
addss xmm0, xmm4
movss dword [esp + 0x1c], xmm5
movaps xmm4, xmm2
movss dword [esp + 0x18], xmm2
addss xmm4, xmm3
movss dword [esp + 0x3c], xmm5
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x4c], xmm4
movss dword [esp + 0x48], xmm4
jbe 0x1001cfd6
addss xmm1, dword [edi + 0x1430]
jmp 0x1001cfd9
xorps xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x50], xmm5
movaps xmm1, xmm4
movss dword [esp + 0x54], xmm2
addss xmm1, xmm7
lea ecx, [esp + 0x34]
movss dword [esp + 0x58], xmm0
subss xmm0, xmm5
movss dword [esp + 0x5c], xmm1
subss xmm1, xmm2
movss dword [esp + 0x34], xmm0
movss dword [esp + 0x38], xmm1
movss xmm1, dword [edi + 0x141c]
call fcn.1000dd00
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x50]
call fcn.1000de70
test al, al
je 0x1001d5f4
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x140]
inc dword [ecx + 0x244]
and eax, 5
mov edx, dword [ecx + 0x244]
cmp eax, 1
jne 0x1001d05a
inc dword [ecx + 0x248]
cmp edx, dword [ecx + 0x24c]
jne 0x1001d069
mov byte [esp + 0xb], 1
jmp 0x1001d086
cmp eax, 1
jne 0x1001d081
mov eax, dword [ecx + 0x248]
mov byte [esp + 0xb], 1
cmp eax, dword [ecx + 0x250]
je 0x1001d086
mov byte [esp + 0xb], 0
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x3c]
call fcn.1000dfc0
mov edx, dword [esp + 0x10]
test al, al
je 0x1001d0e5
mov dword [esi + 0x187c], edx
mov byte [esi + 0x1880], 0
test edx, edx
je 0x1001d0c3
cmp dword [esi + 0x1884], edx
jne 0x1001d0c3
movss xmm0, dword [esi + 0x1888]
addss xmm0, dword [esi + 0xc]
jmp 0x1001d0c6
xorps xmm0, xmm0
movss dword [esi + 0x1888], xmm0
mov dword [edi + 0x19f8], 1
cmp byte [edi + 0x36c], 0
je 0x1001d0e5
mov al, 1
jmp 0x1001d0e7
xor al, al
cmp byte [esp + 0xb], 0
jne 0x1001d145
test al, al
jne 0x1001d145
cmp byte [edi + 0x36c], al
je 0x1001d1cd
mov ecx, dword [edi + 0x188c]
cmp ecx, edx
jne 0x1001d1cd
test ecx, ecx
setne al
mov byte [esi + 0x1899], al
test ecx, ecx
je 0x1001d125
mov dword [esi + 0x1894], 0
mov dword [esi + 0x188c], 0
mov byte [esi + 0x189a], 0
mov dword [esi + 0x18a4], 0
jmp 0x1001d1cd
cmp dword [edi + 0x188c], edx
je 0x1001d182
push 0x200
lea eax, [edi + 0xe5]
mov dword [edi + 0xd4], 0
push 0
push eax
mov byte [edi + 0xd8], 0
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov dword [ecx], 0
cmp dword [esi + 0x188c], edx
setne al
mov byte [esi + 0x1899], al
je 0x1001d19d
mov dword [esi + 0x1894], 0
mov ecx, dword [esp + 0xc]
test edx, edx
mov dword [esi + 0x188c], edx
setne al
mov byte [esi + 0x189a], 0
or byte [esi + 0x1898], al
mov dword [esi + 0x18a4], ecx
call fcn.100177b0
mov esi, dword [0x100420ec]
xorps xmm7, xmm7
mov eax, dword [esp + 0x28]
mov byte [esp + 0xb], 0
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
cmp dword [edi + 0x188c], eax
jne 0x1001d3b1
xor edx, edx
nop
cmp byte [edi + edx + 0xd4], 0
je 0x1001d278
cmp edx, 4
ja case.default.0x1001d1ff
jmp dword [edx*4 + 0x1001d60c]
mov dword [esp + 0xc], 1
jmp case.default.0x1001d1ff
mov dword [esp + 0xc], 2
jmp case.default.0x1001d1ff
mov dword [esp + 0xc], 4
jmp case.default.0x1001d1ff
mov dword [esp + 0xc], 5
jmp case.default.0x1001d1ff
mov dword [esp + 0xc], 6
mov ecx, dword [esi + 0x188c]
mov ah, 1
test ecx, ecx
mov byte [esp + 0xb], ah
setne al
mov byte [esi + 0x1899], al
test ecx, ecx
je 0x1001d25b
mov dword [esi + 0x1894], 0
mov dword [esi + 0x188c], 0
mov byte [esi + 0x189a], 0
mov dword [esi + 0x18a4], 0
jmp 0x1001d27c
mov ah, byte [esp + 0xb]
inc edx
cmp edx, 5
jl 0x1001d1f0
test ah, ah
jne 0x1001d2e6
mov edx, 8
nop
cmp byte [edi + edx + 0xe5], 0
je 0x1001d2dd
mov ecx, dword [esi + 0x188c]
test ecx, ecx
mov dword [esp + 0xc], edx
setne al
mov byte [esp + 0xb], 1
mov byte [esi + 0x1899], al
test ecx, ecx
je 0x1001d2c2
mov dword [esi + 0x1894], 0
mov dword [esi + 0x188c], 0
mov byte [esi + 0x189a], 0
mov dword [esi + 0x18a4], 0
inc edx
cmp edx, 0xa5
jle 0x1001d290
mov eax, dword [esi + 0x58]
test eax, eax
js 0x1001d3a7
movss xmm1, dword [esi + eax*4 + 0x3e4]
ucomiss xmm1, xmm7
lahf
test ah, 0x44
jnp 0x1001d361
movss xmm2, dword [esi + 0x74]
comiss xmm1, xmm2
jbe 0x1001d3a7
movss xmm3, dword [esi + 0x78]
ucomiss xmm1, xmm7
lahf
test ah, 0x44
jp 0x1001d326
mov eax, 1
jmp 0x1001d35d
comiss xmm2, xmm1
jae 0x1001d35b
comiss xmm7, xmm3
jae 0x1001d35b
movaps xmm0, xmm1
subss xmm1, xmm2
subss xmm0, dword [esi + 0xc]
divss xmm1, xmm3
subss xmm0, xmm2
cvttss2si ecx, xmm1
divss xmm0, xmm3
cvttss2si eax, xmm0
sub ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
jmp 0x1001d35d
xor eax, eax
test eax, eax
jle 0x1001d3a7
mov eax, dword [esp + 0x28]
mov dword [eax], 0
mov ecx, dword [esi + 0x188c]
test ecx, ecx
setne al
mov byte [esi + 0x1899], al
test ecx, ecx
je 0x1001d38a
mov dword [esi + 0x1894], 0
mov dword [esi + 0x188c], 0
mov byte [esi + 0x189a], 0
mov dword [esi + 0x18a4], 0
jmp 0x1001d3b1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov dword [ecx], eax
mov eax, dword [str.None]
mov dword [esp + 0x68], eax
mov al, byte [0x1003ee80]
push 0x3b
mov byte [esp + 0x70], al
lea eax, [esp + 0x71]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
movups xmm2, xmmword [esi + 0x1528]
add esp, 0xc
movss xmm6, dword [0x1003f228]
xorps xmm0, xmm0
comiss xmm0, xmm2
movaps xmm4, xmm2
movaps xmmword [esp + 0x50], xmm2
shufps xmm4, xmm2, 0xff
mulss xmm4, dword [esi + 0x13e4]
jbe 0x1001d404
xorps xmm1, xmm1
jmp 0x1001d40b
movaps xmm1, xmm6
minss xmm1, xmm2
movss xmm2, dword [0x1003f2d8]
movss xmm3, dword [0x1003f1f8]
movss xmm5, dword [esp + 0x54]
comiss xmm0, xmm5
mulss xmm1, xmm2
addss xmm1, xmm3
cvttss2si edx, xmm1
jbe 0x1001d437
xorps xmm1, xmm1
jmp 0x1001d43e
movaps xmm1, xmm6
minss xmm1, xmm5
movss xmm5, dword [esp + 0x58]
mulss xmm1, xmm2
addss xmm1, xmm3
cvttss2si eax, xmm1
shl eax, 8
or edx, eax
comiss xmm0, xmm5
jbe 0x1001d45f
xorps xmm1, xmm1
jmp 0x1001d466
movaps xmm1, xmm6
minss xmm1, xmm5
mulss xmm1, xmm2
addss xmm1, xmm3
cvttss2si eax, xmm1
shl eax, 0x10
or edx, eax
comiss xmm0, xmm4
jbe 0x1001d481
xorps xmm6, xmm6
jmp 0x1001d485
minss xmm6, xmm4
push dword [esp + 0x48]
mulss xmm6, xmm2
push dword [esp + 0x48]
movss xmm2, dword [edi + 0x1420]
push dword [esp + 0x48]
addss xmm6, xmm3
push dword [esp + 0x48]
cvttss2si ecx, xmm6
shl ecx, 0x18
or ecx, edx
mov dl, 1
call fcn.10010f80
mov eax, dword [esp + 0x38]
add esp, 0x10
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
test ecx, ecx
je 0x1001d4ec
cmp dword [edi + 0x188c], eax
je 0x1001d4f4
mov ecx, dword [ecx*4 + 0x1003ad50]
lea edx, [esp + 0x68]
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x1001d4e0
jmp 0x1001d516
cmp dword [edi + 0x188c], eax
jne 0x1001d516
mov eax, dword [0x1003ee8c]
movq xmm0, qword [str._Press_a_key_]
mov dword [esp + 0x70], eax
mov ax, word [0x1003ee90]
movq qword [esp + 0x68], xmm0
mov word [esp + 0x74], ax
movss xmm1, dword [edi + 0x1418]
lea eax, [esp + 0x34]
movss xmm0, dword [esp + 0x14]
lea edx, [esp + 0x28]
movss xmm2, dword [esp + 0x4c]
subss xmm0, xmm1
addss xmm1, dword [esp + 0x1c]
push 0
push eax
push 0
movss dword [esp + 0x34], xmm0
lea eax, [esp + 0x74]
movss xmm0, dword [edi + 0x141c]
subss xmm2, xmm0
mov dword [esp + 0x40], 0
addss xmm0, dword [esp + 0x24]
push ecx
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x4c], 0
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x34], xmm0
call fcn.10010ab0
movss xmm0, dword [esp + 0x44]
add esp, 0x14
comiss xmm0, dword [0x1003f1ac]
jbe 0x1001d5dc
movss xmm0, dword [esp + 0x14]
xor edx, edx
addss xmm0, dword [edi + 0x1430]
mov ecx, dword [esp + 0x24]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x18]
addss xmm0, dword [edi + 0x141c]
movss dword [esp + 0x20], xmm0
push dword [esp + 0x20]
push dword [esp + 0x20]
push 1
call fcn.100106e0
add esp, 0xc
mov al, byte [esp + 0xb]
pop edi
pop esi
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.10037580
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xac]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.10037580
mov esp, ebp
pop ebp
ret