Function at 0x140045fc0
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 [0x140166100]
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 0x1400474b2
cmp qword [rcx + 8], 0
je 0x1400474b2
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14018bec8], eax
jle 0x1400460a5
lea rcx, [0x14018bec8]
call fcn.1400d0698
cmp dword [0x14018bec8], 0xffffffff
jne 0x1400460a5
call fcn.1400cf74c
mov edx, eax
mov dword [0x14018d264], 0xffffffff
mov dword [0x14018bee4], eax
mov ecx, 1
lea r8, [0x14018bee4]
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 0x140046070
mov dword [0x14018bee0], 0x270
lea rcx, [0x14018bec8]
call fcn.1400d062c
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.140045b00
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 0x1400474e7
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.140041200
cmp r15, 1
jbe 0x1400474e7
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.140041200
cmp r15, 2
jbe 0x1400474e7
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.140041200
cmp r15, 3
jbe 0x1400474e7
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.140041200
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xd8], xmm0
mov ecx, 0x20
call fcn.1400d0340
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.140103030
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.140041200
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.140041200
cmp r15, 5
jbe 0x140047505
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.140041200
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.140041200
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xf0], xmm0
mov ecx, 0x20
call fcn.1400d0340
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.140103030
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.140041200
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.140041200
cmp r15, 7
jbe 0x14004750b
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.140041200
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.140041200
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x108], xmm0
mov ecx, 0x20
call fcn.1400d0340
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.140103030
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.140041200
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.140041200
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.140041200
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.140041200
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xb8], xmm0
mov ecx, 0x20
call fcn.1400d0340
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.140103030
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.1400223d0
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 0x140046690
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.1400223d0
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 0x140046770
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.1400223d0
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 0x140046840
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.1400223d0
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 0x140046910
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 0x1400469e4
cmp rbx, rax
ja 0x14004754d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x140046985
mov rax, rdi
jmp 0x1400469c2
cmp rbx, 0x1000
jb 0x1400469ba
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140047553
call fcn.1400d0340
mov rcx, rax
test rax, rax
je 0x140047559
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400469c2
mov rcx, rbx
call fcn.1400d0340
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.140103030
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140047590
xorps xmm0, xmm0
mov qword [rsp + 0x40], rdi
movdqu xmmword [rsp + 0x30], xmm0
test al, al
je 0x140046be8
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 0x140046a82
lea rcx, [rsp + 0x30]
call fcn.1400223d0
mov rcx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x90]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x140046a7d
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 0x140046a60
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140047740
nop
lea rcx, [rbp + 0x40]
call fcn.140021540
nop
lea rcx, [rbp + 0x58]
call fcn.140021540
nop
lea rcx, [rbp + 0x70]
call fcn.140021540
nop
lea rcx, [rbp + 0x88]
call fcn.140021540
nop
test r13, r13
je 0x140046b06
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x140046afd
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047511
mov rcx, r13
call fcn.1400d05bc
nop
test r15, r15
je 0x140046b4c
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x140046b43
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047517
mov rcx, r15
call fcn.1400d05bc
nop
test r14, r14
je 0x140046b92
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140046b89
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004751d
mov rcx, r14
call fcn.1400d05bc
nop
test rsi, rsi
je 0x140046bd4
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140046bcb
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047523
mov rcx, rsi
call fcn.1400d05bc
nop
lea rcx, [rbp + 0xa0]
call fcn.140021540
mov rax, rbx
jmp 0x1400474bd
lea rax, [r15 + 0x20]
sub rax, r15
mov qword [rsp + 0x20], rax
mov rbx, rax
sar rbx, 3
test rbx, rbx
je 0x140046c88
movabs rax, 0x1fffffffffffffff
cmp rbx, rax
ja 0x14004754d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x140046c29
mov rax, rdi
jmp 0x140046c66
cmp rbx, 0x1000
jb 0x140046c5e
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140047553
call fcn.1400d0340
mov rcx, rax
test rax, rax
je 0x140047559
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140046c66
mov rcx, rbx
call fcn.1400d0340
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.140103030
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140047590
xorps xmm0, xmm0
mov qword [rsp + 0x40], rdi
movdqu xmmword [rsp + 0x30], xmm0
test al, al
je 0x140046e68
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 0x140046d12
lea rcx, [rsp + 0x30]
call fcn.1400223d0
mov rcx, qword [rbp + 0x58]
mov r8, qword [rbp + 0x60]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x140046d0d
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 0x140046cf0
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140047740
nop
lea rcx, [rbp + 0x40]
call fcn.140021540
nop
lea rcx, [rbp + 0x58]
call fcn.140021540
nop
lea rcx, [rbp + 0x70]
call fcn.140021540
nop
lea rcx, [rbp + 0x88]
call fcn.140021540
nop
test r13, r13
je 0x140046d96
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x140046d8d
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047529
mov rcx, r13
call fcn.1400d05bc
nop
test r15, r15
je 0x140046ddc
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x140046dd3
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004752f
mov rcx, r15
call fcn.1400d05bc
nop
test r14, r14
je 0x140046e22
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140046e19
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047535
mov rcx, r14
call fcn.1400d05bc
nop
test rsi, rsi
je 0x140046bd4
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140046bcb
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400474ed
jmp 0x140046bcb
lea rax, [r14 + 0x20]
sub rax, r14
mov qword [rsp + 0x20], rax
mov rbx, rax
sar rbx, 3
test rbx, rbx
je 0x140046f08
movabs rax, 0x1fffffffffffffff
cmp rbx, rax
ja 0x14004754d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x140046ea9
mov rax, rdi
jmp 0x140046ee6
cmp rbx, 0x1000
jb 0x140046ede
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140047553
call fcn.1400d0340
mov rcx, rax
test rax, rax
je 0x140047559
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140046ee6
mov rcx, rbx
call fcn.1400d0340
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.140103030
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140047590
xorps xmm0, xmm0
mov qword [rsp + 0x40], rdi
movdqu xmmword [rsp + 0x30], xmm0
test al, al
je 0x1400470e8
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 0x140046f92
lea rcx, [rsp + 0x30]
call fcn.1400223d0
mov rcx, qword [rbp + 0x70]
mov r8, qword [rbp + 0x78]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x140046f8d
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 0x140046f70
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140047740
nop
lea rcx, [rbp + 0x40]
call fcn.140021540
nop
lea rcx, [rbp + 0x58]
call fcn.140021540
nop
lea rcx, [rbp + 0x70]
call fcn.140021540
nop
lea rcx, [rbp + 0x88]
call fcn.140021540
nop
test r13, r13
je 0x140047016
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x14004700d
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004753b
mov rcx, r13
call fcn.1400d05bc
nop
test r15, r15
je 0x14004705c
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x140047053
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047541
mov rcx, r15
call fcn.1400d05bc
nop
test r14, r14
je 0x1400470a2
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140047099
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047547
mov rcx, r14
call fcn.1400d05bc
nop
test rsi, rsi
je 0x140046bd4
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140046bcb
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400474f3
jmp 0x140046bcb
lea rax, [r13 + 0x20]
sub rax, r13
mov qword [rsp + 0x20], rax
mov rbx, rax
sar rbx, 3
test rbx, rbx
je 0x140047188
movabs rax, 0x1fffffffffffffff
cmp rbx, rax
ja 0x14004754d
lea rbx, [rbx*8]
test rbx, rbx
jne 0x140047129
mov rax, rdi
jmp 0x140047166
cmp rbx, 0x1000
jb 0x14004715e
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x140047553
call fcn.1400d0340
mov rcx, rax
test rax, rax
je 0x140047559
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140047166
mov rcx, rbx
call fcn.1400d0340
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.140103030
mov qword [rsp + 0x38], rbx
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140047590
test al, al
je 0x140047368
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 0x140047212
lea rcx, [rsp + 0x30]
call fcn.1400223d0
mov rcx, qword [rbp + 0x40]
mov r8, qword [rbp + 0x48]
mov rdx, qword [rsp + 0x30]
cmp rcx, r8
je 0x14004720d
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 0x1400471f0
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.140047740
nop
lea rcx, [rbp + 0x40]
call fcn.140021540
nop
lea rcx, [rbp + 0x58]
call fcn.140021540
nop
lea rcx, [rbp + 0x70]
call fcn.140021540
nop
lea rcx, [rbp + 0x88]
call fcn.140021540
nop
test r13, r13
je 0x140047296
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x14004728d
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004755f
mov rcx, r13
call fcn.1400d05bc
nop
test r15, r15
je 0x1400472dc
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x1400472d3
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047565
mov rcx, r15
call fcn.1400d05bc
nop
test r14, r14
je 0x140047322
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140047319
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004756b
mov rcx, r14
call fcn.1400d05bc
nop
test rsi, rsi
je 0x140046bd4
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140046bcb
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400474f9
jmp 0x140046bcb
mov rbx, qword [rsp + 0x58]
mov qword [rbx], rdi
mov dword [rbx + 8], edi
lea rcx, [rbp + 0x40]
call fcn.140021540
nop
lea rcx, [rbp + 0x58]
call fcn.140021540
nop
lea rcx, [rbp + 0x70]
call fcn.140021540
nop
lea rcx, [rbp + 0x88]
call fcn.140021540
nop
test r13, r13
je 0x1400473e4
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
mov rax, r13
cmp rdx, 0x1000
jb 0x1400473db
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047571
mov rcx, r13
call fcn.1400d05bc
nop
test r15, r15
je 0x14004742a
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
mov rax, r15
cmp rdx, 0x1000
jb 0x140047421
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140047577
mov rcx, r15
call fcn.1400d05bc
nop
test r14, r14
je 0x140047470
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
mov rax, r14
cmp rdx, 0x1000
jb 0x140047467
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004757d
mov rcx, r14
call fcn.1400d05bc
nop
test rsi, rsi
je 0x140046bd4
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140046bcb
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400474ff
jmp 0x140046bcb
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.1400d0320
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.140022510
nop
call fcn.1400d68c4
int3
call fcn.1400d68c4
int3
call fcn.1400d68c4
int3
call fcn.1400d68c4
nop
call fcn.140022510
nop
call fcn.140022510
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.140006580
int3
call fcn.140002090
int3
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
nop
call fcn.1400d68c4
int3