Function at 0x1800033e0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
mov eax, dword [0x18004dc00]
xor ebx, ebx
test eax, eax
mov rdi, rcx
mov ecx, r8d
mov rbp, rdx
lea r12d, [rbx + 1]
cmove eax, r12d
mov dword [0x18004dc00], eax
sub ecx, 0x80
je 0x180003448
sub ecx, 0x40
je 0x18000343c
cmp ecx, 0x40
jne 0x18000392e
mov dword [rdi + 0x200], recv
jmp 0x180003452
mov dword [rdi + 0x200], recv
jmp 0x180003452
mov dword [rdi + 0x200], 0xa
sar r8d, 5
mov r11, rdi
mov r10d, ebx
mov r15d, 4
test r8d, r8d
jle 0x1800034ab
mov rsi, rdi
lea r9, [rdx + 2]
sub rsi, rdx
mov eax, r10d
add r10d, r12d
shl eax, 2
movsxd rcx, eax
movzx eax, byte [r9 - 1]
movzx edx, byte [rcx + rbp]
shl edx, 8
or edx, eax
movzx eax, byte [r9]
shl edx, 8
or edx, eax
movzx eax, byte [r9 + 1]
shl edx, 8
or edx, eax
mov dword [rsi + r9 - 2], edx
add r9, r15
cmp r10d, r8d
jl 0x180003471
mov eax, dword [rdi + 0x200]
lea r14, [0x180000000]
cmp eax, 0xa
je 0x1800036a4
cmp eax, 0xc
je 0x1800035eb
cmp eax, 0xe
jne 0x18000373c
lea rsi, [0x180027610]
mov r10d, dword [r11 + 0x1c]
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r10d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x25410]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x25410]
xor edx, eax
movzx eax, r10b
shl edx, 8
movzx eax, byte [rax + r14 + 0x25410]
xor edx, eax
mov eax, r10d
shr eax, 0x18
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x25410]
mov ecx, dword [r11 + 8]
xor edx, eax
xor edx, dword [r11]
xor edx, dword [rsi]
add rsi, r15
mov eax, dword [r11 + 4]
xor eax, edx
mov dword [r11 + 0x20], edx
mov edx, dword [r11 + 0xc]
xor ecx, eax
mov dword [r11 + 0x24], eax
xor edx, ecx
mov dword [r11 + 0x28], ecx
mov eax, edx
shr eax, 0x18
movzx ecx, al
mov eax, edx
shr eax, 0x10
mov dword [r11 + 0x2c], edx
shr edx, 8
movzx r8d, byte [rcx + r14 + 0x25410]
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r14 + 0x25410]
mov ecx, dword [r11 + 0x18]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r14 + 0x25410]
xor r8d, eax
movzx eax, byte [r11 + 0x2c]
shl r8d, 8
movzx eax, byte [rax + r14 + 0x25410]
xor r8d, eax
mov eax, dword [r11 + 0x14]
xor r8d, dword [r11 + 0x10]
xor eax, r8d
mov dword [r11 + 0x30], r8d
xor ecx, eax
mov dword [r11 + 0x34], eax
xor r10d, ecx
mov dword [r11 + 0x38], ecx
mov dword [r11 + 0x3c], r10d
lea rax, [0x18002762c]
add r11, 0x20
cmp rsi, rax
jl 0x1800034da
jmp 0x18000373c
lea rsi, [0x180027610]
mov r9d, dword [r11 + 0x14]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
mov eax, r9d
shr eax, 8
movzx r8d, byte [rcx + r14 + 0x25410]
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r14 + 0x25410]
xor r8d, eax
movzx eax, r9b
shl r8d, 8
movzx eax, byte [rax + r14 + 0x25410]
xor r8d, eax
mov eax, r9d
shr eax, 0x18
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r14 + 0x25410]
mov ecx, dword [r11 + 8]
xor r8d, eax
xor r8d, dword [rsi]
add rsi, r15
xor r8d, dword [r11]
mov eax, dword [r11 + 4]
xor eax, r8d
mov dword [r11 + 0x18], r8d
xor ecx, eax
mov dword [r11 + 0x1c], eax
mov eax, dword [r11 + 0xc]
xor eax, ecx
mov dword [r11 + 0x20], ecx
mov ecx, dword [r11 + 0x10]
xor ecx, eax
mov dword [r11 + 0x24], eax
xor r9d, ecx
mov dword [r11 + 0x28], ecx
mov dword [r11 + 0x2c], r9d
lea rax, [0x180027630]
add r11, 0x18
cmp rsi, rax
jl 0x1800035f2
jmp 0x18000373c
lea rsi, [0x180027610]
mov r8d, dword [r11 + 0xc]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
shr eax, 8
movzx edx, byte [rcx + r14 + 0x25410]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x25410]
xor edx, eax
movzx eax, r8b
shl edx, 8
movzx eax, byte [rax + r14 + 0x25410]
xor edx, eax
mov eax, r8d
shr eax, 0x18
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r14 + 0x25410]
mov ecx, dword [r11 + 8]
xor edx, eax
xor edx, dword [rsi]
add rsi, r15
xor edx, dword [r11]
mov eax, dword [r11 + 4]
xor eax, edx
mov dword [r11 + 0x10], edx
xor ecx, eax
mov dword [r11 + 0x14], eax
mov dword [r11 + 0x18], ecx
lea rax, [0x180027638]
xor ecx, r8d
mov dword [r11 + 0x1c], ecx
add r11, 0x10
cmp rsi, rax
jl 0x1800036ab
cmp dword [0x18004dc04], ebx
jne 0x1800037a0
movzx ecx, byte [rbx + r14 + 0x25410]
mov eax, dword [r14 + rcx*4 + 0x26610]
mov dword [r14 + rbx*4 + 0x4cc00], eax
mov eax, dword [r14 + rcx*4 + 0x26a10]
mov dword [r14 + rbx*4 + 0x4d000], eax
mov eax, dword [r14 + rcx*4 + 0x26e10]
mov dword [r14 + rbx*4 + 0x4d400], eax
mov eax, dword [r14 + rcx*4 + 0x27210]
mov dword [r14 + rbx*4 + 0x4d800], eax
add rbx, r12
cmp rbx, 0x100
jl 0x180003744
mov dword [0x18004dc04], r12d
lea r10, [rdi + 0x100]
mov rcx, r15
mov eax, dword [r11]
add r11, r15
mov dword [r10], eax
add r10, r15
sub rcx, r12
jne 0x1800037aa
mov ebx, r12d
cmp dword [rdi + 0x200], r12d
jle 0x180003906
sub r11, 0x20
add ebx, r12d
mov r9d, dword [r11]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
shr r9d, 8
mov r8d, dword [r14 + rdx*4 + 0x4cc00]
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0x4d000]
xor r8d, dword [r14 + rax*4 + 0x4d400]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x4d800]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
shr r9d, 8
mov r8d, dword [r14 + rdx*4 + 0x4cc00]
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0x4d000]
xor r8d, dword [r14 + rax*4 + 0x4d400]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x4d800]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
shr r9d, 8
mov r8d, dword [r14 + rdx*4 + 0x4cc00]
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0x4d000]
xor r8d, dword [r14 + rax*4 + 0x4d400]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x4d800]
mov dword [r10], r8d
add r10, r15
mov r9d, dword [r11]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr eax, 0x10
movzx ecx, al
shr r9d, 8
mov r8d, dword [r14 + rdx*4 + 0x4cc00]
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0x4d000]
xor r8d, dword [r14 + rax*4 + 0x4d400]
movzx eax, byte [r11]
add r11, r15
xor r8d, dword [r14 + rax*4 + 0x4d800]
mov dword [r10], r8d
add r10, r15
cmp ebx, dword [rdi + 0x200]
jl 0x1800037cb
sub r11, 0x20
mov eax, dword [r11]
mov dword [r10], eax
add r10, r15
add r11, r15
mov eax, dword [r11]
mov dword [r10], eax
mov eax, dword [r11 + r15]
mov dword [r10 + r15], eax
mov eax, dword [r11 + r15 + 4]
mov dword [r10 + r15 + 4], eax
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret