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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x108]
sub rsp, 0x1d0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
mov rax, qword [0x1800c86c0]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rdi, qword [0x1800cb7f0]
mov esi, r8d
mov qword [rbp - 0x48], rdx
mov r14, rcx
mov qword [rbp - 0x40], rcx
call fcn.180034840
xor r9d, r9d
mov qword [rbp - 0x60], rax
test rax, rax
mov qword [rsp + 0x40], rax
mov r15, rax
mov rdx, rax
sete bl
mov byte [rsp + 0x49], bl
test rax, rax
jne 0x180036b50
mov edx, esi
mov rcx, r14
call fcn.180034a10
mov qword [rsp + 0x40], rax
mov rdx, rax
xor r9d, r9d
mov r8d, 0xc0200
mov ecx, esi
and ecx, r8d
cmp ecx, r8d
jne 0x180036b63
or esi, 6
mov r14d, 1
mov r12d, dword [rdi + 0x3e20]
mov r13d, dword [rdx + 0x258]
mov dword [rsp + 0x5c], r12d
mov dword [rsp + 0x58], r13d
cmp dword [rdi + 0x3e70], r9d
jne 0x180036b96
mov cl, r14b
cmp byte [rdi + 0x3e2d], r9b
jne 0x180036b99
mov cl, r9b
mov byte [rax + 0xb6], cl
lea eax, [r12 - 1]
mov rdx, qword [rsp + 0x40]
cmp dword [rdx + 0x258], eax
setl r8b
mov byte [rsp + 0x4a], r8b
bt esi, 0x1a
jae 0x180036bec
movsxd rax, dword [rdi + 0x4858]
imul rax, rax, 0x38
add rax, qword [rdi + 0x4850]
cmp rdx, qword [rax + 8]
mov eax, dword [rax]
setne cl
cmp dword [rdx + 0xc4], eax
setne al
or cl, al
or r8b, cl
mov byte [rsp + 0x4a], r8b
mov byte [rdx + 0xb4], r8b
test r8b, r8b
je 0x180036c0d
mov rcx, qword [rsp + 0x40]
mov r8b, r14b
mov edx, 8
call fcn.1800347a8
xor r9d, r9d
cmp r13d, r12d
je 0x180036c7f
mov rcx, qword [rsp + 0x40]
mov r8d, esi
mov dl, bl
call fcn.1800348c0
mov rax, qword [rsp + 0x40]
xor r9d, r9d
mov dword [rax + 0xc], esi
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x258], r12d
movsd xmm0, qword [rdi + 0x3e18]
mov rax, qword [rsp + 0x40]
cvtpd2ps xmm0, xmm0
movss dword [rax + 0x25c], xmm0
mov rax, qword [rsp + 0x40]
mov word [rax + 0xbe], r9w
movzx ecx, word [rdi + 0x3e90]
mov rax, qword [rsp + 0x40]
add dword [rdi + 0x3e90], r14d
mov word [rax + 0xc0], cx
mov rdx, qword [rsp + 0x40]
jmp 0x180036c87
mov rdx, qword [rsp + 0x40]
mov esi, dword [rdx + 0xc]
movsxd rax, dword [rdi + 0x3e70]
test eax, eax
jne 0x180036c97
mov r14, r9
jmp 0x180036ca7
imul rcx, rax, 0x58
mov rax, qword [rdi + 0x3e78]
mov r14, qword [rcx + rax - 0x58]
cmp r13d, r12d
je 0x180036cbd
mov eax, esi
and eax, 0x5000000
neg eax
sbb r13, r13
and r13, r14
jmp 0x180036cc4
mov r13, qword [rdx + 0x360]
lea rcx, [rdx + 0xe8]
cmp dword [rcx], r9d
jne 0x180036cde
add rdx, 8
call fcn.18004318c
mov rdx, qword [rsp + 0x40]
and dword [rbp - 0xc], 0
lea rcx, [rbp - 0x18]
and dword [rbp - 8], 0
xorps xmm0, xmm0
and dword [rbp - 4], 0
xorps xmm1, xmm1
and dword [rbp + 0x20], 0
xorps xmm6, xmm6
mov qword [rdi + 0x3ea0], rdx
xor edx, edx
movaps xmmword [rbp], xmm0
movaps xmmword [rbp + 0x10], xmm1
lea r8d, [rdx + 0x3c]
call qword [sym.imp.VCRUNTIME140.dll_memset]
xor edx, edx
lea rcx, [rbp + 0x24]
lea r8d, [rdx + 0x12]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov rax, qword [rsp + 0x40]
lea rcx, [rbp + 0x24]
movups xmm0, xmmword [rdi + 0x473c]
mov qword [rbp - 0x20], rax
movups xmm1, xmmword [rdi + 0x474c]
mov eax, dword [rdi + 0x4774]
movups xmmword [rbp - 0x18], xmm0
mov dword [rbp + 0x20], eax
movups xmm0, xmmword [rdi + 0x475c]
movups xmmword [rbp - 8], xmm1
movsd xmm1, qword [rdi + 0x476c]
movups xmmword [rbp + 8], xmm0
movsd qword [rbp + 0x18], xmm1
call fcn.18003bb84
mov ebx, dword [rdi + 0x3e70]
mov ecx, dword [rdi + 0x3e74]
cmp ebx, ecx
jne 0x180036dea
inc ebx
test ecx, ecx
je 0x180036d90
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x180036d95
mov eax, 8
cmp eax, ebx
cmovg ebx, eax
cmp ebx, ecx
jle 0x180036dea
movsxd rax, ebx
imul rcx, rax, 0x58
call fcn.18003225c
mov rdx, qword [rdi + 0x3e78]
mov r15, rax
test rdx, rdx
je 0x180036dd9
movsxd rcx, dword [rdi + 0x3e70]
imul r8, rcx, 0x58
mov rcx, rax
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
mov rcx, qword [rdi + 0x3e78]
call fcn.18003227c
mov qword [rdi + 0x3e78], r15
mov r15, qword [rbp - 0x60]
mov dword [rdi + 0x3e74], ebx
movsxd rax, dword [rdi + 0x3e70]
lea rdx, [rbp - 0x20]
imul rcx, rax, 0x58
mov r8d, 0x58
add rcx, qword [rdi + 0x3e78]
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
mov eax, 1
add dword [rdi + 0x3e70], eax
bt esi, 0x1c
jae 0x180036e23
add dword [rdi + 0x4868], eax
cmp dword [rsp + 0x58], r12d
je 0x180036e45
mov rcx, qword [rsp + 0x40]
mov r8, r13
mov edx, esi
call fcn.180036968
mov r8, qword [rsp + 0x40]
mov qword [r8 + 0x368], r14
mov rcx, qword [rsp + 0x40]
mov ecx, dword [rcx + 8]
call fcn.180039770
mov rax, qword [rsp + 0x40]
xor r11d, r11d
mov ecx, dword [rdi + 0x471c]
mov dword [rax + 0x3c0], ecx
mov qword [rdi + 0x3ea0], r11
bt esi, 0x1a
jae 0x180036eb3
lea rcx, [rdi + 0x4858]
movsxd rax, dword [rcx]
imul rbx, rax, 0x38
mov rax, qword [rsp + 0x40]
add rbx, qword [rdi + 0x4850]
mov rdx, rbx
mov qword [rbx + 8], rax
mov eax, dword [r14 + 0x150]
mov dword [rbx + 0x18], eax
call fcn.180042b30
mov rax, qword [rsp + 0x40]
xor r11d, r11d
mov ecx, dword [rbx]
mov dword [rax + 0xc4], ecx
mov edx, 1
mov byte [rsp + 0x48], r11b
mov bl, r11b
mov r14b, r11b
test byte [rdi + 0x4778], dl
je 0x180036f73
mov r8d, dword [rdi + 0x477c]
mov rcx, qword [rsp + 0x40]
movsx eax, byte [rcx + 0xd4]
test r8d, eax
setne dl
mov byte [rsp + 0x48], dl
test r8d, eax
je 0x180036f62
movss xmm0, dword [rdi + 0x4794]
movss xmm1, dword [rdi + 0x4790]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
comiss xmm1, dword [0x1800bac98]
jbe 0x180036f62
movsd xmm0, qword [rdi + 0x4788]
movsd qword [rcx + 0xd8], xmm0
mov rax, qword [rsp + 0x40]
movsd xmm1, qword [rdi + 0x4790]
movsd qword [rax + 0xe0], xmm1
mov rdx, qword [rsp + 0x40]
movzx ecx, byte [rdx + 0xd4]
mov eax, dword [rdx + 0xd4]
and ecx, 0xf1
and eax, 0xffffff00
or ecx, eax
mov dword [rdx + 0xd4], ecx
jmp 0x180036f6e
lea rdx, [rdi + 0x4788]
call fcn.180039420
mov edx, 1
mov eax, 2
test byte [rdi + 0x4778], al
je 0x180036fc9
mov rcx, qword [rsp + 0x40]
mov r8d, dword [rdi + 0x4780]
movsx eax, byte [rcx + 0xd5]
and eax, r8d
je 0x180036fa9
movss xmm0, dword [rdi + 0x4798]
comiss xmm0, xmm6
jbe 0x180036fa9
mov bl, dl
jmp 0x180036fad
test eax, eax
je 0x180036fbd
movss xmm0, dword [rdi + 0x479c]
comiss xmm0, xmm6
jbe 0x180036fbd
mov r14b, dl
lea rdx, [rdi + 0x4798]
call fcn.180039568
test byte [rdi + 0x4778], 0x80
je 0x18003701e
movss xmm0, dword [rdi + 0x47a8]
comiss xmm0, xmm6
jb 0x180036ff8
mov rax, qword [rsp + 0x40]
movss dword [rax + 0x8c], xmm0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x94], r11d
movss xmm0, dword [rdi + 0x47ac]
comiss xmm0, xmm6
jb 0x18003701e
mov rax, qword [rsp + 0x40]
movss dword [rax + 0x90], xmm0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x98], r11d
test byte [rdi + 0x4778], 4
je 0x18003703b
mov rax, qword [rsp + 0x40]
movsd xmm0, qword [rdi + 0x47a0]
movsd qword [rax + 0x40], xmm0
jmp 0x180037050
cmp dword [rsp + 0x58], r12d
je 0x180037050
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x40], r11d
movss dword [rax + 0x44], xmm6
test byte [rdi + 0x4778], 8
je 0x180037070
mov dl, byte [rdi + 0x47b0]
mov rcx, qword [rsp + 0x40]
mov r8d, dword [rdi + 0x4784]
call fcn.180039640
test byte [rdi + 0x4778], 0x20
je 0x180037086
mov rcx, qword [rsp + 0x40]
call fcn.180038ee0
xor r11d, r11d
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0xb4], r11b
je 0x1800370a8
xor r8d, r8d
lea edx, [r8 + 8]
call fcn.1800347a8
mov rcx, qword [rsp + 0x40]
xor r11d, r11d
cmp dword [rsp + 0x58], r12d
je 0x180038acb
mov eax, esi
mov r12d, 1
and eax, 0x3000000
mov edx, r12d
cmp qword [rbp - 0x48], r11
mov dword [rsp + 0x4c], eax
mov al, byte [rcx + 0xd1]
mov byte [rcx + 0xae], r12b
setne cl
mov byte [rsp + 0x4b], al
mov rax, qword [rsp + 0x40]
mov byte [rax + 0xb8], cl
mov ecx, 0xff7fffff
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x230], ecx
mov dword [rax + 0x234], ecx
mov ecx, 0x7f7fffff
mov dword [rax + 0x238], ecx
mov dword [rax + 0x23c], ecx
mov rcx, qword [rsp + 0x40]
add rcx, 0xe8
call fcn.180043238
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx + 0x290]
call fcn.180049e10
mov rax, qword [rsp + 0x40]
xor r10d, r10d
or dword [rax + 0x1a8], 0xffffffff
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0x3cc], r10b
je 0x18003715d
call fcn.180031bc0
mov rcx, qword [rsp + 0x40]
xor r10d, r10d
cmp qword [rdi + 0x4a00], r10
je 0x1800371cb
test dword [rcx + 0xc], 0x80000
jne 0x1800371cb
test r15, r15
je 0x1800371cb
mov rdx, qword [rcx]
mov r12, qword [rbp - 0x40]
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcmp]
mov rcx, qword [rsp + 0x40]
xor r10d, r10d
test eax, eax
je 0x1800371c5
movsxd rax, dword [rcx + 0x70]
lea rdx, [rsp + 0x50]
mov rcx, qword [rcx]
mov r8, r12
mov qword [rsp + 0x50], rax
call fcn.18002e7bc
mov rcx, qword [rsp + 0x40]
xor r10d, r10d
mov qword [rcx], rax
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x50]
mov dword [rcx + 0x70], eax
mov rcx, qword [rsp + 0x40]
mov r12d, 1
lea r8, [rcx + 0x38]
lea rdx, [rcx + 0x30]
call fcn.180034dec
mov rcx, qword [rsp + 0x40]
mov al, byte [rcx + 0xd0]
test al, al
jle 0x1800371f0
sub al, r12b
mov byte [rcx + 0xd0], al
mov rcx, qword [rsp + 0x40]
mov al, byte [rcx + 0xd1]
test al, al
jle 0x180037208
sub al, r12b
mov byte [rcx + 0xd1], al
mov rcx, qword [rsp + 0x40]
mov al, byte [rcx + 0xd2]
test al, al
jle 0x180037220
sub al, r12b
mov byte [rcx + 0xd2], al
test r15, r15
jne 0x18003723a
test bl, bl
je 0x18003722e
test r14b, r14b
jne 0x18003723a
mov rax, qword [rsp + 0x40]
mov byte [rax + 0xd1], r12b
mov r11d, 0x6000000
cmp byte [rsp + 0x4a], r10b
je 0x1800372a8
test r11d, esi
je 0x1800372a8
mov rax, qword [rsp + 0x40]
mov byte [rax + 0xd1], r12b
test sil, 0x40
je 0x1800372a8
test bl, bl
jne 0x180037274
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x28], r10d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x20], r10d
test r14b, r14b
jne 0x18003728b
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x2c], r10d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x24], r10d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x38], r10d
movss dword [rax + 0x3c], xmm6
mov rax, qword [rsp + 0x40]
movsd xmm0, qword [rax + 0x38]
movsd qword [rax + 0x30], xmm0
call fcn.180041db4
mov rcx, qword [rsp + 0x40]
mov rdx, rax
mov r12, rax
call fcn.180041dc8
mov rcx, qword [rsp + 0x40]
call fcn.180031a20
mov r9d, esi
and r9d, 0x1000000
je 0x1800372e3
mov rcx, qword [rsp + 0x40]
mov edx, dword [rdi + 0x3810]
mov dword [rcx + 0x54], edx
jmp 0x18003730a
test r11d, esi
je 0x1800372f8
bt esi, 0x1b
jb 0x1800372f8
movss xmm0, dword [rdi + 0x3818]
jmp 0x180037300
movss xmm0, dword [rdi + 0x37f4]
mov rax, qword [rsp + 0x40]
movss dword [rax + 0x54], xmm0
mov rax, qword [rsp + 0x40]
movsd xmm0, qword [rdi + 0x37e8]
movsd qword [rax + 0x48], xmm0
test r9d, r9d
je 0x180037356
test esi, 0x4010000
jne 0x180037356
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x54]
ucomiss xmm0, xmm6
jp 0x18003735b
jne 0x18003735b
bt esi, 0xa
jae 0x18003734a
movss xmm0, dword [rdi + 0x37ec]
jmp 0x18003734d
xorps xmm0, xmm0
mov dword [rax + 0x48], r10d
movss dword [rax + 0x4c], xmm0
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x48]
xor r8d, r8d
movzx r15d, byte [rsp + 0x49]
mov r11, qword [0x1800cb7f0]
maxss xmm0, dword [rdi + 0x382c]
maxss xmm0, dword [rdi + 0x47dc]
movss dword [rax + 0x15c], xmm0
mov rax, qword [rsp + 0x40]
mov ecx, dword [rdi + 0x47e0]
mov dword [rax + 0x160], ecx
test sil, 0x21
jne 0x18003749c
mov r10, qword [rsp + 0x40]
lea edx, [r8 + 1]
test byte [r10 + 0xc], dl
je 0x1800373b7
xorps xmm2, xmm2
jmp 0x1800373ee
mov rax, qword [r10 + 0x360]
movss xmm0, dword [r11 + 0x3c04]
mulss xmm0, dword [r10 + 0x288]
test rax, rax
je 0x1800373dd
mulss xmm0, dword [rax + 0x288]
movss xmm2, dword [r11 + 0x3820]
addss xmm2, xmm2
addss xmm2, xmm0
movss xmm0, dword [r10 + 0x18]
movaps xmm1, xmm0
movss dword [rbp - 0x70], xmm0
addss xmm1, dword [r10 + 0x28]
addss xmm2, dword [r10 + 0x1c]
movss xmm0, dword [r10 + 0x1c]
movss dword [rbp - 0x6c], xmm0
movss dword [rbp - 0x68], xmm1
movss dword [rbp - 0x64], xmm2
cmp qword [rdi + 0x3ea8], r10
jne 0x18003746b
cmp dword [rdi + 0x3eec], r8d
jne 0x18003746b
cmp dword [rdi + 0x3ef0], r8d
jne 0x18003746b
mov r8b, dl
lea rcx, [rbp - 0x70]
lea rdx, [rbp - 0x68]
call fcn.18003a320
xor r8d, r8d
lea edx, [r8 + 1]
test al, al
je 0x18003746b
lea eax, [rdx + 1]
cmp word [rdi + 0x3742], ax
jne 0x18003746b
mov byte [r10 + 0xb2], dl
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0xb2], r8b
je 0x1800374ad
cmp byte [r10 + 0xb1], r8b
sete al
mov byte [r10 + 0xb1], al
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0xb1], r8b
cmove r15d, edx
call fcn.180041324
jmp 0x1800374a8
mov rax, qword [rsp + 0x40]
mov byte [rax + 0xb1], r10b
mov r10, qword [rsp + 0x40]
mov byte [r10 + 0xb2], r8b
mov rax, qword [rsp + 0x40]
movss xmm11, dword [rax + 0xa4]
movss xmm12, dword [rax + 0xa8]
mov dword [rax + 0x58], r8d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x60], r8d
mov rax, qword [rsp + 0x40]
test byte [rax + 0xc], 1
je 0x1800374e8
xorps xmm2, xmm2
jmp 0x18003751e
mov rcx, qword [rax + 0x360]
movss xmm0, dword [r11 + 0x3c04]
mulss xmm0, dword [rax + 0x288]
test rcx, rcx
je 0x18003750d
mulss xmm0, dword [rcx + 0x288]
movss xmm2, dword [r11 + 0x3820]
addss xmm2, xmm2
addss xmm2, xmm0
test dword [rax + 0xc], 0x400
je 0x180037567
mov rcx, qword [rax + 0x360]
movss xmm1, dword [r11 + 0x3c04]
mulss xmm1, dword [rax + 0x288]
test rcx, rcx
je 0x18003754c
mulss xmm1, dword [rcx + 0x288]
movss xmm0, dword [r11 + 0x3820]
addss xmm1, dword [rax + 0x160]
addss xmm0, xmm0
addss xmm1, xmm0
jmp 0x18003756a
xorps xmm1, xmm1
addss xmm1, xmm2
lea rcx, [rsp + 0x60]
movss dword [rax + 0x5c], xmm1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x64], r8d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xa4], r8d
movss dword [rax + 0xa8], xmm6
mov rdx, qword [rsp + 0x40]
lea r8, [rdx + 0x38]
call fcn.180034ef8
mov rcx, qword [rsp + 0x40]
xor edx, edx
test sil, 0x40
je 0x1800375f1
cmp byte [rcx + 0xb1], dl
jne 0x1800375f1
lea r8d, [rdx + 1]
test bl, bl
jne 0x1800375d5
movss xmm0, dword [rsp + 0x60]
movss dword [rcx + 0x28], xmm0
mov rcx, qword [rsp + 0x40]
mov byte [rsp + 0x49], r8b
test r14b, r14b
jne 0x18003768e
movss xmm0, dword [rsp + 0x64]
mov r15b, r8b
movss dword [rcx + 0x2c], xmm0
jmp 0x180037689
mov al, byte [rcx + 0xc8]
test al, al
jg 0x180037607
cmp byte [rcx + 0xc9], dl
jle 0x18003768e
test bl, bl
jne 0x180037641
test al, al
jle 0x180037641
cmp byte [rcx + 0xcb], dl
je 0x180037624
movss xmm0, dword [rcx + 0x28]
maxss xmm0, dword [rsp + 0x60]
jmp 0x18003762a
movss xmm0, dword [rsp + 0x60]
mov r8d, 1
movss dword [rcx + 0x28], xmm0
mov rcx, qword [rsp + 0x40]
mov byte [rsp + 0x49], r8b
jmp 0x180037647
mov r8d, 1
test r14b, r14b
jne 0x18003767c
cmp byte [rcx + 0xc9], dl
jle 0x18003767c
cmp byte [rcx + 0xcb], dl
je 0x180037669
movss xmm0, dword [rcx + 0x2c]
maxss xmm0, dword [rsp + 0x64]
jmp 0x18003766f
movss xmm0, dword [rsp + 0x64]
movss dword [rcx + 0x2c], xmm0
mov r15b, r8b
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0xb1], dl
jne 0x18003768e
call fcn.180041324
mov rcx, qword [rsp + 0x40]
lea r8, [rcx + 0x28]
mov rdx, rcx
lea rcx, [rbp - 0x70]
call fcn.180034bc8
xor r8d, r8d
movss xmm0, dword [rax]
movss xmm1, dword [rax + 4]
mov rax, qword [rsp + 0x40]
movss dword [rax + 0x28], xmm0
movss dword [rax + 0x2c], xmm1
mov rax, qword [rsp + 0x40]
cmp byte [rax + 0xb1], r8b
je 0x18003773a
bt esi, 0x18
jb 0x18003773a
test byte [rax + 0xc], 1
mov rdx, qword [0x1800cb7f0]
je 0x1800376df
xorps xmm1, xmm1
jmp 0x180037713
mov rcx, qword [rax + 0x360]
movss xmm0, dword [rdx + 0x3c04]
mulss xmm0, dword [rax + 0x288]
test rcx, rcx
je 0x180037703
mulss xmm0, dword [rcx + 0x288]
movss xmm1, dword [rdx + 0x3820]
addss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [rax + 0x18]
addss xmm0, dword [rax + 0x28]
addss xmm1, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x18]
subss xmm1, dword [rax + 0x1c]
movss dword [rsp + 0x50], xmm0
movss dword [rsp + 0x54], xmm1
jmp 0x180037745
movsd xmm0, qword [rax + 0x28]
movsd qword [rsp + 0x50], xmm0
mov r14b, byte [rsp + 0x4a]
lea rcx, [rsp + 0x50]
movsd xmm0, qword [rcx]
mov bl, byte [rsp + 0x48]
movsd qword [rax + 0x20], xmm0
test r14b, r14b
je 0x1800377aa
mov rax, qword [rsp + 0x40]
or dword [rax + 0xcc], 0xffffffff
bt esi, 0x1a
jae 0x1800377aa
bt esi, 0x1b
jb 0x1800377aa
test bl, bl
jne 0x1800377aa
movsxd rax, dword [rdi + 0x4858]
imul rcx, rax, 0x38
mov rax, qword [rdi + 0x4860]
movss xmm0, dword [rcx + rax - 0x14]
movss xmm1, dword [rcx + rax - 0x10]
mov rax, qword [rsp + 0x40]
movss dword [rax + 0x18], xmm0
movss dword [rax + 0x1c], xmm1
bt esi, 0x18
jae 0x1800377fb
mov rax, qword [rsp + 0x40]
lea rcx, [r13 + 0x188]
movzx edx, word [rcx]
mov word [rax + 0xbe], dx
lea rdx, [rsp + 0x40]
call fcn.180042e74
mov eax, dword [rsp + 0x4c]
xor r8d, r8d
bt esi, 0x1a
jb 0x1800377ff
test bl, bl
jne 0x1800377ff
cmp eax, 0x3000000
je 0x1800377ff
mov rax, qword [rsp + 0x40]
movsd xmm0, qword [r13 + 0xf8]
movsd qword [rax + 0x18], xmm0
mov eax, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0x40]
movss xmm10, dword [0x1800baec8]
movss xmm1, dword [rcx + 0xd8]
ucomiss xmm1, xmm10
jp 0x18003781d
je 0x18003786b
cmp byte [rcx + 0xd1], r8b
jne 0x18003786b
movss xmm0, dword [rcx + 0x20]
lea rdx, [rsp + 0x50]
mulss xmm0, dword [rcx + 0xe0]
xor r8d, r8d
subss xmm1, xmm0
movss xmm0, dword [rcx + 0xdc]
movss dword [rsp + 0x50], xmm1
movss xmm1, dword [rcx + 0x24]
mulss xmm1, dword [rcx + 0xe4]
subss xmm0, xmm1
movss dword [rsp + 0x54], xmm0
call fcn.180039420
jmp 0x1800378b8
bt esi, 0x1c
jb 0x180037893
bt esi, 0x1a
jae 0x180037882
test bl, bl
jne 0x180037882
cmp byte [rsp + 0x4b], r8b
jg 0x180037893
bt esi, 0x19
jae 0x1800378bd
test bl, bl
jne 0x1800378bd
cmp eax, 0x3000000
je 0x1800378bd
mov rdx, rcx
lea rcx, [rsp + 0x50]
call fcn.18003d83c
movss xmm0, dword [rax]
movss xmm1, dword [rax + 4]
mov rax, qword [rsp + 0x40]
movss dword [rax + 0x18], xmm0
movss dword [rax + 0x1c], xmm1
mov rcx, qword [rsp + 0x40]
movss xmm7, dword [r12 + 4]
xor r9d, r9d
movss xmm8, dword [r12 + 8]
movaps xmm3, xmm7
movss xmm5, dword [r12 + 0x14]
movaps xmm2, xmm8
movss xmm4, dword [r12 + 0x18]
movss xmm1, dword [rdi + 0x388c]
movss xmm0, dword [rdi + 0x3888]
movss dword [rsp + 0x68], xmm7
movss dword [rsp + 0x6c], xmm8
addss xmm5, dword [r12 + 0x1c]
addss xmm4, dword [r12 + 0x20]
addss xmm3, dword [r12 + 0xc]
addss xmm2, dword [r12 + 0x10]
maxss xmm1, dword [rdi + 0x3894]
maxss xmm0, dword [rdi + 0x3890]
movss dword [rsp + 0x70], xmm3
movss dword [rsp + 0x74], xmm2
subss xmm4, xmm1
subss xmm5, xmm0
addss xmm0, dword [r12 + 0x14]
addss xmm1, dword [r12 + 0x18]
movss dword [rbp - 0x2c], xmm4
movss dword [rbp - 0x30], xmm5
movss dword [rbp - 0x38], xmm0
movss dword [rbp - 0x34], xmm1
test bl, bl
jne 0x180037a0f
bt esi, 0x18
jb 0x180037a0f
subss xmm3, xmm7
comiss xmm3, xmm6
jbe 0x180037a0f
subss xmm2, xmm8
comiss xmm2, xmm6
jbe 0x180037a0f
mov rax, qword [0x1800cb7f0]
movss xmm2, dword [rcx + 0x24]
cmp byte [rax + 0x7f], r9b
je 0x1800379db
test byte [rcx + 0xc], 1
jne 0x1800379db
mov rdx, qword [rcx + 0x360]
movss xmm3, dword [rax + 0x3c04]
mulss xmm3, dword [rcx + 0x288]
test rdx, rdx
je 0x1800379cb
mulss xmm3, dword [rdx + 0x288]
movss xmm2, dword [rax + 0x3820]
addss xmm2, xmm2
addss xmm2, xmm3
subss xmm0, dword [rcx + 0x20]
subss xmm1, xmm2
comiss xmm1, dword [rcx + 0x1c]
ja 0x1800379f2
movaps xmm1, xmm4
minss xmm1, dword [rcx + 0x1c]
comiss xmm0, dword [rcx + 0x18]
ja 0x180037a00
movaps xmm0, xmm5
minss xmm0, dword [rcx + 0x18]
movss dword [rcx + 0x18], xmm0
movss dword [rcx + 0x1c], xmm1
mov rcx, qword [rsp + 0x40]
cvttss2si eax, dword [rcx + 0x18]
movd xmm1, eax
cvttss2si eax, dword [rcx + 0x1c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
movss dword [rcx + 0x18], xmm1
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x1c], xmm0
bt esi, 0x18
jae 0x180037a41
movss xmm0, dword [rdi + 0x380c]
jmp 0x180037a61
mov eax, esi
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x180037a59
movss xmm0, dword [rdi + 0x3814]
jmp 0x180037a61
movss xmm0, dword [rdi + 0x37f0]
mov rax, qword [rsp + 0x40]
movzx r12d, r9b
movss dword [rax + 0x50], xmm0
test r14b, r14b
je 0x180037ad4
bt esi, 0xc
jb 0x180037ad4
bt esi, 0x1a
jae 0x180037a85
mov r12b, 1
jmp 0x180037a94
test esi, 0x3000000
mov eax, 1
cmove r12d, eax
call fcn.18003ced8
test rax, rax
je 0x180037ad4
mov rbx, qword [rsp + 0x40]
mov rdx, rax
mov rcx, rbx
call fcn.18003937c
test al, al
jne 0x180037ad9
mov r12b, r9b
cmp rbx, qword [rbx + 0x370]
jne 0x180037ad9
mov rcx, rbx
call fcn.1800369fc
mov rdx, rax
mov rcx, rbx
call fcn.180038de8
xor r9d, r9d
mov rbx, qword [rsp + 0x40]
or dword [rsp + 0x78], 0xffffffff
xorps xmm0, xmm0
movss xmm1, dword [rdi + 0x3c00]
mov r8d, 1
mov al, byte [rdi + 0x7e]
movaps xmm2, xmm1
mulss xmm1, dword [0x1800bacdc]
neg al
mulss xmm2, dword [0x1800bad3c]
sbb r14d, r14d
neg r14d
movups xmmword [rbp + 0x40], xmm0
add r14d, r8d
movss xmm0, dword [rbx + 0x50]
addss xmm0, dword [0x1800bad38]
addss xmm0, xmm1
maxss xmm2, xmm0
cvttss2si eax, xmm2
movd xmm9, eax
cvtdq2ps xmm9, xmm9
cmp byte [rbx + 0xb1], r9b
jne 0x180037b7e
lea rax, [rbp - 0x38]
mov r9d, r14d
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x78]
lea rax, [rbp + 0x40]
mov rcx, rbx
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.1800353b0
mov rbx, qword [rsp + 0x40]
xor r9d, r9d
lea r8d, [r9 + 1]
test al, al
je 0x180037b7e
mov r15b, r8b
mov dl, r8b
jmp 0x180037b82
mov dl, byte [rsp + 0x49]
mov al, byte [rsp + 0x78]
mov byte [rbx + 0xb9], al
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0xb1], r9b
jne 0x180037d33
movss xmm0, dword [rcx + 0x64]
movss xmm2, dword [rcx + 0x1f8]
movss xmm3, dword [rcx + 0x1fc]
addss xmm0, dword [rcx + 0x5c]
subss xmm2, dword [rcx + 0x1f0]
subss xmm3, dword [rcx + 0x1f4]
movss xmm4, dword [rcx + 0x2c]
movss xmm5, dword [rcx + 0x28]
subss xmm4, xmm0
addss xmm2, xmm11
addss xmm3, xmm12
cmp qword [rbp - 0x60], r9
jne 0x180037bf4
and dword [rbp - 0x58], 0
lea rax, [rbp - 0x58]
and dword [rbp - 0x54], 0
jmp 0x180037c1e
movss xmm0, dword [rcx + 0x48]
lea rax, [rbp - 0x50]
movss xmm1, dword [rcx + 0x4c]
addss xmm0, xmm0
addss xmm1, xmm1
addss xmm0, dword [rcx + 0x30]
addss xmm1, dword [rcx + 0x34]
movss dword [rbp - 0x50], xmm0
movss dword [rbp - 0x4c], xmm1
movss xmm7, dword [rax]
movss xmm1, dword [rax + 4]
test dl, dl
jne 0x180037c2e
movaps xmm5, xmm2
test r15b, r15b
jne 0x180037c36
movaps xmm4, xmm3
bt esi, 0xe
jb 0x180037c4c
comiss xmm1, xmm4
jbe 0x180037c47
test sil, 8
je 0x180037c4c
mov al, r9b
jmp 0x180037c4f
mov al, r8b
mov byte [rcx + 0xad], al
bt esi, 0xf
jb 0x180037c88
test al, al
je 0x180037c69
movss xmm0, dword [rdi + 0x3854]
jmp 0x180037c6c
xorps xmm0, xmm0
subss xmm5, xmm0
comiss xmm7, xmm5
jbe 0x180037c83
mov eax, esi
and eax, 0x808
cmp eax, 0x800
je 0x180037c88
mov cl, r9b
jmp 0x180037c8b
mov cl, r8b
mov rax, qword [rsp + 0x40]
mov byte [rax + 0xac], cl
mov rax, qword [rsp + 0x40]
test cl, cl
je 0x180037cc4
cmp byte [rax + 0xad], r9b
jne 0x180037cc4
comiss xmm1, xmm4
jbe 0x180037cb6
mov cl, r8b
test sil, 8
je 0x180037cb9
mov cl, r9b
mov byte [rax + 0xad], cl
mov rax, qword [rsp + 0x40]
cmp byte [rax + 0xac], r9b
je 0x180037cd7
movss xmm1, dword [rdi + 0x3854]
jmp 0x180037cda
xorps xmm1, xmm1
cmp byte [rax + 0xad], r9b
je 0x180037ced
movss xmm0, dword [rdi + 0x3854]
jmp 0x180037cf0
xorps xmm0, xmm0
movss dword [rax + 0xa4], xmm0
movss dword [rax + 0xa8], xmm1
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0xa4]
addss xmm0, dword [rax + 0x60]
movss dword [rax + 0x60], xmm0
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0xa8]
addss xmm0, dword [rax + 0x64]
movss dword [rax + 0x64], xmm0
mov rcx, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x4c]
mov eax, esi
and eax, 0x5000000
cmp eax, 0x1000000
jne 0x180037d56
lea rax, [r13 + 0x230]
cmp r15d, 0x3000000
jne 0x180037d5b
lea rax, [rsp + 0x68]
movdqu xmm4, xmmword [rax]
mov rdx, qword [0x1800cb7f0]
movss xmm7, dword [rcx + 0x18]
movaps xmm3, xmm7
movss xmm8, dword [rcx + 0x1c]
movaps xmm5, xmm8
addss xmm3, dword [rcx + 0x20]
addss xmm5, dword [rcx + 0x24]
movups xmmword [rsp + 0x68], xmm4
test byte [rcx + 0xc], r8b
je 0x180037d92
xorps xmm2, xmm2
jmp 0x180037dc6
mov rax, qword [rcx + 0x360]
movss xmm0, dword [rdx + 0x3c04]
mulss xmm0, dword [rcx + 0x288]
test rax, rax
je 0x180037db6
mulss xmm0, dword [rax + 0x288]
movss xmm2, dword [rdx + 0x3820]
addss xmm2, xmm2
addss xmm2, xmm0
movaps xmm1, xmm7
addss xmm2, xmm8
addss xmm1, dword [rcx + 0x28]
movss dword [rbp - 0x80], xmm7
movss xmm0, dword [rcx + 0x1c]
movss dword [rbp - 0x7c], xmm0
movss dword [rbp - 0x74], xmm2
movss dword [rbp - 0x78], xmm1
movss dword [rcx + 0x1e0], xmm7
movaps xmm7, xmm4
movss dword [rcx + 0x1e4], xmm8
movaps xmm8, xmm4
movss dword [rcx + 0x1e8], xmm3
movss dword [rcx + 0x1ec], xmm5
movaps xmm5, xmm4
mov rax, qword [rsp + 0x40]
shufps xmm5, xmm4, 0x55
shufps xmm8, xmm4, 0xaa
shufps xmm7, xmm4, 0xff
movss xmm1, dword [rax + 0x1e0]
movss xmm0, dword [rax + 0x1e4]
maxss xmm1, xmm4
maxss xmm0, xmm5
movss dword [rax + 0x1e0], xmm1
movss dword [rax + 0x1e4], xmm0
movss xmm1, dword [rax + 0x1e8]
movss xmm0, dword [rax + 0x1ec]
minss xmm1, xmm8
minss xmm0, xmm7
movss dword [rax + 0x1e8], xmm1
movss dword [rax + 0x1ec], xmm0
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x58]
addss xmm0, dword [rax + 0x18]
movss dword [rax + 0x1f0], xmm0
mov rax, qword [rsp + 0x40]
movss xmm1, dword [rax + 0x5c]
addss xmm1, dword [rax + 0x1c]
movss dword [rax + 0x1f4], xmm1
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x20]
addss xmm0, dword [rax + 0x18]
subss xmm0, dword [rax + 0x60]
movss dword [rax + 0x1f8], xmm0
mov rax, qword [rsp + 0x40]
movss xmm1, dword [rax + 0x24]
addss xmm1, dword [rax + 0x1c]
subss xmm1, dword [rax + 0x64]
movss dword [rax + 0x1fc], xmm1
mov eax, esi
mov rcx, qword [rsp + 0x40]
and eax, 0x401
cmp eax, r8d
jne 0x180037ef8
movss xmm2, dword [rcx + 0x54]
jmp 0x180037f00
movss xmm2, dword [rdi + 0x3828]
movss xmm0, dword [rcx + 0x48]
movss xmm3, dword [0x1800bacfc]
mulss xmm0, xmm3
cvttss2si eax, xmm0
movss xmm0, dword [rcx + 0x1f0]
addss xmm0, xmm3
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [rcx + 0x54]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x200], xmm0
mov rcx, qword [rsp + 0x40]
movss xmm1, dword [rcx + 0x1f4]
addss xmm1, xmm3
addss xmm1, xmm2
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x204], xmm0
mov rcx, qword [rsp + 0x40]
movss xmm0, dword [rcx + 0x48]
movss xmm2, dword [rcx + 0x1f8]
mulss xmm0, xmm3
addss xmm2, xmm3
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, dword [rcx + 0x54]
subss xmm2, xmm1
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x208], xmm0
mov rcx, qword [rsp + 0x40]
movss xmm1, dword [rcx + 0x1fc]
addss xmm1, xmm3
subss xmm1, dword [rcx + 0x54]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x20c], xmm0
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x204]
comiss xmm5, xmm0
jbe 0x180037fed
movaps xmm1, xmm5
jmp 0x180037ff4
movaps xmm1, xmm7
minss xmm1, xmm0
movss xmm2, dword [rax + 0x200]
comiss xmm4, xmm2
jbe 0x180038006
movaps xmm0, xmm4
jmp 0x18003800e
movaps xmm0, xmm8
minss xmm0, xmm2
movss dword [rax + 0x200], xmm0
movss dword [rax + 0x204], xmm1
movss xmm0, dword [rax + 0x20c]
comiss xmm5, xmm0
ja 0x180038032
minss xmm7, xmm0
movaps xmm5, xmm7
movss xmm0, dword [rax + 0x208]
comiss xmm4, xmm0
ja 0x180038048
minss xmm8, xmm0
movaps xmm4, xmm8
movss dword [rax + 0x208], xmm4
movss dword [rax + 0x20c], xmm5
mov rcx, qword [rsp + 0x40]
movss xmm0, dword [rcx + 0x20]
comiss xmm0, xmm6
jbe 0x180038079
test esi, 0x2000040
jne 0x180038079
mulss xmm0, dword [0x1800bad04]
jmp 0x180038089
movss xmm0, dword [rdi + 0x3c00]
mulss xmm0, dword [0x1800bae08]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x260], xmm0
lea rcx, [rbp - 0x70]
mov rax, qword [rsp + 0x40]
movss xmm1, dword [rax + 0x48]
movss xmm0, dword [rax + 0x1f8]
addss xmm1, xmm1
subss xmm0, dword [rax + 0x1f0]
addss xmm1, dword [rax + 0x30]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [rax + 0x84], xmm0
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x1fc]
subss xmm0, dword [rax + 0x1f4]
movss xmm1, dword [rax + 0x4c]
addss xmm1, xmm1
addss xmm1, dword [rax + 0x34]
subss xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
movss dword [rax + 0x88], xmm0
mov rdx, qword [rsp + 0x40]
call fcn.18003c6fc
xor ebx, ebx
movss xmm0, dword [rax]
movss xmm1, dword [rax + 4]
mov rax, qword [rsp + 0x40]
movss dword [rax + 0x7c], xmm0
movss dword [rax + 0x80], xmm1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x8c], 0x7f7fffff
movss dword [rax + 0x90], xmm10
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x6c], ebx
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x68], ebx
mov rax, qword [rdi + 0x3bf8]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rax + 0x40]
mov rcx, qword [rcx + 0x290]
mov rdx, qword [rdx + 8]
call fcn.18004a444
xor r8d, r8d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x68]
call fcn.180033634
bt esi, 0x18
jae 0x180038260
bt esi, 0x1a
jb 0x180038260
cmp r15d, 0x3000000
je 0x180038260
movsxd rax, dword [r13 + 0x188]
xor r15d, r15d
mov r9, qword [rsp + 0x40]
cmp eax, 2
jl 0x180038222
mov rcx, rax
mov rax, qword [r13 + 0x190]
mov rdx, qword [rax + rcx*8 - 0x10]
test rdx, rdx
je 0x180038222
movss xmm0, dword [rdx + 0x1c]
addss xmm0, dword [rdx + 0x24]
movss xmm2, dword [rdx + 0x18]
movss xmm3, dword [r9 + 0x18]
movss xmm1, dword [r9 + 0x1c]
addss xmm2, dword [rdx + 0x20]
comiss xmm0, dword [r9 + 0x1c]
addss xmm3, dword [r9 + 0x20]
addss xmm1, dword [r9 + 0x24]
jbe 0x180038222
comiss xmm1, dword [rdx + 0x1c]
jbe 0x180038222
comiss xmm2, dword [r9 + 0x18]
jbe 0x180038222
comiss xmm3, dword [rdx + 0x18]
jbe 0x180038222
lea r8d, [rbx + 1]
jmp 0x180038225
mov r8b, r15b
mov rdx, qword [r9 + 0x290]
movsxd rax, dword [rdx]
imul rcx, rax, 0x38
mov rax, qword [rdx + 8]
cmp dword [rcx + rax - 0x18], r15d
mov ecx, 1
jne 0x18003826c
mov rax, qword [r13 + 0x290]
cmp dword [rax + 0x20], r15d
jle 0x18003826c
test r8b, r8b
jne 0x18003826c
mov bl, cl
mov qword [r9 + 0x290], rax
jmp 0x180038267
xor r15d, r15d
lea ecx, [r15 + 1]
mov r9, qword [rsp + 0x40]
mov rax, qword [rdi + 0x49f0]
test rax, rax
jne 0x18003827f
mov rax, qword [rdi + 0x4880]
test r12b, r12b
jne 0x18003829e
test rax, rax
je 0x180038299
mov rax, qword [rax + 0x380]
cmp qword [r9 + 0x380], rax
je 0x18003829e
mov r8b, r15b
jmp 0x1800382a1
mov r8b, cl
movss dword [rsp + 0x30], xmm9
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
lea rdx, [rbp - 0x80]
mov rcx, r9
mov dword [rsp + 0x20], r14d
call fcn.18003603c
test bl, bl
je 0x1800382d9
mov rcx, qword [rsp + 0x40]
lea rax, [rcx + 0x298]
mov qword [rcx + 0x290], rax
mov rcx, qword [rsp + 0x40]
mov edx, esi
shr edx, 3
mov ebx, 1
not dl
and dl, bl
movss xmm3, dword [rcx + 0x40]
ucomiss xmm3, xmm6
jp 0x180038334
jne 0x180038334
movss xmm0, dword [rcx + 0x48]
mov eax, esi
movss xmm1, dword [rcx + 0x20]
addss xmm0, xmm0
and eax, 0x808
subss xmm1, xmm0
movss xmm0, dword [rcx + 0x60]
addss xmm0, dword [rcx + 0x58]
subss xmm1, xmm0
cmp eax, 0x800
jne 0x18003832d
movss xmm3, dword [rcx + 0x30]
jmp 0x180038330
xorps xmm3, xmm3
maxss xmm3, xmm1
movss xmm2, dword [rcx + 0x44]
ucomiss xmm2, xmm6
jp 0x180038372
jne 0x180038372
movss xmm0, dword [rcx + 0x4c]
movss xmm1, dword [rcx + 0x24]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [rcx + 0x64]
addss xmm0, dword [rcx + 0x5c]
subss xmm1, xmm0
test dl, dl
je 0x18003836b
movss xmm2, dword [rcx + 0x34]
jmp 0x18003836e
xorps xmm2, xmm2
maxss xmm2, xmm1
movss xmm1, dword [rcx + 0x48]
maxss xmm1, dword [rcx + 0x54]
movss xmm0, dword [rcx + 0x1f0]
subss xmm0, dword [rcx + 0x7c]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x210], xmm0
mov rcx, qword [rsp + 0x40]
movss xmm1, dword [rcx + 0x4c]
maxss xmm1, dword [rcx + 0x54]
movss xmm0, dword [rcx + 0x1f4]
subss xmm0, dword [rcx + 0x80]
addss xmm1, xmm0
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rcx + 0x214], xmm0
mov rax, qword [rsp + 0x40]
addss xmm3, dword [rax + 0x210]
movss dword [rax + 0x218], xmm3
mov rax, qword [rsp + 0x40]
addss xmm2, dword [rax + 0x214]
movss dword [rax + 0x21c], xmm2
mov rax, qword [rsp + 0x40]
movups xmm0, xmmword [rax + 0x210]
movdqu xmmword [rax + 0x220], xmm0
mov rax, qword [rsp + 0x40]
movss xmm1, dword [rax + 0x18]
subss xmm1, dword [rax + 0x7c]
addss xmm1, dword [rax + 0x48]
addss xmm1, dword [rax + 0x58]
movss dword [rax + 0x240], xmm1
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x1c]
subss xmm0, dword [rax + 0x80]
addss xmm0, dword [rax + 0x4c]
addss xmm0, dword [rax + 0x5c]
movss dword [rax + 0x244], xmm0
mov rax, qword [rsp + 0x40]
movss xmm1, dword [rax + 0x40]
ucomiss xmm1, xmm6
jp 0x18003848a
jne 0x18003848a
movss xmm0, dword [rax + 0x48]
movss xmm1, dword [rax + 0x20]
addss xmm0, xmm0
subss xmm1, xmm0
movss xmm0, dword [rax + 0x60]
addss xmm0, dword [rax + 0x58]
subss xmm1, xmm0
addss xmm1, dword [rax + 0x240]
movss dword [rax + 0x248], xmm1
mov rax, qword [rsp + 0x40]
movss xmm2, dword [rax + 0x44]
ucomiss xmm2, xmm6
jp 0x1800384cb
jne 0x1800384cb
movss xmm0, dword [rax + 0x4c]
movss xmm2, dword [rax + 0x24]
addss xmm0, xmm0
subss xmm2, xmm0
movss xmm0, dword [rax + 0x64]
addss xmm0, dword [rax + 0x5c]
subss xmm2, xmm0
addss xmm2, dword [rax + 0x244]
movss dword [rax + 0x24c], xmm2
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x58]
addss xmm0, dword [rax + 0x48]
subss xmm0, dword [rax + 0x7c]
movss dword [rax + 0x13c], xmm0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x144], r15d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x140], r15d
mov rax, qword [rsp + 0x40]
movss xmm2, dword [rax + 0x48]
movss xmm0, dword [rax + 0x18]
movss xmm1, dword [rax + 0x7c]
movss xmm3, dword [rax + 0x4c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
cvtps2pd xmm2, xmm2
cvtps2pd xmm3, xmm3
addsd xmm2, xmm0
movss xmm0, dword [rax + 0x58]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm1
movss xmm1, dword [rax + 0x140]
cvtps2pd xmm1, xmm1
addsd xmm2, xmm0
movss xmm0, dword [rax + 0x1c]
cvtps2pd xmm0, xmm0
addsd xmm2, xmm1
movss xmm1, dword [rax + 0x80]
addsd xmm3, xmm0
movss xmm0, dword [rax + 0x5c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm3, xmm1
cvtpd2ps xmm1, xmm2
addsd xmm3, xmm0
movss dword [rax + 0x108], xmm1
cvtpd2ps xmm0, xmm3
movss dword [rax + 0x10c], xmm0
mov rax, qword [rsp + 0x40]
movss xmm0, dword [rax + 0x108]
movss xmm1, dword [rax + 0x10c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
subsd xmm2, xmm0
subsd xmm3, xmm1
cvtpd2ps xmm2, xmm2
cvtpd2ps xmm0, xmm3
movss dword [rax + 0x148], xmm2
movss dword [rax + 0x14c], xmm0
mov rax, qword [rsp + 0x40]
movsd xmm0, qword [rax + 0x108]
movsd qword [rax + 0xf8], xmm0
mov rax, qword [rsp + 0x40]
movsd qword [rax + 0x100], xmm0
mov rax, qword [rsp + 0x40]
movsd xmm0, qword [rax + 0x108]
movsd qword [rax + 0x110], xmm0
mov rax, qword [rsp + 0x40]
movsd xmm1, qword [rax + 0x108]
movsd qword [rax + 0x118], xmm1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x128], r15d
movss dword [rax + 0x12c], xmm6
mov rax, qword [rsp + 0x40]
movsd xmm0, qword [rax + 0x128]
movsd qword [rax + 0x120], xmm0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x134], r15d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x130], r15d
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x139], r15b
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x138], r15b
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x150], r15d
mov rcx, qword [rsp + 0x40]
movzx eax, word [rcx + 0x156]
mov r8b, byte [rsp + 0x4a]
mov word [rcx + 0x154], ax
mov rax, qword [rsp + 0x40]
mov word [rax + 0x156], r15w
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x158], r15b
mov rcx, qword [rsp + 0x40]
movss xmm0, dword [rcx + 0x88]
comiss xmm0, xmm6
seta al
mov byte [rcx + 0x159], al
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x15a], r15b
mov rcx, qword [rsp + 0x40]
movss xmm1, dword [rdi + 0x382c]
add rcx, 0x164
call fcn.180060ce4
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x180], r15d
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x184], r15d
mov rcx, qword [rsp + 0x40]
add rcx, 0x188
call fcn.180042f20
mov rcx, qword [rsp + 0x40]
lea rax, [rcx + 0x268]
mov qword [rcx + 0x198], rax
mov rax, qword [rsp + 0x40]
mov qword [rax + 0x1a0], r15
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x1ac], ebx
test r13, r13
je 0x180038752
mov ecx, dword [r13 + 0x1ac]
jmp 0x180038754
mov ecx, ebx
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x1b0], ecx
mov rcx, qword [rsp + 0x40]
mov eax, dword [rcx + 0x260]
mov dword [rcx + 0x1b4], eax
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x1b8], 0xbf800000
mov rbx, qword [rsp + 0x40]
mov ecx, dword [rbx + 0x1c4]
test ecx, ecx
jns 0x1800387f1
mov eax, ecx
mov r14d, r15d
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg r14d, eax
cmp r14d, ecx
jle 0x1800387f1
movsxd rcx, r14d
shl rcx, 2
call fcn.18003225c
mov rdx, qword [rbx + 0x1c8]
mov r15, rax
test rdx, rdx
je 0x1800387e0
movsxd r8, dword [rbx + 0x1c0]
mov rcx, rax
shl r8, 2
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
mov rcx, qword [rbx + 0x1c8]
call fcn.18003227c
mov qword [rbx + 0x1c8], r15
xor r15d, r15d
mov dword [rbx + 0x1c4], r14d
mov dword [rbx + 0x1c0], r15d
mov rbx, qword [rsp + 0x40]
mov ecx, dword [rbx + 0x1d4]
test ecx, ecx
jns 0x18003886a
mov eax, ecx
mov r14d, r15d
cdq
sub eax, edx
sar eax, 1
add eax, ecx
test eax, eax
cmovg r14d, eax
cmp r14d, ecx
jle 0x18003886a
movsxd rcx, r14d
shl rcx, 2
call fcn.18003225c
mov rdx, qword [rbx + 0x1d8]
mov r15, rax
test rdx, rdx
je 0x180038859
movsxd r8, dword [rbx + 0x1d0]
mov rcx, rax
shl r8, 2
call qword [sym.imp.VCRUNTIME140.dll_memcpy]
mov rcx, qword [rbx + 0x1d8]
call fcn.18003227c
mov qword [rbx + 0x1d8], r15
xor r15d, r15d
mov dword [rbx + 0x1d4], r14d
mov dword [rbx + 0x1d0], r15d
mov ebx, 1
mov rax, qword [rsp + 0x40]
mov cl, byte [rax + 0xc8]
test cl, cl
jle 0x180038892
sub cl, bl
mov byte [rax + 0xc8], cl
mov rax, qword [rsp + 0x40]
mov cl, byte [rax + 0xc9]
test cl, cl
jle 0x1800388a9
sub cl, bl
mov byte [rax + 0xc9], cl
mov rax, qword [rsp + 0x40]
test r12b, r12b
je 0x1800388c7
mov rcx, rax
call fcn.180038ee0
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.18003e8b8
mov rax, qword [rsp + 0x40]
test bl, sil
jne 0x18003891c
movss xmm0, dword [rbp - 0x80]
lea rdx, [rsp + 0x68]
addss xmm0, dword [rax + 0x54]
movss xmm1, dword [rbp - 0x78]
mov rcx, rax
subss xmm1, dword [rax + 0x54]
mov r9, qword [rbp - 0x48]
mov r8, qword [rbp - 0x40]
movss dword [rsp + 0x68], xmm0
movss xmm0, dword [rbp - 0x7c]
movss dword [rsp + 0x6c], xmm0
movss xmm0, dword [rbp - 0x74]
movss dword [rsp + 0x74], xmm0
movss dword [rsp + 0x70], xmm1
call fcn.18003659c
mov rax, qword [rsp + 0x40]
mov word [rax + 0x252], r15w
lea rdx, [rbp - 0x78]
mov rax, qword [rsp + 0x40]
lea rcx, [rbp - 0x80]
xor r8d, r8d
mov word [rax + 0x250], r15w
call fcn.18003a320
mov rcx, qword [rsp + 0x40]
lea r9, [rbp - 0x80]
mov edx, dword [rdi + 0x4720]
movzx r8d, al
mov ecx, dword [rcx + 0x74]
call fcn.1800321e4
mov edx, dword [rdi + 0x4724]
mov rcx, qword [rsp + 0x40]
test edx, edx
je 0x18003897f
cmp dword [rcx + 8], edx
je 0x180038975
cmp dword [rcx + 0x74], edx
jne 0x18003897f
call fcn.1800422e0
mov rcx, qword [rsp + 0x40]
mov r12d, dword [rsp + 0x5c]
lea rdx, [rcx + 0x208]
mov r8b, bl
add rcx, 0x200
call fcn.180033634
mov rax, qword [rsp + 0x40]
mov byte [rax + 0xb0], r15b
mov rax, qword [rsp + 0x40]
add word [rax + 0xba], bx
mov dword [rdi + 0x4778], r15d
cmp dword [rsp + 0x58], r12d
je 0x180038b4f
mov rcx, qword [rsp + 0x40]
bt esi, 0x18
jae 0x180038a94
test sil, 0x40
jne 0x180038a55
cmp byte [rcx + 0xc8], r15b
jg 0x180038a55
cmp byte [rcx + 0xc9], r15b
jg 0x180038a55
bt esi, 0x17
jae 0x180038a18
cmp byte [rdi + 0x48c4], r15b
je 0x180038a18
mov rdx, qword [rdi + 0x4880]
test rdx, rdx
je 0x180038a18
mov rax, qword [rcx + 0x388]
cmp qword [rdx + 0x388], rax
mov al, bl
je 0x180038a1b
mov al, r15b
cmp byte [rdi + 0x5c10], r15b
jne 0x180038a55
test al, al
jne 0x180038a55
movss xmm0, dword [rcx + 0x1e0]
comiss xmm0, dword [rcx + 0x1e8]
jae 0x180038a4a
movss xmm0, dword [rcx + 0x1e4]
comiss xmm0, dword [rcx + 0x1ec]
jb 0x180038a55
mov byte [rcx + 0xd0], bl
mov rcx, qword [rsp + 0x40]
test r13, r13
je 0x180038a94
cmp byte [r13 + 0xb1], r15b
jne 0x180038a6c
cmp byte [r13 + 0xd0], r15b
jle 0x180038a77
mov byte [rcx + 0xd0], bl
mov rcx, qword [rsp + 0x40]
cmp byte [r13 + 0xb1], r15b
jne 0x180038a89
cmp byte [r13 + 0xd1], r15b
jle 0x180038a94
mov byte [rcx + 0xd1], bl
mov rcx, qword [rsp + 0x40]
comiss xmm6, dword [rdi + 0x37e0]
jb 0x180038aa8
mov byte [rcx + 0xd0], bl
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0xd0], r15b
jg 0x180038ae1
cmp byte [rcx + 0xd1], r15b
jg 0x180038ae1
mov dl, r15b
cmp byte [rcx + 0xd2], r15b
jg 0x180038ae3
mov al, r15b
jmp 0x180038ae5
call fcn.180031a20
mov rcx, qword [rsp + 0x40]
xor r15d, r15d
lea ebx, [r15 + 1]
jmp 0x180038984
mov dl, bl
mov al, bl
mov byte [rcx + 0xb5], al
mov rax, qword [rsp + 0x40]
mov cl, byte [rax + 0xd3]
test cl, cl
jle 0x180038b13
sub cl, bl
mov byte [rax + 0xd3], cl
mov rax, qword [rsp + 0x40]
or dword [rax + 0xc], 0xc0200
mov rax, qword [rsp + 0x40]
movzx ecx, r15b
cmp byte [rax + 0xb1], r15b
jne 0x180038b2d
cmp byte [rax + 0xae], r15b
je 0x180038b2d
test dl, dl
je 0x180038b49
cmp byte [rax + 0xc8], r15b
jg 0x180038b49
cmp byte [rax + 0xc9], r15b
jg 0x180038b49
cmp byte [rax + 0xd1], r15b
cmovle ecx, ebx
mov byte [rax + 0xb3], cl
mov rax, qword [rsp + 0x40]
cmp byte [rax + 0xb3], r15b
sete al
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.1800a21a0
lea r11, [rsp + 0x1d0]
mov rbx, qword [r11 + 0x58]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret