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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x138
mov eax, dword [0x100cd008]
xor eax, esp
mov dword [esp + 0x134], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x74], eax
lea eax, [edi + 0x2a18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x3c], eax
cmp edi, eax
jae 0x1002115a
movsd xmm0, qword [0x100c24e0]
xorps xmm1, xmm1
movsd xmm4, qword [0x100c4130]
movsd xmm3, qword [0x100c2608]
movsd xmm6, qword [0x100c1080]
movsd xmm7, qword [0x100c0da8]
movsd xmm5, qword [0x100c07d0]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x3c]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [0x100c1ae8]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [0x100c0840]
movsd qword [esp + 0xd0], xmm0
movsd xmm0, qword [0x100c2d28]
movsd qword [esp + 0xd8], xmm0
movsd xmm0, qword [0x100c27f8]
movsd qword [esp + 0xe0], xmm0
movsd xmm0, qword [0x100c1bf8]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [0x100c1ac8]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [0x100c2b90]
movsd xmm2, qword [esp + 0x90]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x40], xmm4
movsd qword [esp + 0x58], xmm3
movsd qword [esp + 0x68], xmm6
movsd qword [esp + 0x28], xmm7
movsd qword [esp + 0x20], xmm5
movsd qword [esp + 0x80], xmm1
mov dword [esp + 0x1c], edx
movsd qword [esp + 0x50], xmm2
movsd qword [esp + 0x30], xmm0
mov dword [esp + 0x18], eax
cmp edi, 0xac1
ja 0x10020e1e
je 0x10020df2
cmp edi, 0x57e
ja 0x10020d38
je 0x10020c7f
cmp edi, 0x3b
je 0x10020c5c
cmp edi, 0x6c
jne 0x10021136
movsd xmm0, qword [esp + 0xa0]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0xac]
movsd qword [esp + 0xac], xmm3
push eax
lea eax, [esp + 0xb8]
movsd qword [esp + 0xb8], xmm0
push eax
lea eax, [esp + 0x94]
movsd qword [esp + 0x6c], xmm6
push 0xc3
push eax
movsd qword [esp + 0x9c], xmm7
call fcn.10011f40
movsd xmm1, qword [esp + 0x3c]
lea ecx, [esp + 0x104]
movsd xmm0, qword [esp + 0x7c]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
movsd xmm2, qword [esp + 0xac]
call fcn.10058ca0
push dword [esp + 0x28]
movsd xmm2, qword [esp + 0x38]
mov edx, 0x1007cb80
movsd xmm1, qword [esp + 0xd0]
mov ecx, str.eraC2ixy
movsd xmm0, qword [esp + 0x108]
call fcn.10027f90
add esp, 0x18
jmp 0x10021106
mov edi, dword [ebp + 0xc]
xor edx, edx
movsd xmm0, qword [ecx]
comisd xmm0, xmmword [edi]
mov edi, dword [esp + 0x60]
movsd xmm0, qword [esp + 0x30]
setae dl
mov dword [esp + 0x1c], edx
jmp 0x10021136
mov eax, dword [ebp + 0xc]
test edx, edx
cmove eax, ecx
movsd xmm0, qword [eax]
mov eax, ecx
cmove eax, dword [ebp + 0xc]
xor edi, edi
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x30], xmm0
movsd xmm2, qword [eax]
movsd qword [esp + 0x50], xmm2
nop dword [eax]
movaps xmm1, xmm0
lea edx, [esp + 0xc8]
lea ecx, [esp + 0xc0]
movaps xmm0, xmm2
call fcn.10030c60
mov dword [esp + 0x18], eax
test eax, eax
js 0x10021160
movsd xmm2, qword [esp + 0x50]
inc edi
movsd xmm0, qword [esp + 0x88]
movaps xmm1, xmm2
subsd xmm1, qword [esp + 0xc0]
subsd xmm0, qword [esp + 0xc8]
addsd xmm1, qword [esp + 0x30]
addsd xmm0, xmm1
movsd qword [esp + 0x30], xmm0
cmp edi, 3
jl 0x10020cb0
movsd xmm4, qword [esp + 0x40]
movsd xmm5, qword [esp + 0x20]
movsd xmm7, qword [esp + 0x28]
movsd xmm3, qword [esp + 0x58]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x10021136
cmp edi, 0x5af
jne 0x10021136
movsd xmm1, qword [esp + 0xd0]
mov edx, 0x1007cb90
movsd xmm0, qword [esp + 0xf8]
movaps xmm2, xmm5
push ecx
mov ecx, str.eraC2ixy
call fcn.10027f90
push dword [esp + 0x18]
movsd xmm2, qword [esp + 0x28]
mov edx, 0x1007cb94
movsd xmm1, qword [esp + 0xe0]
mov ecx, str.eraC2ixy
movsd xmm0, qword [esp + 0x108]
call fcn.10027f90
push dword [esp + 0x1c]
movsd xmm2, qword [esp + 0x2c]
mov edx, 0x1007cb98
movsd xmm1, qword [esp + 0xec]
mov ecx, str.eraC2ixy
movsd xmm0, qword [esp + 0x114]
call fcn.10027f90
push dword [esp + 0x20]
movsd xmm2, qword [esp + 0x30]
mov edx, 0x1007cb9c
movsd xmm1, qword [esp + 0xf8]
mov ecx, str.eraC2ixy
movsd xmm0, qword [esp + 0x120]
call fcn.10027f90
add esp, 0x10
jmp 0x10021106
test edx, edx
je 0x10020dfb
movaps xmm1, xmm0
jmp 0x10020e01
movaps xmm1, xmm2
movaps xmm2, xmm0
mov esi, dword [esp + 0x70]
movsd qword [esi], xmm2
mov esi, dword [esp + 0x74]
movsd xmm2, qword [esp + 0x50]
movsd qword [esi], xmm1
mov esi, eax
jmp 0x10021136
mov eax, edi
sub eax, 0xaf2
je 0x10020ee8
sub eax, 0x512
je 0x1002115e
sub eax, 0x31
jne 0x10021132
movsd xmm3, qword [esp + 0x130]
movsd xmm6, qword [esp + 0x90]
movaps xmm2, xmm3
subsd xmm2, xmm6
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x10020eba
movaps xmm1, xmm2
movaps xmm0, xmm5
andps xmm1, xmm4
andps xmm0, xmm4
comisd xmm1, xmm0
jbe 0x10020eb4
movaps xmm0, xmm6
mov dword [ecx], 1
divsd xmm0, xmm2
sub esp, 0x18
andps xmm0, xmm4
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm6
push 0x1007cbac
push str.eraC2ixy
push str._s_failed:__s_want__.20g_got__.20g__1__.3g__n
call fcn.100010e0
add esp, 0x24
jmp 0x10021106
movsd xmm0, qword [esp + 0x30]
cmp dword [0x100ceab0], 0
je 0x10021126
movsd xmm0, qword [esp + 0x130]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm6
push 0x1007cbac
jmp 0x100210f4
movsd xmm3, qword [esp + 0x118]
movaps xmm2, xmm3
subsd xmm2, qword [esp + 0x78]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x10020f59
movaps xmm1, xmm2
movaps xmm0, xmm5
andps xmm1, xmm4
andps xmm0, xmm4
comisd xmm1, xmm0
jbe 0x10020f59
movsd xmm1, qword [esp + 0x78]
sub esp, 0x18
movaps xmm0, xmm1
mov dword [ecx], 1
divsd xmm0, xmm2
andps xmm0, xmm4
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm1
push 0x1007cba0
push str.eraC2ixy
push str._s_failed:__s_want__.20g_got__.20g__1__.3g__n
call fcn.100010e0
add esp, 0x24
jmp 0x10020f99
cmp dword [0x100ceab0], 0
je 0x10020fb5
movsd xmm0, qword [esp + 0x118]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x88]
movsd qword [esp], xmm0
push 0x1007cba0
push str.eraC2ixy
push str._s_passed:__s_want__.20g_got__.20g_n
call fcn.100010e0
add esp, 0x1c
mov ecx, dword [esp + 0x14]
movsd xmm7, qword [esp + 0x28]
movsd xmm6, qword [esp + 0x68]
movsd xmm5, qword [esp + 0x20]
movsd xmm4, qword [esp + 0x40]
movsd xmm3, qword [esp + 0x120]
movaps xmm2, xmm3
subsd xmm2, xmm6
ucomisd xmm2, qword [esp + 0x80]
lahf
test ah, 0x44
jnp 0x10021023
movaps xmm1, xmm2
movaps xmm0, xmm5
andps xmm1, xmm4
andps xmm0, xmm4
comisd xmm1, xmm0
jbe 0x10021023
movaps xmm0, xmm6
mov dword [ecx], 1
divsd xmm0, xmm2
sub esp, 0x18
andps xmm0, xmm4
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm6
push 0x1007cba4
push str.eraC2ixy
push str._s_failed:__s_want__.20g_got__.20g__1__.3g__n
call fcn.100010e0
add esp, 0x24
jmp 0x1002105a
cmp dword [0x100ceab0], 0
je 0x10021060
movsd xmm0, qword [esp + 0x120]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm6
push 0x1007cba4
push str.eraC2ixy
push str._s_passed:__s_want__.20g_got__.20g_n
call fcn.100010e0
add esp, 0x1c
movsd xmm7, qword [esp + 0x28]
movsd xmm3, qword [esp + 0x128]
movsd xmm4, qword [esp + 0x40]
movaps xmm2, xmm3
movsd xmm5, qword [esp + 0x20]
subsd xmm2, xmm7
ucomisd xmm2, qword [esp + 0x80]
lahf
test ah, 0x44
jnp 0x100210cf
movaps xmm1, xmm2
movaps xmm0, xmm5
andps xmm1, xmm4
andps xmm0, xmm4
comisd xmm1, xmm0
jbe 0x100210cf
movaps xmm0, xmm7
mov eax, dword [esp + 0x14]
divsd xmm0, xmm2
sub esp, 0x18
mov dword [eax], 1
andps xmm0, xmm4
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm7
push 0x1007cba8
jmp 0x10020e9d
cmp dword [0x100ceab0], 0
je 0x10021118
movsd xmm0, qword [esp + 0x128]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm7
push 0x1007cba8
push str.eraC2ixy
push str._s_passed:__s_want__.20g_got__.20g_n
call fcn.100010e0
add esp, 0x1c
movsd xmm5, qword [esp + 0x20]
movsd xmm7, qword [esp + 0x28]
movsd xmm4, qword [esp + 0x40]
movsd xmm0, qword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
movsd xmm2, qword [esp + 0x50]
movsd xmm3, qword [esp + 0x58]
mov eax, dword [esp + 0x18]
add edi, 0x543
mov dword [esp + 0x60], edi
cmp edi, dword [esp + 0x3c]
jae 0x1002115e
movsd xmm6, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x80]
jmp 0x10020b73
mov esi, dword [esp + 0x3c]
mov eax, esi
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
xor ecx, esp
call fcn.10062dbb
mov esp, ebp
pop ebp
ret