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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rbp
push rdi
sub rsp, 0xa0
mov rbx, qword [0x18007ce08]
xor ebp, ebp
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
mov qword [rax + 0x10], rsi
movaps xmmword [rax - 0x18], xmm6
xorps xmm6, xmm6
mov byte [rbx + 0x3e3], 0
mov qword [rbx + 0x1e08], rbp
mov dword [rbx + 0x1e10], ebp
movzx esi, byte [rbx + 0x50]
and sil, 1
movaps xmmword [rax - 0x58], xmm10
test byte [rbx + 0x50], 2
movaps xmmword [rax - 0x68], xmm11
je 0x18002200d
test byte [rbx + 0x54], 1
je 0x18002200d
cmp dword [rbx + 0x1d1c], 4
lea rcx, [rbx + 0x1d1c]
mov dil, 1
je 0x180022017
movss xmm0, dword [rbx + 0x38c]
comiss xmm0, xmm6
ja 0x180022001
movss xmm0, dword [rbx + 0x394]
comiss xmm0, xmm6
ja 0x180022001
movss xmm0, dword [rbx + 0x390]
comiss xmm0, xmm6
ja 0x180022001
movss xmm0, dword [rbx + 0x398]
comiss xmm0, xmm6
ja 0x180022001
movss xmm0, dword [rbx + 0x39c]
comiss xmm0, xmm6
ja 0x180022001
movss xmm0, dword [rbx + 0x3a0]
comiss xmm0, xmm6
ja 0x180022001
movss xmm0, dword [rbx + 0x3a4]
comiss xmm0, xmm6
ja 0x180022001
movss xmm0, dword [rbx + 0x3a8]
lea rcx, [rbx + 0x1d1c]
comiss xmm0, xmm6
jbe 0x180022017
mov dword [rbx + 0x1d1c], 4
jmp 0x180022010
xor dil, dil
lea rcx, [rbx + 0x1d1c]
test sil, sil
je 0x180022162
movsxd rax, dword [rbx + 0xb4]
test eax, eax
js 0x180022045
cmp byte [rax + rbx + 0x18c], bpl
je 0x180022045
mov dword [rbx + 0x38c], 0x3f800000
mov dword [rcx], 3
movsxd rax, dword [rbx + 0xb8]
test eax, eax
js 0x18002206a
cmp byte [rax + rbx + 0x18c], bpl
je 0x18002206a
mov dword [rbx + 0x394], 0x3f800000
mov dword [rcx], 3
movsxd rax, dword [rbx + 0xbc]
test eax, eax
js 0x18002208f
cmp byte [rax + rbx + 0x18c], bpl
je 0x18002208f
mov dword [rbx + 0x390], 0x3f800000
mov dword [rcx], 3
movsxd rax, dword [rbx + 0x88]
test eax, eax
js 0x1800220b4
cmp byte [rax + rbx + 0x18c], bpl
je 0x1800220b4
mov dword [rbx + 0x3d0], 0x3f800000
mov dword [rcx], 3
movsxd rax, dword [rbx + 0x8c]
test eax, eax
js 0x1800220d9
cmp byte [rax + rbx + 0x18c], bpl
je 0x1800220d9
mov dword [rbx + 0x3d4], 0x3f800000
mov dword [rcx], 3
movsxd rax, dword [rbx + 0x90]
test eax, eax
js 0x1800220fe
cmp byte [rax + rbx + 0x18c], bpl
je 0x1800220fe
mov dword [rbx + 0x3d8], 0x3f800000
mov dword [rcx], 3
movsxd rax, dword [rbx + 0x94]
test eax, eax
js 0x180022123
cmp byte [rax + rbx + 0x18c], bpl
je 0x180022123
mov dword [rbx + 0x3dc], 0x3f800000
mov dword [rcx], 3
movzx eax, byte [rbx + 0x188]
test al, al
je 0x180022138
mov dword [rbx + 0x3c4], 0x3f800000
cmp byte [rbx + 0x189], bpl
je 0x18002214b
mov dword [rbx + 0x3c8], 0x3f800000
cmp byte [rbx + 0x18a], bpl
je 0x180022162
test al, al
jne 0x180022162
mov dword [rbx + 0x3cc], 0x3f800000
movups xmm0, xmmword [rbx + 0x14e8]
mov eax, dword [rbx + 0x1538]
mov r9d, ebp
movups xmm1, xmmword [rbx + 0x14f8]
lea r8, [rbx + 0x60]
mov rcx, rbp
movss xmm10, dword [0x180074684]
movups xmmword [rbx + 0x153c], xmm0
movups xmm0, xmmword [rbx + 0x1508]
movups xmmword [rbx + 0x154c], xmm1
movups xmm1, xmmword [rbx + 0x1518]
movups xmmword [rbx + 0x155c], xmm0
movups xmm0, xmmword [rbx + 0x1528]
movups xmmword [rbx + 0x156c], xmm1
movups xmmword [rbx + 0x157c], xmm0
mov dword [rbx + 0x158c], eax
nop word [rax + rax]
movss xmm0, dword [rbx + rcx*4 + 0x38c]
comiss xmm0, xmm6
jbe 0x1800221fc
movss xmm0, dword [rbx + rcx*4 + 0x14e8]
lea r8, [rbx + 0x60]
comiss xmm6, xmm0
jbe 0x1800221f5
movaps xmm0, xmm6
jmp 0x180022200
addss xmm0, dword [r8]
jmp 0x180022200
movaps xmm0, xmm10
mov edx, 0x538
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x390]
comiss xmm0, xmm6
jbe 0x180022239
movss xmm0, dword [rbx + rcx*4 + 0x14ec]
comiss xmm6, xmm0
jbe 0x180022232
movaps xmm0, xmm6
jmp 0x18002223d
addss xmm0, dword [r8]
jmp 0x18002223d
movaps xmm0, xmm10
mov edx, 0x539
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x394]
comiss xmm0, xmm6
jbe 0x180022276
movss xmm0, dword [rbx + rcx*4 + 0x14f0]
comiss xmm6, xmm0
jbe 0x18002226f
movaps xmm0, xmm6
jmp 0x18002227a
addss xmm0, dword [r8]
jmp 0x18002227a
movaps xmm0, xmm10
mov edx, 0x53a
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x398]
comiss xmm0, xmm6
jbe 0x1800222b3
movss xmm0, dword [rbx + rcx*4 + 0x14f4]
comiss xmm6, xmm0
jbe 0x1800222ac
movaps xmm0, xmm6
jmp 0x1800222b7
addss xmm0, dword [r8]
jmp 0x1800222b7
movaps xmm0, xmm10
mov edx, 0x53b
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x39c]
comiss xmm0, xmm6
jbe 0x1800222f0
movss xmm0, dword [rbx + rcx*4 + 0x14f8]
comiss xmm6, xmm0
jbe 0x1800222e9
movaps xmm0, xmm6
jmp 0x1800222f4
addss xmm0, dword [r8]
jmp 0x1800222f4
movaps xmm0, xmm10
mov edx, 0x53c
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3a0]
comiss xmm0, xmm6
jbe 0x18002232d
movss xmm0, dword [rbx + rcx*4 + 0x14fc]
comiss xmm6, xmm0
jbe 0x180022326
movaps xmm0, xmm6
jmp 0x180022331
addss xmm0, dword [r8]
jmp 0x180022331
movaps xmm0, xmm10
mov edx, 0x53d
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3a4]
comiss xmm0, xmm6
jbe 0x18002236a
movss xmm0, dword [rbx + rcx*4 + 0x1500]
comiss xmm6, xmm0
jbe 0x180022363
movaps xmm0, xmm6
jmp 0x18002236e
addss xmm0, dword [r8]
jmp 0x18002236e
movaps xmm0, xmm10
mov edx, 0x53e
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3a8]
comiss xmm0, xmm6
jbe 0x1800223a7
movss xmm0, dword [rbx + rcx*4 + 0x1504]
comiss xmm6, xmm0
jbe 0x1800223a0
movaps xmm0, xmm6
jmp 0x1800223ab
addss xmm0, dword [r8]
jmp 0x1800223ab
movaps xmm0, xmm10
mov edx, 0x53f
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3ac]
comiss xmm0, xmm6
jbe 0x1800223e4
movss xmm0, dword [rbx + rcx*4 + 0x1508]
comiss xmm6, xmm0
jbe 0x1800223dd
movaps xmm0, xmm6
jmp 0x1800223e8
addss xmm0, dword [r8]
jmp 0x1800223e8
movaps xmm0, xmm10
mov edx, 0x540
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3b0]
comiss xmm0, xmm6
jbe 0x180022421
movss xmm0, dword [rbx + rcx*4 + 0x150c]
comiss xmm6, xmm0
jbe 0x18002241a
movaps xmm0, xmm6
jmp 0x180022425
addss xmm0, dword [r8]
jmp 0x180022425
movaps xmm0, xmm10
mov edx, 0x541
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3b4]
comiss xmm0, xmm6
jbe 0x18002245e
movss xmm0, dword [rbx + rcx*4 + 0x1510]
comiss xmm6, xmm0
jbe 0x180022457
movaps xmm0, xmm6
jmp 0x180022462
addss xmm0, dword [r8]
jmp 0x180022462
movaps xmm0, xmm10
mov edx, 0x542
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3b8]
comiss xmm0, xmm6
jbe 0x18002249b
movss xmm0, dword [rbx + rcx*4 + 0x1514]
comiss xmm6, xmm0
jbe 0x180022494
movaps xmm0, xmm6
jmp 0x18002249f
addss xmm0, dword [r8]
jmp 0x18002249f
movaps xmm0, xmm10
mov edx, 0x543
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3bc]
comiss xmm0, xmm6
jbe 0x1800224d8
movss xmm0, dword [rbx + rcx*4 + 0x1518]
comiss xmm6, xmm0
jbe 0x1800224d1
movaps xmm0, xmm6
jmp 0x1800224dc
addss xmm0, dword [r8]
jmp 0x1800224dc
movaps xmm0, xmm10
mov edx, 0x544
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3c0]
comiss xmm0, xmm6
jbe 0x180022515
movss xmm0, dword [rbx + rcx*4 + 0x151c]
comiss xmm6, xmm0
jbe 0x18002250e
movaps xmm0, xmm6
jmp 0x180022519
addss xmm0, dword [r8]
jmp 0x180022519
movaps xmm0, xmm10
mov edx, 0x545
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3c4]
comiss xmm0, xmm6
jbe 0x180022552
movss xmm0, dword [rbx + rcx*4 + 0x1520]
comiss xmm6, xmm0
jbe 0x18002254b
movaps xmm0, xmm6
jmp 0x180022556
addss xmm0, dword [r8]
jmp 0x180022556
movaps xmm0, xmm10
mov edx, 0x546
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3c8]
comiss xmm0, xmm6
jbe 0x18002258f
movss xmm0, dword [rbx + rcx*4 + 0x1524]
comiss xmm6, xmm0
jbe 0x180022588
movaps xmm0, xmm6
jmp 0x180022593
addss xmm0, dword [r8]
jmp 0x180022593
movaps xmm0, xmm10
mov edx, 0x547
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3cc]
comiss xmm0, xmm6
jbe 0x1800225cc
movss xmm0, dword [rbx + rcx*4 + 0x1528]
comiss xmm6, xmm0
jbe 0x1800225c5
movaps xmm0, xmm6
jmp 0x1800225d0
addss xmm0, dword [r8]
jmp 0x1800225d0
movaps xmm0, xmm10
mov edx, 0x548
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3d0]
comiss xmm0, xmm6
jbe 0x180022609
movss xmm0, dword [rbx + rcx*4 + 0x152c]
comiss xmm6, xmm0
jbe 0x180022602
movaps xmm0, xmm6
jmp 0x18002260d
addss xmm0, dword [r8]
jmp 0x18002260d
movaps xmm0, xmm10
mov edx, 0x549
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3d4]
comiss xmm0, xmm6
jbe 0x180022646
movss xmm0, dword [rbx + rcx*4 + 0x1530]
comiss xmm6, xmm0
jbe 0x18002263f
movaps xmm0, xmm6
jmp 0x18002264a
addss xmm0, dword [r8]
jmp 0x18002264a
movaps xmm0, xmm10
mov edx, 0x54a
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3d8]
comiss xmm0, xmm6
jbe 0x180022683
movss xmm0, dword [rbx + rcx*4 + 0x1534]
comiss xmm6, xmm0
jbe 0x18002267c
movaps xmm0, xmm6
jmp 0x180022687
addss xmm0, dword [r8]
jmp 0x180022687
movaps xmm0, xmm10
mov edx, 0x54b
mov rax, rcx
add rax, rdx
movss dword [rbx + rax*4 + 8], xmm0
movss xmm0, dword [rbx + rcx*4 + 0x3dc]
comiss xmm0, xmm6
jbe 0x1800226c0
movss xmm0, dword [rbx + rcx*4 + 0x1538]
comiss xmm6, xmm0
jbe 0x1800226b9
movaps xmm0, xmm6
jmp 0x1800226c4
addss xmm0, dword [r8]
jmp 0x1800226c8
movaps xmm0, xmm10
lea r8, [rbx + 0x60]
mov rax, rcx
mov edx, 0x54c
add rax, rdx
add r9d, 0x15
add rcx, 0x15
movss dword [rbx + rax*4 + 8], xmm0
cmp r9d, 0x15
jl 0x1800221d0
mov edx, dword [rbx + 0x1d44]
test edx, edx
je 0x180022788
cmp byte [rbx + 0x1d3e], bpl
je 0x18002270b
cmp byte [rbx + 0x1d42], bpl
je 0x180022788
mov r9, qword [rbx + 0x1ce8]
test r9, r9
je 0x180022788
movsxd rax, dword [rbx + 0x1d34]
mov dword [rbx + 0x1cf4], ebp
mov r8, rax
cmp byte [rbx + 0x1d42], bpl
mov dword [rbx + 0x1cf0], edx
mov dword [r9 + rax*4 + 0x3b0], edx
je 0x180022768
mov rax, qword [rbx + 0x1ce8]
add r8, r8
movups xmm0, xmmword [rbx + 0x1d48]
movups xmmword [rax + r8*8 + 0x3b8], xmm0
mov word [rbx + 0x1d3d], 1
mov byte [rbx + 0x1d3f], 1
movsxd rcx, dword [rbx + 0x1d34]
mov rax, qword [rbx + 0x1ce8]
add rcx, rcx
movups xmm0, xmmword [rbx + 0x1d48]
movups xmmword [rax + rcx*8 + 0x3b8], xmm0
mov word [rbx + 0x1d41], bp
mov dword [rbx + 0x1d44], ebp
mov dword [rbx + 0x1d0c], ebp
cmp byte [rbx + 0x1d58], bpl
je 0x1800227a9
call fcn.180023390
cmp dword [rbx + 0x1d60], 2
jne 0x1800227cf
cmp dword [rbx + 0x1d80], ebp
jne 0x1800227c9
cmp dword [rbx + 0x1de0], ebp
jne 0x1800227c9
mov byte [rbx + 0x1d3e], bpl
mov dword [rbx + 0x1d60], ebp
cmp byte [rbx + 0x1d3d], bpl
je 0x18002284c
cmp byte [rbx + 0x1d3c], bpl
je 0x18002284c
test byte [rbx + 0x50], 4
je 0x180022845
test byte [rbx + 0x54], 4
je 0x180022845
cmp byte [rbx + 0x1d3e], bpl
jne 0x180022845
cmp byte [rbx + 0x1d3f], bpl
je 0x180022845
cmp qword [rbx + 0x1ce8], rbp
je 0x180022845
lea rcx, [rsp + 0xb0]
call fcn.180021a50
movss xmm4, dword [rax]
movss xmm5, dword [rax + 4]
movss dword [rbx + 0x40c], xmm4
movss dword [rbx + 0x410], xmm5
movss dword [rbx + 0x170], xmm4
movss dword [rbx + 0x174], xmm5
mov byte [rbx + 0x3e3], 1
mov byte [rbx + 0x1d3d], bpl
mov rdx, qword [rbx + 0x1ce8]
mov byte [rbx + 0x1d3c], bpl
mov dword [rbx + 0x1d08], ebp
test rdx, rdx
je 0x180022899
mov rcx, rdx
nop dword [rax + rax]
mov eax, dword [rcx + 0xc]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x18002288d
mov rcx, qword [rcx + 0x388]
test rcx, rcx
jne 0x180022870
jmp 0x180022899
cmp rcx, rdx
je 0x180022899
mov qword [rcx + 0x3a8], rdx
mov rax, qword [rbx + 0x1ce8]
test rax, rax
je 0x1800228bd
cmp qword [rax + 0x3a8], rbp
je 0x1800228bd
cmp dword [rbx + 0x1d34], ebp
jne 0x1800228bd
mov qword [rax + 0x3a8], rbp
call fcn.180023f70
test sil, sil
jne 0x1800228d0
test dil, dil
je 0x18002299d
mov rax, qword [rbx + 0x1ce8]
test rax, rax
je 0x18002299d
test dword [rax + 0xc], 0x40000
jne 0x18002299d
mov byte [rbx + 0x3e5], 1
cmp dword [rbx + 0x1cf0], ebp
je 0x1800229a4
cmp byte [rbx + 0x1d3e], bpl
jne 0x1800229a4
mov al, 1
mov edx, 1
mov byte [rbx + 0x3e6], al
mov ecx, edx
call fcn.180021b80
comiss xmm0, xmm6
jbe 0x180022b6d
cmp dword [rbx + 0x1b88], ebp
je 0x1800229b8
mov rdi, qword [0x18007ce08]
mov eax, dword [rdi + 0x1ba0]
shr eax, 1
test dl, al
jne 0x180022b74
mov ecx, dword [rdi + 0x1b88]
test ecx, ecx
setne al
mov byte [rdi + 0x1b94], al
test ecx, ecx
je 0x18002296f
mov dword [rdi + 0x1b90], ebp
mov word [rdi + 0x1b97], bp
mov dword [rdi + 0x1b88], ebp
mov word [rdi + 0x1b95], bp
mov qword [rdi + 0x1bb8], rbp
mov word [rdi + 0x1b99], bp
mov qword [rdi + 0x1b9c], rbp
mov qword [rdi + 0x1ba8], rbp
jmp 0x180022b74
mov byte [rbx + 0x3e5], bpl
cmp qword [rbx + 0x1e18], rbp
jne 0x18002290d
xor al, al
jmp 0x18002290f
mov rdi, qword [rbx + 0x1ce8]
test rdi, rdi
je 0x180022a27
mov eax, dword [rdi + 0xc]
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x180022a27
mov rcx, qword [rdi + 0x388]
test rcx, rcx
je 0x180022a27
call fcn.18001f290
mov ecx, dword [rdi + 0x58]
mov rdi, qword [0x18007ce08]
mov rax, qword [rdi + 0x1ce8]
mov dword [rdi + 0x1cf0], ecx
mov dword [rdi + 0x1cf4], ebp
mov dword [rax + 0x3b0], ecx
mov byte [rbx + 0x1d3c], bpl
cmp byte [rbx + 0x1d3f], bpl
je 0x180022b74
mov byte [rbx + 0x1d3d], 1
jmp 0x180022b74
movsxd rdx, dword [rbx + 0x1cc8]
test edx, edx
jle 0x180022a61
mov rax, qword [rbx + 0x1cd0]
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov rcx, qword [rax + rcx*8 - 0x28]
test dword [rcx + 0xc], 0x8000000
jne 0x180022b6d
lea ecx, [rdx - 1]
mov dl, 1
call fcn.180020a70
jmp 0x180022b6d
cmp dword [rbx + 0x1d34], ebp
je 0x180022b4c
mov rdi, qword [0x18007ce08]
mov rax, qword [rdi + 0x1ce8]
mov dword [rdi + 0x1d34], ebp
mov rcx, qword [rax + 0x3a8]
test rcx, rcx
je 0x180022a96
cmp byte [rcx + 0x8f], bpl
jne 0x180022a99
mov rcx, rax
mov qword [rdi + 0x1ce8], rcx
mov edx, dword [rcx + 0x3b0]
test edx, edx
je 0x180022ae6
mov dword [rdi + 0x1cf0], edx
mov dword [rdi + 0x1cf4], ebp
mov dword [rcx + 0x3b0], edx
movups xmm0, xmmword [rcx + 0x3b8]
mov rax, qword [rdi + 0x1ce8]
movups xmmword [rax + 0x3b8], xmm0
mov word [rdi + 0x1d3d], 1
mov byte [rdi + 0x1d3f], 1
jmp 0x180022b74
mov eax, dword [rcx + 0xc]
mov dword [rdi + 0x1cf4], ebp
bt eax, 0x12
jb 0x180022b44
mov dword [rdi + 0x1cf0], ebp
mov dword [rcx + 0x3b0], ebp
mov word [rdi + 0x1d41], 1
mov qword [rdi + 0x1d44], rbp
mov qword [rdi + 0x1d4c], rbp
mov dword [rdi + 0x1d54], ebp
cmp byte [rdi + 0x1d58], bpl
jne 0x180022b3a
cmp byte [rdi + 0x1d41], bpl
jne 0x180022b3a
xor al, al
mov byte [rdi + 0x1d40], al
jmp 0x180022b74
mov al, 1
mov byte [rdi + 0x1d40], al
jmp 0x180022b74
mov dword [rdi + 0x1cf0], edx
jmp 0x180022b74
test rdi, rdi
je 0x180022b66
mov eax, dword [rdi + 0xc]
bt eax, 0x1a
jb 0x180022b60
bt eax, 0x18
jb 0x180022b66
mov dword [rdi + 0x3b0], ebp
mov qword [rbx + 0x1cf0], rbp
mov rdi, qword [0x18007ce08]
mov r9d, dword [rbx + 0x1cf0]
mov qword [rbx + 0x1d00], rbp
mov qword [rbx + 0x1cf8], rbp
test r9d, r9d
je 0x180022c63
cmp byte [rbx + 0x1d3e], bpl
jne 0x180022c63
cmp qword [rbx + 0x1e18], rbp
jne 0x180022c63
mov rax, qword [rbx + 0x1ce8]
test rax, rax
je 0x180022c63
test dword [rax + 0xc], 0x40000
jne 0x180022c63
movss xmm0, dword [rdi + 0x38c]
comiss xmm0, xmm6
seta r10b
test r10b, r10b
je 0x180022bee
mov edx, 1
xor ecx, ecx
call fcn.180021b80
comiss xmm0, xmm6
ja 0x180022bf0
xor dl, dl
mov ecx, dword [rbx + 0x1b88]
test ecx, ecx
jne 0x180022c07
test dl, dl
je 0x180022c0c
mov dword [rbx + 0x1cf8], r9d
jmp 0x180022c0c
cmp ecx, r9d
jne 0x180022c21
test r10b, r10b
je 0x180022c1d
mov eax, dword [rbx + 0x1cf0]
mov dword [rbx + 0x1cfc], eax
test ecx, ecx
je 0x180022c29
cmp ecx, dword [rbx + 0x1cf0]
jne 0x180022c63
test dl, dl
je 0x180022c39
mov eax, dword [rbx + 0x1cf0]
mov dword [rbx + 0x1d00], eax
test ecx, ecx
je 0x180022c45
cmp ecx, dword [rbx + 0x1cf0]
jne 0x180022c63
mov edx, 1
lea ecx, [rdx + 1]
call fcn.180021b80
comiss xmm0, xmm6
jbe 0x180022c63
mov eax, dword [rbx + 0x1cf0]
mov dword [rbx + 0x1d04], eax
mov rcx, qword [rbx + 0x1ce8]
test rcx, rcx
je 0x180022c7f
test dword [rcx + 0xc], 0x40000
je 0x180022c7f
mov byte [rbx + 0x1d3e], 1
mov eax, dword [rbx + 0x1d18]
mov byte [rbx + 0x1d58], bpl
test eax, eax
je 0x180022ca8
mov dword [rbx + 0x1d04], eax
mov dword [rbx + 0x1d00], eax
mov dword [rbx + 0x1cfc], eax
mov dword [rbx + 0x1cf8], eax
mov dword [rbx + 0x1d18], ebp
cmp dword [rbx + 0x1d60], ebp
jne 0x180022ddf
mov dword [rbx + 0x1d68], 0xffffffff
mov r9d, 0xffffffff
mov dword [rbx + 0x1d5c], ebp
test rcx, rcx
je 0x180022dd6
cmp qword [rbx + 0x1e18], rbp
jne 0x180022dd6
test dword [rcx + 0xc], 0x40000
jne 0x180022dd6
test byte [rdi + 0x1b9c], 1
jne 0x180022d23
lea edx, [r9 + 4]
lea ecx, [rdx + 1]
call fcn.180021b80
comiss xmm0, xmm6
ja 0x180022d1a
lea ecx, [rdx + 0xe]
call fcn.180021b80
comiss xmm0, xmm6
jbe 0x180022d23
mov dword [rbx + 0x1d68], ebp
mov r9d, ebp
mov eax, dword [rdi + 0x1b9c]
shr eax, 1
test al, 1
jne 0x180022d5e
mov edx, 3
lea ecx, [rdx + 2]
call fcn.180021b80
comiss xmm0, xmm6
ja 0x180022d4e
lea ecx, [rdx + 0xf]
call fcn.180021b80
comiss xmm0, xmm6
jbe 0x180022d5e
mov dword [rbx + 0x1d68], 1
mov r9d, 1
mov eax, dword [rdi + 0x1b9c]
shr eax, 2
test al, 1
jne 0x180022d9a
mov edx, 3
lea ecx, [rdx + 3]
call fcn.180021b80
comiss xmm0, xmm6
ja 0x180022d8a
lea ecx, [rdx + 0x10]
call fcn.180021b80
comiss xmm0, xmm6
jbe 0x180022d9a
mov dword [rbx + 0x1d68], 2
mov r9d, 2
mov eax, dword [rdi + 0x1b9c]
shr eax, 3
test al, 1
jne 0x180022dd6
mov edx, 3
lea ecx, [rdx + 4]
call fcn.180021b80
comiss xmm0, xmm6
ja 0x180022dc6
lea ecx, [rdx + 0x11]
call fcn.180021b80
comiss xmm0, xmm6
jbe 0x180022dd6
mov dword [rbx + 0x1d68], 3
mov r9d, 3
mov dword [rbx + 0x1d70], r9d
jmp 0x180022de9
mov dword [rbx + 0x1d60], 2
movaps xmm9, xmm6
test sil, sil
je 0x180022dfb
call fcn.180023620
movaps xmm9, xmm0
mov ecx, dword [rbx + 0x1d68]
cmp ecx, 0xffffffff
je 0x180022e1f
mov byte [rbx + 0x1d58], 1
mov eax, dword [rbx + 0x408]
mov dword [rbx + 0x1d64], eax
mov dword [rbx + 0x1d6c], ecx
cmp byte [rbx + 0x1d58], bpl
je 0x180022e46
cmp dword [rbx + 0x1cf0], ebp
jne 0x180022e46
mov word [rbx + 0x1d41], 0x101
mov dword [rbx + 0x1d44], ebp
mov byte [rbx + 0x1d3e], bpl
cmp byte [rdi + 0x1d58], bpl
jne 0x180022e5c
cmp byte [rdi + 0x1d41], bpl
jne 0x180022e5c
xor al, al
jmp 0x180022e5e
mov al, 1
movss xmm11, dword [0x180074534]
movss xmm8, dword [0x18007456c]
mov byte [rdi + 0x1d40], al
mov rsi, qword [rbx + 0x1ce8]
movaps xmmword [rsp + 0x80], xmm7
test rsi, rsi
je 0x18002300c
test dword [rsi + 0xc], 0x40000
jne 0x18002300c
cmp qword [rbx + 0x1e18], rbp
jne 0x18002300c
mov rax, qword [rsi + 0x388]
movss xmm0, dword [rdi + 0x19dc]
mulss xmm0, dword [rsi + 0x2b0]
test rax, rax
je 0x180022ecc
mulss xmm0, dword [rax + 0x2b0]
mulss xmm0, dword [0x180074620]
mulss xmm0, dword [rbx + 0x60]
addss xmm0, xmm11
cvttss2si eax, xmm0
movd xmm7, eax
cvtdq2ps xmm7, xmm7
cmp dword [rsi + 0x150], ebp
jne 0x180022f78
cmp byte [rsi + 0x15d], bpl
je 0x180022f78
cmp byte [rbx + 0x1d58], bpl
je 0x180022f78
mov eax, dword [rbx + 0x1d68]
test eax, eax
je 0x180022f1c
cmp eax, 1
jne 0x180022f3f
movaps xmm0, xmm8
jmp 0x180022f20
movaps xmm0, xmm10
mulss xmm0, xmm7
mov dword [rsi + 0x74], ebp
mov dword [rsi + 0x7c], ebp
addss xmm0, dword [rsi + 0x5c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0x6c], xmm0
mov eax, dword [rbx + 0x1d68]
cmp eax, 2
je 0x180022f53
cmp eax, 3
jne 0x180022f78
movaps xmm10, xmm8
mulss xmm10, xmm7
mov dword [rsi + 0x78], ebp
mov dword [rsi + 0x80], ebp
addss xmm10, dword [rsi + 0x60]
cvttss2si eax, xmm10
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0x70], xmm0
movss xmm0, dword [0x1800745c4]
lea rcx, [rsp + 0xb0]
movss xmm3, dword [0x180074508]
xor r8d, r8d
movss dword [rsp + 0x20], xmm0
lea edx, [r8 + 4]
call fcn.180021d00
movss xmm0, dword [rsp + 0xb0]
ucomiss xmm0, xmm6
jp 0x180022fb2
je 0x180022fda
cmp byte [rsi + 0x8c], bpl
je 0x180022fda
mulss xmm0, xmm7
mov dword [rsi + 0x74], ebp
mov dword [rsi + 0x7c], ebp
addss xmm0, dword [rsi + 0x5c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0x6c], xmm0
movss xmm0, dword [rsp + 0xb4]
ucomiss xmm0, xmm6
jp 0x180022fea
je 0x18002300c
mulss xmm0, xmm7
mov dword [rsi + 0x78], ebp
mov dword [rsi + 0x80], ebp
addss xmm0, dword [rsi + 0x60]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0x70], xmm0
mov qword [rbx + 0x1d78], rbp
mov qword [rbx + 0x1d80], rbp
mov dword [rbx + 0x1d90], 0x7f7fffff
mov dword [rbx + 0x1d8c], 0x7f7fffff
mov dword [rbx + 0x1d88], 0x7f7fffff
mov qword [rbx + 0x1d94], rbp
mov qword [rbx + 0x1d9c], rbp
mov qword [rbx + 0x1da8], rbp
mov qword [rbx + 0x1db0], rbp
mov dword [rbx + 0x1dc0], 0x7f7fffff
mov dword [rbx + 0x1dbc], 0x7f7fffff
mov dword [rbx + 0x1db8], 0x7f7fffff
mov qword [rbx + 0x1dc4], rbp
mov qword [rbx + 0x1dcc], rbp
mov qword [rbx + 0x1dd8], rbp
mov qword [rbx + 0x1de0], rbp
mov dword [rbx + 0x1df0], 0x7f7fffff
mov dword [rbx + 0x1dec], 0x7f7fffff
mov dword [rbx + 0x1de8], 0x7f7fffff
mov qword [rbx + 0x1df4], rbp
mov qword [rbx + 0x1dfc], rbp
mov rsi, qword [rsp + 0xb8]
cmp byte [rbx + 0x1d58], bpl
je 0x18002325d
cmp dword [rbx + 0x1d1c], 4
jne 0x18002325d
movsxd rdx, dword [rbx + 0x1d34]
test edx, edx
jne 0x18002325d
mov rax, qword [rbx + 0x1ce8]
movss xmm2, dword [rax + 0x218]
subss xmm2, dword [rax + 0x10]
movss xmm3, dword [rax + 0x21c]
movss xmm4, dword [rax + 0x220]
movss xmm5, dword [rax + 0x224]
subss xmm3, dword [rax + 0x14]
subss xmm4, dword [rax + 0x10]
subss xmm5, dword [rax + 0x14]
movss xmm10, dword [rax + 0x3b8]
subss xmm2, xmm8
subss xmm3, xmm8
addss xmm4, xmm8
addss xmm5, xmm8
comiss xmm10, xmm2
jb 0x18002316c
movss xmm0, dword [rax + 0x3bc]
comiss xmm0, xmm3
jb 0x18002316c
comiss xmm4, dword [rax + 0x3c0]
jb 0x18002316c
comiss xmm5, dword [rax + 0x3c4]
jae 0x18002325d
mov rcx, qword [rax + 0x388]
movss xmm1, dword [rdi + 0x19dc]
mulss xmm1, dword [rax + 0x2b0]
test rcx, rcx
je 0x180023190
mulss xmm1, dword [rcx + 0x2b0]
mulss xmm1, xmm11
movaps xmm6, xmm5
mov rcx, rdx
subss xmm6, xmm3
movaps xmm7, xmm4
subss xmm7, xmm2
add rcx, rcx
movss xmm0, dword [rax + rcx*8 + 0x3bc]
minss xmm6, xmm1
minss xmm7, xmm1
xorps xmm6, xmmword [0x180074880]
xorps xmm7, xmmword [0x180074880]
subss xmm3, xmm6
subss xmm2, xmm7
addss xmm7, xmm4
addss xmm6, xmm5
comiss xmm3, xmm0
movaps xmm1, xmm3
jbe 0x1800231e5
movaps xmm5, xmm3
jmp 0x1800231ec
movaps xmm5, xmm6
minss xmm5, xmm0
comiss xmm2, xmm10
movaps xmm0, xmm2
jbe 0x1800231fa
movaps xmm4, xmm2
jmp 0x180023205
movaps xmm4, xmm7
movaps xmm1, xmm3
minss xmm4, xmm10
movss dword [rax + rcx*8 + 0x3b8], xmm4
movss dword [rax + rcx*8 + 0x3bc], xmm5
movss xmm3, dword [rax + rcx*8 + 0x3c4]
comiss xmm1, xmm3
ja 0x18002322f
movaps xmm1, xmm6
movaps xmm0, xmm2
minss xmm1, xmm3
movss xmm2, dword [rax + rcx*8 + 0x3c0]
comiss xmm0, xmm2
ja 0x180023244
movaps xmm0, xmm7
minss xmm0, xmm2
movss dword [rax + rcx*8 + 0x3c0], xmm0
movss dword [rax + rcx*8 + 0x3c4], xmm1
mov qword [rbx + 0x1cf0], rbp
mov rcx, qword [rbx + 0x1ce8]
movaps xmm11, xmmword [rsp + 0x40]
movaps xmm10, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
test rcx, rcx
je 0x1800232e7
movsxd rax, dword [rbx + 0x1d34]
add rax, rax
movups xmm0, xmmword [rcx + rax*8 + 0x3b8]
lea rax, [rsp + 0x30]
movups xmmword [rsp + 0x30], xmm0
movups xmm5, xmmword [rax]
movaps xmm4, xmm5
movaps xmm3, xmm5
shufps xmm4, xmm5, 0xaa
movaps xmm0, xmm5
addss xmm4, dword [rcx + 0x10]
addss xmm0, dword [rcx + 0x10]
shufps xmm3, xmm5, 0xff
addss xmm3, dword [rcx + 0x14]
shufps xmm5, xmm5, 0x55
addss xmm5, dword [rcx + 0x14]
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x38], xmm4
movss dword [rsp + 0x3c], xmm3
movss dword [rsp + 0x34], xmm5
jmp 0x180023302
movss xmm0, dword [rdi + 0x58]
movss xmm1, dword [rdi + 0x5c]
movss dword [rsp + 0x38], xmm0
movss dword [rsp + 0x3c], xmm1
mov qword [rsp + 0x30], rbp
lea r11, [rsp + 0xa0]
movaps xmm1, xmm9
lea rax, [rsp + 0x30]
movups xmm0, xmmword [rax]
movups xmmword [rbx + 0x1d20], xmm0
addss xmm9, dword [rbx + 0x1d2c]
addss xmm1, dword [rbx + 0x1d24]
movss dword [rbx + 0x1d2c], xmm9
movaps xmm9, xmmword [r11 - 0x40]
movss dword [rbx + 0x1d24], xmm1
movss xmm0, dword [rbx + 0x1d20]
addss xmm0, xmm8
mov dword [rbx + 0x1d30], ebp
mov rbp, qword [r11 + 0x28]
movaps xmm8, xmmword [r11 - 0x30]
minss xmm0, dword [rbx + 0x1d28]
movss dword [rbx + 0x1d20], xmm0
movss dword [rbx + 0x1d28], xmm0
mov rbx, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret