Function at 0x1400921e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
je 0x140092622
mov ebp, reloc.WS2_32.dll_recv
mov dword [rcx + 0x3cc], reloc.WLDAP32.dll_Ordinal_32
mov dword [rcx + 0x3d0], ebp
mov r8d, ebp
add rcx, 0x3d8
mov rdx, rdi
call fcn.14004dc00
movsxd r8, dword [rbx + 0x3d0]
lea rcx, [rbx + 0x3f8]
mov rdx, rdi
call fcn.14004dc00
mov eax, dword [rbx + 0x3cc]
cmp eax, ebp
je 0x14009226c
cmp eax, 0x18
lea eax, [rbp - 2]
jne 0x14009228b
cmp dword [rbx + 0x3d0], 0x20
lea ecx, [rbp - 4]
cmovne eax, ecx
jmp 0x14009228b
mov edx, dword [rbx + 0x3d0]
cmp edx, ebp
jne 0x14009227d
mov eax, 0xa
jmp 0x14009228b
mov eax, reloc.WS2_32.dll_ntohl
cmp edx, 0x18
lea ecx, [rax - 2]
cmove eax, ecx
mov dword [rbx + 0x3d4], eax
xor r14d, r14d
mov eax, dword [rbx + 0x3d0]
cdq
and edx, 3
add eax, edx
lea edi, [r14 + 1]
sar eax, 2
movsxd r13, eax
mov r15, r13
cmp dword [rbx + 0x3d4], r14d
jl 0x1400922e0
lea rbp, [rbx + 0xc]
test r13d, r13d
jle 0x1400922d0
mov r8, r13
xor edx, edx
shl r8, 2
mov rcx, rbp
call fcn.14004e050
add r14d, edi
add rbp, 0x20
cmp r14d, dword [rbx + 0x3d4]
jle 0x1400922ba
xor ebp, ebp
cmp dword [rbx + 0x3d4], ebp
jl 0x140092315
lea r14, [rbx + 0x1ec]
test r13d, r13d
jle 0x140092307
mov r8, r13
xor edx, edx
shl r8, 2
mov rcx, r14
call fcn.14004e050
add ebp, edi
add r14, 0x20
cmp ebp, dword [rbx + 0x3d4]
jle 0x1400922f1
mov eax, dword [rbx + 0x3cc]
lea r12, [rbx + 0x418]
mov r10d, dword [rbx + 0x3d4]
cdq
and edx, 3
add r10d, edi
add eax, edx
imul r10d, r13d
sar eax, 2
mov rdx, r12
movsxd r14, eax
test eax, eax
jle 0x140092378
mov r8d, r14d
movzx ecx, byte [rsi]
add rsi, rdi
shl ecx, 0x18
mov dword [rdx], ecx
movzx eax, byte [rsi]
add rsi, rdi
shl eax, 0x10
or dword [rdx], eax
movzx eax, byte [rsi]
add rsi, rdi
shl eax, 8
or dword [rdx], eax
movzx eax, byte [rsi]
add rsi, rdi
or dword [rdx], eax
lea rdx, [rdx + 4]
sub r8, rdi
jne 0x140092346
xor r9d, r9d
xor ebp, ebp
test r14d, r14d
jle 0x1400923cc
mov rsi, r12
cmp r9d, r10d
jge 0x14009257b
mov eax, r9d
add rbp, rdi
cdq
add r9d, edi
idiv r13d
movsxd rcx, eax
movsxd r8, edx
lea rdx, [r8 + rcx*8]
mov ecx, dword [rsi]
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 [rsi]
add rsi, 4
mov dword [rbx + rcx*4 + 0x1ec], eax
cmp rbp, r14
jl 0x140092385
cmp r9d, r10d
jge 0x14009257b
lea rsi, [0x1400b7790]
lea r15, [0x140000000]
movsxd r8, dword [rbx + r14*4 + 0x414]
mov rax, r8
sar rax, 0x10
movzx ecx, al
movsx eax, byte [rsi]
add rsi, rdi
mov qword [rsp + 0x88], rsi
movsx edx, byte [rcx + r15 + 0xba8b0]
xor edx, eax
mov rax, r8
sar rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0xba8b0]
xor edx, eax
movzx eax, r8b
shl edx, 8
sar r8, 0x18
movzx eax, byte [rax + r15 + 0xba8b0]
xor edx, eax
movzx eax, r8b
shl edx, 8
movzx eax, byte [rax + r15 + 0xba8b0]
xor edx, eax
xor dword [r12], edx
cmp r14d, 8
je 0x14009247f
cmp r14, rdi
jle 0x14009251a
lea rcx, [rbx + 0x41c]
lea rdx, [r14 - 1]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, rdi
jne 0x14009246c
jmp 0x14009251a
lea rcx, [rbx + 0x41c]
mov edx, 3
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, rdi
jne 0x14009248b
movsxd r8, dword [rbx + 0x424]
mov rax, r8
sar rax, 0x18
movzx ecx, al
mov rax, r8
sar rax, 0x10
movsx edx, byte [rcx + r15 + 0xba8b0]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r15 + 0xba8b0]
xor edx, eax
mov rax, r8
sar rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0xba8b0]
xor edx, eax
movzx eax, r8b
shl edx, 8
movzx eax, byte [rax + r15 + 0xba8b0]
xor edx, eax
xor dword [rbx + 0x428], edx
cmp r14, 5
jle 0x14009251a
lea rcx, [rbx + 0x42c]
lea rdx, [r14 - 5]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, rdi
jne 0x14009250c
xor ebp, ebp
test r14d, r14d
jle 0x14009256f
mov rsi, r12
cmp r9d, r10d
jge 0x140092578
mov eax, r9d
add rbp, rdi
cdq
add r9d, edi
idiv r13d
movsxd rcx, eax
movsxd r8, edx
lea rdx, [r8 + rcx*8]
mov ecx, dword [rsi]
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 [rsi]
add rsi, 4
mov dword [rbx + rcx*4 + 0x1ec], eax
cmp rbp, r14
jl 0x140092524
mov rsi, qword [rsp + 0x88]
cmp r9d, r10d
jl 0x1400923e3
mov r15, r13
mov r10d, edi
cmp dword [rbx + 0x3d4], edi
jle 0x140092600
lea r11, [rbx + 0x20c]
test r15, r15
jle 0x1400925f0
mov rsi, r11
lea r14, [0x140000000]
mov rbp, r15
movsxd r9, dword [rsi]
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 + 0xb83b0]
xor r8d, dword [r14 + rcx*4 + 0xb7fb0]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0xb7bb0]
xor r8d, dword [r14 + rax*4 + 0xb77b0]
mov dword [rsi], r8d
lea rsi, [rsi + 4]
sub rbp, rdi
jne 0x14009259f
add r10d, edi
add r11, 0x20
cmp r10d, dword [rbx + 0x3d4]
jl 0x14009258d
lea r11, [rsp + 0x50]
mov byte [rbx + 8], dil
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rax, vtable.std::exception.0
mov edi, 1
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x38]
xor eax, eax
mov byte [rsp + 0x28], dil
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x40], rax
lea rax, str.Empty_key
mov qword [rsp + 0x20], rax
call fcn.14004f738
lea rdx, [0x1400d1948]
lea rcx, [rsp + 0x30]
call fcn.14004fca4
int3