Function at 0x18009d080
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rdi
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x1800f3188]
xor rax, rsp
mov qword [rsp + 0x30], rax
xor ebx, ebx
mov r15d, r9d
mov rbp, r8
mov r14, rdx
mov rdi, rcx
test rdx, rdx
jne 0x18009d0b6
lea eax, [rdx - 0x16]
jmp 0x18009d34a
mov rcx, qword [rcx + 0xb0]
mov rax, rcx
test rcx, rcx
jne 0x18009d205
mov rax, qword [rdi + 0x10]
lea r8d, [rcx + 8]
lea rdx, [rsp + 0x20]
mov rcx, rax
call qword [rax + 0x50]
movsxd rbx, eax
test eax, eax
js 0x18009d348
cmp rbx, 8
jb 0x18009d2d3
mov r8d, 1
lea rcx, [rsp + 0x22]
mov edx, r8d
nop
movzx eax, byte [rsp + 0x20]
add edx, 7
xor byte [rcx - 1], al
lea rcx, [rcx + 7]
movzx eax, byte [rsp + 0x20]
xor byte [rcx - 7], al
movzx eax, byte [rsp + 0x20]
xor byte [rcx - 6], al
movzx eax, byte [rsp + 0x20]
xor byte [rcx - 5], al
movzx eax, byte [rsp + 0x20]
xor byte [rcx - 4], al
movzx eax, byte [rsp + 0x20]
xor byte [rcx - 3], al
movzx eax, byte [rsp + 0x20]
xor byte [rcx - 2], al
cmp edx, 8
jb 0x18009d100
movzx eax, byte [rsp + 0x27]
lea rcx, [rsp + 0x22]
nop
xor al, byte [rcx - 1]
lea rcx, [rcx + 6]
mov byte [rsp + 0x27], al
add r8d, 6
xor al, byte [rcx - 6]
mov byte [rsp + 0x27], al
xor al, byte [rcx - 5]
mov byte [rsp + 0x27], al
xor al, byte [rcx - 4]
mov byte [rsp + 0x27], al
xor al, byte [rcx - 3]
mov byte [rsp + 0x27], al
movzx r9d, al
movzx edx, byte [rcx - 2]
xor al, dl
mov byte [rsp + 0x27], al
cmp r8d, 7
jb 0x18009d150
cmp dl, r9b
jne 0x18009d2d3
mov ecx, dword [rsp + 0x23]
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
add rcx, 0x14
mov dword [rsp + 0x23], eax
call fcn.1800a411c
mov qword [rdi + 0xb0], rax
test rax, rax
jne 0x18009d1cb
call fcn.1800a41dc
mov eax, dword [rax]
neg eax
jmp 0x18009d34a
mov dword [rax + 4], 8
lea rdx, [rsp + 0x20]
mov ecx, dword [rsp + 0x23]
mov rax, qword [rdi + 0xb0]
add ecx, 8
mov dword [rax], ecx
mov rcx, qword [rdi + 0xb0]
mov r8d, dword [rcx + 4]
add rcx, 8
call fcn.1800a2a90
mov rcx, qword [rdi + 0xb0]
mov rax, rcx
mov r8d, dword [rcx]
mov qword [rsp + 0x48], rsi
lea rsi, [rcx + 8]
mov qword [rsp + 0x40], r12
cmp dword [rcx + 4], r8d
jae 0x18009d267
mov r12d, 0xffffff96
mov eax, dword [rcx + 4]
lea rdx, [rcx + 8]
mov r9, qword [rdi + 0x10]
sub r8d, eax
add rdx, rax
mov rcx, r9
call qword [r9 + 0x50]
mov ebx, eax
test eax, eax
js 0x18009d33e
test eax, eax
mov rax, qword [rdi + 0xb0]
cmove ebx, r12d
add dword [rax + 4], ebx
mov rax, qword [rdi + 0xb0]
mov rcx, rax
mov r8d, dword [rax]
cmp dword [rax + 4], r8d
jb 0x18009d222
test ebx, ebx
js 0x18009d33e
mov r8d, 8
cmp dword [rax], r8d
jbe 0x18009d29f
nop word [rax + rax]
movzx eax, byte [rsi]
mov edx, r8d
inc r8d
add rdx, qword [rdi + 0xb0]
xor byte [rdx + 8], al
mov rax, qword [rdi + 0xb0]
cmp r8d, dword [rax]
jb 0x18009d280
test rbp, rbp
je 0x18009d2bd
mov eax, dword [rsi + 3]
lea rdx, [rsi + 8]
cmp r15d, eax
mov rcx, rbp
cmovb eax, r15d
mov r8d, eax
call fcn.1800a2a90
movzx eax, byte [rsi + 1]
mov ebx, dword [rsi + 3]
cmp al, 1
jbe 0x18009d2da
mov dword [r14], 8
xor ebx, ebx
jmp 0x18009d327
mov eax, 0xfffffff2
jmp 0x18009d34a
cmp eax, dword [rdi + 4]
mov ecx, eax
cmovae ecx, dword [rdi + 4]
mov dword [rdi + 4], ecx
xor ecx, ecx
mov dword [r14], 9
mov eax, dword [rdi + 4]
movzx r8d, byte [rsi + 2]
lea rdx, [rax + rax*8]
lea rax, [0x1800f3160]
add rdx, rax
cmp byte [rdx], r8b
je 0x18009d319
inc ecx
inc rdx
cmp ecx, 9
jb 0x18009d305
mov ecx, dword [r14]
jmp 0x18009d31c
mov dword [r14], ecx
cmp ecx, 9
mov eax, 0xfffffff2
cmove ebx, eax
mov rcx, qword [rdi + 0xb0]
call fcn.1800a4108
mov qword [rdi + 0xb0], 0
mov rsi, qword [rsp + 0x48]
mov r12, qword [rsp + 0x40]
mov eax, ebx
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1800a1bf0
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rbp
pop rbx
ret