Function at 0x14000e35c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
je 0x14000e790
mov dword [rcx + 0x3d0], reloc.WS2_32.dll_recv
mov rdx, rax
mov dword [rcx + 0x3cc], reloc.WLDAP32.dll_Ordinal_32
movups xmm0, xmmword [r8]
movups xmmword [rcx + 0x3d8], xmm0
movsxd r8, dword [rcx + 0x3d0]
add rcx, 0x3f8
call fcn.140057750
mov eax, dword [rbx + 0x3cc]
cmp eax, 0x10
je 0x14000e3de
cmp eax, 0x18
mov eax, reloc.WS2_32.dll_ntohl
jne 0x14000e3fc
cmp dword [rbx + 0x3d0], 0x20
lea ecx, [rax - 2]
cmovne eax, ecx
jmp 0x14000e3fc
mov edx, dword [rbx + 0x3d0]
cmp edx, 0x10
jne 0x14000e3ee
lea eax, [rdx - 6]
jmp 0x14000e3fc
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
sar eax, 2
movsxd r13, eax
mov r15, r13
cmp dword [rbx + 0x3d4], r14d
jl 0x14000e44d
lea rbp, [rbx + 0xc]
test r13d, r13d
jle 0x14000e43d
mov r8, r13
xor edx, edx
shl r8, 2
mov rcx, rbp
call fcn.140057cb0
inc r14d
add rbp, 0x20
cmp r14d, dword [rbx + 0x3d4]
jle 0x14000e427
xor ebp, ebp
cmp dword [rbx + 0x3d4], ebp
jl 0x14000e482
lea r14, [rbx + 0x1ec]
test r13d, r13d
jle 0x14000e474
mov r8, r13
xor edx, edx
shl r8, 2
mov rcx, r14
call fcn.140057cb0
inc ebp
add r14, 0x20
cmp ebp, dword [rbx + 0x3d4]
jle 0x14000e45e
mov eax, dword [rbx + 0x3cc]
lea r12, [rbx + 0x418]
mov r10d, dword [rbx + 0x3d4]
cdq
and edx, 3
inc r10d
add eax, edx
imul r10d, r13d
sar eax, 2
mov rdx, r12
movsxd r14, eax
test eax, eax
jle 0x14000e4e1
mov r8d, r14d
movzx ecx, byte [rsi]
lea rsi, [rsi + 4]
shl ecx, 0x18
mov dword [rdx], ecx
movzx eax, byte [rsi - 3]
shl eax, 0x10
or dword [rdx], eax
movzx eax, byte [rsi - 2]
shl eax, 8
or dword [rdx], eax
movzx eax, byte [rsi - 1]
or dword [rdx], eax
lea rdx, [rdx + 4]
sub r8, 1
jne 0x14000e4b3
xor r9d, r9d
xor ebp, ebp
test r14d, r14d
jle 0x14000e535
mov rsi, r12
cmp r9d, r10d
jge 0x14000e6e8
mov eax, r9d
inc rbp
cdq
inc r9d
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 0x14000e4ee
cmp r9d, r10d
jge 0x14000e6e8
lea rsi, [0x1400a4cb0]
lea r15, [0x140000000]
movsxd r8, dword [rbx + r14*4 + 0x414]
mov rax, r8
sar rax, 0x10
movzx ecx, al
movsx eax, byte [rsi]
inc rsi
mov qword [rsp + 0x88], rsi
movsx edx, byte [rcx + r15 + 0xa7dd0]
xor edx, eax
mov rax, r8
sar rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0xa7dd0]
xor edx, eax
movzx eax, r8b
shl edx, 8
sar r8, 0x18
movzx eax, byte [rax + r15 + 0xa7dd0]
xor edx, eax
movzx eax, r8b
shl edx, 8
movzx eax, byte [rax + r15 + 0xa7dd0]
xor edx, eax
xor dword [r12], edx
cmp r14d, 8
je 0x14000e5ea
cmp r14, 1
jle 0x14000e687
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 0x14000e5d6
jmp 0x14000e687
lea rcx, [rbx + 0x41c]
mov edx, 3
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x14000e5f6
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 + 0xa7dd0]
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + r15 + 0xa7dd0]
xor edx, eax
mov rax, r8
sar rax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r15 + 0xa7dd0]
xor edx, eax
movzx eax, r8b
shl edx, 8
movzx eax, byte [rax + r15 + 0xa7dd0]
xor edx, eax
xor dword [rbx + 0x428], edx
cmp r14, 5
jle 0x14000e687
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 0x14000e678
xor ebp, ebp
test r14d, r14d
jle 0x14000e6dc
mov rsi, r12
cmp r9d, r10d
jge 0x14000e6e5
mov eax, r9d
inc rbp
cdq
inc r9d
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 0x14000e691
mov rsi, qword [rsp + 0x88]
cmp r9d, r10d
jl 0x14000e54c
mov r15, r13
mov r10d, 1
cmp dword [rbx + 0x3d4], r10d
jle 0x14000e772
lea r11, [rbx + 0x20c]
test r15, r15
jle 0x14000e762
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 + 0xa58d0]
xor r8d, dword [r14 + rcx*4 + 0xa54d0]
movzx ecx, al
movzx eax, r9b
xor r8d, dword [r14 + rcx*4 + 0xa50d0]
xor r8d, dword [r14 + rax*4 + 0xa4cd0]
mov dword [rsi], r8d
lea rsi, [rsi + 4]
sub rbp, 1
jne 0x14000e710
inc r10d
add r11, 0x20
cmp r10d, dword [rbx + 0x3d4]
jl 0x14000e6fe
lea r11, [rsp + 0x50]
mov byte [rbx + 8], 1
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rsi
ret
lea rax, vtable.std::exception.0
mov byte [rsp + 0x28], 1
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x38]
xor eax, eax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
lea rax, str.Empty_key
mov qword [rsp + 0x20], rax
call fcn.140057bc4
lea rdx, [0x1400b5eb0]
lea rcx, [rsp + 0x30]
call fcn.1400582e8
int3