Function at 0x1400addc0
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movaps xmmword [rsp + 0x20], xmm6
mov esi, r8d
mov r12, rdx
mov rdi, rcx
mov ebp, r8d
shr ebp, 2
lea eax, [rbp + 6]
mov dword [rcx + 0x18], eax
lea r11d, [rax*4 + 4]
mov r8, qword [rcx + 0x120]
mov rbx, qword [rcx + 0x128]
add rcx, 0x20
call fcn.14003e2a0
cmp rbx, rax
jne 0x1400ade2e
cmp r11, 0x3c
ja 0x1400ade2e
cmp r8, r11
jbe 0x1400ade4c
sub r8, r11
lea rcx, [rbx + r11*4]
mov rdx, r8
call fcn.14003ee60
jmp 0x1400ade4c
mov rdx, r11
lea rcx, [rdi + 0x20]
call fcn.14003e2b0
mov r9, rax
mov rdx, rbx
lea rcx, [rdi + 0x20]
call fcn.14003cf50
mov rbx, r9
mov qword [rdi + 0x128], rbx
mov qword [rdi + 0x120], r11
cmp byte [0x140174a43], 0
jne 0x1400ade68
call fcn.1400b9d10
mov r14, rsi
cmp byte [0x140174a8c], 0
je 0x1400ae04a
movdqu xmm6, xmmword [r12 + rsi - 0x10]
mov r8, rsi
mov rdx, r12
mov rcx, rbx
call fcn.1400c08c0
aeskeygenassist xmm0, xmm6, 0
pextrd edx, xmm0, 3
xor edx, dword [rbx]
xor edx, 1
shr r14, 2
lea r14, [r14*4]
mov dword [r14 + rbx], edx
lea r8, [0x1401387fc]
xor edx, dword [rbx + 4]
lea eax, [rbp + 1]
lea r9, [rax*4]
mov dword [r9 + rbx], edx
xor edx, dword [rbx + 8]
lea eax, [rbp + 2]
lea r10, [rax*4]
mov dword [r10 + rbx], edx
lea eax, [rbp + 3]
lea r11, [rax*4]
xor edx, dword [rbx + 0xc]
mov dword [r11 + rbx], edx
mov rcx, qword [rdi + 0x120]
mov rax, qword [rdi + 0x128]
lea rdx, [rax + rcx*4]
lea rax, [rbx + 0x10]
add rax, r14
cmp rax, rdx
je 0x1400adfbe
nop dword [rax]
cmp esi, 0x18
jne 0x1400adf2c
mov eax, dword [rbx + 0x24]
xor eax, dword [rbx + 0x10]
mov dword [rbx + 0x28], eax
xor eax, dword [rbx + 0x14]
mov dword [rbx + 0x2c], eax
pinsrd xmm6, eax, 3
jmp 0x1400adf6b
cmp esi, 0x20
jne 0x1400adf64
pinsrd xmm6, dword [rbx + 0x2c], 3
aeskeygenassist xmm0, xmm6, 0
pextrd eax, xmm0, 2
xor eax, dword [rbx + 0x10]
mov dword [rbx + 0x30], eax
xor eax, dword [rbx + 0x14]
mov dword [rbx + 0x34], eax
xor eax, dword [rbx + 0x18]
mov dword [rbx + 0x38], eax
xor eax, dword [rbx + 0x1c]
mov dword [rbx + 0x3c], eax
pinsrd xmm6, eax, 3
jmp 0x1400adf6b
pinsrd xmm6, dword [rbx + 0x1c], 3
add rbx, r14
aeskeygenassist xmm0, xmm6, 0
pextrd eax, xmm0, 3
xor eax, dword [r8]
xor eax, dword [rbx]
mov dword [r14 + rbx], eax
add r8, 4
xor eax, dword [rbx + 4]
mov dword [r9 + rbx], eax
xor eax, dword [rbx + 8]
mov dword [r10 + rbx], eax
xor eax, dword [rbx + 0xc]
mov dword [r11 + rbx], eax
mov rcx, qword [rdi + 0x120]
mov rax, qword [rdi + 0x128]
lea rdx, [rax + rcx*4]
lea rax, [r14 + 0x10]
add rax, rbx
cmp rax, rdx
jne 0x1400adf10
lea rcx, [rdi + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
test al, al
jne 0x1400ae9ef
mov r8, qword [rdi + 0x128]
mov eax, dword [rdi + 0x18]
shl eax, 2
movdqu xmm1, xmmword [r8]
movdqu xmm0, xmmword [r8 + rax*4]
movdqu xmmword [r8], xmm0
movdqu xmmword [r8 + rax*4], xmm1
mov esi, 4
mov eax, dword [rdi + 0x18]
lea edx, [rax*4 - 4]
cmp edx, esi
jbe 0x1400ae036
nop word [rax + rax]
mov eax, esi
lea rcx, [r8 + rax*4]
aesimc xmm1, xmmword [rcx]
aesimc xmm0, xmmword [r8 + rdx*4]
movdqu xmmword [rcx], xmm0
movdqu xmmword [r8 + rdx*4], xmm1
add esi, 4
add edx, 0xfffffffc
cmp esi, edx
jb 0x1400ae010
mov eax, esi
aesimc xmm0, xmmword [r8 + rax*4]
movdqu xmmword [r8 + rax*4], xmm0
jmp 0x1400ae9ef
mov r15, r14
and r15, 0xfffffffffffffffc
test esi, esi
je 0x1400ae0b5
test rbx, rbx
jne 0x1400ae067
call fcn.1400d1470
mov dword [rax], socket
jmp 0x1400ae0b0
test r12, r12
je 0x1400ae081
cmp r15, r14
jb 0x1400ae081
mov r8, r14
mov rdx, r12
mov rcx, rbx
call fcn.1400c08c0
jmp 0x1400ae0b5
mov r8, r15
xor edx, edx
mov rcx, rbx
call fcn.1400c0f70
test r12, r12
jne 0x1400ae0a0
call fcn.1400d1470
mov dword [rax], socket
jmp 0x1400ae0b0
cmp r15, r14
jae 0x1400ae0b5
call fcn.1400d1470
mov dword [rax], 0x22
call fcn.1400d49a8
mov r8, r15
sub r8, r14
lea rcx, [rsi + rbx]
xor edx, edx
call fcn.1400c0f70
lea r8, [rsi + 3]
and r8, 0xfffffffffffffffc
mov rdx, rbx
mov rcx, rbx
call fcn.1400a6c60
lea eax, [rbp - 1]
lea r10, [rax*4]
mov edx, dword [r10 + rbx]
mov eax, edx
shr eax, 0x10
movzx ecx, al
lea r13, [0x140000000]
movzx r8d, byte [rcx + r13 + 0x1343f0]
xor r8d, 1
shl r8d, 8
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x1343f0]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r13 + 0x1343f0]
xor r8d, eax
shl r8d, 8
mov eax, edx
shr rax, 0x18
movzx eax, byte [rax + r13 + 0x1343f0]
xor r8d, eax
xor r8d, dword [rbx]
mov dword [r15 + rbx], r8d
lea r9, [0x1401343cc]
xor r8d, dword [rbx + 4]
lea eax, [rbp + 1]
lea r11, [rax*4]
mov dword [r11 + rbx], r8d
xor r8d, dword [rbx + 8]
lea eax, [rbp + 2]
lea r12, [rax*4]
mov dword [r12 + rbx], r8d
lea eax, [rbp + 3]
lea rbp, [rax*4]
xor r8d, dword [rbx + 0xc]
mov dword [rbx + rbp], r8d
mov r14, qword [rdi + 0x128]
mov rax, qword [rdi + 0x120]
lea rcx, [r14 + rax*4]
lea rax, [rbx + 0x10]
add rax, r15
cmp rax, rcx
je 0x1400ae2e1
nop
cmp esi, 0x18
jne 0x1400ae1c6
mov eax, dword [rbx + 0x24]
xor eax, dword [rbx + 0x10]
mov dword [rbx + 0x28], eax
xor eax, dword [rbx + 0x14]
mov dword [rbx + 0x2c], eax
jmp 0x1400ae240
cmp esi, 0x20
jne 0x1400ae240
mov edx, dword [rbx + 0x2c]
mov eax, edx
shr rax, 0x18
movzx r8d, byte [rax + r13 + 0x1343f0]
shl r8d, 8
mov eax, edx
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x1343f0]
xor r8d, eax
shl r8d, 8
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x1343f0]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r13 + 0x1343f0]
xor r8d, eax
xor r8d, dword [rbx + 0x10]
mov dword [rbx + 0x30], r8d
xor r8d, dword [rbx + 0x14]
mov dword [rbx + 0x34], r8d
xor r8d, dword [rbx + 0x18]
mov dword [rbx + 0x38], r8d
xor r8d, dword [rbx + 0x1c]
mov dword [rbx + 0x3c], r8d
add rbx, r15
mov edx, dword [r10 + rbx]
mov eax, edx
shr eax, 0x10
movzx ecx, al
movzx r8d, byte [rcx + r13 + 0x1343f0]
shl r8d, 8
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r13 + 0x1343f0]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + r13 + 0x1343f0]
xor r8d, eax
shl r8d, 8
mov eax, edx
shr rax, 0x18
movzx eax, byte [rax + r13 + 0x1343f0]
xor r8d, eax
xor r8d, dword [rbx]
xor r8d, dword [r9]
mov dword [r15 + rbx], r8d
add r9, 4
xor r8d, dword [rbx + 4]
mov dword [r11 + rbx], r8d
xor r8d, dword [rbx + 8]
mov dword [r12 + rbx], r8d
xor r8d, dword [rbx + 0xc]
mov dword [rbx + rbp], r8d
mov r14, qword [rdi + 0x128]
mov rax, qword [rdi + 0x120]
lea rcx, [r14 + rax*4]
lea rax, [r15 + 0x10]
add rax, rbx
cmp rax, rcx
jne 0x1400ae1b0
lea rcx, [rdi + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
test al, al
je 0x1400ae3b2
movzx eax, byte [0x140175588]
test al, al
jne 0x1400ae384
xor ebx, ebx
mov r11d, ebx
nop word [rax + rax]
movzx r8d, byte [r11 + r13 + 0x1343f0]
lea r9d, [r8 + r8]
mov edx, r8d
shr edx, 7
imul r10d, edx, 0x1b000000
mov eax, r9d
shl eax, 0x18
xor r10, rax
mov eax, r8d
shl eax, 8
or eax, r8d
shl eax, 8
or r10, rax
imul ecx, edx, 0x11b
xor rcx, r8
mov eax, r9d
xor rcx, rax
or rcx, r10
shl rcx, 0x20
or rcx, r10
mov qword [r13 + r11*8 + 0x174a90], rcx
inc r11
cmp r11, 0x100
jl 0x1400ae310
mov qword [0x140175298], rbx
mov qword [0x140175290], rbx
mov byte [0x140175588], 1
mov r8d, reloc.WS2_32.dll_recv
mov rdx, r14
mov rcx, r14
call fcn.1400a6c60
mov eax, dword [rdi + 0x18]
shl eax, 2
lea rcx, [r14 + rax*4]
mov r8d, reloc.WS2_32.dll_recv
mov rdx, rcx
call fcn.1400a6c60
jmp 0x1400ae9c0
movzx eax, byte [0x140175589]
test al, al
jne 0x1400ae3c2
call fcn.1400adc20
mov esi, 4
mov eax, dword [rdi + 0x18]
lea ebp, [rax*4 - 4]
lea r12, [0x140000000]
cmp ebp, esi
jbe 0x1400ae773
lea r15d, [rbp + 2]
lea r13d, [rsi + 2]
nop dword [rax + rax]
mov eax, esi
lea rbx, [r14 + rax*4]
mov r8d, dword [rbx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r11d, dword [r12 + rdx*8 + 0x175684]
xor r11d, dword [r12 + rax*8 + 0x175681]
mov eax, r8d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r11d, dword [r12 + rax*8 + 0x175682]
movzx eax, r8b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r11d, dword [r12 + rcx*8 + 0x175683]
lea r10, [r14 + rbp*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [rbx], r8d
mov dword [r10], r11d
lea eax, [r13 - 1]
lea rbx, [r14 + rax*4]
mov r8d, dword [rbx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r11d, dword [r12 + rdx*8 + 0x175684]
xor r11d, dword [r12 + rax*8 + 0x175681]
mov eax, r8d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r11d, dword [r12 + rax*8 + 0x175682]
movzx eax, r8b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r11d, dword [r12 + rcx*8 + 0x175683]
lea eax, [r15 - 1]
lea r10, [r14 + rax*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [rbx], r8d
mov dword [r10], r11d
mov eax, r13d
lea rbx, [r14 + rax*4]
mov r8d, dword [rbx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r11d, dword [r12 + rdx*8 + 0x175684]
xor r11d, dword [r12 + rax*8 + 0x175681]
mov eax, r8d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r11d, dword [r12 + rax*8 + 0x175682]
movzx eax, r8b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r11d, dword [r12 + rcx*8 + 0x175683]
lea r10, [r14 + r15*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [rbx], r8d
mov dword [r10], r11d
lea eax, [r13 + 1]
lea rbx, [r14 + rax*4]
mov r8d, dword [rbx]
mov eax, r8d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r11d, dword [r12 + rdx*8 + 0x175684]
xor r11d, dword [r12 + rax*8 + 0x175681]
mov eax, r8d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r11d, dword [r12 + rax*8 + 0x175682]
movzx eax, r8b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r11d, dword [r12 + rcx*8 + 0x175683]
lea eax, [r15 + 1]
lea r10, [r14 + rax*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [rbx], r8d
mov dword [r10], r11d
add esi, 4
add r13d, 4
add ebp, 0xfffffffc
lea r15d, [r15 - 4]
cmp esi, ebp
jb 0x1400ae3f0
mov eax, esi
lea r10, [r14 + rax*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [r10], r8d
lea eax, [rsi + 1]
lea r10, [r14 + rax*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [r10], r8d
lea eax, [rsi + 2]
lea r10, [r14 + rax*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [r10], r8d
lea eax, [rsi + 3]
lea r10, [r14 + rax*4]
mov r9d, dword [r10]
mov eax, r9d
shr rax, 0x18
movzx edx, byte [rax + r12 + 0x1343f0]
mov eax, r9d
shr eax, 0x10
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
mov r8d, dword [r12 + rdx*8 + 0x175684]
xor r8d, dword [r12 + rax*8 + 0x175681]
mov eax, r9d
shr eax, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0x1343f0]
xor r8d, dword [r12 + rax*8 + 0x175682]
movzx eax, r9b
movzx ecx, byte [rax + r12 + 0x1343f0]
xor r8d, dword [r12 + rcx*8 + 0x175683]
mov dword [r10], r8d
mov edx, dword [r14]
bswap edx
mov eax, dword [rdi + 0x18]
shl eax, 2
mov ecx, dword [r14 + rax*4]
bswap ecx
mov dword [r14], ecx
mov eax, dword [rdi + 0x18]
shl eax, 2
mov dword [r14 + rax*4], edx
mov edx, dword [r14 + 4]
bswap edx
mov eax, dword [rdi + 0x18]
lea eax, [rax*4 + 1]
mov eax, dword [r14 + rax*4]
bswap eax
mov dword [r14 + 4], eax
mov eax, dword [rdi + 0x18]
lea eax, [rax*4 + 1]
mov dword [r14 + rax*4], edx
mov edx, dword [r14 + 8]
bswap edx
mov eax, dword [rdi + 0x18]
lea eax, [rax*4 + 2]
mov eax, dword [r14 + rax*4]
bswap eax
mov dword [r14 + 8], eax
mov eax, dword [rdi + 0x18]
lea eax, [rax*4 + 2]
mov dword [r14 + rax*4], edx
mov edx, dword [r14 + 0xc]
bswap edx
mov eax, dword [rdi + 0x18]
lea eax, [rax*4 + 3]
mov eax, dword [r14 + rax*4]
bswap eax
mov dword [r14 + 0xc], eax
mov eax, dword [rdi + 0x18]
lea eax, [rax*4 + 3]
mov dword [r14 + rax*4], edx
cmp byte [0x140174a43], 0
jne 0x1400ae9ce
call fcn.1400b9d10
cmp byte [0x140174a8c], 0
je 0x1400ae9ef
mov r8d, dword [rdi + 0x18]
shl r8d, 4
sub r8d, 0x10
lea rcx, [r14 + 0x10]
mov rdx, rcx
call fcn.1400a6c60
mov rbx, qword [rsp + 0x88]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret