Function at 0x140110900
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x278
mov qword [rsp + 0x58], r9
mov rsi, rdx
mov r10, rcx
mov rax, qword [0x1403a6f08]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov r12, qword [rdx + 8]
lea rax, [r12 + 1]
mov qword [rdx + 8], rax
movzx edi, byte [r12]
test dil, dil
js 0x140110983
xor edx, edx
xor ecx, ecx
nop dword [rax + rax]
movzx ecx, cl
shl rdi, cl
mov r9, rax
or rdx, rdi
add ecx, 7
inc rax
mov qword [rsi + 8], rax
movzx edi, byte [r9]
test dil, dil
jns 0x140110950
add rdi, 0xffffffffffffff80
shl rdi, cl
or rdi, rdx
test rdi, rdi
jne 0x140110990
jmp 0x140110ca8
add rdi, 0xffffffffffffff80
test rdi, rdi
je 0x140110ca8
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
movzx ebx, byte [rax]
test bl, bl
mov byte [rsp + 0x2f], r8b
js 0x1401109d7
add rax, 2
xor edx, edx
xor ecx, ecx
nop dword [rax]
movzx ecx, cl
shl rbx, cl
or rdx, rbx
add ecx, 7
mov qword [rsi + 8], rax
movzx ebx, byte [rax - 1]
inc rax
test bl, bl
jns 0x1401109b0
add rbx, 0xffffffffffffff80
shl rbx, cl
or rbx, rdx
jmp 0x1401109db
add rbx, 0xffffffffffffff80
mov qword [rsp + 0x40], r10
mov rcx, r10
call fcn.1401c54b0
mov r15, rax
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x510]
mov rax, qword [rax + 7]
mov qword [rsp + 0x60], rax
cmp byte [rsp + 0x2f], 0
je 0x140110a18
mov rax, qword [r15 + 0x3c0]
mov qword [rsp + 0x38], rax
mov r13, qword [rax + 8]
jmp 0x140110a66
mov ecx, reloc.WS2_32.dll_recv
call fcn.140263a80
mov r14, rax
mov qword [rax], rdi
mov rax, rdi
shr rax, 0x3d
lea rcx, [rdi*8]
neg rax
mov ebp, 0
sbb rbp, rbp
or rbp, rcx
mov rcx, rbp
call fcn.140263828
mov r13, rax
mov rcx, rax
xor edx, edx
mov r8, rbp
call fcn.140266cb0
mov qword [rsp + 0x38], r14
mov qword [r14 + 8], r13
lea rcx, [rsp + 0x70]
mov r8d, 0x200
xor edx, edx
call fcn.140266cb0
test rdi, rdi
movzx r10d, byte [rsp + 0x2f]
mov r11, qword [rsp + 0x40]
jle 0x140110c60
mov rax, qword [rsp + 0x2e8]
mov rcx, qword [rsp + 0x2e0]
sub rcx, rbx
mov qword [rsp + 0x50], rcx
sub rax, rbx
mov qword [rsp + 0x48], rax
xor eax, eax
xor ebp, ebp
xor r14d, r14d
xor edx, edx
jmp 0x140110ad4
mov qword [r13 + r14*8], rax
dec rdx
inc r14
cmp r14, rdi
je 0x140110c60
test rdx, rdx
jg 0x140110ac0
mov r8, qword [rsi + 8]
lea rcx, [r8 + 1]
mov qword [rsi + 8], rcx
movzx edx, byte [r8]
test dl, dl
js 0x140110b3e
add r8, 2
xor r9d, r9d
xor ecx, ecx
nop word cs:[rax + rax]
movzx ecx, cl
shl rdx, cl
or r9, rdx
add ecx, 7
mov qword [rsi + 8], r8
movzx edx, byte [r8 - 1]
inc r8
test dl, dl
jns 0x140110b00
add rdx, 0xffffffffffffff40
shl rdx, cl
or rdx, r9
test rdx, rdx
je 0x140110b4a
js 0x140110b56
cmp rdx, 0x3f
ja 0x140110b63
dec rdx
jmp 0x140110c56
add rdx, 0xffffffffffffff40
test rdx, rdx
jne 0x140110b2e
xor edx, edx
mov rax, qword [rsp + 0x60]
jmp 0x140110c56
not rdx
mov rax, qword [rsp + rdx*8 + 0x70]
jmp 0x140110c54
lea rax, [rdx - 0x40]
test r10b, r10b
je 0x140110ba5
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx + 8]
mov rcx, qword [rcx + 0x17]
mov ecx, dword [rcx + 8]
not rcx
add rax, rcx
cmp qword [rsp + 0x50], rax
jg 0x140110bcf
cmp rax, qword [rsp + 0x48]
jge 0x140110bcf
add rax, rbx
mov rcx, qword [r11 + 0x78]
mov rax, qword [rcx + rax*8 + 0x17]
mov rax, qword [rax + 7]
jmp 0x140110c4a
mov qword [rsp + 0x30], 0
cmp byte [r11 + 0xa8], 0
je 0x140110bd6
mov rcx, qword [r11 + 0x60]
cmp rcx, rax
jl 0x140110bdd
mov rax, qword [r11 + 0x78]
mov rax, qword [rax + rdx*8 - 0x1f1]
jmp 0x140110c36
mov rax, qword [r13 + r14*8]
jmp 0x140110c4a
xor ecx, ecx
cmp rcx, rax
jge 0x140110bc1
add rdx, 0xffffffffffffffbf
sub rdx, rcx
mov rcx, qword [r11 + 0xb0]
mov rax, qword [rcx + 8]
mov rax, qword [rax + 0x17]
mov r8d, dword [rax + 8]
mov rax, rdx
sub rax, r8
jge 0x140110c26
call fcn.1401622a0
mov r11, qword [rsp + 0x40]
movzx r10d, byte [rsp + 0x2f]
mov qword [rsp + 0x30], rax
mov rax, qword [0x1403a5af0]
add rax, 8
lea rcx, [rsp + 0x68]
jmp 0x140110c3f
add rax, qword [r11 + 0x88]
mov rcx, qword [r11 + 0x78]
mov rax, qword [rcx + rax*8 + 0x17]
add rax, 7
lea rcx, [rsp + 0x30]
mov rax, qword [rax]
mov qword [rcx], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + rbp*8 + 0x70], rax
inc ebp
and ebp, 0x3f
xor edx, edx
mov qword [r13 + r14*8], rax
jmp 0x140110ac8
test r10b, r10b
jne 0x140110ca8
mov rdi, qword [r15 + 0x3c0]
mov rax, qword [rsp + 0x38]
mov qword [r15 + 0x3c0], rax
test rdi, rdi
je 0x140110c93
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140110c8b
call fcn.140263abc
mov rcx, rdi
call fcn.140263820
mov rax, qword [rsi + 8]
sub rax, r12
mov qword [r15 + 0x3c8], r12
mov qword [r15 + 0x3d0], rax
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.140263800
nop
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret