Function at 0x140045540
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 - 0x120]
sub rsp, 0x220
mov rax, qword [0x140166080]
xor rax, rsp
mov qword [rbp + 0x118], rax
mov rbx, r9
mov r14, r8
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x78], rdx
mov rdi, rcx
test rcx, rcx
je 0x14004697f
cmp qword [rcx + 8], 0
je 0x14004697f
mov r15d, 4
mov rax, qword gs:[0x58]
mov rsi, qword [rax]
mov eax, dword [r15 + rsi]
cmp dword [0x14018bd30], eax
jle 0x1400455d6
lea rcx, [0x14018bd30]
call fcn.1400d0878
cmp dword [0x14018bd30], 0xffffffff
jne 0x1400455d6
lea rcx, [0x14018bd30]
call fcn.1400d080c
mov eax, dword [r15 + rsi]
cmp dword [0x14018d0d0], eax
jle 0x140045655
lea rcx, [0x14018d0d0]
call fcn.1400d0878
cmp dword [0x14018d0d0], 0xffffffff
jne 0x140045655
call fcn.1400cfa7c
mov edx, eax
mov dword [0x14018d0c4], 0xffffffff
mov dword [0x14018bd44], eax
mov ecx, 1
lea r8, [0x14018bd44]
nop word [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 0x140045620
mov dword [0x14018bd40], 0x270
lea rcx, [0x14018d0d0]
call fcn.1400d080c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xb0], rax
mov rax, qword [rbp + 0x188]
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 + 0x180]
lea rdx, [rbp + 0xa0]
mov rcx, rdi
call fcn.140045080
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xb8], xmm0
mov qword [rbp + 0xc8], rax
mov rcx, qword [rbp + 0xa8]
mov rdi, qword [rbp + 0xa0]
sub rcx, rdi
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov r13, rdx
sar r13, 1
mov rax, r13
shr rax, 0x3f
add r13, rax
je 0x1400469b4
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 + 0x50]
mov rcx, r14
call fcn.140040ae0
cmp r13, 1
jbe 0x1400469b4
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 + 0x58]
call fcn.140040ae0
cmp r13, 2
jbe 0x1400469b4
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 + 0x60]
call fcn.140040ae0
cmp r13, 3
jbe 0x1400469b4
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 + 0x68]
call fcn.140040ae0
mov edx, 4
call fcn.140021cf0
mov rsi, rax
mov qword [rbp + 0xb8], rax
lea r12, [rax + 0x20]
mov qword [rbp + 0xc8], r12
mov r8d, 0x20
lea rdx, [rsp + 0x50]
mov rcx, rax
call fcn.1400d2930
mov qword [rbp + 0xc0], r12
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xd0], xmm0
mov qword [rbp + 0xe0], 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, [rsp + 0x30]
mov rcx, r14
call fcn.140040ae0
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, [rsp + 0x38]
call fcn.140040ae0
cmp r13, 5
jbe 0x1400469d2
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, [rsp + 0x40]
call fcn.140040ae0
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, [rsp + 0x48]
call fcn.140040ae0
mov edx, 4
call fcn.140021cf0
mov r14, rax
mov qword [rbp + 0xd0], rax
lea r15, [rax + 0x20]
mov qword [rbp + 0xe0], r15
mov r8d, 0x20
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.1400d2930
mov qword [rbp + 0xd8], r15
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xe8], xmm0
mov qword [rbp + 0xf8], 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 + 0x50]
mov rcx, qword [rsp + 0x70]
call fcn.140040ae0
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 + 0x58]
call fcn.140040ae0
cmp r13, 7
jbe 0x1400469d8
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 + 0x60]
call fcn.140040ae0
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 + 0x68]
call fcn.140040ae0
mov edx, 4
call fcn.140021cf0
mov r15, rax
mov qword [rbp + 0xe8], rax
lea r13, [rax + 0x20]
mov qword [rbp + 0xf8], r13
mov r8d, 0x20
lea rdx, [rsp + 0x50]
mov rcx, rax
call fcn.1400d2930
mov qword [rbp + 0xf0], r13
xorps xmm0, xmm0
movups xmmword [rbp + 0x100], xmm0
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, [rsp + 0x30]
mov rcx, qword [rsp + 0x70]
call fcn.140040ae0
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, [rsp + 0x38]
call fcn.140040ae0
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, [rsp + 0x40]
call fcn.140040ae0
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, [rsp + 0x48]
call fcn.140040ae0
mov edx, 4
call fcn.140021cf0
mov r13, rax
mov qword [rbp + 0x100], rax
add rax, 0x20
mov qword [rbp + 0x110], rax
mov r8d, 0x20
lea rdx, [rsp + 0x30]
mov rcx, r13
call fcn.1400d2930
lea rax, [r13 + 0x20]
mov qword [rbp + 0x108], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], rax
movss xmm0, dword [rdi]
movss dword [rbp - 0x80], xmm0
movss xmm1, dword [rdi + 4]
movss dword [rbp - 0x7c], xmm1
movss xmm0, dword [rdi + 8]
movss dword [rbp - 0x78], xmm0
movss xmm1, dword [rdi + 0xc]
movss dword [rbp - 0x74], xmm1
movss xmm0, dword [rdi + 0x10]
movss dword [rbp - 0x70], xmm0
movss xmm1, dword [rdi + 0x14]
movss dword [rbp - 0x6c], xmm1
movss xmm0, dword [rdi + 0x18]
movss dword [rbp - 0x68], xmm0
movss xmm1, dword [rdi + 0x1c]
movss dword [rbp - 0x64], xmm1
movss xmm0, dword [rdi + 0x20]
movss dword [rbp - 0x60], xmm0
movss xmm1, dword [rdi + 0x24]
movss dword [rbp - 0x5c], xmm1
movss xmm0, dword [rdi + 0x28]
movss dword [rbp - 0x58], xmm0
movss xmm1, dword [rdi + 0x2c]
movss dword [rbp - 0x54], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x88], xmm0
mov qword [rbp + 0x98], rax
lea edx, [rax + 4]
call fcn.1400220d0
mov rdx, rax
mov qword [rbp + 0x88], rax
mov qword [rbp + 0x90], rax
add rax, 0x30
mov qword [rbp + 0x98], rax
lea rcx, [rbp - 0x78]
lea rax, [rbp - 0x78]
mov r8, rdx
sub r8, rax
nop dword [rax]
mov eax, dword [rcx - 8]
mov dword [rdx], eax
mov eax, dword [rcx - 4]
mov dword [r8 + rcx + 4], eax
mov eax, dword [rcx]
mov dword [r8 + rcx + 8], eax
add rdx, 0xc
lea rcx, [rcx + 0xc]
lea rax, [rcx - 8]
lea r9, [rbp - 0x50]
cmp rax, r9
jne 0x140045c20
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 - 0x50], xmm0
movss xmm1, dword [rdi + 4]
movss dword [rbp - 0x4c], xmm1
movss xmm0, dword [rdi + 8]
movss dword [rbp - 0x48], xmm0
movss xmm1, dword [rdi + 0xc]
movss dword [rbp - 0x44], xmm1
movss xmm0, dword [rdi + 0x10]
movss dword [rbp - 0x40], xmm0
movss xmm1, dword [rdi + 0x14]
movss dword [rbp - 0x3c], xmm1
movss xmm0, dword [rdi + 0x3c]
movss dword [rbp - 0x38], xmm0
movss xmm1, dword [rdi + 0x40]
movss dword [rbp - 0x34], xmm1
movss xmm0, dword [rdi + 0x44]
movss dword [rbp - 0x30], xmm0
movss xmm1, dword [rdi + 0x30]
movss dword [rbp - 0x2c], xmm1
movss xmm0, dword [rdi + 0x34]
movss dword [rbp - 0x28], xmm0
movss xmm1, dword [rdi + 0x38]
movss dword [rbp - 0x24], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rax
lea edx, [rax + 4]
call fcn.1400220d0
mov rcx, rax
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rax
add rax, 0x30
mov qword [rbp + 0x80], rax
lea r8, [rbp - 0x4c]
sub r8, rcx
lea rdx, [rbp - 0x50]
sub rdx, rcx
mov eax, dword [rdx + rcx]
mov dword [rcx], eax
mov eax, dword [rcx + rdx + 4]
mov dword [rcx + 4], eax
mov eax, dword [rcx + r8 + 4]
mov dword [rcx + 8], eax
add rcx, 0xc
lea rax, [rdx + rcx]
lea r9, [rbp - 0x20]
cmp rax, r9
jne 0x140045d12
mov qword [rbp + 0x78], rcx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], rax
movss xmm0, dword [rdi + 0x18]
movss dword [rbp - 0x20], xmm0
movss xmm1, dword [rdi + 0x1c]
movss dword [rbp - 0x1c], xmm1
movss xmm0, dword [rdi + 0x20]
movss dword [rbp - 0x18], xmm0
movss xmm1, dword [rdi + 0x24]
movss dword [rbp - 0x14], xmm1
movss xmm0, dword [rdi + 0x28]
movss dword [rbp - 0x10], xmm0
movss xmm1, dword [rdi + 0x2c]
movss dword [rbp - 0xc], xmm1
movss xmm0, dword [rdi + 0x54]
movss dword [rbp - 8], xmm0
movss xmm1, dword [rdi + 0x58]
movss dword [rbp - 4], xmm1
movss xmm0, dword [rdi + 0x5c]
movss dword [rbp], xmm0
movss xmm1, dword [rdi + 0x48]
movss dword [rbp + 4], xmm1
movss xmm0, dword [rdi + 0x4c]
movss dword [rbp + 8], xmm0
movss xmm1, dword [rdi + 0x50]
movss dword [rbp + 0xc], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x58], xmm0
mov qword [rbp + 0x68], rax
lea edx, [rax + 4]
call fcn.1400220d0
mov rcx, rax
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], rax
add rax, 0x30
mov qword [rbp + 0x68], rax
lea r8, [rbp - 0x1c]
sub r8, rcx
lea rdx, [rbp - 0x20]
sub rdx, rcx
nop word [rax + rax]
mov eax, dword [rdx + rcx]
mov dword [rcx], eax
mov eax, dword [rdx + rcx + 4]
mov dword [rcx + 4], eax
mov eax, dword [r8 + rcx + 4]
mov dword [rcx + 8], eax
add rcx, 0xc
lea rax, [rdx + rcx]
lea r9, [rbp + 0x10]
cmp rax, r9
jne 0x140045e00
mov qword [rbp + 0x60], rcx
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 + 0x14], xmm1
movss xmm0, dword [rdi + 0x38]
movss dword [rbp + 0x18], xmm0
movss xmm1, dword [rdi + 0x3c]
movss dword [rbp + 0x1c], xmm1
movss xmm0, dword [rdi + 0x40]
movss dword [rbp + 0x20], xmm0
movss xmm1, dword [rdi + 0x44]
movss dword [rbp + 0x24], xmm1
movss xmm0, dword [rdi + 0x48]
movss dword [rbp + 0x28], xmm0
movss xmm1, dword [rdi + 0x4c]
movss dword [rbp + 0x2c], xmm1
movss xmm0, dword [rdi + 0x50]
movss dword [rbp + 0x30], xmm0
movss xmm1, dword [rdi + 0x54]
movss dword [rbp + 0x34], xmm1
movss xmm0, dword [rdi + 0x58]
movss dword [rbp + 0x38], xmm0
movss xmm1, dword [rdi + 0x5c]
movss dword [rbp + 0x3c], xmm1
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x40], xmm0
xor edi, edi
mov qword [rbp + 0x50], rdi
lea edx, [rax + 4]
call fcn.1400220d0
mov rcx, rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
add rax, 0x30
mov qword [rbp + 0x50], rax
lea r8, [rbp + 0x14]
sub r8, rcx
lea rdx, [rbp + 0x10]
sub rdx, rcx
nop word [rax + rax]
mov eax, dword [rdx + rcx]
mov dword [rcx], eax
mov eax, dword [rdx + rcx + 4]
mov dword [rcx + 4], eax
mov eax, dword [r8 + rcx + 4]
mov dword [rcx + 8], eax
add rcx, 0xc
lea rax, [rdx + rcx]
lea r9, [rbp + 0x40]
cmp rax, r9
jne 0x140045ef0
mov qword [rbp + 0x48], rcx
mov qword [rsp + 0x70], rbx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov edx, 4
call fcn.140021cf0
mov qword [rsp + 0x50], rax
lea rbx, [rax + 0x20]
mov qword [rsp + 0x60], rbx
mov r8d, 0x20
mov rdx, rsi
mov rcx, rax
call fcn.1400d2930
mov qword [rsp + 0x58], rbx
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.140046a60
xorps xmm0, xmm0
test al, al
je 0x140046178
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
mov rcx, qword [rbp + 0x90]
sub rcx, qword [rbp + 0x88]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rbx, rdx
sar rbx, 1
mov rax, rbx
shr rax, 0x3f
add rbx, rax
je 0x140046012
movabs rax, 0x1555555555555555
cmp rbx, rax
ja 0x1400469de
mov rdx, rbx
call fcn.1400220d0
mov rdx, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
lea rax, [rbx + rbx*2]
lea rcx, [rdx + rax*4]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x90]
cmp rcx, r8
je 0x14004600d
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
cmp rcx, r8
jne 0x140045ff0
mov qword [rsp + 0x38], rdx
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.140046c50
nop
lea rcx, [rbp + 0x40]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x58]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x70]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x88]
call fcn.1400212f0
nop
test r13, r13
je 0x140046096
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x14004608d
add rdx, 0x27
mov rcx, qword [r13 - 8]
sub r13, rcx
lea rax, [r13 - 8]
cmp rax, 0x1f
ja 0x1400469e4
mov r13, rcx
mov rcx, r13
call fcn.1400d079c
nop
test r15, r15
je 0x1400460dc
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1400460d3
add rdx, 0x27
mov rcx, qword [r15 - 8]
sub r15, rcx
lea rax, [r15 - 8]
cmp rax, 0x1f
ja 0x1400469ea
mov r15, rcx
mov rcx, r15
call fcn.1400d079c
nop
test r14, r14
je 0x140046122
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x140046119
add rdx, 0x27
mov rcx, qword [r14 - 8]
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x1400469f0
mov r14, rcx
mov rcx, r14
call fcn.1400d079c
nop
test rsi, rsi
je 0x140046164
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
cmp rdx, 0x1000
jb 0x14004615b
add rdx, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x1400469f6
mov rsi, rcx
mov rcx, rsi
call fcn.1400d079c
nop
lea rcx, [rbp + 0xa0]
call fcn.1400212f0
mov rax, rbx
jmp 0x14004698a
movdqu xmmword [rsp + 0x50], xmm0
mov edx, 4
call fcn.140021cf0
mov qword [rsp + 0x50], rax
lea rbx, [rax + 0x20]
mov qword [rsp + 0x60], rbx
mov r8d, 0x20
mov rdx, r15
mov rcx, rax
call fcn.1400d2930
mov qword [rsp + 0x58], rbx
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.140046a60
xorps xmm0, xmm0
test al, al
je 0x1400463b8
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
mov rcx, qword [rbp + 0x60]
sub rcx, qword [rbp + 0x58]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rbx, rdx
sar rbx, 1
mov rax, rbx
shr rax, 0x3f
add rbx, rax
je 0x140046265
movabs rax, 0x1555555555555555
cmp rbx, rax
ja 0x1400469fc
mov rdx, rbx
call fcn.1400220d0
mov r8, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
lea rcx, [rbx + rbx*2]
lea rdx, [rax + rcx*4]
mov qword [rsp + 0x40], rdx
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rbp + 0x60]
cmp rcx, rdx
je 0x140046260
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [r8], eax
mov eax, dword [rcx + 4]
mov dword [r8 + 4], eax
mov eax, dword [rcx + 8]
mov dword [r8 + 8], eax
add r8, 0xc
add rcx, 0xc
cmp rcx, rdx
jne 0x140046240
mov qword [rsp + 0x38], r8
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.140046c50
nop
lea rcx, [rbp + 0x40]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x58]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x70]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x88]
call fcn.1400212f0
nop
test r13, r13
je 0x1400462e9
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1400462e0
add rdx, 0x27
mov rcx, qword [r13 - 8]
sub r13, rcx
lea rax, [r13 - 8]
cmp rax, 0x1f
ja 0x140046a02
mov r13, rcx
mov rcx, r13
call fcn.1400d079c
nop
test r15, r15
je 0x14004632f
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x140046326
add rdx, 0x27
mov rcx, qword [r15 - 8]
sub r15, rcx
lea rax, [r15 - 8]
cmp rax, 0x1f
ja 0x140046a08
mov r15, rcx
mov rcx, r15
call fcn.1400d079c
nop
test r14, r14
je 0x140046375
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x14004636c
add rdx, 0x27
mov rcx, qword [r14 - 8]
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x140046a0e
mov r14, rcx
mov rcx, r14
call fcn.1400d079c
nop
test rsi, rsi
je 0x140046164
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
cmp rdx, 0x1000
jb 0x14004615b
add rdx, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x1400469ba
jmp 0x140046158
movdqu xmmword [rsp + 0x50], xmm0
mov edx, 4
call fcn.140021cf0
mov qword [rsp + 0x50], rax
lea rbx, [rax + 0x20]
mov qword [rsp + 0x60], rbx
mov r8d, 0x20
mov rdx, r14
mov rcx, rax
call fcn.1400d2930
mov qword [rsp + 0x58], rbx
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.140046a60
xorps xmm0, xmm0
test al, al
je 0x1400465f8
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rdi
mov rcx, qword [rbp + 0x78]
sub rcx, qword [rbp + 0x70]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov rbx, rdx
sar rbx, 1
mov rax, rbx
shr rax, 0x3f
add rbx, rax
je 0x1400464a5
movabs rax, 0x1555555555555555
cmp rbx, rax
ja 0x140046a14
mov rdx, rbx
call fcn.1400220d0
mov r8, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
lea rcx, [rbx + rbx*2]
lea rdx, [rax + rcx*4]
mov qword [rsp + 0x40], rdx
mov rcx, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x78]
cmp rcx, rdx
je 0x1400464a0
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [r8], eax
mov eax, dword [rcx + 4]
mov dword [r8 + 4], eax
mov eax, dword [rcx + 8]
mov dword [r8 + 8], eax
add r8, 0xc
add rcx, 0xc
cmp rcx, rdx
jne 0x140046480
mov qword [rsp + 0x38], r8
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.140046c50
nop
lea rcx, [rbp + 0x40]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x58]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x70]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x88]
call fcn.1400212f0
nop
test r13, r13
je 0x140046529
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x140046520
add rdx, 0x27
mov rcx, qword [r13 - 8]
sub r13, rcx
lea rax, [r13 - 8]
cmp rax, 0x1f
ja 0x140046a1a
mov r13, rcx
mov rcx, r13
call fcn.1400d079c
nop
test r15, r15
je 0x14004656f
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x140046566
add rdx, 0x27
mov rcx, qword [r15 - 8]
sub r15, rcx
lea rax, [r15 - 8]
cmp rax, 0x1f
ja 0x140046a20
mov r15, rcx
mov rcx, r15
call fcn.1400d079c
nop
test r14, r14
je 0x1400465b5
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1400465ac
add rdx, 0x27
mov rcx, qword [r14 - 8]
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x140046a26
mov r14, rcx
mov rcx, r14
call fcn.1400d079c
nop
test rsi, rsi
je 0x140046164
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
cmp rdx, 0x1000
jb 0x14004615b
add rdx, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x1400469c0
jmp 0x140046158
movdqu xmmword [rsp + 0x50], xmm0
mov edx, 4
call fcn.140021cf0
mov qword [rsp + 0x50], rax
lea rbx, [rax + 0x20]
mov qword [rsp + 0x60], rbx
mov r8d, 0x20
mov rdx, r13
mov rcx, rax
call fcn.1400d2930
mov qword [rsp + 0x58], rbx
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.140046a60
test al, al
je 0x140046838
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
mov rbx, rdx
sar rbx, 1
mov rax, rbx
shr rax, 0x3f
add rbx, rax
je 0x1400466e5
movabs rax, 0x1555555555555555
cmp rbx, rax
ja 0x140046a2c
mov rdx, rbx
call fcn.1400220d0
mov r8, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
lea rcx, [rbx + rbx*2]
lea rdx, [rax + rcx*4]
mov qword [rsp + 0x40], rdx
mov rcx, qword [rbp + 0x40]
mov rdx, qword [rbp + 0x48]
cmp rcx, rdx
je 0x1400466e0
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [r8], eax
mov eax, dword [rcx + 4]
mov dword [r8 + 4], eax
mov eax, dword [rcx + 8]
mov dword [r8 + 8], eax
add r8, 0xc
add rcx, 0xc
cmp rcx, rdx
jne 0x1400466c0
mov qword [rsp + 0x38], r8
lea r8, [rsp + 0x30]
mov rbx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.140046c50
nop
lea rcx, [rbp + 0x40]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x58]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x70]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x88]
call fcn.1400212f0
nop
test r13, r13
je 0x140046769
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x140046760
add rdx, 0x27
mov rcx, qword [r13 - 8]
sub r13, rcx
lea rax, [r13 - 8]
cmp rax, 0x1f
ja 0x140046a32
mov r13, rcx
mov rcx, r13
call fcn.1400d079c
nop
test r15, r15
je 0x1400467af
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1400467a6
add rdx, 0x27
mov rcx, qword [r15 - 8]
sub r15, rcx
lea rax, [r15 - 8]
cmp rax, 0x1f
ja 0x140046a38
mov r15, rcx
mov rcx, r15
call fcn.1400d079c
nop
test r14, r14
je 0x1400467f5
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1400467ec
add rdx, 0x27
mov rcx, qword [r14 - 8]
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x140046a3e
mov r14, rcx
mov rcx, r14
call fcn.1400d079c
nop
test rsi, rsi
je 0x140046164
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
cmp rdx, 0x1000
jb 0x14004615b
add rdx, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x1400469c6
jmp 0x140046158
mov rbx, qword [rsp + 0x78]
mov qword [rbx], rdi
mov dword [rbx + 8], edi
lea rcx, [rbp + 0x40]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x58]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x70]
call fcn.1400212f0
nop
lea rcx, [rbp + 0x88]
call fcn.1400212f0
nop
test r13, r13
je 0x1400468b4
lea rax, [r13 + 0x20]
sub rax, r13
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1400468ab
add rdx, 0x27
mov rcx, qword [r13 - 8]
sub r13, rcx
lea rax, [r13 - 8]
cmp rax, 0x1f
ja 0x140046a44
mov r13, rcx
mov rcx, r13
call fcn.1400d079c
nop
test r15, r15
je 0x1400468fa
lea rax, [r15 + 0x20]
sub rax, r15
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x1400468f1
add rdx, 0x27
mov rcx, qword [r15 - 8]
sub r15, rcx
lea rax, [r15 - 8]
cmp rax, 0x1f
ja 0x140046a4a
mov r15, rcx
mov rcx, r15
call fcn.1400d079c
nop
test r14, r14
je 0x140046940
lea rax, [r14 + 0x20]
sub rax, r14
sar rax, 3
lea rdx, [rax*8]
cmp rdx, 0x1000
jb 0x140046937
add rdx, 0x27
mov rcx, qword [r14 - 8]
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x140046a50
mov r14, rcx
mov rcx, r14
call fcn.1400d079c
nop
test rsi, rsi
je 0x140046164
sub r12, rsi
sar r12, 3
lea rdx, [r12*8]
cmp rdx, 0x1000
jb 0x14004615b
add rdx, 0x27
mov rcx, qword [rsi - 8]
sub rsi, rcx
lea rax, [rsi - 8]
cmp rax, 0x1f
ja 0x1400469cc
jmp 0x140046158
xor eax, eax
mov qword [rdx], rax
mov dword [rdx + 8], eax
mov rax, rdx
mov rcx, qword [rbp + 0x118]
xor rcx, rsp
call fcn.1400d04f0
mov rbx, qword [rsp + 0x270]
add rsp, 0x220
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400221f0
nop
call fcn.1400d74b4
int3
call fcn.1400d74b4
int3
call fcn.1400d74b4
int3
call fcn.1400d74b4
nop
call fcn.1400221f0
nop
call fcn.1400221f0
nop
call fcn.1400064c0
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400064c0
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400064c0
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400064c0
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
nop
call fcn.1400d74b4
int3