Function at 0x180012094
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x798]
sub rsp, 0x860
movaps xmmword [rax - 0x48], xmm6
mov rdi, rcx
mov rcx, qword [0x18001c0a0]
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
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
call fcn.180011020
xor esi, esi
mov qword [0x18001c0a8], rax
test rax, rax
je 0x18001478a
cmp dword [0x18001c0e0], esi
je 0x180012147
lea rdx, [0x18001daa0]
mov rcx, rax
call fcn.180011dcc
test al, al
mov rax, qword [0x18001c0a8]
je 0x180012147
cmp byte [0x18001c08d], sil
sete byte [0x18001c08d]
cmp byte [0x18001c08d], sil
jne 0x18001478a
lea r8, [0x18001c0c4]
mov rcx, rax
lea rdx, [0x18001c0c0]
call fcn.1800042e8
mov rdx, qword [0x18001c0a0]
lea rcx, [rbp + 0x78]
call fcn.180010b30
mov rcx, qword [0x18001c0a0]
call fcn.180010f08
mov rdx, rax
mov qword [0x18001c0b0], rax
lea rcx, [rbp]
call fcn.180002330
mov rdx, qword [0x18001c0b0]
lea rcx, [rbp + 0x1e0]
call fcn.180002454
mov rcx, qword [0x18001c0a8]
call fcn.180005318
movsd xmm12, qword [0x18001b2c8]
xor r13d, r13d
cmp byte [0x18001c0e4], r13b
xorps xmm9, xmm9
movsd xmm11, qword [0x18001b218]
xorps xmm0, xmm0
mov r15d, dword [0x18001c014]
xorps xmm10, xmm10
mov r12d, dword [0x18001c028]
xorps xmm13, xmm13
movsd qword [rbp + 0x198], xmm12
xorps xmm8, xmm8
movsd qword [rbp + 0x1a8], xmm12
xorps xmm7, xmm7
xorps xmm12, xmm12
mov qword [rbp - 0x70], rax
mov rbx, rax
mov qword [rbp + 0x1a0], rsi
mov qword [rbp + 0x120], rsi
lea eax, [r13 + 1]
mov esi, dword [0x18001c024]
mov r14d, r13d
movsd qword [rbp - 0x58], xmm12
movsd qword [rbp + 0x138], xmm11
movsd qword [rbp - 0x48], xmm13
movsd qword [rbp + 0x40], xmm9
movsd qword [rbp + 0x188], xmm9
movsd qword [rbp + 0xd0], xmm9
mov qword [rbp + 0x190], r13
movups xmmword [rbp + 0x1b0], xmm0
mov dword [rbp - 0x18], r13d
movups xmmword [rbp + 0x128], xmm10
mov dword [rbp - 0x50], r15d
movups xmmword [rbp + 0x178], xmm10
mov dword [rbp + 0x7b8], r12d
movups xmmword [rbp + 0x168], xmm0
mov byte [rbp + 0x7a8], r13b
movaps xmmword [rbp + 0xe0], xmm8
movups xmmword [rbp + 0xc0], xmm7
je 0x1800122e3
cmp byte [0x18001c08e], r13b
jne 0x180012317
mov rcx, qword [0x18001c100]
lea rdx, [rbp + 0x7b0]
add rcx, 0x10a18cb4
mov byte [rbp + 0x7b0], r13b
mov r8d, eax
call qword [0x18001c080]
lea eax, [r13 + 1]
mov byte [0x18001c08e], al
jmp 0x180012317
cmp byte [0x18001c08e], r13b
je 0x180012317
mov rcx, qword [0x18001c100]
lea rdx, [rbp + 0x7b0]
add rcx, 0x10a18cb4
mov byte [rbp + 0x7b0], al
mov r8, rax
call qword [0x18001c080]
mov byte [0x18001c08e], r13b
test rbx, rbx
je 0x1800124cf
cmp byte [0x18001c060], r13b
je 0x18001235b
cmp byte [0x18001c08f], r13b
je 0x18001235b
mov rcx, qword [0x18001c098]
call fcn.180002578
mov rcx, rax
call fcn.1800033d0
movss xmm1, dword [0x18001c0fc]
ucomiss xmm1, xmm0
je 0x18001235b
movss dword [0x18001c0fc], xmm0
cmp byte [0x18001c06c], r13b
je 0x180012381
cmp byte [0x18001c060], r13b
je 0x180012381
cmp byte [0x18001c08f], r13b
jne 0x180012381
mov rdx, rdi
mov rcx, rbx
call fcn.180001108
mov rcx, rbx
call fcn.180003218
mov qword [rbp + 0x190], rax
test rax, rax
je 0x18001248c
mov rdx, rax
lea rcx, [rbp + 0x7b0]
call fcn.180003128
movzx ecx, byte [rbp + 0x7b0]
cmp cl, 2
je 0x18001244f
cmp cl, 0xb
je 0x18001244f
cmp cl, 0x17
ja 0x18001240a
mov edx, 0x880040
bt edx, ecx
jae 0x18001240a
xor r12d, r12d
cmp byte [0x18001c0e7], r12b
cmovne r15d, dword [0x18001c050]
cmp byte [0x18001c0e6], r12b
mov dword [rbp - 0x50], r15d
cmovne esi, dword [0x18001c058]
cmp byte [0x18001c0f8], r12b
je 0x18001248f
mov r12d, dword [0x18001c01c]
jmp 0x180012485
xor r12d, r12d
cmp cl, 0x18
ja 0x18001248f
mov eax, 0x1300410
bt eax, ecx
jae 0x18001248f
cmp byte [0x18001c0e7], r12b
cmovne r15d, dword [0x18001c04c]
cmp byte [0x18001c0e6], r12b
mov dword [rbp - 0x50], r15d
cmovne esi, dword [0x18001c05c]
cmp byte [0x18001c0f8], r12b
je 0x18001248f
mov r12d, dword [0x18001c020]
jmp 0x180012485
xor eax, eax
mov byte [rbp + 0x7a8], 1
cmp byte [0x18001c0e7], al
cmovne r15d, dword [0x18001c048]
cmp byte [0x18001c0e6], al
mov dword [rbp - 0x50], r15d
cmovne esi, dword [0x18001c054]
cmp byte [0x18001c0f8], al
cmovne r12d, dword [0x18001c018]
mov dword [rbp + 0x7b8], r12d
xor r12d, r12d
cmp byte [0x18001c06f], r12b
jne 0x1800124aa
cmp dword [0x18001c0dc], r12d
jne 0x1800124aa
cmp dword [0x18001c0d8], r12d
je 0x1800124d2
movups xmm14, xmmword [rbp]
lea r8, [rbp - 0x40]
mov rdx, rbx
movsd xmm6, qword [rbp + 0x10]
mov rcx, rdi
movaps xmmword [rbp - 0x40], xmm14
movsd qword [rbp - 0x30], xmm6
call fcn.180005620
jmp 0x1800124dc
xor r12d, r12d
movsd xmm6, qword [rbp + 0x10]
movups xmm14, xmmword [rbp]
movups xmm15, xmmword [rbp + 0x1e0]
mov dword [rbp + 0x70], r12d
cmp dword [rbp + 0x80], r12d
jle 0x180013edc
mov r15d, dword [rbp + 0x7b8]
movaps xmm7, xmm14
mov rax, qword [rbp + 0x78]
xorps xmm11, xmm11
unpckhpd xmm7, xmm14
mov r13, r12
unpckhpd xmm11, xmm10
mov ecx, 1
movaps xmmword [rbp + 0x50], xmm7
movaps xmmword [rbp + 0x220], xmm11
mov qword [rbp + 0x148], r12
jmp 0x180012534
movsd xmm6, qword [rbp + 0x10]
mov r13, qword [rax + r13*8]
test r13, r13
je 0x180013e8a
mov rdx, r13
mov rcx, rbx
call fcn.1800113a0
test al, al
jne 0x180013e81
mov rcx, r13
call fcn.18000495c
test al, al
jne 0x180013e81
inc dword [rbp - 0x18]
lea rdx, [r13 + 0x318]
mov r8d, 8
lea rcx, [rbp + 0x290]
call qword [0x18001c080]
mov rbx, qword [rbp + 0x290]
lea r8, [0x18001dd28]
mov rdx, rbx
lea rcx, [rbp + 0xf0]
call fcn.180003c00
lea r8, [0x18001de58]
mov rdx, rbx
lea rcx, [rbp + 0xa0]
call fcn.180003c00
movsd xmm8, qword [rbp + 0xa8]
movaps xmm0, xmm7
movsd xmm7, qword [rbp + 0xb0]
subsd xmm0, xmm8
movaps xmm2, xmm14
movaps xmm1, xmm6
subsd xmm2, qword [rbp + 0xa0]
subsd xmm1, xmm7
mulsd xmm0, xmm0
mulsd xmm2, xmm2
mulsd xmm1, xmm1
addsd xmm0, xmm2
addsd xmm0, xmm1
call fcn.1800115a4
movaps xmm12, xmm0
lea rcx, [rbp + 0x1c0]
mulsd xmm12, qword [0x18001b120]
mov r9d, r15d
mov r8, rbx
mov rdx, rdi
call fcn.180001cd0
cmp byte [0x18001c069], r12b
movups xmm13, xmmword [rax]
movsd xmm1, qword [rax + 0x10]
movups xmmword [rbp - 0x40], xmm13
movsd qword [rbp - 0x30], xmm1
je 0x180012654
mov rcx, qword [0x18001c0a0]
lea r8, [rbp - 0x40]
lea rdx, [rbp]
call fcn.180011214
mov cl, al
mov eax, 1
jmp 0x18001265b
mov eax, 1
mov cl, al
comisd xmm12, xmmword [rbp + 0x1a8]
mov dword [rbp - 0x1c], ecx
jae 0x1800126a6
comisd xmm12, xmmword [0x18001b1b0]
movsd qword [rbp + 0x1a8], xmm12
jae 0x1800126a6
cmp byte [0x18001c065], r12b
je 0x180012696
movsd xmm0, qword [0x18001b2c0]
movsd qword [rbp + 0x138], xmm0
cmp byte [0x18001c0f9], r12b
movzx ecx, cl
cmovne ecx, eax
mov dword [rbp - 0x1c], ecx
lea eax, [r14 + 1]
test cl, cl
cmove eax, r14d
mov r14d, eax
mov dword [rbp + 0x140], eax
je 0x1800126eb
mov edx, dword [0x18001c008]
lea rcx, [rbp + 0x1c0]
call fcn.18000266c
lea rbx, [rbp + 0x5f8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x5f8], xmm0
movups xmmword [rbp + 0x5f8], xmm1
jmp 0x180012716
mov edx, dword [0x18001c00c]
lea rcx, [rbp + 0x18]
call fcn.18000266c
lea rbx, [rbp + 0x5d8]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x5d8], xmm0
movups xmmword [rbp + 0x5d8], xmm1
movsd xmm6, qword [rbp + 0xa0]
lea r8, [rbp + 0x1b0]
movups xmm0, xmmword [rbx]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
unpcklpd xmm6, xmm8
movdqu xmmword [rbp + 0x18], xmm0
movaps xmmword [rbp + 0xa0], xmm6
movsd qword [rbp + 0xb0], xmm7
call fcn.180018154
movsd xmm8, qword [rbp + 0x100]
movups xmm9, xmmword [rbp + 0xf0]
test al, al
je 0x1800127b7
lea r8, [rbp + 0x178]
movaps xmmword [rbp + 0xf0], xmm9
lea rdx, [rbp + 0xf0]
movsd qword [rbp + 0x100], xmm8
mov rcx, rdi
call fcn.180018154
movsd xmm11, qword [rbp + 0x180]
movaps xmmword [rbp + 0x220], xmm11
movups xmm10, xmmword [rbp + 0x178]
movups xmmword [rbp + 0x128], xmm10
test al, al
je 0x1800127b7
mov r12d, 1
xor ecx, ecx
cmp qword [rbp - 0x70], rcx
je 0x1800128cf
cmp byte [0x18001c06c], cl
mov al, byte [0x18001c08f]
jne 0x1800127d9
test al, al
je 0x1800128cf
cmp byte [0x18001c060], cl
je 0x1800128cf
test al, al
je 0x180012865
lea rdx, [rbp + 0x7b0]
mov rcx, r13
call fcn.1800108e0
movzx edx, byte [rbp + 0x7b0]
lea rcx, [rbp + 0x5c8]
call fcn.180003d24
movups xmm0, xmmword [rbp + 0x5c8]
mov rbx, qword [rbp - 0x70]
lea rax, [rbp - 0x80]
lea r9, [rbp + 0xa0]
movaps xmmword [rbp + 0xa0], xmm9
movdqa xmmword [rbp - 0x80], xmm0
lea r8, [rbp + 0xf0]
movsd xmm0, qword [rbp + 0x10]
mov rdx, rbx
mov rcx, rdi
movsd qword [rbp + 0x100], xmm0
movsd qword [rbp + 0xb0], xmm8
movaps xmmword [rbp + 0xf0], xmm14
mov qword [rsp + 0x20], rax
call fcn.180011bac
jmp 0x1800128d3
movups xmm0, xmmword [rbx]
lea rax, [rbp - 0x80]
mov r8, rdi
lea r9, [rbp + 0xa0]
movaps xmmword [rbp + 0xa0], xmm6
movdqu xmmword [rbp - 0x80], xmm0
lea rdx, [rbp + 0xf0]
mov qword [rsp + 0x20], rax
movsd xmm0, qword [rbp + 0x1f0]
lea rcx, [rbp + 0x1c0]
movsd qword [rbp + 0x100], xmm0
movsd xmm0, qword [rbp + 0x10]
movsd qword [rbp + 0x1d0], xmm0
movsd qword [rbp + 0xb0], xmm7
movaps xmmword [rbp + 0xf0], xmm15
movaps xmmword [rbp + 0x1c0], xmm14
call fcn.180011aa4
mov rbx, qword [rbp - 0x70]
test r12b, r12b
je 0x180013e7a
mov rcx, r13
call fcn.180004848
xor r14d, r14d
mov r12b, al
cmp byte [0x18001c060], r14b
je 0x180013d34
test al, al
je 0x18001291f
mov edx, dword [0x18001c010]
lea rcx, [rbp + 0xa0]
call fcn.18000266c
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0x18], xmm1
movups xmm0, xmmword [0x18001e010]
lea rax, [rbp - 0x80]
mov rcx, rdi
movss xmm9, dword [0x18001b134]
lea r8, [rbp + 0x4b8]
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0x4d8]
lea rax, [rsp + 0x78]
mov dword [rsp + 0x70], 0x7f7fffff
mov qword [rsp + 0x38], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x74]
mov dword [rsp + 0x74], 0xff7fffff
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x4b8], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e000]
mov dword [rsp + 0x78], 0x7f7fffff
mov dword [rbp - 0x80], 0xff7fffff
movups xmmword [rbp + 0x4d8], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e010]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x4e8]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x4f8]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x4e8], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e020]
movups xmmword [rbp + 0x4f8], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e010]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x508]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x518]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x508], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e030]
movups xmmword [rbp + 0x518], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e010]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x528]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x538]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x528], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e040]
movups xmmword [rbp + 0x538], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e030]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x548]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x568]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x548], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e050]
movups xmmword [rbp + 0x568], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e040]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x598]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x5a8]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x598], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e060]
movups xmmword [rbp + 0x5a8], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e070]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x5b8]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x308]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x5b8], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e050]
movups xmmword [rbp + 0x308], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e080]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x318]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x328]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x318], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e060]
movups xmmword [rbp + 0x328], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e020]
lea rax, [rbp - 0x80]
movups xmmword [rbp + 0x338], xmm0
movups xmm0, xmmword [0x18001e0a0]
movups xmmword [rbp + 0x348], xmm0
mov qword [rsp + 0x40], rax
lea r8, [rbp + 0x338]
lea rax, [rsp + 0x78]
movaps xmm3, xmm9
mov qword [rsp + 0x38], rax
lea rdx, [rbp + 0x348]
lea rax, [rsp + 0x74]
mov rcx, rdi
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
mov qword [rsp + 0x20], rax
call fcn.180001bb8
movups xmm0, xmmword [0x18001e020]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x358]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x368]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x358], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e090]
movups xmmword [rbp + 0x368], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e0a0]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x378]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x388]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x378], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e0c0]
movups xmmword [rbp + 0x388], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e090]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x398]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x3a8]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x398], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e0b0]
movups xmmword [rbp + 0x3a8], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e0c0]
lea rax, [rbp - 0x80]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x74]
movups xmmword [rbp + 0x3b8], xmm0
mov qword [rsp + 0x30], rax
movups xmm0, xmmword [0x18001e0f0]
movups xmmword [rbp + 0x3c8], xmm0
lea rax, [rsp + 0x70]
movaps xmm3, xmm9
mov qword [rsp + 0x28], rax
lea r8, [rbp + 0x3b8]
lea rax, [rbp + 0x18]
mov rcx, rdi
lea rdx, [rbp + 0x3c8]
mov qword [rsp + 0x20], rax
call fcn.180001bb8
movups xmm0, xmmword [0x18001e0b0]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x3d8]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x3e8]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x3d8], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e100]
movups xmmword [rbp + 0x3e8], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e130]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x3f8]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x408]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x3f8], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e0f0]
movups xmmword [rbp + 0x408], xmm0
call fcn.180001bb8
movups xmm0, xmmword [0x18001e140]
lea rax, [rbp - 0x80]
mov rcx, rdi
mov qword [rsp + 0x40], rax
movaps xmm3, xmm9
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
lea r8, [rbp + 0x418]
lea rax, [rsp + 0x74]
mov qword [rsp + 0x30], rax
lea rdx, [rbp + 0x428]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x18]
movups xmmword [rbp + 0x418], xmm0
mov qword [rsp + 0x20], rax
movups xmm0, xmmword [0x18001e100]
movups xmmword [rbp + 0x428], xmm0
call fcn.180001bb8
movd xmm0, dword [0x18001c0c0]
movss xmm7, dword [rsp + 0x70]
cvtdq2ps xmm0, xmm0
comiss xmm7, xmm0
jae 0x180013d34
movss xmm10, dword [rsp + 0x74]
xorps xmm1, xmm1
comiss xmm10, xmm1
jbe 0x180013d2c
movd xmm0, dword [0x18001c0c4]
movss xmm6, dword [rsp + 0x78]
cvtdq2ps xmm0, xmm0
comiss xmm6, xmm0
jae 0x180013d2c
movss xmm9, dword [rbp - 0x80]
comiss xmm9, xmm1
jbe 0x180013d2c
movsd xmm1, qword [0x18001e000]
movsd xmm0, qword [0x18001e008]
subsd xmm0, qword [0x18001e018]
subsd xmm1, qword [0x18001e010]
mulsd xmm0, xmm0
mulsd xmm1, xmm1
addsd xmm0, xmm1
call fcn.1800115a4
cmp byte [0x18001c06a], r14b
mulsd xmm0, qword [0x18001b158]
cvtps2pd xmm8, xmm7
cvtps2pd xmm7, xmm6
subsd xmm8, xmm0
cvtps2pd xmm6, xmm10
subsd xmm7, xmm0
movsd qword [rbp + 0x200], xmm8
addsd xmm6, xmm0
movsd qword [rbp + 0x298], xmm8
cvtps2pd xmm11, xmm9
movaps xmm14, xmm6
movsd qword [rbp + 0x208], xmm7
addsd xmm11, xmm0
movsd qword [rbp + 0x2a8], xmm6
addsd xmm14, xmm8
movsd qword [rbp + 0x260], xmm6
movsd qword [rbp + 0x268], xmm7
movsd qword [rbp + 0x2b0], xmm11
mulsd xmm14, qword [0x18001b158]
movsd qword [rbp + 0x2a0], xmm11
je 0x180013321
cmp byte [0x18001c06e], r14b
lea rax, [rbp + 0x18]
movd xmm3, dword [0x18001c034]
lea rdx, [rbp + 0x200]
movaps xmm9, xmm11
mov qword [rsp + 0x20], rax
movaps xmm10, xmm6
subsd xmm9, xmm7
subsd xmm10, xmm8
mov rcx, rdi
cvtdq2ps xmm3, xmm3
jne 0x180013118
lea r8, [rbp + 0x438]
movsd qword [rbp + 0x438], xmm10
movsd qword [rbp + 0x440], xmm9
call fcn.180004e68
jmp 0x180013321
mulsd xmm9, qword [0x18001b148]
lea r8, [rbp + 0x448]
mulsd xmm10, qword [0x18001b150]
movsd qword [rbp + 0x448], xmm8
movaps xmm0, xmm9
addsd xmm0, xmm7
movsd qword [rbp + 0x450], xmm0
call fcn.180004f80
movd xmm3, dword [0x18001c034]
lea rax, [rbp + 0x18]
movaps xmm0, xmm10
movsd qword [rbp + 0x460], xmm7
addsd xmm0, xmm8
mov qword [rsp + 0x20], rax
cvtdq2ps xmm3, xmm3
lea r8, [rbp + 0x458]
mov rcx, rdi
lea rdx, [rbp + 0x200]
movsd qword [rbp + 0x458], xmm0
call fcn.180004f80
movd xmm3, dword [0x18001c034]
lea rax, [rbp + 0x18]
movaps xmm0, xmm7
movsd qword [rbp + 0x468], xmm6
addsd xmm0, xmm9
mov qword [rsp + 0x20], rax
cvtdq2ps xmm3, xmm3
lea r8, [rbp + 0x468]
mov rcx, rdi
lea rdx, [rbp + 0x260]
movsd qword [rbp + 0x470], xmm0
call fcn.180004f80
movd xmm3, dword [0x18001c034]
lea rax, [rbp + 0x18]
movaps xmm0, xmm6
movsd qword [rbp + 0x480], xmm7
subsd xmm0, xmm10
mov qword [rsp + 0x20], rax
cvtdq2ps xmm3, xmm3
lea r8, [rbp + 0x478]
mov rcx, rdi
lea rdx, [rbp + 0x260]
movsd qword [rbp + 0x478], xmm0
call fcn.180004f80
movd xmm3, dword [0x18001c034]
lea rax, [rbp + 0x18]
movaps xmm0, xmm11
movsd qword [rbp + 0x488], xmm8
subsd xmm0, xmm9
mov qword [rsp + 0x20], rax
cvtdq2ps xmm3, xmm3
lea r8, [rbp + 0x488]
mov rcx, rdi
lea rdx, [rbp + 0x298]
movsd qword [rbp + 0x490], xmm0
call fcn.180004f80
movd xmm3, dword [0x18001c034]
lea rax, [rbp + 0x18]
movaps xmm0, xmm10
movsd qword [rbp + 0x4a0], xmm11
addsd xmm0, xmm8
mov qword [rsp + 0x20], rax
cvtdq2ps xmm3, xmm3
lea r8, [rbp + 0x498]
mov rcx, rdi
lea rdx, [rbp + 0x298]
movsd qword [rbp + 0x498], xmm0
call fcn.180004f80
movd xmm3, dword [0x18001c034]
lea rax, [rbp + 0x18]
movaps xmm0, xmm11
movsd qword [rbp + 0x4a8], xmm6
subsd xmm0, xmm9
mov qword [rsp + 0x20], rax
cvtdq2ps xmm3, xmm3
lea r8, [rbp + 0x4a8]
mov rcx, rdi
lea rdx, [rbp + 0x2a8]
movsd qword [rbp + 0x4b0], xmm0
call fcn.180004f80
subsd xmm6, xmm10
movd xmm3, dword [0x18001c034]
lea rax, [rbp + 0x18]
cvtdq2ps xmm3, xmm3
lea r8, [rbp + 0x558]
mov rcx, rdi
lea rdx, [rbp + 0x2a8]
mov qword [rsp + 0x20], rax
movsd qword [rbp + 0x558], xmm6
movsd qword [rbp + 0x560], xmm11
call fcn.180004f80
cmp byte [0x18001c064], r14b
je 0x180013501
mov rdx, r13
lea rcx, [rbp + 0x270]
call fcn.180010dd4
mov rbx, qword [rbp + 0x270]
test rbx, rbx
je 0x18001334e
mov rcx, rbx
jmp 0x18001335d
mov word [rbp + 0x7b8], r14w
lea rcx, [rbp + 0x7b8]
call fcn.180014c20
test al, al
jne 0x180013501
movaps xmm0, xmmword [0x18001b380]
mov rcx, r14
movups xmmword [rbp - 0x80], xmm0
test rbx, rbx
je 0x18001339d
mov r8, rbx
cmp word [rbx], r14w
je 0x1800133a6
mov rax, rbx
mov edx, r14d
inc edx
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x18001338c
lea eax, [rdx + 1]
jmp 0x1800133a9
mov word [rbp - 8], r14w
lea r8, [rbp - 8]
mov eax, r14d
test eax, eax
mov dword [rbp + 0x2c0], eax
mov dword [rbp + 0x2c4], eax
lea r9, [rbp + 0x2b8]
cmovne rcx, r8
lea rax, [rbp - 0x80]
mov r8, qword [0x18001c0b8]
mov rdx, rdi
mov qword [rbp + 0x2b8], rcx
lea rcx, [rbp + 0x280]
mov qword [rsp + 0x20], rax
call fcn.180005500
movsd xmm1, qword [rbp + 0x280]
movaps xmm0, xmm14
mulsd xmm1, qword [0x18001b158]
mov rcx, r14
subsd xmm7, qword [0x18001b1b8]
subsd xmm0, xmm1
xorps xmm1, xmm1
movups xmmword [rbp + 0x1c0], xmm1
movaps xmm1, xmmword [0x18001b380]
movsd qword [rbp + 0x4d0], xmm7
movsd qword [rbp + 0x4c8], xmm0
movaps xmm0, xmmword [0x18001b320]
movups xmmword [rbp - 0x80], xmm0
xorps xmm0, xmm0
movups xmmword [rbp + 0xf0], xmm0
movups xmmword [rbp + 0xa0], xmm1
test rbx, rbx
je 0x18001346a
cmp word [rbx], r14w
je 0x180013473
mov rax, rbx
mov edx, r14d
inc edx
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x180013459
lea eax, [rdx + 1]
jmp 0x180013476
mov word [rbp - 0x20], r14w
lea rbx, [rbp - 0x20]
mov eax, r14d
movsd xmm6, qword [0x18001b168]
lea r9, [rbp + 0x4c8]
mov rdx, qword [0x18001c0b8]
lea r8, [rbp + 0x2c8]
test eax, eax
mov dword [rbp + 0x2d0], eax
mov dword [rbp + 0x2d4], eax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x60], rax
cmovne rcx, rbx
mov byte [rsp + 0x58], 1
lea rax, [rbp + 0x1c0]
mov byte [rsp + 0x50], r14b
mov byte [rsp + 0x48], r14b
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0xf0]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x18]
movsd qword [rsp + 0x30], xmm6
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xa0]
mov qword [rbp + 0x2c8], rcx
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1800050a4
jmp 0x180013509
movsd xmm6, qword [0x18001b168]
cmp byte [0x18001c061], r14b
jne 0x180013528
cmp byte [0x18001c06b], r14b
jne 0x180013528
cmp byte [0x18001c06d], r14b
je 0x180013d1f
mov rcx, r13
call fcn.18001018c
cmp byte [0x18001c061], r14b
mov rbx, rax
mov qword [rbp - 0x68], r14
mov qword [rbp - 0x60], r14
je 0x180013716
cmp word [0x18001a15a], r14w
mov r10d, 1
mov ecx, dword [str.m7j8]
mov dword [rbp - 0x80], ecx
jne 0x18001359d
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x180013568
cmp word [rbp - 0x7e], r14w
je 0x1800135e0
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x1800135ab
mov ecx, r14d
cmp word [rbp - 0x80], r14w
je 0x1800135fd
lea rax, [rbp - 0x80]
add ecx, r10d
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x1800135ee
inc ecx
test ecx, ecx
mov dword [rbp + 0x2e0], ecx
mov dword [rbp + 0x2e4], ecx
lea rax, [rbp - 0x80]
cmove rax, r14
lea r8, [rbp + 0x2d8]
lea rdx, [rbp - 0x68]
mov qword [rbp + 0x2d8], rax
lea rcx, [rbp + 0x688]
call fcn.1800102ac
cvttsd2si edx, xmm12
lea rcx, [rbp + 0x6a8]
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x68], xmm0
call fcn.180010500
mov r8, rax
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x698]
call fcn.1800102ac
mov r8d, r14d
lea r9, [rbp - 0x14]
mov r14d, 1
movups xmm0, xmmword [rax]
mov eax, dword [0x18001a15c]
mov dword [rbp - 0x14], eax
movzx eax, word [0x18001a160]
mov word [rbp - 0x10], ax
movdqu xmmword [rbp - 0x68], xmm0
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r14d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r14d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 3
jl 0x180013686
xor r14d, r14d
mov ecx, r14d
cmp word [rbp - 0x14], r14w
je 0x1800136da
lea rax, [rbp - 0x14]
inc ecx
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x1800136cc
inc ecx
test ecx, ecx
mov dword [rbp + 0x2f0], ecx
mov dword [rbp + 0x2f4], ecx
lea rax, [rbp - 0x14]
cmove rax, r14
lea r8, [rbp + 0x2e8]
lea rdx, [rbp - 0x68]
mov qword [rbp + 0x2e8], rax
lea rcx, [rbp + 0x618]
call fcn.1800102ac
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x68], xmm0
test rbx, rbx
je 0x180013c33
cmp qword [rbp - 0x70], r14
je 0x180013c33
cmp byte [0x18001c06b], r14b
je 0x180013a53
mov rdx, rbx
lea rcx, [rbp + 0x210]
call fcn.1800038f4
lea rcx, [rbp + 0x210]
call fcn.180011124
test al, al
je 0x180013852
cmp word [0x18001a16e], r14w
mov r10d, 1
mov rax, qword [str.txl9m7k7m7j8]
mov qword [rbp - 0x80], rax
jne 0x1800137b0
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 4
jl 0x18001377b
cmp word [rbp - 0x7a], r14w
je 0x1800137f3
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 4
jl 0x1800137be
mov ecx, r14d
cmp word [rbp - 0x80], r14w
je 0x180013810
lea rax, [rbp - 0x80]
add ecx, r10d
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x180013801
inc ecx
test ecx, ecx
mov dword [rbp + 0x238], ecx
mov dword [rbp + 0x23c], ecx
lea rax, [rbp - 0x80]
cmove rax, r14
lea r8, [rbp + 0x230]
lea rdx, [rbp + 0x210]
mov qword [rbp + 0x230], rax
lea rcx, [rbp + 0x628]
call fcn.1800102ac
movups xmm0, xmmword [rax]
movdqu xmmword [rbp + 0x210], xmm0
cmp word [0x18001a172], r14w
mov r10d, 1
mov eax, dword [0x18001a170]
mov dword [rbp - 0x80], eax
jne 0x1800138a7
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x180013872
cmp word [rbp - 0x7e], r14w
je 0x1800138ea
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x1800138b5
mov ecx, r14d
cmp word [rbp - 0x80], r14w
je 0x180013907
lea rax, [rbp - 0x80]
add ecx, r10d
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x1800138f8
inc ecx
test ecx, ecx
mov dword [rbp + 0x248], ecx
mov dword [rbp + 0x24c], ecx
lea rax, [rbp - 0x80]
cmove rax, r14
lea r8, [rbp + 0x240]
lea rdx, [rbp - 0x68]
mov qword [rbp + 0x240], rax
lea rcx, [rbp + 0x638]
call fcn.1800102ac
lea r8, [rbp + 0x210]
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x648]
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x68], xmm0
call fcn.1800102ac
cmp word [0x18001a176], r14w
mov r10d, 1
movups xmm0, xmmword [rax]
mov eax, dword [0x18001a174]
mov dword [rbp - 0x80], eax
movdqu xmmword [rbp - 0x68], xmm0
jne 0x1800139b7
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x180013982
cmp word [rbp - 0x7e], r14w
je 0x1800139fa
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x1800139c5
mov ecx, r14d
cmp word [rbp - 0x80], r14w
je 0x180013a17
lea rax, [rbp - 0x80]
add ecx, r10d
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x180013a08
inc ecx
test ecx, ecx
mov dword [rbp + 0x258], ecx
mov dword [rbp + 0x25c], ecx
lea rax, [rbp - 0x80]
cmove rax, r14
lea r8, [rbp + 0x250]
lea rdx, [rbp - 0x68]
mov qword [rbp + 0x250], rax
lea rcx, [rbp + 0x658]
call fcn.1800102ac
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x68], xmm0
cmp byte [0x18001c06d], r14b
je 0x180013c33
cmp word [0x18001a17a], r14w
mov r10d, 1
mov eax, dword [0x18001a178]
mov dword [rbp - 0x80], eax
jne 0x180013ab5
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x180013a80
cmp word [rbp - 0x7e], r14w
je 0x180013af8
mov r8d, r14d
lea r9, [rbp - 0x80]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r10d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r10d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 2
jl 0x180013ac3
mov ecx, r14d
cmp word [rbp - 0x80], r14w
je 0x180013b15
lea rax, [rbp - 0x80]
add ecx, r10d
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x180013b06
inc ecx
test ecx, ecx
mov dword [rbp + 0x300], ecx
mov dword [rbp + 0x304], ecx
lea rax, [rbp - 0x80]
cmove rax, r14
lea r8, [rbp + 0x2f8]
lea rdx, [rbp - 0x68]
mov qword [rbp + 0x2f8], rax
lea rcx, [rbp + 0x668]
call fcn.1800102ac
mov rcx, rbx
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x68], xmm0
call fcn.18000359c
mov edx, eax
lea rcx, [rbp + 0x678]
call fcn.180010500
mov r8, rax
lea rdx, [rbp - 0x68]
lea rcx, [rbp + 0x150]
call fcn.1800102ac
mov r8d, r14d
lea r9, [rbp - 0xe]
mov r14d, 1
movups xmm0, xmmword [rax]
mov eax, dword [0x18001a17c]
mov dword [rbp - 0xe], eax
movzx eax, word [0x18001a180]
mov word [rbp - 0xa], ax
movdqu xmmword [rbp - 0x68], xmm0
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, r14d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, r14d
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 3
jl 0x180013ba3
xor r14d, r14d
mov ecx, r14d
cmp word [rbp - 0xe], r14w
je 0x180013bf7
lea rax, [rbp - 0xe]
inc ecx
lea rax, [rax + 2]
cmp word [rax], r14w
jne 0x180013be9
inc ecx
test ecx, ecx
mov dword [rbp + 0x90], ecx
mov dword [rbp + 0x94], ecx
lea rax, [rbp - 0xe]
cmove rax, r14
lea r8, [rbp + 0x88]
lea rdx, [rbp - 0x68]
mov qword [rbp + 0x88], rax
lea rcx, [rbp + 0x578]
call fcn.1800102ac
movups xmm0, xmmword [rax]
movdqu xmmword [rbp - 0x68], xmm0
movaps xmm0, xmmword [0x18001b380]
lea rax, [rbp + 0xa0]
mov r8, qword [0x18001c0b8]
lea r9, [rbp - 0x68]
mov rdx, rdi
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x60]
movups xmmword [rbp + 0xa0], xmm0
call fcn.180005500
movsd xmm0, qword [rbp + 0x60]
lea rax, [rbp + 0xa0]
mulsd xmm0, qword [0x18001b158]
addsd xmm11, xmm6
mov rdx, qword [0x18001c0b8]
lea r9, [rbp + 0x110]
mov qword [rsp + 0x60], rax
lea r8, [rbp - 0x68]
mov byte [rsp + 0x58], 1
lea rax, [rbp + 0xf0]
mov byte [rsp + 0x50], r14b
xorps xmm1, xmm1
mov byte [rsp + 0x48], r14b
subsd xmm14, xmm0
movaps xmm0, xmmword [0x18001b320]
mov rcx, rdi
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x18]
movsd qword [rsp + 0x30], xmm6
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x80]
movups xmmword [rbp + 0xa0], xmm0
mov qword [rsp + 0x20], rax
movups xmmword [rbp + 0xf0], xmm1
movaps xmm1, xmmword [0x18001b380]
xorps xmm0, xmm0
movsd qword [rbp + 0x110], xmm14
movsd qword [rbp + 0x118], xmm11
movups xmmword [rbp + 0x1c0], xmm0
movups xmmword [rbp - 0x80], xmm1
call fcn.1800050a4
movups xmm14, xmmword [rbp]
movaps xmm11, xmmword [rbp + 0x220]
movups xmm10, xmmword [rbp + 0x128]
movsd xmm3, qword [rbp + 0x1b0]
movsd xmm2, qword [rbp + 0x1b8]
mov eax, dword [0x18001c0c0]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
mov eax, dword [0x18001c0c4]
cdq
cvtdq2pd xmm0, xmm0
sub eax, edx
sar eax, 1
movd xmm1, eax
subsd xmm3, xmm0
cvtdq2pd xmm1, xmm1
movsd qword [rbp + 0x1b0], xmm3
subsd xmm2, xmm1
mulsd xmm3, xmm3
movsd qword [rbp + 0x1b8], xmm2
mulsd xmm2, xmm2
addsd xmm3, xmm2
movaps xmm0, xmm3
call fcn.1800115a4
mov eax, dword [rbp + 0x140]
xor ecx, ecx
mov r14d, eax
cmp byte [rbp - 0x1c], cl
je 0x1800146af
cmp byte [0x18001c065], cl
je 0x180013dbc
movsd xmm1, qword [rbp + 0x138]
jmp 0x180013dc4
movd xmm1, esi
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
jae 0x1800146af
comisd xmm0, xmmword [rbp + 0x198]
mov rbx, qword [rbp - 0x70]
movaps xmm7, xmmword [rbp + 0x50]
jae 0x180013e7e
mov rax, qword [rbp + 0x78]
mov ecx, 1
movsd qword [rbp + 0x198], xmm0
movsd xmm0, qword [rbp - 0x30]
test r12b, r12b
je 0x180013e3d
movaps xmm8, xmm13
movaps xmmword [rbp + 0x40], xmm13
unpckhpd xmm8, xmm13
movaps xmm12, xmm10
movaps xmmword [rbp + 0xe0], xmm8
movaps xmm13, xmm11
movsd qword [rbp + 0x188], xmm0
xor r12d, r12d
movsd qword [rbp - 0x58], xmm10
movsd qword [rbp - 0x48], xmm11
mov qword [rbp + 0x1a0], r13
jmp 0x180013e9e
movsd qword [rbp + 0xc0], xmm13
xor r12d, r12d
unpckhpd xmm13, xmm13
movsd qword [rbp + 0xc8], xmm13
movsd qword [rbp + 0xd0], xmm0
movsd qword [rbp + 0x168], xmm10
movsd qword [rbp + 0x170], xmm11
mov qword [rbp + 0x120], r13
jmp 0x180013e8a
movaps xmm7, xmmword [rbp + 0x50]
xor r12d, r12d
mov rax, qword [rbp + 0x78]
mov ecx, 1
movsd xmm13, qword [rbp - 0x48]
movsd xmm12, qword [rbp - 0x58]
movaps xmm8, xmmword [rbp + 0xe0]
mov r13d, dword [rbp + 0x70]
add qword [rbp + 0x148], rcx
add r13d, ecx
cmp r13d, dword [rbp + 0x80]
mov dword [rbp + 0x70], r13d
mov r13, qword [rbp + 0x148]
jl 0x18001252f
movups xmm7, xmmword [rbp + 0xc0]
mov r15d, dword [rbp - 0x50]
movsd xmm11, qword [rbp + 0x138]
xorps xmm9, xmm9
cmp byte [0x18001c067], r12b
mov r13, qword [rbp + 0x120]
je 0x180013f2c
test r13, r13
jne 0x180013f2c
mov rax, qword [rbp + 0x1a0]
test rax, rax
je 0x180013f2c
movsd xmm0, qword [rbp + 0x188]
mov r13, rax
movsd xmm7, qword [rbp + 0x40]
movsd qword [rbp + 0xd0], xmm0
unpcklpd xmm7, xmm8
movsd qword [rbp + 0x168], xmm12
movsd qword [rbp + 0x170], xmm13
mov rcx, qword [0x18001c0a8]
lea rdx, [0x18001df58]
call fcn.180011dcc
test al, al
je 0x180013f55
mov al, byte [0x18001c070]
cmp al, 9
je 0x180013f55
inc al
mov byte [0x18001c070], al
mov rcx, qword [0x18001c0a8]
lea rdx, [0x18001db00]
call fcn.180011dcc
test al, al
je 0x180013f7e
mov al, byte [0x18001c070]
cmp al, 1
je 0x180013f7e
add al, 0xff
mov byte [0x18001c070], al
mov rcx, qword [0x18001c0a8]
lea rdx, [0x18001de40]
call fcn.180011dcc
test al, al
je 0x180013fa3
cmp byte [0x18001c063], r12b
sete byte [0x18001c063]
mov al, byte [0x18001c060]
test al, al
je 0x180014349
mov edx, dword [0x18001c004]
test edx, edx
je 0x180014023
lea rcx, [rbp - 0x40]
call fcn.18000266c
cmp byte [0x18001c065], r12b
mov rcx, rdi
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
cvttsd2si eax, xmm11
movups xmmword [rbp + 0x578], xmm0
cmovne esi, eax
mov eax, dword [0x18001c0c4]
cdq
movdqa xmmword [rbp + 0x60], xmm1
sub eax, edx
mov r9d, esi
sar eax, 1
mov r8d, eax
mov eax, dword [0x18001c0c0]
cdq
sub eax, edx
sar eax, 1
mov edx, eax
lea rax, [rbp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x2d
call fcn.180004cd4
mov al, byte [0x18001c060]
test al, al
je 0x180014349
cmp byte [0x18001c068], r12b
je 0x180014349
mov eax, dword [rbp - 0x18]
test eax, eax
jle 0x180014349
mov edx, eax
lea rcx, [rbp + 0x578]
call fcn.180010500
cmp word [0x18001a19a], r12w
mov r10, rax
movups xmm0, xmmword [str.sytso_a]
mov ecx, dword [0x18001a198]
mov esi, 1
mov dword [rbp + 0x160], ecx
movups xmmword [rbp + 0x150], xmm0
jne 0x1800140bb
mov r8d, r12d
lea r9, [rbp + 0x150]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, esi
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, esi
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 0xa
jl 0x180014087
cmp word [rbp + 0x162], r12w
je 0x180014103
mov r8d, r12d
lea r9, [rbp + 0x150]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, esi
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, esi
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 0xa
jl 0x1800140cf
mov ecx, r12d
cmp word [rbp + 0x150], r12w
je 0x180014125
lea rax, [rbp + 0x150]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], r12w
jne 0x180014117
inc ecx
test ecx, ecx
mov dword [rbp + 0x90], ecx
mov dword [rbp + 0x94], ecx
lea rax, [rbp + 0x150]
cmove rax, r12
lea rdx, [rbp + 0x88]
mov r8, r10
mov qword [rbp + 0x88], rax
lea rcx, [rbp + 0x50]
call fcn.1800102ac
movups xmm0, xmmword [0x18001a1a0]
movzx eax, word [0x18001a1b8]
mov word [rbp - 0x28], ax
movups xmmword [rbp - 0x40], xmm0
movsd xmm0, qword [str.rzzaB]
movsd qword [rbp - 0x30], xmm0
test ax, ax
je 0x1800141bb
mov r8d, r12d
lea r9, [rbp - 0x40]
mov ecx, r8d
mov eax, 0x2f684bdb
mul r8d
mov eax, esi
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 5
sub ax, cx
movzx eax, ax
imul ecx, eax, 0x36
add cx, r8w
add r8d, esi
xor word [r9], cx
lea r9, [r9 + 2]
cmp r8d, 0xd
jl 0x180014187
mov ecx, r12d
cmp word [rbp - 0x40], r12w
je 0x1800141d7
lea rax, [rbp - 0x40]
add ecx, esi
lea rax, [rax + 2]
cmp word [rax], r12w
jne 0x1800141c9
inc ecx
test ecx, ecx
mov dword [rbp + 0x90], ecx
mov dword [rbp + 0x94], ecx
lea rax, [rbp - 0x40]
cmove rax, r12
lea r8, [rbp + 0x88]
lea rdx, [rbp + 0x50]
mov qword [rbp + 0x88], rax
lea rcx, [rbp + 0x578]
call fcn.1800102ac
mov edx, r14d
lea rcx, [rbp + 0x578]
movups xmm0, xmmword [rax]
movdqu xmmword [rbp + 0x50], xmm0
call fcn.180010500
mov r8, rax
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x150]
call fcn.1800102ac
movaps xmm1, xmmword [0x18001b380]
lea r9, [rbp + 0x50]
mov r8, qword [0x18001c0b8]
lea rcx, [rbp + 0xa0]
mov rdx, rdi
movups xmm0, xmmword [rax]
lea rax, [rbp + 0x60]
movups xmmword [rbp + 0x60], xmm1
mov qword [rsp + 0x20], rax
movdqu xmmword [rbp + 0x50], xmm0
call fcn.180005500
movaps xmm0, xmmword [0x18001b320]
lea r9, [rbp + 0x40]
mov eax, dword [0x18001c0c0]
lea r8, [rbp + 0x50]
cdq
xorps xmm1, xmm1
sub eax, edx
mov rcx, rdi
mov rdx, qword [0x18001c0b8]
sar eax, 1
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x1c0], xmm0
movaps xmm0, xmmword [0x18001b380]
movups xmmword [rbp + 0xf0], xmm1
movaps xmm1, xmmword [0x18001b360]
movups xmmword [rbp + 0x270], xmm0
movsd xmm0, qword [rbp + 0xa0]
mulsd xmm0, qword [0x18001b158]
movups xmmword [rbp + 0x280], xmm1
movd xmm1, eax
lea rax, [rbp + 0x60]
mov qword [rsp + 0x60], rax
lea rax, [rbp + 0xf0]
mov byte [rsp + 0x58], sil
mov byte [rsp + 0x50], r12b
mov byte [rsp + 0x48], r12b
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x280]
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
movsd xmm0, qword [0x18001b180]
movsd qword [rbp + 0x48], xmm0
movsd xmm0, qword [0x18001b168]
movsd qword [rsp + 0x30], xmm0
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x270]
mov qword [rsp + 0x20], rax
movsd qword [rbp + 0x40], xmm1
call fcn.1800050a4
cmp byte [0x18001c063], r12b
je 0x18001435a
mov rcx, rdi
call fcn.18000c9c4
cmp byte [0x18001c0e5], r12b
je 0x180014463
mov eax, dword [0x18001c0c0]
movaps xmm0, xmmword [0x18001b360]
cdq
movss xmm6, dword [0x18001b138]
sub eax, edx
sar eax, 1
movaps xmm3, xmm6
mov r8d, eax
movups xmmword [rbp + 0x60], xmm0
lea ecx, [rax + 0xa]
mov eax, dword [0x18001c0c4]
cdq
movd xmm0, ecx
sub eax, edx
mov rcx, rdi
cvtdq2pd xmm0, xmm0
sar eax, 1
lea rdx, [rbp + 0x110]
movd xmm1, eax
lea eax, [r8 - 0xa]
movsd qword [rbp + 0x40], xmm0
lea r8, [rbp + 0x40]
movd xmm0, eax
lea rax, [rbp + 0x60]
cvtdq2pd xmm1, xmm1
mov qword [rsp + 0x20], rax
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x48], xmm1
movsd qword [rbp + 0x110], xmm0
movsd qword [rbp + 0x118], xmm1
call fcn.180004f80
mov eax, dword [0x18001c0c0]
lea r8, [rbp + 0x40]
movaps xmm0, xmmword [0x18001b360]
cdq
sub eax, edx
movaps xmm3, xmm6
sar eax, 1
movups xmmword [rbp + 0x60], xmm0
movd xmm1, eax
mov eax, dword [0x18001c0c4]
cdq
sub eax, edx
lea rdx, [rbp + 0x110]
sar eax, 1
cvtdq2pd xmm1, xmm1
lea ecx, [rax + 0xa]
add eax, 0xfffffff6
movd xmm0, ecx
mov rcx, rdi
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x40], xmm1
movsd qword [rbp + 0x48], xmm0
movd xmm0, eax
lea rax, [rbp + 0x60]
cvtdq2pd xmm0, xmm0
mov qword [rsp + 0x20], rax
movsd qword [rbp + 0x110], xmm1
movsd qword [rbp + 0x118], xmm0
call fcn.180004f80
cmp byte [0x18001c0fa], r12b
je 0x1800144d3
movsd xmm0, qword [rbp + 0x168]
ucomisd xmm0, xmm9
je 0x1800144d3
mov eax, dword [0x18001c0c0]
lea r8, [rbp + 0x168]
movaps xmm0, xmmword [0x18001b360]
cdq
movd xmm1, dword [0x18001c0c4]
sub eax, edx
movss xmm3, dword [0x18001b130]
lea rdx, [rbp + 0x40]
sar eax, 1
mov rcx, rdi
movups xmmword [rbp + 0x60], xmm0
cvtdq2pd xmm1, xmm1
movd xmm0, eax
lea rax, [rbp + 0x60]
cvtdq2pd xmm0, xmm0
mov qword [rsp + 0x20], rax
movsd qword [rbp + 0x48], xmm1
movsd qword [rbp + 0x40], xmm0
call fcn.180004f80
movsd xmm8, qword [rbp + 0xd0]
lea r8, [rbp - 0x40]
mov r9b, byte [rbp + 0x7a8]
mov rdx, rbx
mov rcx, r13
movsd qword [rbp - 0x30], xmm8
movaps xmmword [rbp - 0x40], xmm7
call fcn.180011980
test al, al
je 0x18001478a
cmp dword [0x18001c02c], r12d
je 0x18001478a
mov rcx, qword [0x18001c0a8]
lea rdx, [0x18001dfb0]
call fcn.180004a70
test al, al
je 0x18001478a
cmp byte [0x18001c062], r12b
je 0x1800145f9
mov rbx, qword [rbp + 0x190]
test rbx, rbx
je 0x1800145f9
mov rcx, rbx
call fcn.180004b70
test al, al
je 0x1800145f9
lea rdx, [r13 + 0x320]
mov r8d, 8
lea rcx, [rbp + 0x7a8]
call qword [0x18001c080]
lea rdx, [rbp - 0x40]
movaps xmmword [rbp - 0x40], xmm7
lea rcx, [rbp]
movsd qword [rbp - 0x30], xmm8
call fcn.1800018d4
xorps xmm6, xmm6
mov rcx, rbx
cvtsd2ss xmm6, xmm0
call fcn.1800043f0
mov rdx, qword [rbp + 0x7a8]
lea rcx, [rbp + 0x578]
mov rbx, rax
call fcn.180003690
mov r9, rbx
movss dword [rsp + 0x20], xmm6
lea r8, [rbp - 0x40]
movaps xmmword [rbp + 0xc0], xmm7
lea rdx, [rbp + 0xc0]
movsd qword [rbp + 0xd0], xmm8
movups xmm0, xmmword [rax]
lea rcx, [rbp + 0x150]
movsd xmm1, qword [rax + 0x10]
movaps xmmword [rbp - 0x40], xmm0
movsd qword [rbp - 0x30], xmm1
call fcn.18000c814
movups xmm7, xmmword [rax]
movsd xmm8, qword [rax + 0x10]
movsd xmm0, qword [rbp + 0x10]
lea r8, [rbp - 0x40]
lea rdx, [rbp + 0xc0]
movsd qword [rbp + 0xd0], xmm0
lea rcx, [rbp]
movaps xmmword [rbp - 0x40], xmm7
movsd qword [rbp - 0x30], xmm8
movaps xmmword [rbp + 0xc0], xmm14
call fcn.180017e50
test r15d, r15d
jle 0x180014686
movups xmm0, xmmword [rbp]
lea r8, [rbp - 0x40]
mov r9d, r15d
movsd xmm1, qword [rbp + 0x10]
lea rdx, [rbp + 0xc0]
movaps xmmword [rbp - 0x40], xmm0
lea rcx, [rbp + 0x1e0]
movsd xmm0, qword [rbp + 0x1f0]
movsd qword [rbp + 0xd0], xmm0
movsd qword [rbp - 0x30], xmm1
movaps xmmword [rbp + 0xc0], xmm15
call fcn.180011ff4
movups xmm0, xmmword [rax]
movsd xmm1, qword [rax + 0x10]
movups xmmword [rbp], xmm0
movsd qword [rbp + 0x10], xmm1
movsd xmm7, qword [rbp]
movsd xmm6, qword [rbp + 8]
subsd xmm7, xmm15
movsd xmm0, qword [0x18001b240]
unpckhpd xmm15, xmm15
subsd xmm6, xmm15
movsd qword [rbp + 0x10], xmm9
jmp 0x1800146c0
mov rbx, qword [rbp - 0x70]
jmp 0x180013e7a
addsd xmm6, qword [0x18001b2f8]
comisd xmm6, xmm0
ja 0x1800146b8
movsd xmm0, qword [0x18001b2f0]
jmp 0x1800146d8
addsd xmm6, qword [0x18001b288]
comisd xmm6, xmm0
jb 0x1800146d0
movaps xmm0, xmm7
call fcn.18000ff90
movsd xmm8, qword [0x18001b160]
comisd xmm0, xmm8
jbe 0x18001470a
movaps xmm0, xmm7
call fcn.18000ff90
movaps xmm1, xmm8
divsd xmm1, xmm0
mulsd xmm7, xmm1
movaps xmm0, xmm6
call fcn.18000ff90
comisd xmm0, xmm8
jbe 0x18001472b
movaps xmm0, xmm6
call fcn.18000ff90
divsd xmm8, xmm0
mulsd xmm6, xmm8
mov rcx, qword [0x18001c0a8]
lea rdx, [rbp + 0x1e0]
unpcklpd xmm7, xmm6
mov ebx, 0x18
movsd xmm6, qword [rbp + 0x10]
add rcx, 0x520
mov r8d, ebx
movsd qword [rbp + 0x1f0], xmm6
movaps xmmword [rbp + 0x1e0], xmm7
call qword [0x18001c080]
mov rcx, qword [0x18001c0a8]
lea rdx, [rbp - 0x40]
add rcx, 0x988
movaps xmmword [rbp - 0x40], xmm7
mov r8d, ebx
movsd qword [rbp - 0x30], xmm6
call qword [0x18001c080]
lea r11, [rsp + 0x860]
mov rbx, qword [r11 + 0x40]
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]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret