Function at 0x100985e0
Capabilities:
Access peb ldr_data
Get ntdll base address
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x40
mov edx, dword [0x1026fd8c]
push esi
mov esi, ecx
mov dword [esp + 0x30], 0
push edi
mov dword [esp + 0x14], esi
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov dword [esi + 0x18], eax
mov eax, dword fs:[0x2c]
mov byte [esi + 0x14], 1
mov edi, dword [eax + edx*4]
mov eax, dword [0x10271184]
mov dword [esp + 0xc], edi
cmp eax, dword [edi + 4]
jle 0x10098654
push 0x10271184
call fcn.100c9925
add esp, 4
cmp dword [0x10271184], 0xffffffff
jne 0x10098654
mov eax, dword [0x10271174]
push 0x10271184
mov dword [0x10271160], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10271160]
mov eax, dword [eax + ecx]
mov dword [esi + 0x1c], eax
mov eax, ecx
mov eax, dword [eax + 0xe4]
mov dword [esi + 0x20], eax
mov eax, dword [0x10271390]
cmp eax, dword [edi + 4]
jle 0x100986a8
push 0x10271390
call fcn.100c9925
add esp, 4
cmp dword [0x10271390], 0xffffffff
jne 0x100986a8
mov eax, dword [0x10271324]
push 0x10271390
mov dword [0x10271398], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271398]
mov ecx, dword [esp + 8]
mov eax, dword [eax + ecx]
mov dword [esi + 0x30], eax
mov eax, dword [0x102745f8]
cmp eax, dword [edi + 4]
jle 0x100986f5
push 0x102745f8
call fcn.100c9925
add esp, 4
cmp dword [0x102745f8], 0xffffffff
jne 0x100986f1
mov eax, dword [0x10271350]
push 0x102745f8
mov dword [0x102745f4], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x102745f4]
mov eax, dword [eax + ecx]
mov dword [esi + 0x34], eax
mov eax, dword [0x102745e4]
cmp eax, dword [edi + 4]
jle 0x1009873e
push 0x102745e4
call fcn.100c9925
add esp, 4
cmp dword [0x102745e4], 0xffffffff
jne 0x1009873a
mov eax, dword [0x10271374]
push 0x102745e4
mov dword [0x10274604], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10274604]
mov eax, dword [eax + ecx]
mov dword [esi + 0x38], eax
mov eax, dword [0x10271248]
cmp eax, dword [edi + 4]
jle 0x10098787
push 0x10271248
call fcn.100c9925
add esp, 4
cmp dword [0x10271248], 0xffffffff
jne 0x10098783
mov eax, dword [0x10271214]
push 0x10271248
mov dword [0x10271268], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10271268]
mov eax, dword [eax + ecx]
mov dword [esi + 0x40], eax
mov eax, dword [0x102745d4]
cmp eax, dword [edi + 4]
jle 0x100987d3
push 0x102745d4
call fcn.100c9925
add esp, 4
cmp dword [0x102745d4], 0xffffffff
jne 0x100987cf
mov eax, dword [0x10271214]
add eax, 4
push 0x102745d4
mov dword [0x10274608], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10274608]
mov eax, dword [eax + ecx]
mov ecx, dword [esp + 8]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
call eax
movq xmm0, qword [eax]
movq qword [esi + 0x58], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x60], eax
mov eax, dword [0x10271250]
cmp eax, dword [edi + 4]
jle 0x10098836
push 0x10271250
call fcn.100c9925
add esp, 4
cmp dword [0x10271250], 0xffffffff
jne 0x10098836
mov eax, dword [0x1027122c]
push 0x10271250
mov dword [0x10271244], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271244]
mov ecx, dword [esp + 8]
movq xmm0, qword [eax + ecx]
movq qword [esi + 0x64], xmm0
mov eax, dword [eax + ecx + 8]
mov dword [esi + 0x6c], eax
mov eax, dword [0x102743c0]
cmp eax, dword [edi + 4]
jle 0x1009888e
push 0x102743c0
call fcn.100c9925
add esp, 4
cmp dword [0x102743c0], 0xffffffff
jne 0x1009888a
mov eax, dword [0x1027129c]
push 0x102743c0
mov dword [0x10272bac], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10272bac]
movq xmm0, qword [eax + ecx]
movq qword [esi + 0x70], xmm0
mov eax, dword [eax + ecx + 8]
mov dword [esi + 0x78], eax
mov eax, dword [0x10274574]
cmp eax, dword [edi + 4]
jle 0x100988e2
push 0x10274574
call fcn.100c9925
add esp, 4
cmp dword [0x10274574], 0xffffffff
jne 0x100988de
mov eax, dword [0x10271304]
push 0x10274574
mov dword [0x1027453c], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1027453c]
movq xmm0, qword [eax + ecx]
movq qword [esi + 0x88], xmm0
mov eax, dword [eax + ecx + 8]
mov dword [esi + 0x90], eax
mov eax, dword [0x10274534]
cmp eax, dword [edi + 4]
jle 0x1009893c
push 0x10274534
call fcn.100c9925
add esp, 4
cmp dword [0x10274534], 0xffffffff
jne 0x10098938
mov eax, dword [0x10271310]
push 0x10274534
mov dword [0x10274528], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10274528]
movq xmm0, qword [eax + ecx]
movq qword [esi + 0x94], xmm0
mov eax, dword [eax + ecx + 8]
mov dword [esi + 0x9c], eax
mov eax, dword [0x10274600]
cmp eax, dword [edi + 4]
jle 0x10098996
push 0x10274600
call fcn.100c9925
add esp, 4
cmp dword [0x10274600], 0xffffffff
jne 0x10098992
mov eax, dword [0x1027133c]
push 0x10274600
mov dword [0x102745ec], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x102745ec]
movq xmm0, qword [eax + ecx]
movq qword [esi + 0xa0], xmm0
mov eax, dword [eax + ecx + 8]
mov dword [esi + 0xa8], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [0x10270618]
movq xmm0, qword [eax]
movq qword [esi + 0xac], xmm0
movss xmm0, dword [esi + 0x40]
subss xmm0, dword [esi + 0x44]
mov eax, dword [eax + 8]
mov dword [esi + 0xb4], eax
movss xmm1, dword [ecx + 0x20]
comiss xmm0, xmm1
ja 0x100989ee
movss xmm0, xmm1
jmp 0x100989f2
movss xmm0, xmm0
divss xmm0, xmm1
addss xmm0, dword [0x1018787c]
cvttss2si eax, xmm0
cmp eax, 0x11
jle 0x10098a0e
mov eax, 0x11
jmp 0x10098a15
xor edx, edx
test eax, eax
cmovs eax, edx
mov dword [esi + 0x24], eax
lea edi, [esi + 0x19b0]
mov dword [esi + 0x4c], 0
mov byte [esi + 0x53], 0
mov eax, dword [ecx + 0x10]
mov ecx, 0xb6
mov dword [esi + 0x48], eax
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x2970]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov al, byte [edi + 0x1c]
and al, 1
mov byte [edi + 0x50], al
mov esi, dword [edi + 0x10]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.10060730
test eax, eax
je 0x10098b1f
mov ecx, eax
call fcn.10060c30
mov dword [esp + 0x20], eax
test eax, eax
je 0x10098b1f
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
nop dword [eax]
mov edx, dword [esi + 0x2970]
mov ecx, esi
add edx, eax
mov dword [esp + 8], edx
mov dword [edx + 0x30], esi
call fcn.100607a0
mov dword [edx + 8], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x34], eax
cmp eax, 2
jb 0x10098b05
movss xmm0, dword [edx + 0x20]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10098b05
mov eax, dword [0x10270c04]
test eax, eax
je 0x10098ac3
or edi, 1
add eax, 2
jmp 0x10098ac8
or edi, 2
xor eax, eax
mov eax, dword [eax]
mov ecx, edi
push dword [esp + 0x34]
mov esi, edi
and esi, 0xfffffffd
and cl, 2
mov ecx, dword [esp + 0x1c]
cmove esi, edi
mov edi, dword [esp + 0x24]
mov edx, dword [ecx]
push dword [eax + edi + 4]
push dword [esp + 0x10]
mov eax, dword [edx + 0x3c4]
call eax
mov edi, esi
mov eax, esi
and edi, 0xfffffffe
and al, 1
cmove edi, esi
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
add eax, 0x38
mov dword [esp + 0x10], eax
cmp eax, 0x2d8
jl 0x10098a80
mov edi, dword [esp + 0x14]
mov edx, dword [edi + 0x34b8]
test edx, edx
je 0x10098b6b
mov ecx, dword [edi + 0x34b0]
mov eax, dword [edi + 0x34ac]
dec ecx
and ecx, dword [edi + 0x34b4]
mov eax, dword [eax + ecx*4]
mov dword [edi + 0x34a0], eax
cmp edx, 3
jb 0x10098b6b
mov eax, dword [edi + 0x34b4]
mov ecx, dword [edi + 0x34b0]
add eax, 2
dec ecx
and ecx, eax
mov eax, dword [edi + 0x34ac]
mov eax, dword [eax + ecx*4]
mov dword [edi + 0x34a4], eax
mov eax, dword [edi + 0x34b8]
lea esi, [edi + 0x34a8]
mov edx, dword [esi + 8]
inc eax
cmp edx, eax
ja 0x10098b8a
push ecx
mov ecx, esi
call fcn.1009aa80
mov edx, dword [esi + 8]
lea ecx, [edx - 1]
and dword [esi + 0xc], ecx
mov eax, dword [esi + 0xc]
cmove eax, edx
dec eax
and ecx, eax
mov dword [esp + 0x34], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18], ecx
cmp dword [eax + ecx*4], 0
jne 0x10098bd7
push 0x34af
call fcn.100c9bf8
add esp, 4
test eax, eax
je 0x10099c05
mov edx, dword [esp + 0x18]
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
mov eax, dword [esi + 4]
mov dword [eax + edx*4], ecx
mov ecx, edx
mov eax, dword [esi + 4]
mov esi, dword [eax + ecx*4]
push 0x348c
push 0
push esi
call fcn.1012c3d0
add esp, 0xc
mov ecx, esi
call fcn.1009ac30
inc dword [edi + 0x34b8]
mov eax, dword [esp + 0x34]
mov dword [edi + 0x34b4], eax
mov ecx, dword [edi + 0x34b0]
dec ecx
and ecx, eax
mov eax, dword [edi + 0x34ac]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0xc]
mov dword [esp + 8], eax
mov byte [esi], 1
mov dword [esi + 4], eax
mov eax, dword [0x10271184]
mov dword [esp + 0x34], esi
cmp eax, dword [edi + 4]
jle 0x10098c62
push 0x10271184
call fcn.100c9925
add esp, 4
cmp dword [0x10271184], 0xffffffff
jne 0x10098c62
mov eax, dword [0x10271174]
push 0x10271184
mov dword [0x10271160], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10271160]
mov eax, dword [ecx + eax]
mov dword [esi + 8], eax
mov eax, ecx
mov eax, dword [eax + 0xe4]
mov dword [esi + 0xc], eax
mov eax, dword [0x10271390]
cmp eax, dword [edi + 4]
jle 0x10098cb6
push 0x10271390
call fcn.100c9925
add esp, 4
cmp dword [0x10271390], 0xffffffff
jne 0x10098cb6
mov eax, dword [0x10271324]
push 0x10271390
mov dword [0x10271398], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271398]
mov ecx, dword [esp + 8]
mov eax, dword [ecx + eax]
mov dword [esi + 0x1c], eax
mov eax, dword [0x102745f8]
cmp eax, dword [edi + 4]
jle 0x10098d03
push 0x102745f8
call fcn.100c9925
add esp, 4
cmp dword [0x102745f8], 0xffffffff
jne 0x10098cff
mov eax, dword [0x10271350]
push 0x102745f8
mov dword [0x102745f4], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x102745f4]
mov eax, dword [ecx + eax]
mov dword [esi + 0x20], eax
mov eax, dword [0x102745e4]
cmp eax, dword [edi + 4]
jle 0x10098d4c
push 0x102745e4
call fcn.100c9925
add esp, 4
cmp dword [0x102745e4], 0xffffffff
jne 0x10098d48
mov eax, dword [0x10271374]
push 0x102745e4
mov dword [0x10274604], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10274604]
mov eax, dword [ecx + eax]
mov dword [esi + 0x24], eax
mov eax, dword [0x10271248]
cmp eax, dword [edi + 4]
jle 0x10098d95
push 0x10271248
call fcn.100c9925
add esp, 4
cmp dword [0x10271248], 0xffffffff
jne 0x10098d91
mov eax, dword [0x10271214]
push 0x10271248
mov dword [0x10271268], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10271268]
mov eax, dword [ecx + eax]
mov dword [esi + 0x2c], eax
mov eax, dword [0x102745d4]
cmp eax, dword [edi + 4]
jle 0x10098de1
push 0x102745d4
call fcn.100c9925
add esp, 4
cmp dword [0x102745d4], 0xffffffff
jne 0x10098ddd
mov eax, dword [0x10271214]
add eax, 4
push 0x102745d4
mov dword [0x10274608], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10274608]
mov eax, dword [ecx + eax]
mov ecx, dword [esp + 8]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
call eax
movq xmm0, qword [eax]
movq qword [esi + 0x44], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [0x10271250]
cmp eax, dword [edi + 4]
jle 0x10098e44
push 0x10271250
call fcn.100c9925
add esp, 4
cmp dword [0x10271250], 0xffffffff
jne 0x10098e44
mov eax, dword [0x1027122c]
push 0x10271250
mov dword [0x10271244], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271244]
mov ecx, dword [esp + 8]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x50], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x58], eax
mov eax, dword [0x102743c0]
cmp eax, dword [edi + 4]
jle 0x10098e9c
push 0x102743c0
call fcn.100c9925
add esp, 4
cmp dword [0x102743c0], 0xffffffff
jne 0x10098e98
mov eax, dword [0x1027129c]
push 0x102743c0
mov dword [0x10272bac], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10272bac]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x5c], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x64], eax
mov eax, dword [0x10274574]
cmp eax, dword [edi + 4]
jle 0x10098ef0
push 0x10274574
call fcn.100c9925
add esp, 4
cmp dword [0x10274574], 0xffffffff
jne 0x10098eec
mov eax, dword [0x10271304]
push 0x10274574
mov dword [0x1027453c], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1027453c]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x74], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x7c], eax
mov eax, dword [0x10274534]
cmp eax, dword [edi + 4]
jle 0x10098f44
push 0x10274534
call fcn.100c9925
add esp, 4
cmp dword [0x10274534], 0xffffffff
jne 0x10098f40
mov eax, dword [0x10271310]
push 0x10274534
mov dword [0x10274528], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x10274528]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x80], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x88], eax
mov eax, dword [0x10274600]
cmp eax, dword [edi + 4]
jle 0x10098f9e
push 0x10274600
call fcn.100c9925
add esp, 4
cmp dword [0x10274600], 0xffffffff
jne 0x10098f9a
mov eax, dword [0x1027133c]
push 0x10274600
mov dword [0x102745ec], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x102745ec]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x8c], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x94], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [0x10270618]
movq xmm0, qword [eax]
movq qword [esi + 0x98], xmm0
movss xmm0, dword [esi + 0x2c]
subss xmm0, dword [esi + 0x30]
mov eax, dword [eax + 8]
mov dword [esi + 0xa0], eax
movss xmm1, dword [ecx + 0x20]
comiss xmm0, xmm1
ja 0x10098ff6
movss xmm0, xmm1
jmp 0x10098ffa
movss xmm0, xmm0
divss xmm0, xmm1
addss xmm0, dword [0x1018787c]
cvttss2si eax, xmm0
cmp eax, 0x11
jle 0x10099016
mov eax, 0x11
jmp 0x1009901d
xor edx, edx
test eax, eax
cmovs eax, edx
mov dword [esi + 0x10], eax
lea edi, [esi + 0x199c]
mov dword [esi + 0x38], 0
mov byte [esi + 0x3f], 0
mov eax, dword [ecx + 0x10]
mov ecx, 0xb6
mov dword [esi + 0x34], eax
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x2970]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov al, byte [edi + 8]
mov ecx, dword [edi + 4]
and al, 1
mov byte [edi + 0x3c], al
cmp dword [esi + 4], 1
setle al
mov byte [edi + 1], al
mov eax, dword [esi + 0x34a0]
mov dword [esp + 0x10], eax
call fcn.10060730
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
test edx, edx
je 0x100990ee
test eax, eax
je 0x100990ee
mov eax, dword [esp + 0xc]
mov ecx, dword [0x102743ec]
cmp ecx, dword [eax + 4]
jle 0x100990c7
push 0x102743ec
call fcn.100c9925
add esp, 4
cmp dword [0x102743ec], 0xffffffff
jne 0x100990c3
mov eax, dword [0x10271348]
push 0x102743ec
mov dword [0x102743e8], eax
call fcn.100c98db
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [0x102743e8]
mov ecx, dword [esp + 0x20]
movss xmm0, dword [edi + 0x2c]
movss xmm1, dword [ecx + eax]
comiss xmm0, xmm1
jb 0x100990e9
comiss xmm1, dword [edx + 0x2c]
jbe 0x100990e9
mov al, 1
jmp 0x100990eb
xor al, al
mov byte [edi + 0x3e], al
mov eax, dword [esi + 4]
cmp eax, 3
jge 0x100990fa
inc eax
mov dword [esi + 4], eax
cmp dword [esi + 0x34a0], 0
je 0x10099212
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [0x10271184]
cmp eax, dword [ecx + 4]
jle 0x1009914c
push 0x10271184
call fcn.100c9925
add esp, 4
cmp dword [0x10271184], 0xffffffff
jne 0x1009914c
mov eax, dword [0x10271174]
push 0x10271184
mov dword [0x10271160], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271160]
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + eax]
and al, 1
mov byte [edi + 0x3c], 0
mov byte [edi + 0x3d], al
je 0x1009917c
mov eax, dword [esi + 0x34a0]
mov edx, 1
movzx ecx, byte [edi + 0x3c]
cmp byte [eax + 0x3d], 0
cmovne ecx, edx
mov byte [edi + 0x3c], cl
cmp dword [esi + 0x34a0], 0
je 0x10099212
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [0x10271390]
cmp eax, dword [ecx + 4]
jle 0x100991ce
push 0x10271390
call fcn.100c9925
add esp, 4
cmp dword [0x10271390], 0xffffffff
jne 0x100991ce
mov eax, dword [0x10271324]
push 0x10271390
mov dword [0x10271398], eax
call fcn.100c98db
add esp, 4
mov eax, dword [esi + 0x34a0]
movd xmm0, dword [edi + 0x10]
mov ecx, dword [esp + 0x20]
cvtdq2ps xmm0, xmm0
movss xmm3, dword [eax + 0x1c]
mov eax, dword [0x10270618]
movss xmm2, dword [eax + 0x20]
mov eax, dword [0x10271398]
mulss xmm0, xmm2
movss xmm1, dword [ecx + eax]
subss xmm1, xmm3
divss xmm1, xmm0
mulss xmm1, xmm2
addss xmm1, xmm3
movss dword [edi + 0x1c], xmm1
mov ecx, dword [esi + 0x10]
cmp dword [ecx + 0x3874], 0
je 0x1009993e
call fcn.10060730
test eax, eax
je 0x1009993e
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6f8]
mov ecx, eax
call edx
mov ecx, eax
mov eax, dword [esi + 0x10]
mov dword [esp + 8], ecx
mov dword [esp + 0x18], eax
test byte [eax + 0xec], 8
je 0x1009926b
mov dword [edi + 0x64], 0
mov dword [edi + 0x60], 0
mov dword [edi + 0x5c], 0
jmp 0x1009993e
movd xmm0, dword [edi + 0x10]
mov eax, dword [esi + 0x34a0]
mov dword [esp + 0x10], eax
mov eax, dword [0x10270618]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [esp + 0x20], xmm0
test ecx, ecx
je 0x10099310
mov ecx, dword [esp + 0xc]
mov eax, dword [0x10271180]
cmp eax, dword [ecx + 4]
jle 0x100992cf
push 0x10271180
call fcn.100c9925
add esp, 4
cmp dword [0x10271180], 0xffffffff
jne 0x100992cf
mov eax, dword [0x10271170]
push 0x10271180
mov dword [0x10271158], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271158]
xor ecx, ecx
mov edx, dword [esp + 0x18]
movss xmm0, dword [0x101877f8]
cmp byte [edx + eax], cl
mov eax, dword [esp + 8]
setne cl
lea ecx, [ecx*4 + 0x12c]
movss xmm1, dword [ecx + eax]
comiss xmm0, xmm1
ja 0x10099303
movss xmm0, xmm1
jmp 0x10099307
movss xmm0, xmm0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x18], eax
jmp 0x10099318
movss xmm0, dword [0x10187b84]
mov ecx, dword [esp + 0xc]
mov eax, dword [0x102745e0]
movss dword [esp + 8], xmm0
cmp eax, dword [ecx + 4]
jle 0x10099360
push 0x102745e0
call fcn.100c9925
add esp, 4
cmp dword [0x102745e0], 0xffffffff
jne 0x1009935c
mov eax, dword [0x10271288]
push 0x102745e0
mov dword [0x102745fc], eax
call fcn.100c98db
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [0x102745fc]
mov edx, dword [esp + 0x18]
cmp byte [eax + edx], 0
je 0x10099383
movss xmm0, dword [esp + 8]
mulss xmm0, dword [0x10187880]
movss dword [esp + 8], xmm0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [0x10271390]
cmp eax, dword [ecx + 4]
jle 0x100993c4
push 0x10271390
call fcn.100c9925
add esp, 4
cmp dword [0x10271390], 0xffffffff
jne 0x100993c4
mov eax, dword [0x10271324]
push 0x10271390
mov dword [0x10271398], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271398]
mov ecx, dword [esp + 0x18]
movss xmm3, dword [0x101878cc]
movss xmm0, dword [ecx + eax]
comiss xmm0, xmm3
jb 0x100993f3
movss xmm0, dword [esp + 8]
mulss xmm0, dword [0x1018785c]
movss dword [esp + 8], xmm0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1009985d
movss xmm0, dword [esp + 0x20]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10099462
add eax, 0x50
lea ecx, [edi + 0x50]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.1005fb60
movss xmm3, dword [esp + 0x20]
movss xmm2, dword [eax]
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax + 8]
divss xmm1, xmm3
divss xmm2, xmm3
divss xmm0, xmm3
movss xmm3, dword [0x101878cc]
unpcklps xmm2, xmm1
xorps xmm1, xmm1
movss dword [esp + 0x28], xmm0
mov eax, dword [esp + 0x28]
movq qword [edi + 0x5c], xmm2
mov dword [edi + 0x64], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 8]
and ecx, 1
mov dword [esp + 0x18], ecx
je 0x10099554
test byte [eax + 8], 1
je 0x10099554
movss xmm2, dword [eax + 0x1c24]
xorps xmm0, xmm0
comiss xmm2, xmm1
movss dword [esp + 0x20], xmm0
jbe 0x100994e1
movss xmm0, dword [0x1018782c]
comiss xmm0, xmm2
jbe 0x100994e1
movss xmm0, dword [edi + 0x1c2c]
ucomiss xmm0, dword [eax + 0x1c2c]
lahf
test ah, 0x44
jp 0x100994e1
movaps xmm0, xmm3
subss xmm0, xmm2
mulss xmm0, dword [0x10187868]
comiss xmm0, xmm1
jbe 0x100994e1
comiss xmm3, xmm0
jbe 0x100994e1
addss xmm0, dword [0x10187884]
mulss xmm0, dword [esp + 8]
movss dword [esp + 0x20], xmm0
movss xmm1, dword [edi + 0x60]
movss xmm0, dword [edi + 0x5c]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10099509
sqrtsd xmm0, xmm0
jmp 0x1009950e
call fcn.10150570
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
comiss xmm2, dword [0x1018782c]
jbe 0x10099550
movss xmm1, dword [esp + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x10099550
divss xmm1, xmm2
movaps xmm0, xmm1
mulss xmm1, dword [edi + 0x60]
mulss xmm0, dword [edi + 0x5c]
mov dword [edi + 0x64], 0
movss dword [edi + 0x60], xmm1
movss dword [edi + 0x5c], xmm0
jmp 0x100995a6
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x10099561
mov dword [edi + 0x64], 0
jmp 0x100995a6
mov ecx, dword [0x10270590]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x20], eax
call dword [esp + 0x20]
movd xmm1, dword [edi + 0x10]
mov eax, dword [0x10270618]
movss xmm0, dword [edi + 0x64]
cvtdq2ps xmm1, xmm1
fstp dword [esp + 0x20]
mulss xmm1, dword [eax + 0x20]
mulss xmm1, dword [esp + 0x20]
mulss xmm1, dword [0x1018787c]
subss xmm0, xmm1
movss dword [edi + 0x64], xmm0
cmp dword [esi + 0x34a4], 0
je 0x100997bf
movss xmm1, dword [edi + 0x60]
movss xmm2, dword [edi + 0x5c]
movss xmm0, dword [edi + 0x64]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x100995e8
sqrtsd xmm0, xmm0
jmp 0x100995ed
call fcn.10150570
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x10187b9c]
jb 0x100997bf
mov eax, dword [esi + 0x34a4]
mov ecx, dword [esp + 0x10]
add eax, 0x50
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [ecx + 0x50]
call fcn.1005fb60
mov edx, dword [esp + 0x10]
mov ecx, dword [0x10270618]
movss xmm3, dword [eax]
movd xmm0, dword [edx + 0x10]
movss xmm2, dword [eax + 4]
cvtdq2ps xmm0, xmm0
movss xmm1, dword [eax + 8]
mulss xmm0, dword [ecx + 0x20]
divss xmm3, xmm0
divss xmm2, xmm0
divss xmm1, xmm0
xorps xmm0, xmm0
movss dword [esp + 8], xmm3
ucomiss xmm3, xmm0
movss dword [esp + 0x18], xmm2
lahf
test ah, 0x44
jnp 0x100997bf
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x100997bf
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x100997bf
test byte [edi + 8], 1
je 0x10099690
test byte [edx + 8], 1
jne 0x100997bf
movss xmm0, dword [edi + 0x60]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
movss xmm0, dword [edi + 0x5c]
fld qword [esp + 0x20]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
call fcn.1014ebc0
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [0x10187ab0]
call fcn.10062090
movss xmm1, dword [esp + 0x18]
cvtps2pd xmm1, xmm1
movss dword [esp + 0x20], xmm0
movsd qword [esp + 0x18], xmm1
movss xmm1, dword [esp + 8]
fld qword [esp + 0x18]
cvtps2pd xmm1, xmm1
movsd qword [esp + 0x18], xmm1
fld qword [esp + 0x18]
call fcn.1014ebc0
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x10187ab0]
call fcn.10062090
movss xmm1, dword [esp + 0x20]
subss xmm1, xmm0
mulss xmm1, dword [0x1018787c]
addss xmm1, dword [esp + 0x20]
movaps xmm0, xmm1
call fcn.10062090
mulss xmm0, dword [0x10187804]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
call fcn.1014f400
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0x18]
call fcn.101503a0
movss xmm1, dword [edi + 0x60]
cvtsd2ss xmm0, xmm0
mulss xmm1, xmm1
movss dword [esp + 0x18], xmm0
movss xmm0, dword [edi + 0x5c]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1009979a
sqrtsd xmm0, xmm0
jmp 0x1009979f
call fcn.10150570
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [esp + 0x18]
mulss xmm0, dword [esp + 0x20]
movss dword [edi + 0x60], xmm1
movss dword [edi + 0x5c], xmm0
cmp dword [edi + 0x10], 0xc
jl 0x1009993e
test byte [edi + 8], 1
je 0x1009993e
movss xmm1, dword [edi + 0x60]
movss xmm0, dword [edi + 0x5c]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x100997fb
sqrtsd xmm0, xmm0
jmp 0x10099800
call fcn.10150570
movss xmm1, dword [0x1018782c]
cvtsd2ss xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1009993e
comiss xmm1, dword [edi + 0x1b0c]
jb 0x1009993e
mov eax, dword [esp + 0x10]
movss xmm0, dword [eax + 0x1b18]
ucomiss xmm0, dword [edi + 0x1b18]
lahf
test ah, 0x44
jp 0x1009993e
movss xmm0, dword [0x101877f0]
comiss xmm0, dword [edi + 0x1b14]
jbe 0x1009993e
mov byte [edi + 0x3f], 1
jmp 0x10099251
test byte [edi + 8], 1
je 0x100998f9
xorps xmm1, xmm1
xorps xmm0, xmm0
movss dword [esp + 0x20], xmm1
movss xmm1, dword [edi + 0x1c24]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x1009988a
movss dword [esp + 0x20], xmm1
movss xmm1, dword [edi + 0x60]
movss xmm0, dword [edi + 0x5c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100998b2
sqrtsd xmm0, xmm0
jmp 0x100998b7
call fcn.10150570
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
comiss xmm2, dword [0x1018782c]
jbe 0x100998f0
movss xmm1, dword [esp + 0x20]
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x100998f0
divss xmm1, xmm2
movaps xmm0, xmm1
mulss xmm1, dword [edi + 0x60]
mulss xmm0, dword [edi + 0x5c]
movss dword [edi + 0x60], xmm1
movss dword [edi + 0x5c], xmm0
mov dword [edi + 0x64], 0
jmp 0x1009993e
mov ecx, dword [0x10270590]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x20], eax
call dword [esp + 0x20]
movd xmm1, dword [edi + 0x10]
mov eax, dword [0x10270618]
movss xmm0, dword [edi + 0x64]
cvtdq2ps xmm1, xmm1
fstp dword [esp + 0x20]
mulss xmm1, dword [eax + 0x20]
mulss xmm1, dword [esp + 0x20]
mulss xmm1, dword [0x1018787c]
subss xmm0, xmm1
movss dword [edi + 0x64], xmm0
push edi
mov ecx, esi
call fcn.10097b50
mov edi, dword [esp + 0xc]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [0x102743c0]
cmp eax, dword [edi + 4]
jle 0x1009998b
push 0x102743c0
call fcn.100c9925
add esp, 4
cmp dword [0x102743c0], 0xffffffff
jne 0x1009998b
mov eax, dword [0x1027129c]
push 0x102743c0
mov dword [0x10272bac], eax
call fcn.100c98db
add esp, 4
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [0x10271184]
cmp eax, dword [edi + 4]
jle 0x100999cc
push 0x10271184
call fcn.100c9925
add esp, 4
cmp dword [0x10271184], 0xffffffff
jne 0x100999cc
mov eax, dword [0x10271174]
push 0x10271184
mov dword [0x10271160], eax
call fcn.100c98db
add esp, 4
mov eax, dword [0x10271160]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov dword [ecx + eax], edx
movss xmm0, dword [esi + 0x30]
mov eax, dword [0x10271390]
movss dword [esp + 0x20], xmm0
cmp eax, dword [edi + 4]
jle 0x10099a27
push 0x10271390
call fcn.100c9925
add esp, 4
cmp dword [0x10271390], 0xffffffff
jne 0x10099a21
mov eax, dword [0x10271324]
push 0x10271390
mov dword [0x10271398], eax
call fcn.100c98db
add esp, 4
movss xmm0, dword [esp + 0x20]
mov eax, dword [0x10271398]
add esi, 0x19b0
mov edi, dword [esp + 0x10]
mov ecx, 0xb6
movss dword [edi + eax], xmm0
mov edi, dword [edi + 0x2970]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
mov eax, dword [0x102745f8]
movss xmm0, dword [esi + 0x34]
movss dword [esp + 0x20], xmm0
cmp eax, dword [edi + 4]
jle 0x10099a9b
push 0x102745f8
call fcn.100c9925
add esp, 4
cmp dword [0x102745f8], 0xffffffff
jne 0x10099a95
mov eax, dword [0x10271350]
push 0x102745f8
mov dword [0x102745f4], eax
call fcn.100c98db
add esp, 4
movss xmm0, dword [esp + 0x20]
mov eax, dword [0x102745f4]
mov ecx, dword [esp + 0x10]
movss dword [ecx + eax], xmm0
movss xmm0, dword [esi + 0x38]
mov eax, dword [0x102745e4]
movss dword [esp + 0x20], xmm0
cmp eax, dword [edi + 4]
jle 0x10099af4
push 0x102745e4
call fcn.100c9925
add esp, 4
cmp dword [0x102745e4], 0xffffffff
jne 0x10099aee
mov eax, dword [0x10271374]
push 0x102745e4
mov dword [0x10274604], eax
call fcn.100c98db
add esp, 4
movss xmm0, dword [esp + 0x20]
mov eax, dword [0x10274604]
mov edi, dword [esp + 0x10]
mov ecx, edi
movss dword [edi + eax], xmm0
lea eax, [esi + 0x64]
push eax
call dword [0x10270690]
cmp byte [0x10276070], 0
je 0x10099b9d
mov eax, dword [esi + 0x34a0]
test eax, eax
je 0x10099b9d
mov ecx, dword [esp + 0x34]
movss xmm0, dword [eax + 0x2c]
mov eax, dword [0x10270618]
movss xmm1, dword [ecx + 0x2c]
comiss xmm0, xmm1
jbe 0x10099b58
subss xmm0, xmm1
andps xmm0, xmmword [0x10188120]
addss xmm0, xmm1
addss xmm0, dword [eax + 0x20]
movss dword [esi + 0xc], xmm0
jmp 0x10099b9a
movss xmm2, dword [esi + 0xc]
movaps xmm0, xmm2
subss xmm0, xmm1
andps xmm0, xmmword [0x10188120]
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x1018787c]
cvttss2si eax, xmm0
cmp eax, 0x11
jle 0x10099b95
movss xmm2, dword [0x10187c14]
mov dword [esi + 0xc], 0xbf800000
movss xmm1, dword [ecx + 0x2c]
comiss xmm2, xmm1
jbe 0x10099b9d
mov byte [ecx], 0
cmp byte [esi], 0
mov eax, 3
mov edi, dword [0x10276044]
mov ecx, dword [esi + 0x34b8]
cmovne edi, eax
cmp ecx, edi
jbe 0x10099bff
nop dword [eax + eax]
mov eax, dword [esi + 0x34b4]
dec eax
add ecx, eax
mov eax, dword [esi + 0x34b0]
dec eax
and ecx, eax
mov eax, dword [esi + 0x34ac]
mov ecx, dword [eax + ecx*4]
call fcn.10055700
mov ecx, dword [esi + 0x34b8]
sub ecx, 1
mov dword [esi + 0x34b8], ecx
jne 0x10099bfb
mov dword [esi + 0x34b4], 0
cmp ecx, edi
ja 0x10099bc0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.101387cc
int3