Function at 0x1800020c0
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [rbp + 0x70]
mov r8, rbp
mov rcx, rdi
mov rsi, rax
call fcn.18000165f
mov rbp, rax
mov rcx, rdi
mov rax, qword [rsp + 0x40]
mov r8, rax
mov edx, dword [rax + 0x124]
call fcn.18000165f
mov qword [rsp + 0x48], rax
mov rcx, rdi
mov rax, qword [rsp + 0x40]
mov r8, rax
mov edx, dword [rax + 0x9c]
call fcn.18000165f
mov rcx, qword [rsp + 0x50]
mov rdi, rax
mov rax, qword [rsp + 0x40]
mov r8, rax
mov edx, dword [rax + 4]
call fcn.18000165f
mov rax, qword [rsp + 0x40]
mov rcx, rbx
mov r8, rax
mov edx, dword [rax + 0x80]
call fcn.18000165f
mov edx, pe_nt_image_headers64
mov ecx, 0x40
mov rbx, rax
call qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x40]
mov r8, rax
mov edx, dword [rax + 0xb8]
call fcn.18000165f
mov rcx, qword [rsp + 0x68]
mov qword [rcx + 0x48], rax
mov rax, qword [rsp + 0x50]
mov qword [rcx], rax
mov rax, qword [rsp + 0x80]
mov qword [rcx + 0xd8], rax
mov rax, qword [rsp + 0x48]
mov qword [rcx + 0x40], rax
mov rax, qword [rsp + 0x58]
mov qword [rcx + 0xf0], r15
mov r15, qword [rsp + 0x40]
mov qword [rcx + 0x50], rax
mov r8, r15
mov rax, qword [rsp + 0x60]
mov qword [rcx + 0x68], rsi
mov rsi, qword [rsp + 0x88]
mov qword [rcx + 0x38], r12
mov r12, rcx
mov qword [rcx + 0xd0], rax
mov qword [rcx + 0xe0], rsi
mov qword [rcx + 8], rbx
mov qword [rcx + 0xe8], r14
mov qword [rcx + 0xb8], rbp
mov qword [rcx + 0xc0], rdi
mov qword [rcx + 0x70], r13
mov rcx, rsi
mov edx, dword [r15 + 0x2c]
call fcn.18000165f
mov qword [r12 + 0x30], rax
mov r8, r15
mov edx, dword [r15 + 0x58]
mov rcx, rsi
call fcn.18000165f
mov rbx, qword [rsp + 0xf0]
mov r8, r15
mov rcx, qword [rsp + 0x50]
mov qword [r12 + 0x20], rax
mov rbx, qword [rbx + 0x28]
mov edx, dword [r15 + 0x11c]
call fcn.18000165f
movsxd r14, dword [r15 + 0x100]
mov ecx, dword [r15 + 0xe0]
add r14, rbx
xor ecx, dword [r15 + 8]
mov rbp, qword [rsp + 0x48]
mov qword [rsp + 0x60], rax
xor eax, eax
mov r13d, eax
mov esi, dword [r14]
mov edi, dword [r14 + 4]
mov qword [rsp + 0x70], rax
cmp dword [r14], ecx
je 0x18000228d
mov edx, esi
lea ecx, [rax + 0x40]
call rbp
lea rdx, [r14 + 8]
mov r8d, esi
mov rcx, rax
mov rbx, rax
call fcn.18000195f
test esi, esi
je 0x18000213b
lea eax, [rsi - 1]
mov rdx, rbx
shr eax, 2
inc eax
nop dword [rax]
xor dword [rdx], edi
lea rdx, [rdx + 4]
sub rax, 1
jne 0x18000212f
mov edx, 0x20a
mov ecx, 0x40
call rbp
movzx ecx, byte [rbx]
mov rdi, rax
test cl, cl
je 0x180002174
mov rdx, rax
nop word [rax + rax]
movsx ecx, cl
lea rbx, [rbx + 1]
mov word [rdx], cx
lea rdx, [rdx + 2]
movzx ecx, byte [rbx]
test cl, cl
jne 0x18000215f
mov edx, 0x20a
mov ecx, 0x40
call qword [r12 + 0x40]
mov r8d, 0x105
xor ecx, ecx
mov rdx, rax
mov rbx, rax
call qword [r12 + 0xc0]
xor r14d, r14d
mov edx, r14d
cmp word [rbx], dx
je 0x1800021ad
inc edx
cmp word [rbx + rdx*2], r13w
jne 0x1800021a4
mov eax, edx
cmp word [rbx + rax*2], 0x5c
lea rcx, [rbx + rax*2]
je 0x1800021d1
nop dword [rax + rax]
mov word [rcx], r14w
lea edx, [rdx - 1]
cmp word [rbx + rdx*2], 0x5c
lea rcx, [rbx + rdx*2]
jne 0x1800021bf
mov rdx, rdi
mov rcx, rbx
call fcn.180001c0f
xor r9d, r9d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov rcx, rbx
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 1]
call qword [r12 + 0xd8]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x180002443
xor edx, edx
mov rcx, rax
call qword [r12 + 0xb8]
mov edi, eax
test eax, eax
jne 0x180002235
mov rcx, rbx
call qword [r12 + 0x38]
jmp 0x180002443
lea edx, [rax + 1]
mov ecx, 0x40
call qword [r12 + 0x40]
lea r9, [rsp + 0x78]
mov qword [rsp + 0x20], r14
mov rdx, rax
mov r8d, edi
mov rcx, rbx
mov rsi, rax
call qword [r12 + 0x70]
mov rcx, rbx
test eax, eax
je 0x18000222b
call qword [r12 + 0x38]
mov r9, r12
mov qword [rsp + 0x20], r15
lea r8, [rsp + 0x70]
mov edx, edi
mov rcx, rsi
call fcn.18000102f
test al, al
je 0x180002443
mov r13, qword [rsp + 0x70]
mov edi, dword [r13 + 0xc]
mov ecx, 0x40
mov ebx, dword [r13 + 8]
mov edx, edi
call qword [r12 + 0x40]
xor esi, esi
lea r9, [r13 + 0x10]
mov r14, rax
mov dword [rsp + 0x108], esi
lea rax, [rsp + 0x108]
mov r8d, edi
mov qword [rsp + 0x28], rax
mov rdx, r14
lea ecx, [rsi + 2]
mov dword [rsp + 0x20], ebx
call qword [r12 + reloc.WS2_32.dll_htonl]
test eax, eax
jne 0x180002443
lea rcx, [r14 + 0x90]
mov ebx, esi
call fcn.1800018df
test eax, eax
jne 0x1800022f1
mov ebx, dword [r14 + 0x160]
mov eax, dword [r14 + 8]
lea r8, [rsp + 0x100]
mov r9d, dword [r15 + 0x12c]
add rax, r14
mov ecx, ebx
add rcx, 0x3dd
mov dword [rsp + 0x100], esi
add rax, rcx
mov qword [rsp + 0x20], r15
mov rdx, rax
mov qword [rsp + 0xf0], rax
mov rcx, r12
call fcn.18000148f
mov edx, 0x20a
mov qword [rsp + 0x58], rax
mov ecx, 0x40
call rbp
lea rcx, [r14 + 0xf4]
mov rdx, rax
mov rbx, rax
call fcn.180001b1f
mov edx, esi
cmp word [rbx], dx
je 0x180002367
nop dword [rax]
inc edx
cmp word [rbx + rdx*2], si
jne 0x18000235f
mov eax, edx
cmp word [rbx + rax*2], 0x5c
je 0x180002379
dec edx
cmp word [rbx + rdx*2], 0x5c
jne 0x180002370
mov eax, edx
mov rcx, r12
inc rax
lea rdx, [rbx + rax*2]
call fcn.1800015df
mov esi, dword [rsp + 0x100]
mov ecx, 0x40
movsxd rdx, dword [rax + 0x3c]
mov ebp, dword [rdx + rax + 0x2c]
mov edx, esi
add rbp, rax
call qword [rsp + 0x48]
mov r8d, esi
mov rdx, rbp
mov rcx, rax
mov rbx, rax
call fcn.18000195f
mov r12, qword [rsp + 0xf0]
lea r9, [rsp + 0xf8]
xor eax, eax
mov edx, esi
mov rcx, rbp
mov qword [r12 + 0xcc0], rbx
mov rbx, qword [rsp + 0x60]
mov dword [rsp + 0xf8], eax
mov r8d, dword [r15 + 0x130]
call rbx
mov rdx, qword [rsp + 0x58]
mov r8d, esi
mov rcx, rbp
call fcn.18000195f
mov r8d, dword [rsp + 0xf8]
lea r9, [rsp + 0xf8]
mov edx, esi
mov rcx, rbp
call rbx
mov eax, dword [r15 + 0x130]
lea r9, [rsp + 0x90]
mov r8, r13
mov dword [rsp + 0x90], eax
mov rdx, r12
mov qword [rsp + 0x94], rbp
mov rcx, r14
mov dword [rsp + 0x9c], esi
call rbp
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret