Function at 0x100a4e30
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword fs:[0x2c]
push esi
mov esi, ecx
mov dword [esp + 0x30], eax
mov ecx, dword [0x10223928]
push edi
mov dword [esp + 0x14], esi
mov edi, dword [esi + 0x14]
mov eax, dword [eax + ecx*4]
mov dword [esp + 8], eax
mov ecx, eax
mov byte [esi + 0x18], 1
mov dword [esi + 0x1c], edi
mov eax, dword [0x1022b4d0]
mov dword [esp + 0x18], edi
cmp eax, dword [ecx + 4]
jle 0x100a4ea6
push 0x1022b4d0
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4d0], 0xffffffff
jne 0x100a4ea2
mov eax, dword [0x1022b420]
push 0x1022b4d0
mov dword [0x1022b4cc], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b4cc]
mov eax, dword [eax + edi]
mov dword [esi + 0x38], eax
mov eax, dword [0x1022b96c]
cmp eax, dword [ecx + 4]
jle 0x100a4eef
push 0x1022b96c
call fcn.100d8275
add esp, 4
cmp dword [0x1022b96c], 0xffffffff
jne 0x100a4eeb
mov eax, dword [0x1022b44c]
push 0x1022b96c
mov dword [0x1022b97c], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b97c]
mov eax, dword [eax + edi]
mov dword [esi + 0x3c], eax
mov eax, dword [0x1022b320]
cmp eax, dword [ecx + 4]
jle 0x100a4f38
push 0x1022b320
call fcn.100d8275
add esp, 4
cmp dword [0x1022b320], 0xffffffff
jne 0x100a4f34
mov eax, dword [0x1022b2f0]
push 0x1022b320
mov dword [0x1022b340], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b340]
mov eax, dword [eax + edi]
mov dword [esi + 0x44], eax
mov eax, dword [0x1022b95c]
cmp eax, dword [ecx + 4]
jle 0x100a4f80
push 0x1022b95c
call fcn.100d8275
add esp, 4
cmp dword [0x1022b95c], 0xffffffff
jne 0x100a4f80
mov eax, dword [0x1022b2f0]
add eax, 4
push 0x1022b95c
mov dword [0x1022b980], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b980]
mov ecx, edi
mov eax, dword [eax + edi]
mov dword [esi + 0x48], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [esp + 8]
movq xmm0, qword [eax]
movq qword [esi + 0x58], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x60], eax
mov eax, dword [0x1022b2ac]
cmp eax, dword [ecx + 4]
jle 0x100a4fe5
push 0x1022b2ac
call fcn.100d8275
add esp, 4
cmp dword [0x1022b2ac], 0xffffffff
jne 0x100a4fe1
mov eax, dword [0x1022b2a4]
push 0x1022b2ac
mov dword [0x1022b2a8], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b2a8]
movq xmm0, qword [eax + edi]
movq qword [esi + 0x64], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x6c], eax
mov eax, dword [0x1022b678]
cmp eax, dword [ecx + 4]
jle 0x100a5039
push 0x1022b678
call fcn.100d8275
add esp, 4
cmp dword [0x1022b678], 0xffffffff
jne 0x100a5035
mov eax, dword [0x1022b3e4]
push 0x1022b678
mov dword [0x1022b644], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b644]
movq xmm0, qword [eax + edi]
movq qword [esi + 0x88], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x90], eax
mov eax, dword [0x1022b63c]
cmp eax, dword [ecx + 4]
jle 0x100a5093
push 0x1022b63c
call fcn.100d8275
add esp, 4
cmp dword [0x1022b63c], 0xffffffff
jne 0x100a508f
mov eax, dword [0x1022b3e0]
push 0x1022b63c
mov dword [0x1022b630], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b630]
movq xmm0, qword [eax + edi]
movq qword [esi + 0x94], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x9c], eax
mov eax, dword [0x1022b978]
cmp eax, dword [ecx + 4]
jle 0x100a50e9
push 0x1022b978
call fcn.100d8275
add esp, 4
cmp dword [0x1022b978], 0xffffffff
jne 0x100a50e9
mov eax, dword [0x1022b418]
push 0x1022b978
mov dword [0x1022b970], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b970]
mov ecx, edi
movq xmm0, qword [eax + edi]
movq qword [esi + 0xa0], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0xa8], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [esp + 8]
movq xmm0, qword [eax]
movq qword [esi + 0xac], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0xb4], eax
mov eax, dword [0x1022b1f4]
cmp eax, dword [ecx + 4]
jle 0x100a5165
push 0x1022b1f4
call fcn.100d8275
add esp, 4
cmp dword [0x1022b1f4], 0xffffffff
jne 0x100a5161
mov eax, dword [0x1022b1e4]
push 0x1022b1f4
mov dword [0x1022b1cc], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b1cc]
mov eax, dword [eax + edi]
mov dword [esi + 0x20], eax
mov eax, dword [edi + 0xe4]
mov dword [esi + 0x24], eax
mov eax, dword [0x1022b960]
cmp eax, dword [ecx + 4]
jle 0x100a51b7
push 0x1022b960
call fcn.100d8275
add esp, 4
cmp dword [0x1022b960], 0xffffffff
jne 0x100a51b3
mov eax, dword [0x1022b3f0]
push 0x1022b960
mov dword [0x1022b968], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [0x1022b968]
mov eax, dword [eax + edi]
mov dword [esi + 0x34], eax
mov eax, dword [0x1022b4bc]
cmp eax, dword [ecx + 4]
jle 0x100a51fc
push 0x1022b4bc
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4bc], 0xffffffff
jne 0x100a51fc
mov eax, dword [0x1022b36c]
push 0x1022b4bc
mov dword [0x1022b4a8], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b4a8]
movss xmm1, dword [esi + 0x44]
subss xmm1, dword [esi + 0x48]
mov ecx, dword [0x10223964]
movq xmm0, qword [eax + edi]
movq qword [esi + 0x70], xmm0
mov eax, dword [eax + edi + 8]
mov dword [esi + 0x78], eax
maxss xmm1, dword [ecx + 0x20]
divss xmm1, dword [ecx + 0x20]
addss xmm1, dword [0x10155c24]
cvttss2si eax, xmm1
cmp eax, 0x40
jle 0x100a5244
mov eax, 0x40
jmp 0x100a524b
xor edx, edx
test eax, eax
cmovs eax, edx
mov dword [esi + 0x28], eax
lea edi, [esi + 0x19b0]
mov dword [esi + 0x50], 0
mov byte [esi + 0x57], 0
mov byte [esi + 0x1a], 0
mov eax, dword [ecx + 0x10]
mov ecx, 0xb6
mov dword [esi + 0x4c], eax
mov esi, dword [esp + 0x18]
mov esi, dword [esi + 0x2970]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov al, byte [edi + 0x20]
and al, 1
mov byte [edi + 0x54], al
mov edx, dword [edi + 0x3500]
test edx, edx
je 0x100a52d2
mov ecx, dword [edi + 0x34f8]
mov eax, dword [edi + 0x34f4]
dec ecx
and ecx, dword [edi + 0x34fc]
mov eax, dword [eax + ecx*4]
mov dword [edi + 0x34e8], eax
cmp edx, 3
jb 0x100a52d2
mov eax, dword [edi + 0x34fc]
mov ecx, dword [edi + 0x34f8]
add eax, 2
dec ecx
and ecx, eax
mov eax, dword [edi + 0x34f4]
mov eax, dword [eax + ecx*4]
mov dword [edi + 0x34ec], eax
mov eax, dword [edi + 0x3500]
lea esi, [edi + 0x34f0]
mov edx, dword [esi + 8]
inc eax
cmp edx, eax
ja 0x100a52f1
push ecx
mov ecx, esi
call fcn.100a6be0
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 + 0x18], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x10], ecx
cmp dword [eax + ecx*4], 0
jne 0x100a533e
push 0x34f3
call fcn.100d834b
add esp, 4
test eax, eax
je 0x100a576a
mov edx, dword [esp + 0x10]
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 0x34d0
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, esi
call fcn.100a7090
inc dword [edi + 0x3500]
mov eax, dword [esp + 0x18]
mov dword [edi + 0x34fc], eax
mov ecx, dword [edi + 0x34f8]
dec ecx
and ecx, eax
mov eax, dword [edi + 0x34f4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0x14]
mov edi, dword [esp + 8]
mov dword [esp + 0x10], eax
mov byte [esi], 1
mov dword [esi + 4], eax
mov eax, dword [0x1022b4d0]
mov dword [esp + 0x18], esi
cmp eax, dword [edi + 4]
jle 0x100a53c9
push 0x1022b4d0
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4d0], 0xffffffff
jne 0x100a53c9
mov eax, dword [0x1022b420]
push 0x1022b4d0
mov dword [0x1022b4cc], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b4cc]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + eax]
mov dword [esi + 0x20], eax
mov eax, dword [0x1022b96c]
cmp eax, dword [edi + 4]
jle 0x100a5416
push 0x1022b96c
call fcn.100d8275
add esp, 4
cmp dword [0x1022b96c], 0xffffffff
jne 0x100a5412
mov eax, dword [0x1022b44c]
push 0x1022b96c
mov dword [0x1022b97c], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [0x1022b97c]
mov eax, dword [ecx + eax]
mov dword [esi + 0x24], eax
mov eax, dword [0x1022b320]
cmp eax, dword [edi + 4]
jle 0x100a545f
push 0x1022b320
call fcn.100d8275
add esp, 4
cmp dword [0x1022b320], 0xffffffff
jne 0x100a545b
mov eax, dword [0x1022b2f0]
push 0x1022b320
mov dword [0x1022b340], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [0x1022b340]
mov eax, dword [ecx + eax]
mov dword [esi + 0x2c], eax
mov eax, dword [0x1022b95c]
cmp eax, dword [edi + 4]
jle 0x100a54ab
push 0x1022b95c
call fcn.100d8275
add esp, 4
cmp dword [0x1022b95c], 0xffffffff
jne 0x100a54a7
mov eax, dword [0x1022b2f0]
add eax, 4
push 0x1022b95c
mov dword [0x1022b980], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [0x1022b980]
mov eax, dword [ecx + eax]
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
call eax
movq xmm0, qword [eax]
movq qword [esi + 0x40], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x48], eax
mov eax, dword [0x1022b2ac]
cmp eax, dword [edi + 4]
jle 0x100a550e
push 0x1022b2ac
call fcn.100d8275
add esp, 4
cmp dword [0x1022b2ac], 0xffffffff
jne 0x100a550e
mov eax, dword [0x1022b2a4]
push 0x1022b2ac
mov dword [0x1022b2a8], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b2a8]
mov ecx, dword [esp + 0x10]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x4c], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x54], eax
mov eax, dword [0x1022b678]
cmp eax, dword [edi + 4]
jle 0x100a5566
push 0x1022b678
call fcn.100d8275
add esp, 4
cmp dword [0x1022b678], 0xffffffff
jne 0x100a5562
mov eax, dword [0x1022b3e4]
push 0x1022b678
mov dword [0x1022b644], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [0x1022b644]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x70], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x78], eax
mov eax, dword [0x1022b63c]
cmp eax, dword [edi + 4]
jle 0x100a55ba
push 0x1022b63c
call fcn.100d8275
add esp, 4
cmp dword [0x1022b63c], 0xffffffff
jne 0x100a55b6
mov eax, dword [0x1022b3e0]
push 0x1022b63c
mov dword [0x1022b630], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [0x1022b630]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x7c], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x84], eax
mov eax, dword [0x1022b978]
cmp eax, dword [edi + 4]
jle 0x100a5611
push 0x1022b978
call fcn.100d8275
add esp, 4
cmp dword [0x1022b978], 0xffffffff
jne 0x100a560d
mov eax, dword [0x1022b418]
push 0x1022b978
mov dword [0x1022b970], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [0x1022b970]
movq xmm0, qword [ecx + eax]
movq qword [esi + 0x88], xmm0
mov eax, dword [ecx + eax + 8]
mov dword [esi + 0x90], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
movq xmm0, qword [eax]
movq qword [esi + 0x94], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x9c], eax
mov eax, dword [0x1022b1f4]
cmp eax, dword [edi + 4]
jle 0x100a5683
push 0x1022b1f4
call fcn.100d8275
add esp, 4
cmp dword [0x1022b1f4], 0xffffffff
jne 0x100a5683
mov eax, dword [0x1022b1e4]
push 0x1022b1f4
mov dword [0x1022b1cc], eax
call fcn.100d822b
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [0x1022b1cc]
mov eax, dword [edx + eax]
mov dword [esi + 8], eax
mov eax, dword [edx + 0xe4]
mov dword [esi + 0xc], eax
mov eax, dword [0x1022b960]
cmp eax, dword [edi + 4]
jle 0x100a56d9
push 0x1022b960
call fcn.100d8275
add esp, 4
cmp dword [0x1022b960], 0xffffffff
jne 0x100a56d5
mov eax, dword [0x1022b3f0]
push 0x1022b960
mov dword [0x1022b968], eax
call fcn.100d822b
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [0x1022b968]
mov eax, dword [edx + eax]
mov dword [esi + 0x1c], eax
mov eax, dword [0x1022b4bc]
cmp eax, dword [edi + 4]
jle 0x100a5722
push 0x1022b4bc
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4bc], 0xffffffff
jne 0x100a571e
mov eax, dword [0x1022b36c]
push 0x1022b4bc
mov dword [0x1022b4a8], eax
call fcn.100d822b
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [0x1022b4a8]
movss xmm1, dword [esi + 0x2c]
subss xmm1, dword [esi + 0x30]
mov ecx, dword [0x10223964]
movq xmm0, qword [edx + eax]
movq qword [esi + 0x58], xmm0
mov eax, dword [edx + eax + 8]
mov dword [esi + 0x60], eax
maxss xmm1, dword [ecx + 0x20]
divss xmm1, dword [ecx + 0x20]
addss xmm1, dword [0x10155c24]
cvttss2si eax, xmm1
cmp eax, 0x40
jle 0x100a5770
mov eax, 0x40
jmp 0x100a5777
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
xor edi, edi
test eax, eax
cmovs eax, edi
mov dword [esi + 0x10], eax
lea edi, [esi + 0x1998]
mov dword [esi + 0x38], 0
mov byte [esi + 0x3f], 0
mov byte [esi + 2], 0
mov eax, dword [ecx + 0x10]
mov ecx, 0xb6
mov dword [esi + 0x34], eax
mov esi, dword [edx + 0x2970]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov al, byte [edi + 8]
and al, 1
mov byte [edi + 0x3c], al
cmp dword [esi + 4], 1
setl al
mov byte [edi + 1], al
mov eax, dword [esi + 0x34e8]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [0x10223960]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [0x1022b338]
cmp eax, dword [ecx + 4]
jle 0x100a5819
push 0x1022b338
call fcn.100d8275
add esp, 4
cmp dword [0x1022b338], 0xffffffff
jne 0x100a5819
mov eax, dword [0x1022b2e4]
push 0x1022b338
mov dword [0x1022b2d0], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b2d0]
mov ecx, dword [esp + 0x1c]
push dword [ecx + eax]
mov ecx, dword [0x10223960]
call dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], eax
test edx, edx
je 0x100a58a9
test eax, eax
je 0x100a58a9
mov eax, dword [esp + 8]
mov ecx, dword [0x1022b4f4]
cmp ecx, dword [eax + 4]
jle 0x100a5882
push 0x1022b4f4
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4f4], 0xffffffff
jne 0x100a587e
mov eax, dword [0x1022b414]
push 0x1022b4f4
mov dword [0x1022b4f0], eax
call fcn.100d822b
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [0x1022b4f0]
mov ecx, dword [esp + 0x20]
movss xmm0, dword [edi + 0x2c]
movss xmm1, dword [ecx + eax]
comiss xmm0, xmm1
jb 0x100a58a4
comiss xmm1, dword [edx + 0x2c]
jbe 0x100a58a4
mov al, 1
jmp 0x100a58a6
xor al, al
mov byte [edi + 0x3e], al
mov eax, dword [esi + 4]
cmp eax, 1
jge 0x100a58b5
inc eax
mov dword [esi + 4], eax
cmp dword [esi + 0x34e8], 0
je 0x100a5c5f
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [0x1022b1f4]
cmp eax, dword [ecx + 4]
jle 0x100a5907
push 0x1022b1f4
call fcn.100d8275
add esp, 4
cmp dword [0x1022b1f4], 0xffffffff
jne 0x100a5907
mov eax, dword [0x1022b1e4]
push 0x1022b1f4
mov dword [0x1022b1cc], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b1cc]
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + eax]
and al, 1
mov byte [edi + 0x3c], 0
mov byte [edi + 0x3d], al
je 0x100a5937
mov eax, dword [esi + 0x34e8]
mov edx, 1
movzx ecx, byte [edi + 0x3c]
cmp byte [eax + 0x3d], 0
cmovne ecx, edx
mov byte [edi + 0x3c], cl
cmp dword [esi + 0x34e8], 0
je 0x100a5c5f
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [0x10223960]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [0x1022b338]
cmp eax, dword [ecx + 4]
jle 0x100a5997
push 0x1022b338
call fcn.100d8275
add esp, 4
cmp dword [0x1022b338], 0xffffffff
jne 0x100a5997
mov eax, dword [0x1022b2e4]
push 0x1022b338
mov dword [0x1022b2d0], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b2d0]
mov ecx, dword [esp + 0x20]
push dword [ecx + eax]
mov ecx, dword [0x10223960]
call dword [esp + 0x20]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x100a5c5f
mov edx, dword [edi + 0x10]
lea ecx, [edx - 1]
cmp ecx, 0xe
ja 0x100a5a30
mov ecx, dword [esi + 0x34e8]
test ecx, ecx
je 0x100a5a30
cmp byte [ecx + 1], 0
jne 0x100a5a30
mov eax, dword [0x10223964]
xorps xmm0, xmm0
movss xmm2, dword [0x10155c80]
cvtsi2ss xmm0, edx
movss xmm3, dword [edi + 0x4c]
mulss xmm0, dword [eax + 0x20]
movss xmm1, dword [edi + 0x50]
subss xmm3, dword [ecx + 0x4c]
subss xmm1, dword [ecx + 0x50]
divss xmm2, xmm0
movss xmm0, dword [edi + 0x54]
subss xmm0, dword [ecx + 0x54]
mulss xmm3, xmm2
mulss xmm1, xmm2
mulss xmm0, xmm2
unpcklps xmm3, xmm1
movq qword [edi + 0x58], xmm3
movss dword [esp + 0x28], xmm0
mov eax, dword [esp + 0x28]
mov dword [edi + 0x60], eax
test byte [edi + 8], 1
movq xmm0, qword [edi + 0x58]
mov eax, dword [edi + 0x60]
movq qword [edi + 0x64], xmm0
mov dword [edi + 0x6c], eax
je 0x100a5a9c
movss xmm1, dword [edi + 0x5c]
movaps xmm2, xmm0
movss xmm0, dword [edi + 0x60]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
movss xmm1, dword [0x10155ba4]
addss xmm2, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm2
comiss xmm0, xmm1
jbe 0x100a5a9c
movss xmm0, dword [edi + 0x1c58]
xorps xmm3, xmm3
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x100a5a9c
comiss xmm1, dword [edi + 0x1b08]
jbe 0x100a5a9c
mov byte [edi + 0x3f], 1
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [0x1022b1f4]
cmp eax, dword [ecx + 4]
jle 0x100a5ae1
push 0x1022b1f4
call fcn.100d8275
add esp, 4
cmp dword [0x1022b1f4], 0xffffffff
jne 0x100a5ae1
mov eax, dword [0x1022b1e4]
push 0x1022b1f4
mov dword [0x1022b1cc], eax
call fcn.100d822b
add esp, 4
mov eax, dword [0x1022b1cc]
mov ecx, dword [esp + 0x20]
test byte [ecx + eax], 1
je 0x100a5bfa
movss xmm0, dword [edi + 0x1c20]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x100a5bfa
movss xmm1, dword [0x10155c80]
comiss xmm1, xmm0
jbe 0x100a5bfa
mov eax, dword [esi + 0x34e8]
movss xmm0, dword [edi + 0x1c2c]
comiss xmm0, dword [eax + 0x1c2c]
jbe 0x100a5bfa
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x100a5bb9
mov eax, dword [esi + 0x14]
mov ecx, dword [0x1022b1f0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 8]
cmp ecx, dword [eax + 4]
jle 0x100a5b96
push 0x1022b1f0
call fcn.100d8275
add esp, 4
cmp dword [0x1022b1f0], 0xffffffff
jne 0x100a5b92
mov eax, dword [0x1022b1e0]
push 0x1022b1f0
mov dword [0x1022b1c0], eax
call fcn.100d822b
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [0x1022b1c0]
mov ecx, dword [esp + 0x20]
cmp byte [ecx + eax], 0
je 0x100a5baf
movss xmm1, dword [edx + 0x130]
jmp 0x100a5bc1
movss xmm1, dword [edx + 0x12c]
jmp 0x100a5bc1
movss xmm1, dword [0x10155ef4]
movss xmm2, dword [0x10155c80]
xorps xmm3, xmm3
movaps xmm0, xmm2
subss xmm0, dword [edi + 0x1c20]
mulss xmm0, dword [0x10155c08]
comiss xmm0, xmm3
jbe 0x100a5bfa
comiss xmm2, xmm0
jbe 0x100a5bfa
addss xmm0, dword [0x10155c30]
mulss xmm0, xmm1
movss dword [edi + 0x38], xmm0
movss xmm2, dword [edi + 0x38]
xorps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x100a5c44
movss xmm0, dword [edi + 0x58]
movss xmm1, dword [edi + 0x5c]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
divss xmm2, xmm0
movaps xmm0, xmm2
movss dword [edi + 0x38], xmm2
mulss xmm0, dword [edi + 0x64]
mulss xmm2, dword [edi + 0x68]
movss dword [edi + 0x64], xmm0
movss dword [edi + 0x68], xmm2
cmp byte [edi + 0x3f], 0
je 0x100a5c5f
mov dword [edi + 0x64], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0
push edi
mov ecx, esi
call fcn.100a4880
mov eax, dword [esi + 0x78]
mov ecx, dword [0x10223928]
movq xmm0, qword [esi + 0x70]
mov edi, dword [esi + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], edi
movq qword [esp + 8], xmm0
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x10], eax
mov ecx, eax
mov eax, dword [0x1022b4bc]
cmp eax, dword [ecx + 4]
jle 0x100a5cd7
push 0x1022b4bc
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4bc], 0xffffffff
jne 0x100a5ccd
mov eax, dword [0x1022b36c]
push 0x1022b4bc
mov dword [0x1022b4a8], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
movq xmm0, qword [esp + 8]
mov eax, dword [0x1022b4a8]
mov edx, dword [esp + 0x20]
movq qword [edi + eax], xmm0
mov dword [edi + eax + 8], edx
mov eax, dword [esi + 0x20]
mov dword [esp + 0x34], eax
mov eax, dword [0x1022b1f4]
cmp eax, dword [ecx + 4]
jle 0x100a5d2e
push 0x1022b1f4
call fcn.100d8275
add esp, 4
cmp dword [0x1022b1f4], 0xffffffff
jne 0x100a5d2a
mov eax, dword [0x1022b1e4]
push 0x1022b1f4
mov dword [0x1022b1cc], eax
call fcn.100d822b
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [0x1022b1cc]
mov edx, dword [esp + 0x34]
mov dword [edi + eax], edx
movss xmm0, dword [esi + 0x34]
mov eax, dword [0x1022b960]
movss dword [esp + 8], xmm0
cmp eax, dword [ecx + 4]
jle 0x100a5d85
push 0x1022b960
call fcn.100d8275
add esp, 4
cmp dword [0x1022b960], 0xffffffff
jne 0x100a5d7f
mov eax, dword [0x1022b3f0]
push 0x1022b960
mov dword [0x1022b968], eax
call fcn.100d822b
add esp, 4
movss xmm0, dword [esp + 8]
mov eax, dword [0x1022b968]
add esi, 0x19b0
mov ecx, 0xb6
movss dword [edi + eax], xmm0
mov edi, dword [edi + 0x2970]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [0x1022b4d0]
movss xmm0, dword [edi + 0x38]
movss dword [esp + 0x14], xmm0
cmp eax, dword [esi + 4]
jle 0x100a5df5
push 0x1022b4d0
call fcn.100d8275
add esp, 4
cmp dword [0x1022b4d0], 0xffffffff
jne 0x100a5def
mov eax, dword [0x1022b420]
push 0x1022b4d0
mov dword [0x1022b4cc], eax
call fcn.100d822b
add esp, 4
movss xmm0, dword [esp + 0x14]
mov eax, dword [0x1022b4cc]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
movss dword [esi + eax], xmm0
movss xmm0, dword [edi + 0x3c]
mov eax, dword [0x1022b96c]
movss dword [esp + 0x14], xmm0
cmp eax, dword [ecx + 4]
jle 0x100a5e52
push 0x1022b96c
call fcn.100d8275
add esp, 4
cmp dword [0x1022b96c], 0xffffffff
jne 0x100a5e4c
mov eax, dword [0x1022b44c]
push 0x1022b96c
mov dword [0x1022b97c], eax
call fcn.100d822b
add esp, 4
movss xmm0, dword [esp + 0x14]
mov eax, dword [0x1022b97c]
mov ecx, esi
movss dword [esi + eax], xmm0
lea eax, [edi + 0x64]
push eax
call dword [0x10223ae0]
cmp byte [0x102231b9], 0
je 0x100a5ef7
mov eax, dword [edi + 0x34e8]
test eax, eax
je 0x100a5ef7
mov esi, dword [esp + 0x18]
movss xmm0, dword [eax + 0x2c]
mov eax, dword [0x10223964]
movss xmm1, dword [esi + 0x2c]
comiss xmm0, xmm1
jbe 0x100a5eb2
subss xmm0, xmm1
andps xmm0, xmmword [0x10156540]
addss xmm0, xmm1
addss xmm0, dword [eax + 0x20]
movss dword [edi + 0xc], xmm0
jmp 0x100a5ef4
movss xmm2, dword [edi + 0xc]
movaps xmm0, xmm2
subss xmm0, xmm1
andps xmm0, xmmword [0x10156540]
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x10155c24]
cvttss2si eax, xmm0
cmp eax, 0x11
jle 0x100a5eef
movss xmm2, dword [0x10155fdc]
mov dword [edi + 0xc], 0xbf800000
movss xmm1, dword [esi + 0x2c]
comiss xmm2, xmm1
jbe 0x100a5ef7
mov byte [esi], 0
cmp byte [edi], 0
mov eax, 3
mov edx, dword [0x1022316c]
mov ecx, dword [edi + 0x3500]
cmovne edx, eax
cmp ecx, edx
jbe 0x100a5f2b
lea eax, [ecx - 1]
mov dword [edi + 0x3500], eax
mov ecx, eax
test eax, eax
jne 0x100a5f27
mov dword [edi + 0x34fc], eax
cmp ecx, edx
ja 0x100a5f12
pop edi
pop esi
mov esp, ebp
pop ebp
ret