Function at 0x1800aa800
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
lea r12d, [rcx + 9]
mov r15, r8
mov dword [rbp - 1], r12d
mov rdi, rdx
mov esi, ecx
cmp ecx, r12d
jae 0x1800aadc8
mov ebx, dword [rbp + 0x67]
mov r13d, dword [rbp + 0x67]
xor r8d, r8d
lea eax, [rsi - 0xfc]
lea rdx, [0x180000000]
cmp eax, 0xc
ja case.0x1800aa863.257
mov ecx, dword [rdx + rax*4 + 0xaafc8]
add rcx, rdx
jmp rcx
mov eax, dword [rdi + 4]
cmp ebx, eax
jne 0x1800aa875
mov dword [rbp + 0x7f], 1
jmp 0x1800aa87f
cmp dword [rbp + 0x7f], 0
je 0x1800aaa5b
mov r12d, 0x5b
nop word [rax + rax]
mov eax, r12d
sub eax, 0x5b
je 0x1800aaa42
cmp eax, 1
jne 0x1800aaa45
mov dword [rbp - 0x19], eax
mov r9d, 0x1a
mov dword [rbp - 0x21], eax
xor edx, edx
lea rax, [rbp - 0x19]
mov rcx, r15
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
lea r8, [rbp - 0x21]
call fcn.180057120
mov rax, qword [rdi + 8]
lea r8, [rbp - 9]
xor esi, esi
mov dword [rbp - 0x21], 5
xor edx, edx
mov ecx, dword [rax]
lea rax, [rbp - 0x21]
dec ecx
mov qword [rsp + 0x30], rax
mov dword [rbp - 9], ecx
lea r9d, [rsi + 0x1a]
mov rcx, r15
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call fcn.180057120
mov ecx, dword [rdi + 4]
mov ebx, 1
cmp ecx, ebx
jle 0x1800aa9d6
mov r14d, 4
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdi + 8]
mov edx, dword [rax + r14]
mov r8d, dword [rax + r14 - 4]
cmp edx, r8d
jle 0x1800aa9c6
sub edx, r8d
mov esi, edx
nop dword [rax + rax]
mov eax, dword [rdi + 4]
xor ecx, ecx
mov dword [rsp + 0x40], SHSetInstanceExplorer
sub eax, r13d
mov qword [rsp + 0x38], rcx
xor r9d, r9d
mov qword [rsp + 0x30], rcx
xor r8d, r8d
mov dword [rbp - 0x21], eax
xor edx, edx
lea rax, [rbp - 0x21]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
call fcn.18001e040
mov dword [rbp - 0x19], eax
lea r8, [rbp - 0x29]
mov eax, ebx
xor edx, edx
sub eax, r13d
mov rcx, r15
mov dword [rbp - 0x29], eax
lea rax, [rbp - 0x19]
mov qword [rsp + 0x30], rax
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
lea r9d, [rax + 0x1a]
call fcn.180057120
mov r13d, ebx
sub rsi, 1
jne 0x1800aa950
mov ecx, dword [rdi + 4]
inc ebx
add r14, 4
cmp ebx, ecx
jl 0x1800aa930
xor esi, esi
mov dword [rsp + 0x40], SHSetInstanceExplorer
lea rax, [rbp - 0x29]
sub ecx, r13d
mov qword [rsp + 0x38], rsi
mov dword [rbp - 0x29], ecx
xor r9d, r9d
mov qword [rsp + 0x30], rsi
xor ecx, ecx
mov qword [rsp + 0x28], rax
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rsi
call fcn.18001e040
mov dword [rbp - 0x21], eax
lea r8, [rbp - 0x19]
mov eax, ebx
mov r9d, 0x1a
sub eax, r13d
xor edx, edx
mov dword [rbp - 0x19], eax
mov rcx, r15
lea rax, [rbp - 0x21]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call fcn.180057120
xor r8d, r8d
jmp 0x1800aaa45
mov r13d, r8d
inc r12d
cmp r12d, 0x5d
jb 0x1800aa890
mov r12d, dword [rbp - 1]
jmp 0x1800aac52
mov r14d, 0xec
mov ecx, r14d
sub ecx, 0xec
je 0x1800aabdb
cmp ecx, 1
jne 0x1800aac42
xor edx, edx
mov dword [rbp - 0x29], ecx
cmp ebx, eax
lea r9d, [rcx + 0x19]
lea rax, [rbp - 0x29]
mov rcx, r15
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
jne 0x1800aab12
mov dword [rbp - 0x21], r8d
lea r8, [rbp - 0x21]
call fcn.180057120
mov eax, dword [rdi + 4]
xor r8d, r8d
mov ebx, r8d
test eax, eax
jle 0x1800aac42
mov esi, r8d
nop dword [rax]
mov rax, qword [rdi + 8]
mov r9d, 0x1a
mov dword [rbp - 0x29], 5
xor edx, edx
mov ecx, dword [rax + rsi]
lea rax, [rbp - 0x29]
mov qword [rsp + 0x30], rax
dec ecx
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
lea r8, [rbp + 7]
mov dword [rbp + 7], ecx
mov rcx, r15
call fcn.180057120
mov eax, dword [rdi + 4]
lea rsi, [rsi + 4]
inc ebx
mov r8d, 0
cmp ebx, eax
jl 0x1800aaac0
jmp 0x1800aac42
lea r8, [rbp - 0x21]
mov dword [rbp - 0x21], 1
call fcn.180057120
mov eax, dword [rdi + 4]
xor r8d, r8d
mov ebx, r8d
test eax, eax
jle 0x1800aac42
mov esi, r8d
nop word [rax + rax]
mov rax, qword [rdi + 8]
xor edx, edx
mov dword [rbp - 0x29], 1
mov r9d, 0x1a
mov rcx, r15
cmp dword [rsi + rax], edx
lea rax, [rbp - 0x29]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
jne 0x1800aab78
mov dword [rbp - 0x21], r8d
lea r8, [rbp - 0x21]
jmp 0x1800aabbd
lea r8, [rbp - 0x21]
mov dword [rbp - 0x21], 1
call fcn.180057120
mov rax, qword [rdi + 8]
lea r8, [rbp - 0x11]
mov dword [rbp - 0x29], 5
mov ecx, dword [rax + rsi]
lea rax, [rbp - 0x29]
mov qword [rsp + 0x30], rax
dec ecx
xor eax, eax
mov dword [rbp - 0x11], ecx
mov qword [rsp + 0x28], rax
xor edx, edx
mov qword [rsp + 0x20], rax
mov rcx, r15
lea r9d, [rax + 0x1a]
call fcn.180057120
mov eax, dword [rdi + 4]
inc ebx
add rsi, 4
mov r8d, 0
cmp ebx, eax
jl 0x1800aab40
jmp 0x1800aac42
lea rax, [rbp + 0x67]
mov dword [rbp - 0x29], r8d
mov qword [rsp + 0x30], rax
mov r9d, 0x1a
mov qword [rsp + 0x28], r8
xor edx, edx
mov qword [rsp + 0x20], r8
mov rcx, r15
lea r8, [rbp - 0x29]
mov dword [rbp + 0x67], 1
call fcn.180057120
movsxd rax, dword [rdi + 4]
xor r8d, r8d
mov ebx, r8d
mov edx, r8d
test eax, eax
jle 0x1800aac35
mov rcx, qword [rdi + 8]
cmp dword [rcx], r8d
je 0x1800aac35
inc ebx
inc rdx
add rcx, 4
cmp rdx, rax
jl 0x1800aac22
mov r14d, 0xec
mov dword [rbp + 0x67], 0xfe
inc r14d
cmp r14d, 0xee
jb 0x1800aaa61
mov eax, dword [rdi + 0x10]
mov r9d, 0x1a
mov dword [rbp - 0x21], eax
xor edx, edx
lea rax, [rbp - 0x29]
mov dword [rbp - 0x29], 4
mov qword [rsp + 0x30], rax
mov rcx, r15
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
lea r8, [rbp - 0x21]
call fcn.180057120
mov esi, dword [rbp + 0x67]
jmp case.0x1800aa863.257
mov rax, qword [rbp + 0xf]
or dword [rax + 0x20], 1
jmp case.0x1800aa863.257
mov rdx, qword [rbp + 0xf]
mov ecx, 0x10f
add rdx, 0xc
call fcn.1800801b0
jmp case.0x1800aa863.257
lea rax, [rbp + 0x67]
mov dword [rbp + 0x7f], r8d
mov qword [rsp + 0x30], rax
mov r9d, 0x1a
mov qword [rsp + 0x28], r8
xor edx, edx
mov qword [rsp + 0x20], r8
mov rcx, r15
lea r8, [rbp - 0x29]
mov dword [rbp + 0x67], 0x18
mov dword [rbp - 0x29], 0x564342
call fcn.180057120
mov eax, dword [rdi]
lea r8, [rbp - 0x29]
xor ebx, ebx
mov dword [rbp - 0x29], eax
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], ILClone
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], rbx
mov rcx, r15
lea r9d, [rbx + 0x1a]
mov qword [rsp + 0x20], rbx
call fcn.180057120
mov eax, dword [rdi + 4]
lea r9d, [rbx + 0x1a]
mov dword [rbp + 0x17], eax
lea r8, [rbp + 0x17]
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], 0x18
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], rbx
mov rcx, r15
mov qword [rsp + 0x20], rbx
call fcn.180057120
movsxd rcx, dword [rdi + 4]
mov ebx, 1
mov eax, ebx
cmp ecx, eax
jle case.0x1800aa863.257
mov rdx, qword [rdi + 8]
mov r8, rcx
mov ecx, dword [rdx + rax*4 - 4]
test ecx, ecx
je case.0x1800aa863.253
cmp dword [rdx + rax*4], ecx
jl case.0x1800aa863.253
inc ebx
inc rax
cmp rax, r8
jl 0x1800aad66
jmp case.0x1800aa863.257
mov esi, 0xfd
jmp case.0x1800aa863.257
mov rax, qword [rbp + 0xf]
test byte [rax + 0x20], 1
je case.0x1800aa863.257
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_abort]
int3
movsxd rax, dword [rdi]
lea rcx, [rax + rax*4]
lea rax, [rcx*8 + 0x358830]
add rax, rdx
cmp dword [0x1803581f4], 0
mov qword [rbp + 0xf], rax
je 0x1800aadc8
or dword [rax + 0x20], 2
inc esi
mov dword [rbp + 0x67], esi
cmp esi, r12d
jb 0x1800aa840
mov eax, dword [rbp + 0x67]
mov rbx, qword [rsp + 0xe8]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, dword [rdi + 0x10]
test ecx, ecx
je case.0x1800aa863.256
sub ecx, 1
je 0x1800aadff
cmp ecx, 1
jne 0x1800aafb5
mov esi, 0x5f
mov eax, esi
sub eax, 0x5c
je case.0x1800aa863.256
sub eax, 1
je 0x1800aaf17
sub eax, 1
je 0x1800aaea5
cmp eax, 1
jne 0x1800aafaa
cmp qword [rdi + 0x28], 0
je 0x1800aafb5
mov eax, dword [rdi + 0x14]
mov r9d, 0x1a
mov dword [rbp + 0x7f], eax
xor edx, edx
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], 0x20
mov qword [rsp + 0x30], rax
mov rcx, r15
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
lea r8, [rbp + 0x7f]
call fcn.180057120
mov eax, dword [rdi + 0x18]
lea r8, [rbp + 0x7f]
xor ebx, ebx
mov dword [rbp + 0x7f], eax
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], 0x20
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], rbx
mov rcx, r15
lea r9d, [rbx + 0x1a]
mov qword [rsp + 0x20], rbx
call fcn.180057120
xor r8d, r8d
jmp 0x1800aafaa
mov eax, dword [rdi + 0x1c]
mov r9d, 0x1a
dec eax
mov dword [rbp + 0x67], 4
mov dword [rbp + 0x7f], eax
xor edx, edx
lea rax, [rbp + 0x67]
mov rcx, r15
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
lea r8, [rbp + 0x7f]
call fcn.180057120
mov eax, dword [rdi + 0x20]
lea r8, [rbp + 0x7f]
xor ebx, ebx
mov dword [rbp + 0x7f], eax
lea rax, [rbp + 0x67]
mov dword [rbp + 0x67], 1
mov qword [rsp + 0x30], rax
xor edx, edx
mov qword [rsp + 0x28], rbx
mov rcx, r15
lea r9d, [rbx + 0x1a]
mov qword [rsp + 0x20], rbx
call fcn.180057120
xor r8d, r8d
jmp 0x1800aafaa
mov ecx, dword [rdi + 0x10]
sub ecx, 1
je 0x1800aaf33
cmp ecx, 1
je 0x1800aaf2b
mov eax, 0xffffffff
jmp 0x1800aaf49
mov eax, dword [rdi + 4]
imul eax, dword [rdi]
jmp 0x1800aaf49
mov r9d, 0x10d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.18007f9d0
xor r8d, r8d
movsxd r14, eax
mov esi, 0x5d
mov rbx, r8
test eax, eax
jle 0x1800aafaa
nop dword [rax + rax]
mov eax, dword [rdi + 0x1c]
mov r9d, 0x1a
mov dword [rbp + 0x67], eax
mov rcx, r15
mov rax, qword [rdi + 0x28]
mov eax, dword [rax + rbx*4]
cdq
xor eax, edx
sub eax, edx
xor edx, edx
mov dword [rbp - 0x11], eax
lea rax, [rbp + 0x67]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], r8
lea r8, [rbp - 0x11]
call fcn.180057120
inc rbx
mov r8d, 0
cmp rbx, r14
jl 0x1800aaf60
dec esi
cmp esi, 0x5b
ja 0x1800aae04
mov eax, 0xffffffff
jmp 0x1800aadcb
mov eax, r8d
jmp 0x1800aadcb