Function at 0x14008c460
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov rax, qword [0x1403e3c28]
xor rax, rsp
mov qword [rbp + 0x1a0], rax
xor eax, eax
mov qword [rsp + 0x18], rcx
mov qword [rsp], rax
lea r11, [rsp + 0x30]
mov r9d, eax
mov r10, rdx
mov r13, rcx
lea eax, [r9*8]
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 1]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
lea eax, [r9*8 + 2]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 3]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 4]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 5]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 6]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 7]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 8]
mov qword [r11 - 0x10], rdx
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 9]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
lea eax, [r9*8 + 0xa]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0xb]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0xc]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0xd]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0xe]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0xf]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x10]
mov qword [r11 - 8], rdx
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 0x11]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
lea eax, [r9*8 + 0x12]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x13]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x14]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
shl rdx, 8
lea eax, [r9*8 + 0x15]
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x16]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x17]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x18]
mov qword [r11], rdx
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 0x19]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
lea eax, [r9*8 + 0x1a]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x1b]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x1c]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x1d]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x1e]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x1f]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x20]
mov qword [r11 + 8], rdx
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 0x21]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
lea eax, [r9*8 + 0x22]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x23]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x24]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x25]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x26]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x27]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x28]
mov qword [r11 + 0x10], rdx
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 0x29]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
shl rdx, 8
lea eax, [r9*8 + 0x2a]
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x2b]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x2c]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x2d]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x2e]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x2f]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x30]
mov qword [r11 + 0x18], rdx
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 0x31]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
lea eax, [r9*8 + 0x32]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x33]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x34]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x35]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x36]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x37]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x38]
mov qword [r11 + 0x20], rdx
movzx edx, byte [rax + r10]
lea eax, [r9*8 + 0x39]
movzx eax, byte [rax + r10]
shl rdx, 8
or rdx, rax
lea eax, [r9*8 + 0x3a]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x3b]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x3c]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x3d]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x3e]
shl rdx, 8
movzx eax, byte [rax + r10]
or rdx, rax
lea eax, [r9*8 + 0x3f]
shl rdx, 8
movzx eax, byte [rax + r10]
lea r11, [r11 + 0x40]
or rdx, rax
add r9d, 8
mov qword [r11 - 0x18], rdx
cmp r9d, 0x10
jb 0x14008c4b1
mov eax, recvfrom
nop
lea ecx, [rax - 0xd]
mov r11, qword [rsp + rcx*8 + 0x20]
mov ecx, eax
mov r12, r11
shl r12, 0x38
mov rdx, r11
shl rdx, 0x3f
mov r15, qword [rsp + rcx*8 + 0x20]
mov rcx, r11
shr rcx, 8
mov r8, r15
or r12, rcx
shl r8, 0x2d
mov rcx, r11
shr rcx, 1
or rdx, rcx
mov rcx, r11
shr rcx, 7
xor r12, rdx
xor r12, rcx
mov rdx, r15
shr rdx, 0x3d
mov rcx, r15
shr rcx, 0x13
or r8, rcx
lea rcx, [r15*8]
or rdx, rcx
mov rcx, r15
shr rcx, 6
xor r8, rdx
xor r8, rcx
lea ecx, [rax - 0xe]
add r12, r8
add r12, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax - 5]
add r12, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 2]
mov qword [rsp + rcx*8 + 0x20], r12
lea ecx, [rax - 0xc]
mov r10, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 1]
mov r14, qword [rsp + rcx*8 + 0x20]
mov r8, r10
shl r8, 0x38
mov r9, r14
shl r9, 0x2d
mov rcx, r14
shr rcx, 0x13
mov rdx, r14
or r9, rcx
shr rdx, 0x3d
lea rcx, [r14*8]
or rdx, rcx
mov rcx, r14
shr rcx, 6
xor r9, rdx
xor r9, rcx
mov rdx, r10
shl rdx, 0x3f
mov rcx, r10
shr rcx, 8
or r8, rcx
mov rcx, r10
shr rcx, 1
or rdx, rcx
mov rcx, r10
shr rcx, 7
xor r8, rdx
xor r8, rcx
lea ecx, [rax - 4]
add r9, r8
add r9, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 3]
add r11, r9
mov qword [rsp + rcx*8 + 0x20], r11
lea ecx, [rax - 0xb]
mov rbx, qword [rsp + rcx*8 + 0x20]
mov r9, rbx
mov rcx, rbx
shl r9, 0x38
shr rcx, 8
or r9, rcx
mov rdx, rbx
shl rdx, 0x3f
mov rcx, rbx
shr rcx, 1
mov r8, r12
or rdx, rcx
shl r8, 0x2d
xor r9, rdx
mov rcx, rbx
shr rcx, 7
mov rdx, r12
xor r9, rcx
shr rdx, 0x3d
mov rcx, r12
shr rcx, 0x13
or r8, rcx
lea rcx, [r12*8]
or rdx, rcx
mov rcx, r12
shr rcx, 6
xor r8, rdx
xor r8, rcx
lea ecx, [rax - 3]
add r9, r8
mov r8, r11
shl r8, 0x2d
add r9, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 4]
add r10, r9
mov qword [rsp + rcx*8 + 0x20], r10
lea ecx, [rax - 0xa]
mov rsi, qword [rsp + rcx*8 + 0x20]
mov r9, rsi
mov rcx, rsi
shr rcx, 8
mov rdx, rsi
shl r9, 0x38
or r9, rcx
shl rdx, 0x3f
mov rcx, rsi
shr rcx, 1
or rdx, rcx
mov rcx, rsi
shr rcx, 7
xor r9, rdx
xor r9, rcx
mov rdx, r11
mov rcx, r11
shr rdx, 0x3d
shr rcx, 0x13
or r8, rcx
lea rcx, [r11*8]
or rdx, rcx
shr r11, 6
xor r8, rdx
lea ecx, [rax - 2]
xor r11, r8
mov rdx, r10
add r11, r9
shr rdx, 0x3d
add r11, qword [rsp + rcx*8 + 0x20]
mov r9, r10
lea ecx, [rax + 5]
shl r9, 0x2d
add r11, rbx
mov qword [rsp + rcx*8 + 0x20], r11
lea ecx, [rax - 9]
mov rdi, qword [rsp + rcx*8 + 0x20]
mov rcx, r10
shr rcx, 0x13
mov r8, rdi
or r9, rcx
shl r8, 0x38
lea rcx, [r10*8]
shr r10, 6
or rdx, rcx
mov rcx, rdi
xor r9, rdx
xor r10, r9
shr rcx, 8
or r8, rcx
mov r9, r11
shl r9, 0x2d
mov rcx, rdi
shr rcx, 1
mov rdx, rdi
shl rdx, 0x3f
or rdx, rcx
mov rcx, rdi
shr rcx, 7
xor r8, rdx
xor r8, rcx
mov rdx, r11
add r10, r8
shr rdx, 0x3d
lea ecx, [rax - 1]
add r10, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 6]
add r10, rsi
mov qword [rsp + rcx*8 + 0x20], r10
lea ecx, [rax - 8]
mov rbx, qword [rsp + rcx*8 + 0x20]
mov rcx, r11
shr rcx, 0x13
mov r8, rbx
or r9, rcx
shl r8, 0x38
lea rcx, [r11*8]
shr r11, 6
or rdx, rcx
mov rcx, rbx
shr rcx, 8
xor r9, rdx
or r8, rcx
xor r9, r11
mov rcx, rbx
mov rdx, rbx
shr rcx, 1
shl rdx, 0x3f
or rdx, rcx
mov rcx, rbx
shr rcx, 7
xor r8, rdx
xor r8, rcx
mov rdx, r10
lea rcx, [r15 + r9]
shr rdx, 0x3d
add r8, rcx
mov r9, r10
add rdi, r8
shl r9, 0x2d
lea ecx, [rax + 7]
mov qword [rsp + rcx*8 + 0x20], rdi
lea ecx, [rax - 7]
mov r11, qword [rsp + rcx*8 + 0x20]
mov rcx, r10
shr rcx, 0x13
mov r8, r11
or r9, rcx
shl r8, 0x38
lea rcx, [r10*8]
shr r10, 6
or rdx, rcx
mov rcx, r11
shr rcx, 8
xor r9, rdx
or r8, rcx
xor r9, r10
mov rcx, r11
mov rdx, r11
shr rcx, 1
shl rdx, 0x3f
or rdx, rcx
mov rcx, r11
shr rcx, 7
xor r8, rdx
xor r8, rcx
lea rcx, [rbx + r9]
add r8, rcx
lea ecx, [rax + 8]
add r8, r14
mov qword [rsp + rcx*8 + 0x20], r8
lea ecx, [rax - 6]
mov r8, qword [rsp + rcx*8 + 0x20]
mov r9, r8
mov rcx, r8
shr rcx, 8
mov rdx, r8
shl rdx, 0x3f
shl r9, 0x38
or r9, rcx
mov rcx, r8
shr r8, 7
shr rcx, 1
or rdx, rcx
mov rcx, rdi
shr rcx, 0x13
xor r9, rdx
xor r9, r8
mov rdx, rdi
mov r8, rdi
shr rdx, 0x3d
shl r8, 0x2d
or r8, rcx
lea rcx, [rdi*8]
or rdx, rcx
shr rdi, 6
xor r8, rdx
lea rcx, [r11 + r9]
xor r8, rdi
add r8, rcx
lea ecx, [rax + 9]
add eax, 8
add r8, r12
mov qword [rsp + rcx*8 + 0x20], r8
lea ecx, [rax + 2]
cmp ecx, 0x50
jb 0x14008c9b0
mov rcx, qword [r13 + 0x28]
lea r9, [0x14029d2c0]
mov rsi, qword [r13 + 8]
xor edx, edx
mov rdi, qword [r13 + 0x10]
mov rbx, qword [r13 + 0x18]
mov r11, qword [r13 + 0x20]
mov r12, qword [r13 + 0x30]
mov r15, qword [r13 + 0x38]
mov r14, qword [r13 + 0x40]
mov r13, rcx
mov qword [rsp + reloc.WS2_32.dll_recv], 0x10
nop word [rax + rax]
mov r8, r13
mov rax, r13
shl rax, 0x17
mov rcx, r13
shl rcx, 0x2e
mov r10, rsi
shr r8, 0x29
or r8, rax
shl r10, 0x24
mov rax, r13
shr rax, 0x12
or rcx, rax
mov rax, r13
xor r8, rcx
shr rax, 0xe
mov rcx, r13
shl rcx, 0x32
or rcx, rax
mov rax, r12
xor r8, rcx
and rax, r13
mov rcx, r13
not rcx
and rcx, r15
xor rcx, rax
mov rax, rsi
add r8, rcx
shr rax, 0x1c
add r8, qword [rdx + r9]
or r10, rax
add r8, qword [rsp + rdx + 0x20]
mov rax, rsi
shl rax, 0x1e
add r8, r14
mov rcx, rsi
shr rcx, 0x22
or rcx, rax
mov rax, rsi
xor r10, rcx
shl rax, 0x19
lea r9, [r8 + r11]
mov rcx, rsi
shr rcx, 0x27
or rcx, rax
mov rax, rdi
xor r10, rcx
and rax, rsi
mov rcx, rdi
xor rcx, rsi
and rcx, rbx
xor rcx, rax
mov rax, r9
add r10, rcx
shl rax, 0x17
add r10, r8
mov rcx, r9
shl rcx, 0x2e
mov r8, r9
shr r8, 0x29
or r8, rax
mov rax, r9
shr rax, 0x12
or rcx, rax
mov rax, r9
xor r8, rcx
shr rax, 0xe
mov rcx, r9
shl rcx, 0x32
or rcx, rax
mov rax, r13
xor r8, rcx
and rax, r9
mov rcx, r9
not rcx
and rcx, r12
xor rcx, rax
mov rax, qword [rsp]
add r8, rcx
lea rcx, [0x14029d2c0]
add r8, qword [rax + rcx + 8]
add r8, qword [rsp + rax + 0x28]
add r8, r15
mov r11, r10
shl r11, 0x24
mov rax, r10
shr rax, 0x1c
mov rcx, r10
shr rcx, 0x22
or r11, rax
lea r14, [r8 + rbx]
mov rax, r10
shl rax, 0x1e
or rcx, rax
mov rax, r10
xor r11, rcx
shl rax, 0x19
mov rcx, r10
shr rcx, 0x27
or rcx, rax
mov rax, rsi
xor r11, rcx
and rax, r10
mov rcx, rsi
xor rcx, r10
and rcx, rdi
xor rcx, rax
mov rax, r14
add r11, rcx
shl rax, 0x17
add r11, r8
mov rcx, r14
shl rcx, 0x2e
mov r8, r14
shr r8, 0x29
mov rbx, r11
or r8, rax
shl rbx, 0x24
mov rax, r14
shr rax, 0x12
or rcx, rax
mov rax, r14
xor r8, rcx
shr rax, 0xe
mov rcx, r14
shl rcx, 0x32
or rcx, rax
mov rax, r9
xor r8, rcx
and rax, r14
mov rcx, r14
not rcx
and rcx, r13
xor rcx, rax
mov rax, qword [rsp]
add r8, rcx
lea rcx, [0x14029d2c0]
add r8, qword [rax + rcx + 0x10]
mov rcx, r11
add r8, qword [rsp + rax + 0x30]
mov rax, r11
shr rcx, 0x22
add r8, r12
shr rax, 0x1c
or rbx, rax
mov rax, r11
shl rax, 0x1e
or rcx, rax
lea r15, [r8 + rdi]
xor rbx, rcx
mov rax, r11
shl rax, 0x19
mov rcx, r11
shr rcx, 0x27
or rcx, rax
mov rax, r10
xor rbx, rcx
and rax, r11
mov rcx, r10
xor rcx, r11
and rcx, rsi
xor rcx, rax
add rbx, rcx
add rbx, r8
mov rax, r15
shl rax, 0x17
mov r8, r15
shr r8, 0x29
mov rcx, r15
or r8, rax
shl rcx, 0x2e
mov rax, r15
mov rdi, rbx
shr rax, 0x12
or rcx, rax
shl rdi, 0x24
xor r8, rcx
mov rax, r15
shr rax, 0xe
mov rcx, r15
shl rcx, 0x32
or rcx, rax
mov rax, r14
xor r8, rcx
and rax, r15
mov rcx, r15
not rcx
and rcx, r9
xor rcx, rax
mov rax, qword [rsp]
add r8, rcx
lea rcx, [0x14029d2c0]
add r8, qword [rax + rcx + 0x18]
mov rcx, rbx
add r8, qword [rsp + rax + 0x38]
mov rax, rbx
shr rcx, 0x22
add r8, r13
shr rax, 0x1c
or rdi, rax
mov rax, rbx
shl rax, 0x1e
or rcx, rax
lea r12, [r8 + rsi]
xor rdi, rcx
mov rax, rbx
shl rax, 0x19
mov rcx, rbx
shr rcx, 0x27
or rcx, rax
mov rax, r11
xor rdi, rcx
and rax, rbx
mov rcx, r11
xor rcx, rbx
and rcx, r10
xor rcx, rax
mov rax, r12
add rdi, rcx
shl rax, 0x17
add rdi, r8
mov rcx, r12
shl rcx, 0x2e
mov r8, r12
shr r8, 0x29
or r8, rax
mov rax, r12
shr rax, 0x12
or rcx, rax
mov rax, r12
xor r8, rcx
shr rax, 0xe
mov rcx, r12
shl rcx, 0x32
or rcx, rax
mov rax, r15
xor r8, rcx
and rax, r12
mov rcx, r12
not rcx
and rcx, r14
xor rcx, rax
mov rax, qword [rsp]
add r8, rcx
mov rdx, qword [rsp]
lea rcx, [0x14029d2c0]
add r8, qword [rax + rcx + 0x20]
add rdx, 0x28
add r8, qword [rsp + rax + 0x40]
mov rsi, rdi
shl rsi, 0x24
add r8, r9
mov rax, rdi
mov qword [rsp], rdx
shr rax, 0x1c
lea r9, [0x14029d2c0]
or rsi, rax
mov rcx, rdi
shr rcx, 0x22
lea r13, [r8 + r10]
mov rax, rdi
shl rax, 0x1e
or rcx, rax
mov rax, rdi
xor rsi, rcx
shl rax, 0x19
mov rcx, rdi
shr rcx, 0x27
or rcx, rax
mov rax, rbx
xor rsi, rcx
and rax, rdi
mov rcx, rbx
xor rcx, rdi
and rcx, r11
xor rcx, rax
add rsi, rcx
add rsi, r8
sub qword [rsp + 0x10], 1
jne 0x14008cdd0
mov qword [rsp + 8], r13
mov r13, qword [rsp + 0x18]
mov rcx, qword [rsp + 8]
add qword [r13 + 8], rsi
add qword [r13 + 0x10], rdi
add qword [r13 + 0x18], rbx
add qword [r13 + 0x20], r11
add qword [r13 + 0x28], rcx
add qword [r13 + 0x30], r12
add qword [r13 + 0x38], r15
add qword [r13 + 0x40], r14
mov rcx, qword [rbp + 0x1a0]
xor rcx, rsp
call fcn.1401f11e0
lea r11, [rsp + 0x2b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret