Function at 0x180001e90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x18000a4e0]
xor r14d, r14d
mov dword [rbp + 0x58], 0xffffffff
mov r13, r8
mov qword [rbp - 0x28], r14
mov rbx, rcx
mov qword [rdx], r14
mov esi, r14d
mov qword [r8], r14
mov edi, r14d
test rax, rax
je 0x180001efe
mov rax, qword [rax + 0xfe0]
test rax, rax
jne 0x180001f10
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0xe76df4bd
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0xfe0], rax
jmp 0x180001f10
mov edx, 9
xor ecx, ecx
mov r8d, 0xe76df4bd
call fcn.180004030
xor r9d, r9d
mov dword [rsp + 0x20], r14d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rax
mov r15, rax
test rax, rax
je 0x180002607
mov qword [rsp + 0xb0], r12
cmp qword [rbx + 0x30], rsi
je 0x180001f9a
cmp dword [rbx + 0x38], esi
je 0x180001f9a
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x180001f78
mov rax, qword [rax + 0x10f8]
test rax, rax
jne 0x180001f8a
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0x3fb48e57
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x10f8], rax
jmp 0x180001f8a
mov edx, 9
xor ecx, ecx
mov r8d, 0x3fb48e57
call fcn.180004030
mov r8d, dword [rbx + 0x38]
xor r9d, r9d
mov rdx, qword [rbx + 0x30]
mov rcx, r15
call rax
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x180001fd2
mov rax, qword [rax + 0xfe8]
test rax, rax
jne 0x180001fe4
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0x27a5acb2
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0xfe8], rax
jmp 0x180001fe4
mov edx, 9
xor ecx, ecx
mov r8d, 0x27a5acb2
call fcn.180004030
movzx r8d, word [rbx + 0x18]
xor r9d, r9d
mov rdx, qword [rbx]
mov rcx, r15
call rax
mov r12, rax
test rax, rax
je 0x1800025b0
mov ecx, dword [rbx + 0x1c]
neg ecx
mov rcx, qword [0x18000a4e0]
sbb edx, edx
and edx, 0x800000
mov dword [rbp - 0x30], edx
test rcx, rcx
je 0x180002049
mov r10, qword [rcx + 0xff0]
test r10, r10
jne 0x18000205e
lea edx, [r10 + 9]
xor ecx, ecx
mov r8d, 0xf7c3fc00
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0xff0], rax
jmp 0x18000205b
mov edx, 9
xor ecx, ecx
mov r8d, 0xf7c3fc00
call fcn.180004030
mov r10, rax
mov r8, qword [rbx + 8]
cmp qword [rbx + 0x28], rsi
je 0x1800020ac
mov byte [rbp - 0x14], sil
mov dword [rbp - 0x10], 0x119d5d74
mov dword [rbp - 0xc], 0x11865d77
mov dword [rbp - 8], 0x11d25d24
mov eax, dword [rbp - 0x10]
movzx eax, byte [rbp - 0x14]
test al, al
jne 0x1800020a6
mov rcx, r14
nop
mov eax, dword [rbp + rcx*4 - 0x10]
xor eax, 0x11d25d24
mov dword [rbp + rcx*4 - 0x10], eax
inc rcx
cmp rcx, 3
jb 0x180002090
lea rdx, [rbp - 0x10]
jmp 0x1800020ea
mov byte [rbp - 0x20], sil
mov dword [rbp - 0x1c], 0x9a5e63b
mov dword [rbp - 0x18], 0x9e0e628
mov eax, dword [rbp - 0x1c]
movzx eax, byte [rbp - 0x20]
test al, al
jne 0x1800020e6
mov rcx, r14
nop dword [rax]
mov eax, dword [rbp + rcx*4 - 0x1c]
xor eax, 0x9e0e67c
mov dword [rbp + rcx*4 - 0x1c], eax
inc rcx
cmp rcx, 2
jb 0x1800020d0
lea rdx, [rbp - 0x1c]
mov eax, dword [rbp - 0x30]
xor r9d, r9d
mov dword [rsp + 0x30], eax
mov rcx, r12
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
call r10
mov r14, rax
test rax, rax
je 0x180002561
cmp dword [rbx + 0x1c], esi
je 0x180002179
mov rax, qword [0x18000a4e0]
mov dword [rbp - 0x30], 0x3300
test rax, rax
je 0x180002154
mov rax, qword [rax + 0x1030]
test rax, rax
jne 0x180002166
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0x29df970e
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1030], rax
jmp 0x180002166
mov edx, 9
xor ecx, ecx
mov r8d, 0x29df970e
call fcn.180004030
mov r9d, 4
lea r8, [rbp - 0x30]
mov rcx, r14
lea edx, [r9 + 0x1b]
call rax
mov r10, qword [0x18000a4e0]
test r10, r10
je 0x1800021b2
mov r10, qword [r10 + 0xff8]
test r10, r10
jne 0x1800021c7
lea edx, [r10 + 9]
xor ecx, ecx
mov r8d, 0x7cd7fb0a
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0xff8], rax
jmp 0x1800021c4
mov edx, 9
xor ecx, ecx
mov r8d, 0x7cd7fb0a
call fcn.180004030
mov r10, rax
mov ecx, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x10]
mov r9, qword [rbx + 0x20]
mov rax, rdx
neg rax
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
sbb r8d, r8d
mov rcx, r14
call r10
test eax, eax
mov rax, qword [0x18000a4e0]
jne 0x180002248
test rax, rax
je 0x18000222f
mov rax, qword [rax + 0x628]
test rax, rax
jne 0x180002241
lea edx, [rax + 1]
xor ecx, ecx
mov r8d, 0x1297812c
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x628], rax
call rax
jmp 0x180002512
mov edx, 1
xor ecx, ecx
mov r8d, 0x1297812c
call fcn.180004030
call rax
jmp 0x180002512
test rax, rax
je 0x180002279
mov rax, qword [rax + 0x1000]
test rax, rax
jne 0x18000228b
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0x7ea8e898
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1000], rax
jmp 0x18000228b
mov edx, 9
xor ecx, ecx
mov r8d, 0x7ea8e898
call fcn.180004030
xor edx, edx
mov rcx, r14
call rax
test eax, eax
je 0x180002512
mov rax, qword [0x18000a4e0]
mov dword [rbp + 0x50], 4
test rax, rax
je 0x1800022d9
mov rax, qword [rax + 0x1008]
test rax, rax
jne 0x1800022eb
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0xbd8ef6e9
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1008], rax
jmp 0x1800022eb
mov edx, 9
xor ecx, ecx
mov r8d, 0xbd8ef6e9
call fcn.180004030
lea rcx, [rbp + 0x50]
xor ebx, ebx
mov qword [rsp + 0x28], rbx
lea r9, [rbp + 0x58]
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, r14
mov edx, 0x20000013
call rax
mov ecx, dword [rbp + 0x58]
test eax, eax
mov rax, qword [0x18000a4e0]
cmove ecx, ebx
mov dword [rbp + 0x50], 8
mov dword [rbp + 0x58], ecx
test rax, rax
je 0x180002356
mov rax, qword [rax + 0x1008]
test rax, rax
jne 0x180002368
lea edx, [rbx + 9]
xor ecx, ecx
mov r8d, 0xbd8ef6e9
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1008], rax
jmp 0x180002368
mov edx, 9
xor ecx, ecx
mov r8d, 0xbd8ef6e9
call fcn.180004030
lea rcx, [rbp + 0x50]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rcx
lea r9, [rbp - 0x28]
mov rcx, r14
xor r8d, r8d
mov edx, 0x20000005
call rax
mov rcx, qword [rbp - 0x28]
test eax, eax
cmove rcx, rbx
mov qword [rbp - 0x28], rcx
nop word [rax + rax]
mov rax, qword [0x18000a4e0]
mov dword [rbp + 0x50], ebx
test rax, rax
je 0x1800023db
mov rax, qword [rax + 0x1010]
test rax, rax
jne 0x1800023ed
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0x532bde9f
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1010], rax
jmp 0x1800023ed
mov edx, 9
xor ecx, ecx
mov r8d, 0x532bde9f
call fcn.180004030
lea rdx, [rbp + 0x50]
mov rcx, r14
call rax
test eax, eax
je 0x18000248c
mov eax, dword [rbp + 0x50]
test eax, eax
je 0x18000248c
lea edx, [rax + 1]
mov rcx, rsi
add edx, edi
call fcn.180004de0
mov rsi, rax
test rax, rax
je 0x18000248c
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x180002456
mov rax, qword [rax + 0x1018]
test rax, rax
jne 0x180002468
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0x76d4f10a
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1018], rax
jmp 0x180002468
mov edx, 9
xor ecx, ecx
mov r8d, 0x76d4f10a
call fcn.180004030
mov r8d, dword [rbp + 0x50]
lea r9, [rbp + 0x50]
mov edx, edi
mov rcx, r14
add rdx, rsi
call rax
test eax, eax
je 0x18000248c
mov eax, dword [rbp + 0x50]
test eax, eax
je 0x18000248c
add edi, eax
jmp 0x1800023a0
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x1800024fb
mov eax, edi
cmp rcx, rax
je 0x1800024fb
test rsi, rsi
je 0x1800024f2
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x1800024d3
mov rax, qword [rax + 0x58]
test rax, rax
jne 0x1800024e5
lea edx, [rax + 1]
xor ecx, ecx
mov r8d, 0x3a35705f
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x58], rax
jmp 0x1800024e5
mov edx, 1
xor ecx, ecx
mov r8d, 0x3a35705f
call fcn.180004030
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call rax
mov dword [rbp + 0x58], 0xffffffff
jmp 0x180002512
test rsi, rsi
je 0x180002505
mov eax, edi
mov byte [rax + rsi], bl
mov rax, qword [rbp + 0x48]
mov qword [rax], rsi
mov eax, edi
mov qword [r13], rax
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x18000254a
mov rax, qword [rax + 0x1020]
test rax, rax
jne 0x18000255c
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0xfe996df6
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1020], rax
jmp 0x18000255c
mov edx, 9
xor ecx, ecx
mov r8d, 0xfe996df6
call fcn.180004030
mov rcx, r14
call rax
mov rax, qword [0x18000a4e0]
test rax, rax
je 0x180002599
mov rax, qword [rax + 0x1020]
test rax, rax
jne 0x1800025ab
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0xfe996df6
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1020], rax
jmp 0x1800025ab
mov edx, 9
xor ecx, ecx
mov r8d, 0xfe996df6
call fcn.180004030
mov rcx, r12
call rax
mov rax, qword [0x18000a4e0]
mov r12, qword [rsp + 0xb0]
test rax, rax
je 0x1800025f0
mov rax, qword [rax + 0x1020]
test rax, rax
jne 0x180002602
lea edx, [rax + 9]
xor ecx, ecx
mov r8d, 0xfe996df6
call fcn.180004030
mov rcx, qword [0x18000a4e0]
mov qword [rcx + 0x1020], rax
jmp 0x180002602
mov edx, 9
xor ecx, ecx
mov r8d, 0xfe996df6
call fcn.180004030
mov rcx, r15
call rax
mov eax, dword [rbp + 0x58]
add rsp, 0x70
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret