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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb0
push esi
push edi
mov edi, dword [0x100bc128]
mov esi, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x44], esi
mov eax, dword [edi + 0x1a6c]
mov byte [eax + 0x8c], 1
mov eax, dword [edi + 0x1a6c]
mov dword [esp + 0xc], eax
cmp byte [eax + 0x8f], 0
jne 0x10039a33
mov ecx, dword [eax + 0xc0]
xor edx, edx
mov eax, dword [eax + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, esi
call fcn.100120f0
mov esi, eax
mov dword [esp + 0x20], esi
cmp dword [edi + 0x1aa4], esi
jne 0x1003936f
mov dword [edi + 0x1aa8], esi
cmp dword [edi + 0x1adc], esi
jne 0x1003937e
mov byte [edi + 0x1ae0], 1
mov edx, dword [esp + 0x44]
mov eax, edx
cmp edx, 0xffffffff
jae 0x100393a6
nop dword [eax]
mov cl, byte [eax]
test cl, cl
je 0x100393a6
cmp cl, 0x23
jne 0x100393a0
cmp byte [eax + 1], cl
je 0x100393a6
inc eax
cmp eax, 0xffffffff
jb 0x10039390
movss xmm1, dword [edi + 0x1930]
cmp edx, eax
jne 0x100393b7
xorps xmm0, xmm0
jmp 0x100393f4
push ecx
push eax
push edx
push ecx
mov ecx, dword [edi + 0x192c]
lea eax, [esp + 0x20]
mov dword [esp], 0xbf800000
movaps xmm2, xmm1
push eax
call fcn.10032170
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [0x100afeb4]
movss xmm1, dword [esp + 0x14]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [edi + 0x1554]
movaps xmm2, xmm0
addss xmm2, xmm0
addss xmm2, xmm1
call fcn.1001df70
mov eax, dword [ebp + 8]
movaps xmm1, xmm2
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
call fcn.1001dfe0
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x10]
movaps xmm4, xmm1
movss dword [esp + 0x4c], xmm1
movss xmm1, dword [esp + 0x2c]
movaps xmm3, xmm0
addss xmm1, dword [edi + 0x1568]
movss xmm2, dword [eax + 0xcc]
addss xmm3, xmm2
movss dword [esp + 0x48], xmm0
movss xmm0, dword [eax + 0xd0]
addss xmm4, xmm0
movss dword [esp + 0x28], xmm0
addss xmm1, xmm2
movss dword [esp + 0x34], xmm0
movss dword [esp + 0x6c], xmm0
movss dword [esp + 0x40], xmm3
movss dword [esp + 0x38], xmm3
movss dword [esp + 0x24], xmm4
movss dword [esp + 0x30], xmm1
movaps xmm1, xmm3
subss xmm1, xmm2
movss dword [esp + 0x3c], xmm4
movss dword [esp + 0x68], xmm2
movss dword [esp + 0x70], xmm3
movss dword [esp + 0x74], xmm4
movss dword [esp + 0x10], xmm1
movaps xmm1, xmm4
subss xmm1, xmm0
movss xmm0, dword [edi + 0x1554]
movss dword [esp + 0x14], xmm1
call fcn.1001da70
push 0
mov edx, esi
lea ecx, [esp + 0x6c]
call fcn.1001dba0
test al, al
je 0x10039a33
mov ecx, dword [esp + 0xc]
xor edx, edx
cmp dword [edi + 0x1aa4], esi
sete dl
call fcn.10014820
mov edx, esi
mov byte [esp + 0xb], al
lea ecx, [esp + 0x30]
call fcn.10014670
test al, al
je 0x1003952d
mov ecx, esi
call fcn.10014530
mov dword [edi + 0x1e68], 1
cmp byte [edi + 0x3d8], 0
je 0x1003952d
mov al, 1
jmp 0x1003952f
xor al, al
cmp byte [esp + 0xb], 0
jne 0x10039551
test al, al
jne 0x10039551
cmp byte [edi + 0x3d8], al
je 0x1003959c
cmp dword [edi + 0x1aa4], esi
jne 0x1003959c
call fcn.100144b0
jmp 0x1003959c
cmp dword [edi + 0x1aa4], esi
je 0x1003958a
push 0x200
lea eax, [edi + 0x100]
mov dword [edi + 0xec], 0
push 0
push eax
mov byte [edi + 0xf0], 0
call fcn.100744f0
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov dword [ecx], 0
mov edx, dword [esp + 0xc]
mov ecx, esi
call fcn.100143e0
mov ecx, edx
call fcn.1001d240
mov eax, dword [esp + 0x18]
mov byte [esp + 0xb], 0
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x100bc128]
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x1aa4], esi
jne 0x100396e5
xor esi, esi
cmp byte [esi + edi + 0xec], 0
je 0x10039612
cmp esi, 4
ja case.default.0x100395d1
jmp dword [esi*4 + 0x10039a40]
mov dword [esp + 0xc], 1
jmp case.default.0x100395d1
mov dword [esp + 0xc], 2
jmp case.default.0x100395d1
mov dword [esp + 0xc], 4
jmp case.default.0x100395d1
mov dword [esp + 0xc], 5
jmp case.default.0x100395d1
mov dword [esp + 0xc], 6
mov byte [esp + 0xb], 1
call fcn.100144b0
inc esi
cmp esi, 5
jl 0x100395c2
cmp byte [esp + 0xb], 0
jne 0x10039645
mov esi, 8
cmp byte [edi + esi + 0x100], 0
je 0x1003963c
mov dword [esp + 0xc], esi
mov byte [esp + 0xb], 1
call fcn.100144b0
inc esi
cmp esi, 0xa5
jle 0x10039624
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x6c]
test eax, eax
js 0x100396d7
movss xmm1, dword [ecx + eax*4 + 0x458]
xorps xmm4, xmm4
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x100396c6
movss xmm2, dword [ecx + 0x8c]
comiss xmm1, xmm2
jbe 0x100396d7
movss xmm3, dword [ecx + 0x90]
movaps xmm0, xmm1
subss xmm0, dword [ecx + 0x18]
comiss xmm0, xmm1
jb 0x1003968f
xor eax, eax
jmp 0x100396c2
comiss xmm4, xmm3
jb 0x1003969e
xor eax, eax
comiss xmm2, xmm0
seta al
jmp 0x100396c2
comiss xmm2, xmm0
jbe 0x100396a8
or ecx, 0xffffffff
jmp 0x100396b4
subss xmm0, xmm2
divss xmm0, xmm3
cvttss2si ecx, xmm0
subss xmm1, xmm2
divss xmm1, xmm3
cvttss2si eax, xmm1
sub eax, ecx
test eax, eax
jle 0x100396d7
mov eax, dword [esp + 0x18]
mov dword [eax], 0
call fcn.100144b0
jmp 0x100396e1
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov dword [ecx], eax
mov esi, dword [esp + 0x20]
mov eax, dword [str.None]
mov dword [esp + 0x78], eax
mov al, byte [0x100adb5c]
push 0x3b
mov byte [esp + 0x80], al
lea eax, [esp + 0x81]
push 0
push eax
call fcn.100744f0
mov edx, dword [esp + 0x28]
xorps xmm2, xmm2
movss xmm3, dword [edi + 0x1558]
add esp, 0xc
movss xmm1, dword [0x100afebc]
movss dword [esp + 0x20], xmm3
movss xmm0, dword [edx + 0x1518]
comiss xmm2, xmm0
jbe 0x1003973d
xorps xmm0, xmm0
jmp 0x10039741
minss xmm0, xmm1
mulss xmm0, dword [0x100affac]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
addss xmm0, dword [0x100afe7c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x34]
cvttss2si eax, xmm0
push 0xf
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 0x1a6c]
push ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx + 0x288]
shl eax, 0x18
or eax, 0x4d4033
movss dword [esp], xmm3
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.1002e880
mov eax, dword [esp + 0x1c]
movss xmm3, dword [eax + 0x155c]
comiss xmm3, dword [0x100afde4]
movss dword [esp + 0x1c], xmm3
jbe 0x10039899
movss xmm2, dword [0x100afebc]
movss xmm0, dword [esp + 0x24]
movss xmm1, dword [esp + 0x40]
addss xmm0, xmm2
addss xmm1, xmm2
push ecx
movss dword [esp], xmm3
mov ecx, 6
push 0xf
movss dword [esp + 0x6c], xmm0
sub esp, 8
movss xmm0, dword [esp + 0x38]
addss xmm0, xmm2
movss dword [esp + 0x70], xmm1
movss xmm1, dword [esp + 0x40]
addss xmm1, xmm2
movss dword [esp + 0x64], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 4], xmm0
movaps xmm0, xmm2
movss dword [esp + 0x60], xmm1
call fcn.10012e10
mov ecx, dword [esp + 0x1c]
add esp, 4
mov ecx, dword [ecx + 0x288]
push eax
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.1002e7a0
movss xmm0, dword [esp + 0x1c]
push ecx
movss dword [esp], xmm0
mov ecx, 5
movss xmm0, dword [esp + 0x24]
push 0xf
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [0x100afebc]
call fcn.10012e10
add esp, 4
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x288]
call fcn.1002e7a0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x100398c4
cmp dword [edi + 0x1aa4], esi
je 0x100398cc
lea eax, [eax + eax*2]
cmp dword [eax*8 + 0x100bc1d4], 0x10
lea eax, [eax*8 + 0x100bc1c0]
jb 0x100398c1
mov eax, dword [eax]
push eax
jmp 0x100398d1
cmp dword [edi + 0x1aa4], esi
jne 0x100398e0
push str._Press_a_key_
lea eax, [esp + 0x7c]
push 0x40
push eax
call fcn.10080324
add esp, 0xc
movss xmm3, dword [esp + 0x30]
lea ecx, [esp + 0x78]
movss xmm2, dword [esp + 0x28]
movaps xmm0, xmm3
addss xmm0, dword [esp + 0x48]
movss xmm1, dword [edi + 0x1550]
mov eax, ecx
movss xmm5, dword [esp + 0x24]
movss xmm4, dword [esp + 0x40]
movss dword [esp + 0x30], xmm3
subss xmm4, xmm1
movss dword [esp + 0x38], xmm0
movaps xmm0, xmm2
movss dword [esp + 0x34], xmm2
addss xmm1, xmm3
mov dword [esp + 0x24], ecx
addss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x50], xmm4
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [edi + 0x1554]
subss xmm5, xmm0
addss xmm0, xmm2
movss dword [esp + 0x54], xmm5
movss dword [esp + 0x14], xmm0
cmp eax, 0xffffffff
jae 0x10039989
nop dword [eax]
mov al, byte [ecx]
test al, al
je 0x10039985
cmp al, 0x23
jne 0x1003997f
cmp byte [ecx + 1], al
je 0x10039985
inc ecx
cmp ecx, 0xffffffff
jb 0x10039970
mov dword [esp + 0x24], ecx
mov eax, ecx
lea edx, [esp + 0x78]
sub eax, edx
je 0x100399e5
mov esi, dword [0x100bc128]
lea eax, [esp + 0x30]
push eax
lea eax, [edi + 0x15ac]
push eax
push 0
push ecx
mov ecx, dword [esi + 0x1a6c]
mov eax, edx
push eax
lea eax, [esp + 0x64]
push eax
mov ecx, dword [ecx + 0x288]
lea edx, [esp + 0x28]
call fcn.100132e0
cmp byte [esi + 0x2f04], 0
je 0x100399df
push dword [esp + 0x24]
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x14]
call fcn.10023150
movss xmm2, dword [esp + 0x28]
movss xmm0, dword [esp + 0x2c]
comiss xmm0, dword [0x100afde4]
jbe 0x10039a27
addss xmm2, dword [edi + 0x1554]
movss xmm0, dword [esp + 0x68]
xor edx, edx
mov ecx, dword [esp + 0x44]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x10]
movss dword [esp + 0x14], xmm2
movss xmm1, dword [esp + 0x14]
push 1
call fcn.100131b0
mov al, byte [esp + 0xb]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 4