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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
movups xmmword [rsp + 0xe0], xmm6
movups xmmword [rsp + 0xf0], xmm7
movups xmmword [rsp + 0x100], xmm8
movups xmmword [rsp + 0x110], xmm9
mov rax, qword [0x1401d6df0]
mov rsi, qword [rax]
mov r12, qword [rsi + 0x4008]
movzx eax, byte [r12 + 0xc3]
mov qword [rsp + 0x170], rcx
mov ebp, r9d
mov dword [rsp + 0x178], edx
mov dword [rsp + 0x180], r8d
mov byte [r12 + 0xc0], 1
mov byte [rsp + 0x4e], al
test al, al
je 0x140085da8
xor eax, eax
jmp 0x140086643
mov edi, r9d
and edi, 0x3000000
mov dword [rsp + 0x3c], edi
call fcn.1400188c0
test edi, edi
je 0x1400867b8
movq xmm6, rax
shufps xmm6, xmm6, 0x55
movdqa xmm2, xmm6
movss xmm6, dword [0x1401c18a8]
movaps xmm0, xmm6
cmpless xmm0, xmm2
andps xmm2, xmm0
andnps xmm0, xmm6
orps xmm2, xmm0
movd xmm1, eax
movaps xmm0, xmm6
mov rax, qword [rsp + 0x190]
cmpless xmm0, xmm1
mov rcx, qword [rax]
andps xmm1, xmm0
andnps xmm0, xmm6
orps xmm1, xmm0
call fcn.1400185e0
mov byte [rsp + 0x4f], 1
movq xmm0, qword [r12 + 0x110]
cmp byte [r12 + 0xdc], 0
movq xmm3, rax
mov rax, qword [r12 + 0x110]
addps xmm0, xmm3
mov qword [rsp + 0x50], rax
movlps qword [rsp + 0x58], xmm0
jg 0x140085e4f
cmp byte [r12 + 0xdd], 0
setg byte [rsp + 0x4f]
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
je 0x140085e72
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.140009000
cmp al, 1
jne 0x140085e72
cmp byte [rsp + 0x4f], 0
je 0x1400870a0
mov edx, dword [rsp + 0x178]
lea rcx, [rsi + 0x4dd8]
mov r8d, 0xffffffff
call fcn.14000dac0
mov edx, dword [rax]
cmp edx, 0xffffffff
je 0x140086f08
movsxd rax, edx
mov rcx, qword [rsi + 0x4dd0]
lea rdx, [rax + rax*8]
lea rbx, [rax + rdx*4]
shl rbx, 4
add rbx, rcx
mov eax, dword [rbx + 4]
mov r13d, dword [rsi + 0x4db0]
movabs rdx, 0x14c1bacf914c1bad
mov r8d, dword [rsi + 0x4db8]
mov dword [rsp + 0x48], eax
mov rax, rbx
lea r15d, [r13 + 1]
sub rax, rcx
mov dword [rsi + 0x4db0], r15d
sar rax, 4
imul rax, rdx
mov qword [rsp + 0x30], rax
cmp r15d, r8d
jg 0x140086b60
movsxd r13, r13d
mov rdx, qword [rsi + 0x4dc0]
mov ecx, ebp
movq xmm4, r12
mov rax, r13
movddup xmm0, xmm4
shl rax, 4
sub rax, r13
and ecx, 0xe000
lea r13, [rdx + rax*8]
mov eax, dword [rsp + 0x30]
mov rdx, qword [r12 + 0x388]
mov qword [rbx + 0x10], r13
mov dword [r13], eax
lea rax, [r13 + 0x18]
mov qword [rbx + 0x1a0], rax
mov rax, qword [0x1401c1860]
mov qword [r13 + 0x18], rax
mov eax, dword [r12 + 0x14]
sete byte [rbx + 0x243]
jne 0x1400867d0
mov ecx, ebp
mov r8d, ebp
and eax, 0x40
or ebp, 0x8000
and ecx, 0x1000000
or r8d, 0x2000
or ecx, eax
cmovne ebp, r8d
mov edi, ebp
mov r15d, dword [rbx + 0x68]
and edi, 1
shl edi, 9
or edi, ebp
mov eax, edi
and eax, 0xfffcffff
and ebp, 0x3000000
cmovne edi, eax
mov eax, edi
and ah, 0xf7
test edi, 0x1000
cmovne edi, eax
mov eax, edi
or eax, 0x10
test dil, 0xf
cmove edi, eax
mov eax, edi
or eax, 0x10
test byte [rdx + 0x15], 1
cmovne edi, eax
cmp dword [rsi + 0x3f60], r15d
je 0x140086680
mov eax, dword [rsp + 0x178]
mov dword [rbx + 4], edi
xor ebp, ebp
movd xmm7, dword [rsp + 0x180]
movss xmm3, dword [rsp + 0x198]
movq xmm8, qword [0x1401c18a0]
mov dword [rbx], eax
mov rax, qword [rsp + 0x190]
movd xmm1, dword [rsi + 0x3f60]
mov byte [rbx + 0x236], 0
movups xmmword [rbx + 0x180], xmm0
mov rax, qword [rax]
punpckldq xmm1, xmm7
movss dword [rbx + 0xcc], xmm3
movq qword [rbx + 0x68], xmm1
mov qword [r13 + 0xc], rax
xor eax, eax
mov word [rbx + 0x78], ax
mov eax, dword [rsp + 0x178]
mov dword [rsp + 0x40], eax
mov ecx, dword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
lea rax, [rbx + 0x1a8]
mov dword [rax], ecx
test edx, edx
jne 0x140086754
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov qword [rbx + 0x100], rax
mov qword [rbx + 0x108], rdx
mov qword [rbx + 0xf0], rax
mov qword [rbx + 0xf8], rdx
mov qword [rbx + 0x110], rax
mov qword [rbx + 0x118], rdx
mov ecx, dword [rsp + 0x178]
call fcn.140029d40
test ebp, ebp
jle 0x1400860a2
mov ecx, dword [rsp + 0x40]
call fcn.140029d40
mov rbp, qword [rbx + 0x188]
movzx eax, byte [rbp + 0xc3]
movss xmm0, dword [rbp + 0x154]
movdqu xmm5, xmmword [rbp + 0x248]
movdqu xmm7, xmmword [rbp + 0x228]
mov byte [rbx + 0x249], al
mov rax, qword [rbp + 0x140]
movss dword [rbx + 0xb4], xmm0
movdqu xmm3, xmmword [rbp + 0x238]
movss xmm0, dword [r12 + 0x158]
movups xmmword [rbx + 0x160], xmm5
mov qword [r13 + 0x50], rax
mov rax, qword [rbp + 0x138]
movss dword [r13 + 0x68], xmm0
movss xmm0, dword [r12 + 0x1cc]
mov qword [r13 + 0x58], rax
mov rax, qword [rbp + 0x128]
movups xmmword [r13 + 0x30], xmm7
mov qword [r13 + 0x60], rax
mov eax, dword [r12 + 0x1d8]
movups xmmword [r13 + 0x40], xmm3
mov dword [r13 + 0x70], eax
mov eax, edi
movss dword [r13 + 0x6c], xmm0
and eax, 0x400
mov qword [rbp + 0x138], 0
movss xmm5, dword [rbx + 0x168]
mov qword [rbp + 0x140], 0
cmp rbp, r12
je 0x140086cd8
movss xmm3, dword [rbx + 0x160]
test eax, eax
je 0x140086186
addss xmm3, xmm6
minss xmm3, xmm5
movss dword [rbx + 0x160], xmm3
movss xmm7, dword [rbx + 0x16c]
movss xmm2, dword [rbx + 0x164]
test edi, 0x100
jne 0x140086800
test edi, 0x400000
jne 0x1400861b5
test edi, 0x200400
setne byte [rsp + 0x4e]
mov edx, edi
and edx, 0x800000
test edi, 0x200
jne 0x1400867e8
test edx, edx
jne 0x140086830
movss xmm4, dword [rsi + 0x394c]
pxor xmm0, xmm0
pxor xmm1, xmm1
addss xmm0, xmm4
movss dword [rbx + 0xc8], xmm4
movaps xmm4, xmm1
unpcklps xmm4, xmm0
pxor xmm0, xmm0
movlps qword [rbx + 0xc0], xmm4
test eax, eax
je 0x140086205
movaps xmm0, xmm6
cmp byte [rsp + 0x4e], 0
je 0x140086214
addss xmm0, dword [rsi + 0x394c]
subss xmm0, xmm1
xor eax, eax
movq qword [rbx + 0x70], xmm8
mov dword [rbx + 0x98], 0
mov word [rbx + 0x96], ax
movss dword [rbx + 0xbc], xmm0
cmp rbp, r12
je 0x140086cf8
movdqu xmm6, xmmword [rbp + 0x248]
movups xmmword [rbx + 0x120], xmm6
movss xmm4, dword [rbx + 0x124]
movss xmm6, dword [rbx + 0x120]
movq xmm0, qword [rbx + 0x114]
movaps xmm1, xmm0
movsldup xmm8, xmm0
cmpnless xmm1, xmm4
andps xmm0, xmm1
andnps xmm1, xmm4
orps xmm0, xmm1
movss xmm1, dword [rbx + 0x110]
comiss xmm2, xmm0
movaps xmm4, xmm1
cmpnless xmm4, xmm6
andps xmm1, xmm4
andnps xmm4, xmm6
movss xmm6, dword [rbx + 0x12c]
minss xmm6, dword [rbx + 0x11c]
orps xmm1, xmm4
movss xmm4, dword [rbx + 0x128]
minss xmm4, dword [rbx + 0x118]
ja 0x140086ad8
movaps xmm9, xmm7
comiss xmm3, xmm1
minss xmm9, xmm0
movaps xmm0, xmm9
ja 0x140086ae4
movaps xmm9, xmm5
minss xmm9, xmm1
movaps xmm1, xmm9
comiss xmm2, xmm6
unpcklps xmm1, xmm0
movlps qword [rbx + 0x120], xmm1
ja 0x1400862fa
minss xmm7, xmm6
movaps xmm2, xmm7
comiss xmm3, xmm4
ja 0x140086306
minss xmm5, xmm4
movaps xmm3, xmm5
unpcklps xmm3, xmm2
movlps qword [rbx + 0x128], xmm3
test edi, 0x20000
je 0x140086ac8
minss xmm2, dword [rbp + 0x234]
mov qword [rbx + 0x88], 0
lea eax, [r15 + 1]
mov qword [rbx + 0x226], 0
mov byte [rbx + 0x242], 1
mov dword [rbx + 0x206], 0
movss dword [rbx + 0x12c], xmm2
movlps qword [rbx + 0x7c], xmm8
cmp eax, dword [rsi + 0x3f60]
jge 0x14008636b
mov byte [rbx + 0x245], 0
mov dword [r13 + 8], 0
movss xmm1, dword [0x1401c18a8]
mov ecx, 0x2b
call fcn.140007140
movss xmm1, dword [0x1401c18a8]
mov ecx, 0x2c
mov dword [rbx + 0xa4], eax
call fcn.140007140
mov dword [rbx + 0xa8], eax
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x4da8], rbx
mov byte [r12 + 0x170], 0
mov dword [r12 + 0x1c0], eax
cmp rbp, r12
je 0x1400863cb
mov dword [rbp + 0x1c0], eax
test byte [rsp + 0x48], 2
je 0x1400863de
and edi, 2
jne 0x1400863de
mov byte [rbx + 0x241], 1
mov edx, dword [rsi + 0x4df0]
mov eax, dword [rsp + 0x30]
cmp edx, eax
jle 0x140086c48
mov rdi, qword [rsi + 0x4df8]
movsxd rax, dword [rsp + 0x30]
pxor xmm0, xmm0
movabs rdx, 0x6db6db6db6db6db7
cvtsd2ss xmm0, qword [rsi + 0x3f58]
movss dword [rdi + rax*4], xmm0
mov rdi, qword [rbx + 0x18]
mov rax, qword [rbx + 0x20]
movss dword [r13 + 4], xmm0
mov r13, qword [rbx + 8]
sub rax, rdi
mov byte [rbx + 0x248], 0
sar rax, 4
imul rax, rdx
mov r12d, eax
test eax, eax
je 0x140086a98
cmp dword [rsp + 0x180], eax
je 0x140086a98
mov qword [rbx + 8], 0
mov edx, dword [rsp + 0x180]
mov rcx, rbx
call fcn.14007c960
cmp byte [rbx + 0x240], 0
mov byte [rbx + 0x23d], 1
mov byte [rbx + 0x238], 1
je 0x1400864a2
mov eax, 0x100
mov byte [rbx + 0x238], 1
mov byte [rbx + 0x240], 0
mov word [rbx + 0x23d], ax
mov dword [rbx + 0x60], 0
mov eax, 0xffffffff
mov r14d, 0xffffffff
mov r15d, 0xffffffff
mov dword [rbx + 0x64], 0xffffffff
mov word [rbx + 0x214], ax
mov eax, 0xffffffff
mov word [rbx + 0x218], ax
mov eax, dword [0x1401c18a0]
mov byte [rbx + 0x239], 1
mov dword [rbx + 0x210], eax
mov dword [rbx + 0x20a], eax
mov eax, dword [rsp + 0x180]
mov word [rbx + 0x7a], r14w
mov word [rbx + 0x224], r15w
test eax, eax
jle 0x1400865c6
test rdi, rdi
lea rax, [rsp + 0x60]
mov rdx, qword [rbx + 0x18]
mov r8, rdi
movsxd r10, dword [rsp + 0x180]
movss xmm0, dword [0x1401c1848]
setne r11b
xor r9d, r9d
movq xmm2, qword [0x1401c18a0]
mov qword [rsp + 0x30], rax
movabs r15, 0xff00ffffffffff
xor eax, eax
movzx r14d, word [0x1401c18f8]
nop dword [rax]
cmp r12d, r9d
jle 0x1400869c0
test r11b, r11b
je 0x1400869c0
movdqu xmm5, xmmword [r8]
mov rcx, qword [rbx + 0x28]
add rdx, 0x70
add r8, 0x70
movups xmmword [rdx - 0x70], xmm5
movdqu xmm7, xmmword [r8 - 0x60]
movups xmmword [rdx - 0x60], xmm7
movdqu xmm5, xmmword [r8 - 0x50]
movups xmmword [rdx - 0x50], xmm5
movdqu xmm7, xmmword [r8 - 0x40]
movups xmmword [rdx - 0x40], xmm7
movdqu xmm3, xmmword [r8 - 0x30]
movups xmmword [rdx - 0x30], xmm3
movdqu xmm5, xmmword [r8 - 0x20]
movups xmmword [rdx - 0x20], xmm5
movdqu xmm7, xmmword [r8 - 0x11]
movups xmmword [rdx - 0x11], xmm7
mov word [rcx + r9*2], r9w
mov word [rdx - 0x1e], r9w
add r9, 1
cmp r10, r9
jne 0x140086550
test r13, r13
je 0x1400865d3
mov rcx, r13
call fcn.140009220
cmp byte [rbx + 0x23d], 0
jne 0x140086b50
movss xmm0, dword [rbx + 0xe4]
pxor xmm2, xmm2
mov edx, 1
movss xmm1, dword [rsi + 0x3d40]
ucomiss xmm0, xmm2
setp al
cmovne eax, edx
test al, al
je 0x140086617
ucomiss xmm0, xmm1
setp al
cmovne eax, edx
test al, al
jne 0x140086d10
mov r8d, dword [rbx + 0x190]
movss dword [rbx + 0xe4], xmm1
mov byte [rbp + 0xc3], 1
test r8d, r8d
jg 0x140086af0
mov rcx, rbx
call fcn.14007eac0
mov eax, 1
movups xmm6, xmmword [rsp + 0xe0]
movups xmm7, xmmword [rsp + 0xf0]
movups xmm8, xmmword [rsp + 0x100]
movups xmm9, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rsp + 0x178]
movsx ebp, word [rbx + 0x78]
mov dword [rbx + 4], edi
movd xmm4, dword [rsp + 0x180]
mov dword [rbx], eax
mov rax, qword [rsp + 0x190]
add ebp, 1
movd xmm1, dword [rsi + 0x3f60]
mov byte [rbx + 0x236], 0
mov rax, qword [rax]
movups xmmword [rbx + 0x180], xmm0
punpckldq xmm1, xmm4
movss xmm4, dword [rsp + 0x198]
movq qword [rbx + 0x68], xmm1
movss dword [rbx + 0xcc], xmm4
mov qword [r13 + 0xc], rax
mov word [rbx + 0x78], bp
test ebp, ebp
jle 0x14008723a
movq xmm8, qword [0x1401c18a0]
movsxd rax, dword [rbx + 0x1c0]
cmp eax, ebp
jl 0x140086840
mov r8d, dword [rsp + 0x178]
xor edx, edx
lea rcx, str.Instances
call fcn.140029ee0
mov ecx, ebp
mov edx, eax
call fcn.140029f40
mov dword [rsp + 0x40], eax
movsx eax, word [rbx + 0x78]
test eax, eax
je 0x14008603c
sub eax, 1
mov ecx, dword [rsp + 0x40]
cdqe
lea rdx, [rax + rax*2]
mov rax, qword [rbx + 0x1c8]
lea rax, [rax + rdx*8]
mov edx, dword [rsp + 0x3c]
mov dword [rax], ecx
test edx, edx
je 0x140086055
mov eax, edi
mov edx, edi
and eax, 0x3000000
and edx, 0x1000000
cmp eax, 0x1000000
je 0x140086898
lea r14, [rsp + 0x60]
test edx, edx
je 0x1400868d1
movss xmm5, dword [rsp + 0x198]
pxor xmm0, xmm0
comiss xmm5, xmm0
jbe 0x1400868d1
ucomiss xmm5, dword [0x1401c1890]
mov edx, 1
setp al
cmovne eax, edx
test al, al
je 0x1400868d1
pxor xmm1, xmm1
jmp 0x1400868b3
movss xmm6, dword [0x1401c18a8]
pxor xmm2, xmm2
jmp 0x140085de8
mov eax, ebp
or eax, 0x40000
cmp ecx, 0x4000
cmove ebp, eax
jmp 0x140085f7b
test edx, edx
jne 0x140086818
movss xmm1, dword [rsi + 0x394c]
movaps xmm0, xmm6
pxor xmm4, xmm4
jmp 0x1400861e5
addss xmm2, xmm6
minss xmm2, xmm7
movss dword [rbx + 0x164], xmm2
jmp 0x1400861a2
pxor xmm4, xmm4
movaps xmm0, xmm6
movaps xmm1, xmm4
jmp 0x1400861e5
pxor xmm0, xmm0
movaps xmm4, xmm0
movaps xmm1, xmm0
jmp 0x1400861e5
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
movq qword [rsp + 0x70], xmm8
cmp eax, dword [rbx + 0x1c4]
je 0x1400870d0
mov r14, qword [rbx + 0x1c8]
movdqu xmm7, xmmword [rsp + 0x60]
lea rax, [rax + rax*2]
lea rax, [r14 + rax*8]
movups xmmword [rax], xmm7
mov rdx, qword [rsp + 0x70]
mov qword [rax + 0x10], rdx
add dword [rbx + 0x1c0], 1
jmp 0x1400866ff
test edx, edx
jne 0x140087060
mov dword [rsp + 0x198], 0
movss xmm1, dword [0x1401c18f4]
movss xmm0, dword [rsp + 0x198]
lea r14, [rsp + 0x60]
mov rcx, r14
unpcklps xmm0, xmm1
movlps qword [rsp + 0x60], xmm0
call fcn.1400138e0
test dword [rsp + 0x48], 0x3000000
je 0x140086f90
mov eax, edi
movq xmm1, qword [rsp + 0x50]
mov edx, dword [rsp + 0x40]
xor r9d, r9d
movq xmm0, qword [rsp + 0x58]
sar eax, 0xd
mov rcx, qword [rsp + 0x170]
mov r8, r14
and eax, 0x800
subps xmm0, xmm1
mov dword [rsp + 0x20], eax
movlps qword [rsp + 0x60], xmm0
call fcn.140031220
mov rax, qword [rsi + 0x4008]
movss xmm2, dword [rax + 0x2c]
movss xmm0, dword [rax + 0x28]
mov qword [rbx + 0x188], rax
movss xmm1, dword [rax + 0x30]
movss xmm3, dword [rax + 0x34]
movdqu xmm4, xmmword [rax + 0x228]
movdqu xmm5, xmmword [rax + 0x208]
addss xmm1, xmm0
addss xmm3, xmm2
unpcklps xmm0, xmm2
cmp byte [rax + 0xc3], 0
movups xmmword [rbx + 0x110], xmm4
movups xmmword [rbx + 0x100], xmm5
unpcklps xmm1, xmm3
movlhps xmm0, xmm1
movups xmmword [rbx + 0xf0], xmm0
je 0x140086987
cmp byte [rsp + 0x4f], 0
je 0x140086987
mov byte [rax + 0xc3], 0
movzx edx, byte [rbx + 0x246]
movzx eax, byte [rax + 0xbd]
test ebp, ebp
jne 0x140086e68
movzx ecx, al
mov ch, dl
mov word [rbx + 0x246], cx
mov ecx, dword [rsp + 0x178]
call fcn.140029d40
jmp 0x1400860a2
mov rdi, qword [rsp + 0x30]
mov ecx, 0xe
add rdx, 0x70
add r8, 0x70
movss xmm1, dword [rdx - 0x5c]
rep stosq qword [rdi], rax
mov edi, 0xff
movss dword [rsp + 0x70], xmm0
mov qword [rsp + 0xb8], r15
mov word [rsp + 0xc0], di
mov rcx, qword [rbx + 0x28]
movss dword [rsp + 0x78], xmm0
movq qword [rsp + 0xb0], xmm2
mov qword [rdx - 0x70], 0
mov qword [rdx - 0x68], 0
movdqu xmm6, xmmword [rsp + 0x70]
movups xmmword [rdx - 0x60], xmm6
movdqu xmm6, xmmword [rsp + 0x80]
movups xmmword [rdx - 0x50], xmm6
movdqu xmm6, xmmword [rsp + 0x90]
movups xmmword [rdx - 0x40], xmm6
movdqu xmm6, xmmword [rsp + 0xa0]
movups xmmword [rdx - 0x30], xmm6
movdqu xmm5, xmmword [rsp + 0xb0]
movups xmmword [rdx - 0x20], xmm5
movdqu xmm7, xmmword [rsp + 0xbf]
movss dword [rdx - 0x5c], xmm1
movups xmmword [rdx - 0x11], xmm7
mov byte [rdx - 7], 1
mov byte [rdx - 0xc], 1
mov word [rdx - 0xe], r14w
mov word [rcx + r9*2], r9w
mov word [rdx - 0x1e], r9w
add r9, 1
cmp r9, r10
jne 0x140086550
jmp 0x1400865c6
test r13, r13
je 0x140087255
cmp byte [rbx + 0x240], 0
jne 0x140086cc8
cmp byte [rbx + 0x238], 0
je 0x1400865d3
xor r13d, r13d
xor edi, edi
jmp 0x1400864a2
movss xmm2, dword [rbp + 0x254]
jmp 0x140086324
comiss xmm3, xmm1
movaps xmm0, xmm2
jbe 0x1400862d7
movaps xmm1, xmm3
jmp 0x1400862e4
mov edx, dword [rbx + 0x194]
test edx, edx
jns 0x140086b3c
xor ecx, ecx
call fcn.140009130
mov rdx, qword [rbx + 0x198]
mov rsi, rax
test rdx, rdx
je 0x140086b2b
movsxd r8, dword [rbx + 0x190]
mov rcx, rax
call fcn.1400de8e0
mov rcx, qword [rbx + 0x198]
call fcn.140009220
mov qword [rbx + 0x198], rsi
mov dword [rbx + 0x194], 0
mov dword [rbx + 0x190], 0
jmp 0x140086636
mov rcx, rbx
call fcn.140085980
jmp 0x1400865e0
lea r14, [rsp + 0x60]
xor eax, eax
mov ecx, 0xf
mov rdi, r14
rep stosq qword [rdi], rax
mov dword [rsp + 0x64], 0xbf800000
mov eax, dword [rsi + 0x4dbc]
cmp r15d, eax
jle 0x140086fca
test eax, eax
jne 0x140086fb0
mov edi, 8
cmp r15d, edi
cmovge edi, r15d
movsxd rax, edi
mov rcx, rax
shl rcx, 4
sub rcx, rax
shl rcx, 3
call fcn.140009130
mov rdx, qword [rsi + 0x4dc0]
mov qword [rsp + 0x40], rax
mov rcx, rax
mov r8d, dword [rsi + 0x4db8]
test rdx, rdx
je 0x140086bf7
movsxd rax, r8d
mov r8, rax
shl r8, 4
sub r8, rax
shl r8, 3
call fcn.1400de8e0
mov rcx, qword [rsi + 0x4dc0]
call fcn.140009220
mov r8d, dword [rsi + 0x4db8]
mov rax, qword [rsp + 0x40]
mov dword [rsi + 0x4dbc], edi
mov qword [rsi + 0x4dc0], rax
cmp r15d, r8d
jg 0x140086fca
mov dword [rsi + 0x4db8], r15d
lea rcx, [rsp + 0x78]
call fcn.14006c680
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140086c35
call fcn.140009220
mov eax, dword [rsi + 0x4db0]
lea r13d, [rax - 1]
jmp 0x140085ef5
lea r12d, [rax + 1]
mov eax, dword [rsi + 0x4df4]
cmp r12d, eax
jle 0x140086e98
test eax, eax
jne 0x140086e78
mov r14d, 8
cmp r12d, r14d
cmovge r14d, r12d
movsxd rcx, r14d
shl rcx, 2
call fcn.140009130
mov rdx, qword [rsi + 0x4df8]
mov rdi, rax
test rdx, rdx
je 0x140086caa
movsxd r8, dword [rsi + 0x4df0]
mov rcx, rax
shl r8, 2
call fcn.1400de8e0
mov rcx, qword [rsi + 0x4df8]
call fcn.140009220
mov qword [rsi + 0x4df8], rdi
mov edx, dword [rsi + 0x4df0]
mov dword [rsi + 0x4df4], r14d
jmp 0x140086e9f
xor r13d, r13d
xor edi, edi
jmp 0x140086481
movss xmm7, dword [rbx + 0x16c]
movss xmm2, dword [rbx + 0x164]
movss xmm3, dword [rbx + 0x160]
jmp 0x1400861a2
movdqu xmm6, xmmword [rbx + 0x110]
movups xmmword [rbx + 0x120], xmm6
jmp 0x140086251
mov ecx, dword [rsp + 0x180]
movaps xmm2, xmm1
divss xmm2, xmm0
test ecx, ecx
jle 0x140086617
mov eax, dword [rsp + 0x180]
mov rcx, qword [rbx + 0x18]
sub eax, 1
cmp eax, 2
jbe 0x140087233
mov r8d, dword [rsp + 0x180]
movaps xmm4, xmm2
mov rax, rcx
movaps xmm6, xmm2
shufps xmm4, xmm4, 0
shr r8d, 2
lea rdx, [r8*8]
sub rdx, r8
shl rdx, 6
add rdx, rcx
nop dword [rax + rax]
movss xmm0, dword [rax + 0x160]
movss xmm2, dword [rax + 0xf0]
add rax, 0x1c0
movss xmm3, dword [rax - 0x140]
unpcklps xmm2, xmm0
movss xmm0, dword [rax - 0x1b0]
unpcklps xmm0, xmm3
movlhps xmm0, xmm2
mulps xmm0, xmm4
movaps xmm2, xmm0
movss dword [rax - 0x1b0], xmm0
shufps xmm2, xmm0, 0x55
movss dword [rax - 0x140], xmm2
movaps xmm2, xmm0
unpckhps xmm2, xmm0
shufps xmm0, xmm0, 0xff
movss dword [rax - 0x60], xmm0
movss dword [rax - 0xd0], xmm2
cmp rax, rdx
jne 0x140086d70
mov edx, dword [rsp + 0x180]
movaps xmm2, xmm6
and edx, 0xfffffffc
test byte [rsp + 0x180], 3
je 0x140086617
movsxd r8, edx
lea rax, [r8*8]
sub rax, r8
shl rax, 4
lea r8, [rcx + rax]
movss xmm0, dword [r8 + 0x10]
mulss xmm0, xmm2
movss dword [r8 + 0x10], xmm0
lea r8d, [rdx + 1]
cmp dword [rsp + 0x180], r8d
jle 0x140086617
lea r8, [rcx + rax + 0x70]
add edx, 2
movss xmm0, dword [r8 + 0x10]
mulss xmm0, xmm2
movss dword [r8 + 0x10], xmm0
cmp dword [rsp + 0x180], edx
jle 0x140086617
lea rax, [rcx + rax + 0xe0]
mulss xmm2, dword [rax + 0x10]
movss dword [rax + 0x10], xmm2
jmp 0x140086617
or edx, eax
mov byte [rbx + 0x246], dl
jmp 0x140086089
mov r14d, eax
shr r14d, 0x1f
add r14d, eax
sar r14d, 1
add r14d, eax
cmp r14d, r12d
cmovl r14d, r12d
cmp eax, r14d
jl 0x140086c70
mov rdi, qword [rsi + 0x4df8]
cmp r12d, edx
jle 0x140086ef6
movsxd rcx, edx
mov dword [rdi + rcx*4], 0xbf800000
lea rax, [rcx*4]
cmp dword [rsp + 0x30], edx
jle 0x140086eef
mov edi, dword [rsp + 0x30]
add rax, 4
lea r8d, [rdi - 1]
sub r8d, edx
lea rcx, [rcx + r8 + 2]
shl rcx, 2
nop dword [rax]
mov rdx, qword [rsi + 0x4df8]
mov dword [rdx + rax], 0xbf800000
add rax, 4
cmp rcx, rax
jne 0x140086ed8
mov rdi, qword [rsi + 0x4df8]
mov dword [rsi + 0x4df0], r12d
jmp 0x1400863f7
mov edx, dword [rsi + 0x4de8]
mov dword [rax], edx
movsxd rax, edx
lea rcx, [rax + rax*8]
lea rbx, [rax + rcx*4]
shl rbx, 4
cmp edx, dword [rsi + 0x4dc8]
je 0x140087153
mov rdx, qword [rsi + 0x4dd0]
add rdx, rbx
mov eax, dword [rdx]
lea rdi, [rdx + 8]
mov rcx, rdx
mov dword [rsi + 0x4de8], eax
xor eax, eax
and rdi, 0xfffffffffffffff8
mov qword [rdx], 0
mov qword [rdx + 0x248], 0
sub rcx, rdi
add ecx, 0x250
shr ecx, 3
rep stosq qword [rdi], rax
mov dword [rdx + 0x68], 0xffffffff
mov rcx, qword [rsi + 0x4dd0]
add dword [rsi + 0x4dec], 1
add rbx, rcx
jmp 0x140085eaf
mov qword [rsp + 0x60], 0
mov rcx, r14
call fcn.140013910
jmp 0x1400868df
mov edi, eax
shr edi, 0x1f
add edi, eax
sar edi, 1
add edi, eax
cmp edi, r15d
cmovl edi, r15d
cmp eax, edi
jl 0x140086b9d
movsxd rax, r8d
sub r13d, r8d
mov rdx, rax
shl rdx, 4
sub rdx, rax
lea rax, [rax + r13 + 1]
mov r8, rax
shl rdx, 3
shl r8, 4
sub r8, rax
shl r8, 3
nop dword [rax]
mov rax, qword [rsi + 0x4dc0]
movdqu xmm3, xmmword [r14]
add rax, rdx
add rdx, 0x78
movups xmmword [rax], xmm3
movdqu xmm5, xmmword [r14 + 0x10]
movups xmmword [rax + 0x10], xmm5
movdqu xmm7, xmmword [r14 + 0x20]
movups xmmword [rax + 0x20], xmm7
movdqu xmm3, xmmword [r14 + 0x30]
movups xmmword [rax + 0x30], xmm3
movdqu xmm5, xmmword [r14 + 0x40]
movups xmmword [rax + 0x40], xmm5
movdqu xmm7, xmmword [r14 + 0x50]
movups xmmword [rax + 0x50], xmm7
movdqu xmm3, xmmword [r14 + 0x60]
movups xmmword [rax + 0x60], xmm3
mov rcx, qword [r14 + 0x70]
mov qword [rax + 0x70], rcx
cmp rdx, r8
jne 0x140086ff8
jmp 0x140086c12
movss xmm7, dword [rsp + 0x198]
ucomiss xmm7, dword [0x1401c1890]
mov edx, 1
setp al
cmovne eax, edx
test al, al
je 0x1400868a0
pxor xmm0, xmm0
movss xmm1, dword [0x1401c18f4]
comiss xmm7, xmm0
ja 0x1400868b3
jmp 0x1400868a0
movq xmm1, qword [rsp + 0x50]
movq xmm0, qword [rsp + 0x58]
lea rcx, [rsp + 0x60]
subps xmm0, xmm1
movss xmm1, dword [0x1401c1848]
movlps qword [rsp + 0x60], xmm0
call fcn.1400178c0
xor eax, eax
jmp 0x140086643
lea ecx, [rax + 1]
test eax, eax
jne 0x1400871ea
mov eax, 8
cmp ecx, eax
cmovge eax, ecx
mov r9d, eax
movsxd rax, r9d
mov dword [rsp + 0x40], r9d
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.140009130
mov rdx, qword [rbx + 0x1c8]
mov r9d, dword [rsp + 0x40]
mov r14, rax
test rdx, rdx
je 0x140087139
movsxd rax, dword [rbx + 0x1c0]
mov rcx, r14
lea r8, [rax + rax*2]
shl r8, 3
call fcn.1400de8e0
mov rcx, qword [rbx + 0x1c8]
call fcn.140009220
mov r9d, dword [rsp + 0x40]
mov qword [rbx + 0x1c8], r14
movsxd rax, dword [rbx + 0x1c0]
mov dword [rbx + 0x1c4], r9d
jmp 0x14008686c
mov eax, dword [rsi + 0x4dcc]
lea edi, [rdx + 1]
cmp edi, eax
jle 0x14008722a
test eax, eax
jne 0x14008720a
mov r14d, 8
cmp edi, r14d
cmovge r14d, edi
movsxd rax, r14d
lea rdx, [rax + rax*8]
lea rcx, [rax + rdx*4]
shl rcx, 4
call fcn.140009130
mov rdx, qword [rsi + 0x4dd0]
mov r13, rax
test rdx, rdx
je 0x1400871c3
movsxd rax, dword [rsi + 0x4dc8]
lea rcx, [rax + rax*8]
lea r8, [rax + rcx*4]
mov rcx, r13
shl r8, 4
call fcn.1400de8e0
mov rcx, qword [rsi + 0x4dd0]
call fcn.140009220
mov qword [rsi + 0x4dd0], r13
mov dword [rsi + 0x4dcc], r14d
mov eax, dword [rsi + 0x4de8]
mov dword [rsi + 0x4dc8], edi
lea rdx, [r13 + rbx]
add eax, 1
jmp 0x140086f37
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
add edx, eax
cmp edx, ecx
cmovge ecx, edx
mov r9d, ecx
cmp eax, ecx
jge 0x140086865
jmp 0x1400870e8
mov r14d, eax
shr r14d, 0x1f
add r14d, eax
sar r14d, 1
add r14d, eax
cmp r14d, edi
cmovl r14d, edi
cmp eax, r14d
jl 0x140087179
mov r13, qword [rsi + 0x4dd0]
jmp 0x1400871d1
xor edx, edx
jmp 0x140086df0
mov ecx, dword [rsp + 0x178]
mov eax, ebp
movq xmm8, qword [0x1401c18a0]
mov dword [rsp + 0x40], ecx
jmp 0x140086726
xor edi, edi
jmp 0x14008645b