Function at 0x14003f080
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x130]
sub rsp, 0x230
mov rax, qword [0x14015c100]
xor rax, rsp
mov qword [rbp + 0x120], rax
mov rbx, r9
mov r14, r8
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x58], rdx
mov rdi, rcx
test rcx, rcx
je 0x140040572
cmp qword [rcx + 8], 0
je 0x140040572
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x140181a20], eax
jle 0x14003f165
lea rcx, [0x140181a20]
call fcn.1400c68f8
cmp dword [0x140181a20], 0xffffffff
jne 0x14003f165
call fcn.1400c59ac
mov edx, eax
mov dword [0x140182db4], 0xffffffff
mov dword [0x140181a34], eax
mov ecx, 1
lea r8, [0x140181a34]
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [r8 + rcx*4], edx
inc rcx
cmp rcx, 0x270
jb 0x14003f130
mov dword [0x140181a30], 0x270
lea rcx, [0x140181a20]
call fcn.1400c688c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xb0], rax
mov rax, qword [rbp + 0x198]
movss xmm0, dword [rax]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rax + 4]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rax + 8]
movss dword [rsp + 0x28], xmm0
lea r9, [rsp + 0x20]
movzx r8d, byte [rbp + 0x190]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call fcn.14003ebc0
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xd8], xmm0
mov qword [rbp + 0xe8], rax
mov rcx, qword [rbp + 0xa8]
mov rdi, qword [rbp + 0xa0]
sub rcx, rdi
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov r15, rdx
sar r15, 1
mov rax, r15
shr rax, 0x3f
add r15, rax
je 0x1400405a7
movss xmm0, dword [rdi]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 4]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 8]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, r14
call fcn.14003ac90
cmp r15, 1
jbe 0x1400405a7
movss xmm0, dword [rdi + 0xc]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0x10]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 0x14]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x38]
call fcn.14003ac90
cmp r15, 2
jbe 0x1400405a7
movss xmm0, dword [rdi + 0x18]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0x1c]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 0x20]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
call fcn.14003ac90
cmp r15, 3
jbe 0x1400405a7
movss xmm0, dword [rdi + 0x24]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0x28]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 0x2c]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x48]
call fcn.14003ac90
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xd8], xmm0
mov ecx, 0x20
call fcn.1400c65a0
mov rsi, rax
mov qword [rbp + 0xd8], rax
lea r12, [rax + 0x20]
mov qword [rbp + 0xe8], r12
mov r8d, 0x20
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.1400f9290
lea r8, [rsi + 0x20]
mov qword [rbp + 0xe0], r8
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x100], rax
movss xmm0, dword [rdi]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 4]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 8]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0xb8]
mov rcx, r14
call fcn.14003ac90
movss xmm0, dword [rdi + 0xc]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 0x10]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 0x14]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0xc0]
call fcn.14003ac90
cmp r15, 5
jbe 0x1400405c5
movss xmm0, dword [rdi + 0x3c]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0x40]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 0x44]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0xc8]
call fcn.14003ac90
movss xmm0, dword [rdi + 0x30]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0x34]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 0x38]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0xd0]
call fcn.14003ac90
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xf0], xmm0
mov ecx, 0x20
call fcn.1400c65a0
mov r14, rax
mov qword [rbp + 0xf0], rax
add rax, 0x20
mov qword [rbp + 0x100], rax
mov r8d, 0x20
lea rdx, [rbp + 0xb8]
mov rcx, r14
call fcn.1400f9290
lea r8, [r14 + 0x20]
mov qword [rbp + 0xf8], r8
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x108], xmm0
mov qword [rbp + 0x118], rax
movss xmm0, dword [rdi + 0x18]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 0x1c]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 0x20]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x50]
call fcn.14003ac90
movss xmm0, dword [rdi + 0x24]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 0x28]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 0x2c]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x38]
call fcn.14003ac90
cmp r15, 7
jbe 0x1400405cb
movss xmm0, dword [rdi + 0x54]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0x58]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 0x5c]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x40]
call fcn.14003ac90
movss xmm0, dword [rdi + 0x48]
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rdi + 0x4c]
movss dword [rsp + 0x24], xmm0
movss xmm0, dword [rdi + 0x50]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x48]
call fcn.14003ac90
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x108], xmm0
mov ecx, 0x20
call fcn.1400c65a0
mov r15, rax
mov qword [rbp + 0x108], rax
add rax, 0x20
mov qword [rbp + 0x118], rax
mov r8d, 0x20
lea rdx, [rsp + 0x30]
mov rcx, r15
call fcn.1400f9290
lea r8, [r15 + 0x20]
mov qword [rbp + 0x110], r8
movss xmm0, dword [rdi + 0x30]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 0x34]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 0x38]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0x20]
mov rcx, qword [rsp + 0x50]
call fcn.14003ac90
movss xmm0, dword [rdi + 0x3c]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 0x40]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 0x44]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0x28]
call fcn.14003ac90
movss xmm0, dword [rdi + 0x48]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 0x4c]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 0x50]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0x30]
call fcn.14003ac90
movss xmm0, dword [rdi + 0x54]
movss dword [rsp + 0x20], xmm0
movss xmm1, dword [rdi + 0x58]
movss dword [rsp + 0x24], xmm1
movss xmm0, dword [rdi + 0x5c]
movss dword [rsp + 0x28], xmm0
lea r8, [rsp + 0x20]
lea rdx, [rbp + 0x38]
call fcn.14003ac90
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xb8], xmm0
mov ecx, 0x20
call fcn.1400c65a0
mov r13, rax
mov qword [rbp + 0xb8], rax
add rax, 0x20
mov qword [rbp + 0xc8], rax
mov r8d, 0x20
lea rdx, [rbp + 0x20]
mov rcx, r13
call fcn.1400f9290
lea r8, [r13 + 0x20]
mov qword [rbp + 0xc0], r8
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], rax
movss xmm0, dword [rdi]
movss dword [rsp + 0x60], xmm0
movss xmm1, dword [rdi + 4]
movss dword [rsp + 0x64], xmm1
movss xmm0, dword [rdi + 8]
movss dword [rsp + 0x68], xmm0
movss xmm1, dword [rdi + 0xc]
movss dword [rsp + 0x6c], xmm1
movss xmm0, dword [rdi + 0x10]
movss dword [rsp + 0x70], xmm0
movss xmm1, dword [rdi + 0x14]
movss dword [rsp + 0x74], xmm1
movss xmm0, dword [rdi + 0x18]
movss dword [rsp + 0x78], xmm0
movss xmm1, dword [rdi + 0x1c]
movss dword [rsp + 0x7c], xmm1
movss xmm0, dword [rdi + 0x20]
movss dword [rbp - 0x80], xmm0
movss xmm1, dword [rdi + 0x24]
movss dword [rbp - 0x7c], xmm1
movss xmm0, dword [rdi + 0x28]
movss dword [rbp - 0x78], xmm0
movss xmm1, dword [rdi + 0x2c]
movss dword [rbp - 0x74], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], rax
mov edx, 4
lea rcx, [rbp + 0x88]
call fcn.140020aa0
mov rdx, qword [rbp + 0x88]
lea rcx, [rsp + 0x60]
nop
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
lea rax, [rbp - 0x70]
cmp rcx, rax
jne 0x14003f750
mov qword [rbp + 0x90], rdx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rax
movss xmm0, dword [rdi]
movss dword [rbp - 0x70], xmm0
movss xmm1, dword [rdi + 4]
movss dword [rbp - 0x6c], xmm1
movss xmm0, dword [rdi + 8]
movss dword [rbp - 0x68], xmm0
movss xmm1, dword [rdi + 0xc]
movss dword [rbp - 0x64], xmm1
movss xmm0, dword [rdi + 0x10]
movss dword [rbp - 0x60], xmm0
movss xmm1, dword [rdi + 0x14]
movss dword [rbp - 0x5c], xmm1
movss xmm0, dword [rdi + 0x3c]
movss dword [rbp - 0x58], xmm0
movss xmm1, dword [rdi + 0x40]
movss dword [rbp - 0x54], xmm1
movss xmm0, dword [rdi + 0x44]
movss dword [rbp - 0x50], xmm0
movss xmm1, dword [rdi + 0x30]
movss dword [rbp - 0x4c], xmm1
movss xmm0, dword [rdi + 0x34]
movss dword [rbp - 0x48], xmm0
movss xmm1, dword [rdi + 0x38]
movss dword [rbp - 0x44], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rax
mov edx, 4
lea rcx, [rbp + 0x70]
call fcn.140020aa0
mov rdx, qword [rbp + 0x70]
lea rcx, [rbp - 0x70]
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
lea rax, [rbp - 0x40]
cmp rcx, rax
jne 0x14003f830
mov qword [rbp + 0x78], rdx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], rax
movss xmm0, dword [rdi + 0x18]
movss dword [rbp - 0x40], xmm0
movss xmm1, dword [rdi + 0x1c]
movss dword [rbp - 0x3c], xmm1
movss xmm0, dword [rdi + 0x20]
movss dword [rbp - 0x38], xmm0
movss xmm1, dword [rdi + 0x24]
movss dword [rbp - 0x34], xmm1
movss xmm0, dword [rdi + 0x28]
movss dword [rbp - 0x30], xmm0
movss xmm1, dword [rdi + 0x2c]
movss dword [rbp - 0x2c], xmm1
movss xmm0, dword [rdi + 0x54]
movss dword [rbp - 0x28], xmm0
movss xmm1, dword [rdi + 0x58]
movss dword [rbp - 0x24], xmm1
movss xmm0, dword [rdi + 0x5c]
movss dword [rbp - 0x20], xmm0
movss xmm1, dword [rdi + 0x48]
movss dword [rbp - 0x1c], xmm1
movss xmm0, dword [rdi + 0x4c]
movss dword [rbp - 0x18], xmm0
movss xmm1, dword [rdi + 0x50]
movss dword [rbp - 0x14], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], rax
mov edx, 4
lea rcx, [rbp + 0x58]
call fcn.140020aa0
mov rdx, qword [rbp + 0x58]
lea rcx, [rbp - 0x40]
nop dword [rax]
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
lea rax, [rbp - 0x10]
cmp rcx, rax
jne 0x14003f900
mov qword [rbp + 0x60], rdx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], rax
movss xmm0, dword [rdi + 0x30]
movss dword [rbp - 0x10], xmm0
movss xmm1, dword [rdi + 0x34]
movss dword [rbp - 0xc], xmm1
movss xmm0, dword [rdi + 0x38]
movss dword [rbp - 8], xmm0
movss xmm1, dword [rdi + 0x3c]
movss dword [rbp - 4], xmm1
movss xmm0, dword [rdi + 0x40]
movss dword [rbp], xmm0
movss xmm1, dword [rdi + 0x44]
movss dword [rbp + 4], xmm1
movss xmm0, dword [rdi + 0x48]
movss dword [rbp + 8], xmm0
movss xmm1, dword [rdi + 0x4c]
movss dword [rbp + 0xc], xmm1
movss xmm0, dword [rdi + 0x50]
movss dword [rbp + 0x10], xmm0
movss xmm1, dword [rdi + 0x54]
movss dword [rbp + 0x14], xmm1
movss xmm0, dword [rdi + 0x58]
movss dword [rbp + 0x18], xmm0
movss xmm1, dword [rdi + 0x5c]
movss dword [rbp + 0x1c], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x40], xmm0
xor edi, edi
mov qword [rbp + 0x50], rdi
mov edx, 4
lea rcx, [rbp + 0x40]
call fcn.140020aa0
mov rdx, qword [rbp + 0x40]
lea rcx, [rbp - 0x10]
nop
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
lea rax, [rbp + 0x20]
cmp rcx, rax
jne 0x14003f9d0
mov qword [rbp + 0x48], rdx
mov qword [rsp + 0x50], rbx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
lea rax, [rsi + 0x20]
sub rax, rsi
mov qword [rsp + 0x20], rax
mov rbx, rax
sar rbx, 3
movabs rax, 0x1fffffffffffffff
test rbx, rbx
je 0x14003faa4
cmp rbx, rax
ja 0x14004060d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x14003fa45
mov rax, rdi
jmp 0x14003fa82
cmp rbx, 0x1000
jb 0x14003fa7a
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140040613
call fcn.1400c65a0
mov rcx, rax
test rax, rax
je 0x140040619
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14003fa82
mov rcx, rbx
call fcn.1400c65a0
mov qword [rsp + 0x30], rax
add rbx, rax
mov qword [rsp + 0x40], rbx
mov r8, qword [rsp + 0x20]
mov rdx, rsi
mov rcx, rax
call fcn.1400f9290
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140040650
xorps xmm0, xmm0
mov qword [rsp + 0x40], rdi
movdqu xmmword [rsp + 0x30], xmm0
test al, al
je 0x14003fca8
mov rcx, qword [rbp + 0x90]
sub rcx, qword [rbp + 0x88]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x14003fb42
lea rcx, [rsp + 0x30]
call fcn.140020aa0
mov rcx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x90]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x14003fb3d
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
cmp rcx, r8
jne 0x14003fb20
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140040800
nop
lea rcx, [rbp + 0x40]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x58]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x70]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x88]
call fcn.14001fd50
nop
test r13, r13
je 0x14003fbc6
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x14003fbbd
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405d1
mov rcx, r13
call fcn.1400c681c
nop
test r15, r15
je 0x14003fc0c
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x14003fc03
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405d7
mov rcx, r15
call fcn.1400c681c
nop
test r14, r14
je 0x14003fc52
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x14003fc49
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405dd
mov rcx, r14
call fcn.1400c681c
nop
test rsi, rsi
je 0x14003fc94
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003fc8b
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405e3
mov rcx, rsi
call fcn.1400c681c
nop
lea rcx, [rbp + 0xa0]
call fcn.14001fd50
mov rax, rbx
jmp 0x14004057d
lea rax, [r15 + 0x20]
sub rax, r15
mov qword [rsp + 0x20], rax
mov rbx, rax
sar rbx, 3
test rbx, rbx
je 0x14003fd48
movabs rax, 0x1fffffffffffffff
cmp rbx, rax
ja 0x14004060d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x14003fce9
mov rax, rdi
jmp 0x14003fd26
cmp rbx, 0x1000
jb 0x14003fd1e
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140040613
call fcn.1400c65a0
mov rcx, rax
test rax, rax
je 0x140040619
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14003fd26
mov rcx, rbx
call fcn.1400c65a0
mov qword [rsp + 0x30], rax
add rbx, rax
mov qword [rsp + 0x40], rbx
mov r8, qword [rsp + 0x20]
mov rdx, r15
mov rcx, rax
call fcn.1400f9290
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140040650
xorps xmm0, xmm0
mov qword [rsp + 0x40], rdi
movdqu xmmword [rsp + 0x30], xmm0
test al, al
je 0x14003ff28
mov rcx, qword [rbp + 0x60]
sub rcx, qword [rbp + 0x58]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x14003fdd2
lea rcx, [rsp + 0x30]
call fcn.140020aa0
mov rcx, qword [rbp + 0x58]
mov r8, qword [rbp + 0x60]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x14003fdcd
nop dword [rax]
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
cmp rcx, r8
jne 0x14003fdb0
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140040800
nop
lea rcx, [rbp + 0x40]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x58]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x70]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x88]
call fcn.14001fd50
nop
test r13, r13
je 0x14003fe56
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x14003fe4d
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405e9
mov rcx, r13
call fcn.1400c681c
nop
test r15, r15
je 0x14003fe9c
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x14003fe93
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405ef
mov rcx, r15
call fcn.1400c681c
nop
test r14, r14
je 0x14003fee2
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x14003fed9
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405f5
mov rcx, r14
call fcn.1400c681c
nop
test rsi, rsi
je 0x14003fc94
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003fc8b
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405ad
jmp 0x14003fc8b
lea rax, [r14 + 0x20]
sub rax, r14
mov qword [rsp + 0x20], rax
mov rbx, rax
sar rbx, 3
test rbx, rbx
je 0x14003ffc8
movabs rax, 0x1fffffffffffffff
cmp rbx, rax
ja 0x14004060d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x14003ff69
mov rax, rdi
jmp 0x14003ffa6
cmp rbx, 0x1000
jb 0x14003ff9e
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140040613
call fcn.1400c65a0
mov rcx, rax
test rax, rax
je 0x140040619
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14003ffa6
mov rcx, rbx
call fcn.1400c65a0
mov qword [rsp + 0x30], rax
add rbx, rax
mov qword [rsp + 0x40], rbx
mov r8, qword [rsp + 0x20]
mov rdx, r14
mov rcx, rax
call fcn.1400f9290
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140040650
xorps xmm0, xmm0
mov qword [rsp + 0x40], rdi
movdqu xmmword [rsp + 0x30], xmm0
test al, al
je 0x1400401a8
mov rcx, qword [rbp + 0x78]
sub rcx, qword [rbp + 0x70]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140040052
lea rcx, [rsp + 0x30]
call fcn.140020aa0
mov rcx, qword [rbp + 0x70]
mov r8, qword [rbp + 0x78]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x14004004d
nop dword [rax]
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
cmp rcx, r8
jne 0x140040030
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140040800
nop
lea rcx, [rbp + 0x40]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x58]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x70]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x88]
call fcn.14001fd50
nop
test r13, r13
je 0x1400400d6
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x1400400cd
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405fb
mov rcx, r13
call fcn.1400c681c
nop
test r15, r15
je 0x14004011c
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x140040113
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040601
mov rcx, r15
call fcn.1400c681c
nop
test r14, r14
je 0x140040162
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140040159
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040607
mov rcx, r14
call fcn.1400c681c
nop
test rsi, rsi
je 0x14003fc94
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003fc8b
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405b3
jmp 0x14003fc8b
lea rax, [r13 + 0x20]
sub rax, r13
mov qword [rsp + 0x20], rax
mov rbx, rax
sar rbx, 3
test rbx, rbx
je 0x140040248
movabs rax, 0x1fffffffffffffff
cmp rbx, rax
ja 0x14004060d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x1400401e9
mov rax, rdi
jmp 0x140040226
cmp rbx, 0x1000
jb 0x14004021e
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140040613
call fcn.1400c65a0
mov rcx, rax
test rax, rax
je 0x140040619
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140040226
mov rcx, rbx
call fcn.1400c65a0
mov qword [rsp + 0x30], rax
add rbx, rax
mov qword [rsp + 0x40], rbx
mov r8, qword [rsp + 0x20]
mov rdx, r13
mov rcx, rax
call fcn.1400f9290
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140040650
test al, al
je 0x140040428
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
mov rcx, qword [rbp + 0x48]
sub rcx, qword [rbp + 0x40]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x1400402d2
lea rcx, [rsp + 0x30]
call fcn.140020aa0
mov rcx, qword [rbp + 0x40]
mov r8, qword [rbp + 0x48]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x1400402cd
nop dword [rax]
mov eax, dword [rcx]
mov dword [rdx], eax
mov eax, dword [rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + 8]
mov dword [rdx + 8], eax
add rdx, 0xc
add rcx, 0xc
cmp rcx, r8
jne 0x1400402b0
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140040800
nop
lea rcx, [rbp + 0x40]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x58]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x70]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x88]
call fcn.14001fd50
nop
test r13, r13
je 0x140040356
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x14004034d
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004061f
mov rcx, r13
call fcn.1400c681c
nop
test r15, r15
je 0x14004039c
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x140040393
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040625
mov rcx, r15
call fcn.1400c681c
nop
test r14, r14
je 0x1400403e2
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x1400403d9
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004062b
mov rcx, r14
call fcn.1400c681c
nop
test rsi, rsi
je 0x14003fc94
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003fc8b
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405b9
jmp 0x14003fc8b
mov rbx, qword [rsp + 0x58]
mov qword [rbx], rdi
mov dword [rbx + 8], edi
lea rcx, [rbp + 0x40]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x58]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x70]
call fcn.14001fd50
nop
lea rcx, [rbp + 0x88]
call fcn.14001fd50
nop
test r13, r13
je 0x1400404a4
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x14004049b
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040631
mov rcx, r13
call fcn.1400c681c
nop
test r15, r15
je 0x1400404ea
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x1400404e1
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040637
mov rcx, r15
call fcn.1400c681c
nop
test r14, r14
je 0x140040530
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140040527
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004063d
mov rcx, r14
call fcn.1400c681c
nop
test rsi, rsi
je 0x14003fc94
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14003fc8b
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400405bf
jmp 0x14003fc8b
xor eax, eax
mov qword [rdx], rax
mov dword [rdx + 8], eax
mov rax, rdx
mov rcx, qword [rbp + 0x120]
xor rcx, rsp
call fcn.1400c6580
mov rbx, qword [rsp + 0x280]
add rsp, 0x230
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140020be0
nop
call fcn.1400ccb24
int3
call fcn.1400ccb24
int3
call fcn.1400ccb24
int3
call fcn.1400ccb24
nop
call fcn.140020be0
nop
call fcn.140020be0
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400060e0
int3
call fcn.140001c40
int3
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
nop
call fcn.1400ccb24
int3