Function at 0x180009660
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rbp
push rsi
sub rsp, 0x20
movsxd rbp, r8d
mov rsi, rdx
mov rbx, rcx
cmp ebp, 0x38
jg 0x180009b21
mov qword [rsp + 0x30], rdi
mov rcx, rbp
mov rdi, rbp
call fcn.18000b784
mov r10, rax
test ebp, ebp
jle 0x1800096b0
mov rdx, rax
sub rsi, rax
nop
movzx ecx, byte [rsi + rdx]
mov byte [rdx], cl
lea rdx, [rdx + 1]
sub rdi, 1
jne 0x1800096a0
xor edi, edi
lea r11, [0x180054778]
mov r9d, edi
lea rsi, [0x1800547c0]
nop dword [rax]
nop word [rax + rax]
mov eax, r9d
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 - 8], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 - 4], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
add r8d, ecx
shl r8d, 8
lea eax, [r9 + 3]
cdq
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
idiv ebp
xor dword [r11], r8d
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 4], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 8], r8d
idiv ebp
mov eax, edx
mov r9d, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
shl r8d, 8
cdq
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 0xc], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 0x10], r8d
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
add r8d, ecx
xor dword [r11 + 0x14], r8d
lea eax, [r9 + 4]
cdq
idiv ebp
mov r9d, edx
mov eax, edx
cdq
idiv ebp
movsxd rax, edx
movzx r8d, byte [rax + r10]
lea eax, [r9 + 1]
cdq
shl r8d, 8
idiv ebp
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 2]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 3]
cdq
add r8d, ecx
idiv ebp
shl r8d, 8
movsxd rax, edx
movzx ecx, byte [rax + r10]
lea eax, [r9 + 4]
cdq
add r8d, ecx
xor dword [r11 + 0x18], r8d
add r11, 0x24
idiv ebp
mov r9d, edx
cmp r11, rsi
jl 0x1800096d0
mov qword [rbx + 4], rdi
lea rsi, [0x1800547b8]
lea rdi, [0x180054770]
mov rcx, rbx
call fcn.180009b40
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x180009a34
lea rdi, [0x180054ba0]
lea rsi, [0x180054fa0]
nop
mov rcx, rbx
call fcn.180009b40
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x180009a60
lea rdi, [0x180054fa0]
lea rsi, [0x1800553a0]
nop word [rax + rax]
mov rcx, rbx
call fcn.180009b40
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x180009a90
lea rdi, [0x1800557a0]
lea rsi, vtable.type_info.0
nop word [rax + rax]
mov rcx, rbx
call fcn.180009b40
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x180009ac0
lea rdi, [0x1800553a0]
lea rsi, [0x1800557a0]
nop word [rax + rax]
mov rcx, rbx
call fcn.180009b40
mov eax, dword [rbx + 4]
mov dword [rdi], eax
mov eax, dword [rbx + 8]
mov dword [rdi + 4], eax
add rdi, 8
cmp rdi, rsi
jl 0x180009af0
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x48]
add rsp, 0x20
pop rsi
ret
lea rdx, [0x18000f3b8]
mov dword [rsp + 0x40], 0x38
lea rcx, [rsp + 0x40]
call sub.VCRUNTIME140.dll__CxxThrowException
int3