Function at 0x18005a174
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov edi, reloc.WS2_32.dll_recv
lea rdx, str.8E1F4785386E17FB
mov dword [rcx + 0x3cc], edi
mov rbx, rcx
mov dword [rcx + 0x3d0], edi
mov r8d, edi
add rcx, 0x3d8
call fcn.1801c2370
movsxd r8, dword [rbx + 0x3d0]
lea rcx, [rbx + 0x3f8]
lea rdx, str.8E1F4785386E17FB
call fcn.1801c2370
mov eax, dword [rbx + 0x3cc]
cmp eax, edi
je 0x18005a1f5
cmp eax, 0x18
lea eax, [rdi - 2]
jne 0x18005a214
cmp dword [rbx + 0x3d0], 0x20
lea ecx, [rdi - 4]
cmovne eax, ecx
jmp 0x18005a214
mov edx, dword [rbx + 0x3d0]
cmp edx, edi
jne 0x18005a206
mov eax, 0xa
jmp 0x18005a214
mov eax, reloc.WS2_32.dll_ntohl
cmp edx, 0x18
lea ecx, [rax - 2]
cmove eax, ecx
mov dword [rbx + 0x3d4], eax
xor esi, esi
mov eax, dword [rbx + 0x3d0]
mov ecx, dword [rbx + 0x3d4]
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r12, eax
test ecx, ecx
js 0x18005a262
lea rdi, [rbx + 0xc]
test r12d, r12d
jle 0x18005a252
mov r8, r12
xor edx, edx
shl r8, 2
mov rcx, rdi
call fcn.1801c27d0
mov ecx, dword [rbx + 0x3d4]
inc esi
add rdi, 0x20
cmp esi, ecx
jle 0x18005a23c
xor esi, esi
test ecx, ecx
js 0x18005a295
lea rdi, [rbx + 0x1ec]
test r12d, r12d
jle 0x18005a285
mov r8, r12
xor edx, edx
shl r8, 2
mov rcx, rdi
call fcn.1801c27d0
mov ecx, dword [rbx + 0x3d4]
inc esi
add rdi, 0x20
cmp esi, ecx
jle 0x18005a26f
mov eax, dword [rbx + 0x3cc]
lea r11d, [rcx + 1]
cdq
imul r11d, r12d
and edx, 3
lea r15, [rbx + 0x418]
add eax, edx
mov r8, r15
sar eax, 2
lea rdx, str.3E702C7016D840B1
movsxd r14, eax
test eax, eax
jle 0x18005a2ff
mov r9d, r14d
movzx ecx, byte [rdx]
lea rdx, [rdx + 4]
shl ecx, 0x18
mov dword [r8], ecx
movzx eax, byte [rdx - 3]
shl eax, 0x10
or eax, ecx
mov dword [r8], eax
movzx ecx, byte [rdx - 2]
shl ecx, 8
or ecx, eax
mov dword [r8], ecx
movzx eax, byte [rdx - 1]
or eax, ecx
mov dword [r8], eax
lea r8, [r8 + 4]
sub r9, 1
jne 0x18005a2c7
xor r9d, r9d
lea rdi, [0x180000000]
test r14d, r14d
jle 0x18005a361
xor esi, esi
mov rdi, r15
cmp r9d, r11d
jge 0x18005a500
mov eax, r9d
inc rsi
cdq
inc r9d
idiv r12d
movsxd rcx, eax
movsxd r8, edx
lea rdx, [r8 + rcx*8]
mov ecx, dword [rdi]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [rdi]
add rdi, 4
mov dword [rbx + rcx*4 + 0x1ec], eax
cmp rsi, r14
jl 0x18005a313
lea rdi, [0x180000000]
cmp r9d, r11d
jge 0x18005a500
lea r13, [0x18027a0e0]
movsxd rdx, dword [rbx + r14*4 + 0x414]
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movsx eax, byte [r13]
inc r13
movsx r8d, byte [rcx + rdi + 0x27d200]
xor r8d, eax
mov rax, rdx
sar rax, 8
shl r8d, 8
movzx ecx, al
movzx eax, byte [rcx + rdi + 0x27d200]
xor r8d, eax
movzx eax, dl
shl r8d, 8
sar rdx, 0x18
movzx eax, byte [rax + rdi + 0x27d200]
xor r8d, eax
movzx eax, dl
shl r8d, 8
movzx eax, byte [rax + rdi + 0x27d200]
xor r8d, eax
xor dword [r15], r8d
cmp r14d, 8
je 0x18005a40a
cmp r14, 1
jle 0x18005a4a3
lea rcx, [rbx + 0x41c]
lea rdx, [r14 - 1]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x18005a3f6
jmp 0x18005a4a3
lea rcx, [rbx + 0x41c]
mov edx, 3
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x18005a416
movsxd r8, dword [rbx + 0x424]
mov rax, r8
sar rax, 0x18
movzx ecx, al
mov rax, r8
sar rax, 0x10
movsx edx, byte [rcx + rdi + 0x27d200]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + rdi + 0x27d200]
xor edx, eax
mov rax, r8
sar rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + rdi + 0x27d200]
xor edx, eax
movzx eax, r8b
shl edx, 8
movzx eax, byte [rax + rdi + 0x27d200]
xor edx, eax
xor dword [rbx + 0x428], edx
cmp r14, 5
jle 0x18005a4a3
lea rcx, [rbx + 0x42c]
lea rdx, [r14 - 5]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x18005a494
xor esi, esi
test r14d, r14d
jle 0x18005a4f7
mov rdi, r15
cmp r9d, r11d
jge 0x18005a500
mov eax, r9d
inc rsi
cdq
inc r9d
idiv r12d
movsxd rcx, eax
movsxd r8, edx
lea rdx, [r8 + rcx*8]
mov ecx, dword [rdi]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [rdi]
add rdi, 4
mov dword [rbx + rcx*4 + 0x1ec], eax
cmp rsi, r14
jl 0x18005a4ad
lea rdi, [0x180000000]
cmp r9d, r11d
jl 0x18005a371
mov r10d, 1
cmp dword [rbx + 0x3d4], r10d
jle 0x18005a58a
lea r11, [rbx + 0x20c]
lea r14, [0x180000000]
test r12d, r12d
jle 0x18005a57a
mov rdi, r11
mov rsi, r12
movsxd r9, dword [rdi]
mov rax, r9
sar rax, 0x18
movzx edx, al
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov rax, r9
sar rax, 8
mov r8d, dword [r14 + rdx*4 + 0x27ad00]
xor r8d, dword [r14 + rcx*4 + 0x27a900]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0x27a500]
xor r8d, dword [r14 + rax*4 + 0x27a100]
mov dword [rdi], r8d
lea rdi, [rdi + 4]
sub rsi, 1
jne 0x18005a528
inc r10d
add r11, 0x20
cmp r10d, dword [rbx + 0x3d4]
jl 0x18005a51d
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov byte [rbx + 8], 1
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret