Function at 0x18001c350
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x37]
sub rsp, 0xd0
mov rax, qword [0x180075240]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rdi, r9
mov rax, r8
mov r14d, edx
mov rbx, rcx
movabs rcx, 0x3fffffffffffffff
mov qword [rbp - 0x51], rcx
mov esi, 8
mov qword [rbp - 0x49], rsi
mov byte [rbp - 0x58], 1
lea rcx, [rbp - 0x79]
mov qword [rbp - 0x41], rcx
test r9, r9
je 0x18001be04
test rax, rax
je 0x18001bdd1
cmp r9, 0x20
ja 0x18001bdd1
mov r8, r9
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.180050950
jmp 0x18001be04
xorps xmm0, xmm0
movups xmmword [rbp - 0x79], xmm0
movups xmmword [rbp - 0x69], xmm0
test rax, rax
jne 0x18001bdee
call fcn.180032278
mov dword [rax], 0x16
jmp 0x18001bdff
cmp rdi, 0x20
jbe 0x18001be04
call fcn.180032278
mov dword [rax], 0x22
call fcn.18003210c
mov r8d, 0x20
sub r8, rdi
lea rcx, [rbp - 0x79]
add rcx, rdi
xor edx, edx
call fcn.180050ff0
cmp rdi, 0xfffffffffffffffc
ja 0x18001c316
cmp rdi, 0x20
jae 0x18001be47
mov rcx, rdi
shr rcx, 2
mov rax, qword [rbp - 0x41]
lea rdx, [rax + rcx*4]
and edi, 3
shl edi, 3
mov eax, dword [rdx]
bts eax, edi
mov dword [rdx], eax
mov rdx, qword [rbp - 0x41]
mov eax, dword [rdx + 0x14]
xor eax, dword [rdx + 0xc]
xor eax, dword [rdx]
xor eax, dword [rdx + 0x1c]
xor eax, 0x9e3779b9
mov ecx, eax
shr ecx, 0x15
shl eax, 0xb
or ecx, eax
mov dword [rdx], ecx
mov dword [rbx], ecx
mov rdx, qword [rbp - 0x41]
mov eax, dword [rdx + 0x18]
xor eax, dword [rdx + 0x10]
xor eax, ecx
xor eax, dword [rdx + 4]
xor eax, 0x9e3779b8
mov ecx, eax
shr ecx, 0x15
shl eax, 0xb
or ecx, eax
mov dword [rdx + 4], ecx
mov dword [rbx + 4], ecx
mov rdx, qword [rbp - 0x41]
mov eax, dword [rdx + 0x1c]
xor eax, dword [rdx + 0x14]
xor eax, dword [rdx + 8]
xor eax, ecx
xor eax, 0x9e3779bb
mov edi, eax
shr edi, 0x15
shl eax, 0xb
or edi, eax
mov dword [rdx + 8], edi
mov dword [rbx + 8], edi
mov rax, qword [rbp - 0x41]
xor edi, dword [rax + 0x18]
xor edi, dword [rax]
xor edi, dword [rax + 0xc]
xor edi, 0x9e3779ba
mov ecx, edi
shr ecx, 0x15
shl edi, 0xb
or ecx, edi
mov dword [rax + 0xc], ecx
lea r8, [rbx + 0xc]
mov dword [r8], ecx
mov rdx, qword [rbp - 0x41]
mov eax, dword [rdx + 0x1c]
xor eax, dword [rdx + 4]
xor eax, ecx
xor eax, dword [rdx + 0x10]
xor eax, 0x9e3779bd
mov ecx, eax
shr ecx, 0x15
shl eax, 0xb
or ecx, eax
mov dword [rdx + 0x10], ecx
mov dword [rbx + 0x10], ecx
mov rdx, qword [rbp - 0x41]
mov eax, dword [rdx + 8]
xor eax, dword [rdx + 0x14]
xor eax, ecx
xor eax, dword [rdx]
xor eax, 0x9e3779bc
mov ecx, eax
shr ecx, 0x15
shl eax, 0xb
or ecx, eax
mov dword [rdx + 0x14], ecx
mov dword [rbx + 0x14], ecx
mov rdi, qword [rbp - 0x41]
mov eax, dword [rdi + 0xc]
xor eax, dword [rdi + 4]
xor eax, dword [rdi + 0x18]
xor eax, ecx
xor eax, 0x9e3779bf
mov edx, eax
shr edx, 0x15
shl eax, 0xb
or edx, eax
mov dword [rdi + 0x18], edx
mov dword [rbx + 0x18], edx
mov rdi, qword [rbp - 0x41]
mov ecx, dword [rdi + 0x10]
xor ecx, dword [rdi + 8]
xor ecx, dword [rdi + 0x1c]
xor ecx, edx
xor ecx, 0x9e3779be
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
mov dword [rdi + 0x1c], eax
mov dword [rbx + 0x1c], eax
lea edi, [r14*4 + 4]
cmp edi, 8
jbe 0x18001bfaf
lea rdx, [rbx + 0x20]
nop dword [rax + rax]
mov ecx, dword [r8 - 0xc]
xor ecx, dword [r8 + 8]
xor ecx, dword [r8]
xor ecx, esi
xor ecx, eax
xor ecx, 0x9e3779b9
mov eax, ecx
shr eax, 0x15
shl ecx, 0xb
or eax, ecx
mov dword [rdx], eax
inc esi
lea r8, [r8 + 4]
lea rdx, [rdx + 4]
cmp esi, edi
jb 0x18001bf80
sub rbx, 0x50
shr r14d, 3
test r14d, r14d
je 0x18001c28f
mov esi, r14d
nop dword [rax]
nop word [rax + rax]
mov r9d, dword [rbx + 0x50]
mov eax, dword [rbx + 0x54]
mov r8d, dword [rbx + 0x58]
mov edx, dword [rbx + 0x5c]
mov edi, r9d
or r9d, edx
xor edx, eax
and eax, edi
xor edi, r8d
xor r8d, edx
or edi, eax
and edx, r9d
xor edx, edi
xor r9d, eax
mov ecx, edx
xor ecx, eax
or ecx, r9d
xor ecx, r8d
mov eax, edx
or eax, ecx
xor eax, edx
xor eax, r9d
mov dword [rbx + 0x50], eax
mov dword [rbx + 0x54], ecx
mov dword [rbx + 0x58], edx
and edi, r9d
xor edi, r8d
mov dword [rbx + 0x5c], edi
mov r10d, dword [rbx + 0x60]
mov r9d, dword [rbx + 0x68]
mov r8d, r10d
and r8d, r9d
xor r8d, dword [rbx + 0x6c]
mov eax, r8d
xor eax, dword [rbx + 0x64]
xor r9d, eax
mov edi, r10d
or edi, dword [rbx + 0x6c]
xor edi, dword [rbx + 0x64]
xor r10d, r9d
mov ecx, r10d
or ecx, edi
xor ecx, r8d
and r8d, edi
xor r10d, r8d
mov dword [rbx + 0x60], r9d
mov dword [rbx + 0x64], ecx
mov eax, r10d
xor eax, edi
xor eax, ecx
mov dword [rbx + 0x68], eax
not r10d
mov dword [rbx + 0x6c], r10d
mov r9d, dword [rbx + 0x74]
mov edi, dword [rbx + 0x7c]
mov r8d, dword [rbx + 0x70]
not r8d
mov ecx, r8d
and r8d, r9d
mov edx, dword [rbx + 0x78]
not edx
xor edx, r8d
or r8d, edi
xor edi, edx
xor r9d, r8d
xor r8d, ecx
or ecx, r9d
xor r9d, edi
or edx, r8d
and edx, ecx
xor r8d, r9d
mov dword [rbx + 0x70], edx
mov eax, edx
and eax, r8d
xor eax, ecx
mov dword [rbx + 0x74], eax
mov dword [rbx + 0x78], edi
and edx, r9d
xor edx, r8d
mov dword [rbx + 0x7c], edx
lea r11, [rbx + 0x80]
mov ecx, dword [r11]
mov eax, dword [rbx + 0x84]
mov r10d, dword [rbx + 0x88]
mov r9d, ecx
xor r9d, dword [rbx + 0x8c]
mov r8d, r10d
xor r8d, eax
mov edx, r9d
and edx, eax
xor edx, ecx
mov edi, r9d
or edi, ecx
xor edi, r8d
xor r8d, r9d
xor r9d, r10d
or r10d, edx
xor r10d, r8d
not r8d
or r8d, edx
mov ecx, r9d
xor ecx, edx
xor ecx, r8d
or r9d, edi
mov eax, r9d
xor eax, ecx
mov dword [r11], eax
xor r9d, r8d
mov dword [rbx + 0x84], r9d
mov dword [rbx + 0x88], r10d
mov dword [rbx + 0x8c], edi
mov rbx, r11
mov r8d, dword [r11 + 0x14]
mov ecx, dword [r11 + 0x18]
mov r9d, dword [r11 + 0x1c]
mov edx, r8d
and edx, ecx
xor edx, r9d
and r9d, r8d
xor ecx, edx
xor edx, r8d
xor r8d, dword [r11 + 0x10]
mov edi, ecx
or edi, dword [r11 + 0x10]
xor edi, edx
xor r9d, r8d
xor edx, r9d
and r9d, edi
xor r9d, ecx
mov eax, edx
xor eax, ecx
not eax
and edx, edi
xor edx, eax
mov dword [r11 + 0x10], edx
and eax, edi
xor eax, r8d
xor eax, r9d
mov dword [r11 + 0x14], eax
mov dword [r11 + 0x18], r9d
mov dword [r11 + 0x1c], edi
mov edi, dword [r11 + 0x20]
mov r9d, dword [r11 + 0x2c]
mov eax, dword [r11 + 0x28]
not eax
mov r8d, r9d
and r9d, edi
xor edi, r8d
xor r9d, eax
mov ecx, r9d
xor ecx, dword [r11 + 0x24]
mov edx, r8d
or edx, eax
xor edx, edi
or edi, ecx
xor edx, ecx
xor r8d, edi
mov eax, r9d
or eax, edi
xor eax, edx
xor r8d, r9d
xor r8d, eax
mov dword [r11 + 0x20], eax
mov dword [r11 + 0x24], ecx
mov dword [r11 + 0x28], r8d
and r8d, edx
not r9d
xor r8d, r9d
mov dword [r11 + 0x2c], r8d
mov edi, dword [r11 + 0x34]
mov r8d, dword [r11 + 0x3c]
mov ecx, edi
xor ecx, dword [r11 + 0x30]
xor edi, r8d
not r8d
mov edx, r8d
xor edx, dword [r11 + 0x38]
mov eax, ecx
and eax, edi
xor eax, edx
or edx, edi
xor edi, r8d
and r8d, eax
xor r8d, ecx
xor edi, edx
xor edi, eax
xor edx, ecx
mov dword [r11 + 0x30], eax
mov dword [r11 + 0x34], r8d
mov eax, r8d
and eax, ecx
xor eax, edi
mov dword [r11 + 0x38], eax
or r8d, edi
not edx
xor r8d, edx
mov dword [r11 + 0x3c], r8d
mov r8d, dword [r11 + 0x40]
mov r9d, dword [r11 + 0x4c]
mov edx, r9d
xor edx, dword [r11 + 0x44]
not r9d
mov edi, r9d
xor edi, dword [r11 + 0x48]
xor r9d, r8d
mov eax, r9d
and eax, edx
xor eax, edi
xor edx, r9d
xor r8d, edx
and edi, edx
xor edi, r8d
and r8d, eax
xor r9d, r8d
mov ecx, eax
or ecx, edx
xor ecx, r8d
mov dword [r11 + 0x40], eax
mov eax, r9d
and eax, edi
xor eax, ecx
mov dword [r11 + 0x44], eax
mov eax, r9d
or eax, r8d
xor eax, edi
not eax
mov dword [r11 + 0x48], eax
mov dword [r11 + 0x4c], r9d
sub rsi, 1
jne 0x18001bfd0
mov r9d, dword [rbx + 0x50]
mov eax, dword [rbx + 0x54]
mov edx, dword [rbx + 0x58]
mov edi, dword [rbx + 0x5c]
mov r8d, r9d
or r9d, edi
xor edi, eax
and eax, r8d
xor r8d, edx
xor edx, edi
or r8d, eax
and edi, r9d
xor edi, r8d
xor r9d, eax
and r8d, r9d
xor r8d, edx
mov ecx, edi
xor ecx, eax
or ecx, r9d
xor ecx, edx
xor r9d, edi
mov eax, edi
or eax, ecx
xor eax, r9d
mov dword [rbx + 0x50], eax
mov dword [rbx + 0x54], ecx
mov dword [rbx + 0x58], edi
mov dword [rbx + 0x5c], r8d
mov rcx, qword [rbp - 0x49]
cmp qword [rbp - 0x51], rcx
cmovb rcx, qword [rbp - 0x51]
lea rax, [rbp - 0x79]
mov rdi, qword [rbp - 0x41]
cmp rdi, rax
jne 0x18001c2fc
xor eax, eax
rep stosd dword [rdi], eax
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1800228c0
add rsp, 0xd0
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdx, str.RoundUpToMultipleOf:_integer_overflow
lea rcx, [rbp - 0x39]
call fcn.180004090
nop
lea rdx, [rbp - 0x39]
lea rcx, [rbp - 0x19]
call fcn.180001750
lea rdx, [0x180073948]
lea rcx, [rbp - 0x19]
call fcn.180024a18
int3
mov rcx, qword [rcx + 0x240]
mov r9d, r8d
mov r8, rdx
mov edx, 0x20
jmp 0x18001bd60