Function at 0x14004e5c0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov eax, dword [rcx + 8]
mov rdi, rdx
mov qword [rsp + 0x38], rbp
cdq
mov rsi, rcx
and edx, 7
add eax, edx
sar eax, 3
movsxd rbp, eax
cmp ebp, dword [rdi]
jg 0x14004b13c
mov dword [rdi], ebp
jmp 0x14004b16f
mov rcx, rbp
mov qword [rsp + 0x30], rbx
call fcn.14011ecf0
movsxd r8, dword [rdi]
mov rdx, qword [rdi + 8]
mov rcx, rax
mov rbx, rax
call fcn.14011e9b0
mov rcx, qword [rdi + 8]
mov dword [rdi], ebp
call fcn.14011e950
mov qword [rdi + 8], rbx
mov rbx, qword [rsp + 0x30]
cmp dword [rsi + 8], 0xa0
mov rbp, qword [rsp + 0x38]
jne 0x14004b193
mov rdx, qword [rsi]
mov rcx, qword [rdi + 8]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp 0x14004fa10
mov rdx, qword [rsi]
mov rcx, qword [rdi + 8]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp 0x14004e5c0
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov r9d, dword [rdx]
mov ebp, r8d
mov rdi, rdx
and r9d, 0x3f
mov rsi, rcx
lea eax, [r9 + 3]
shr eax, 2
mov r10d, eax
je 0x14004d314
lea rdx, [rdx + rax*4 + 0x28]
nop
nop
nop
mov eax, dword [rdx - 4]
sub rdx, 4
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
sub r10, 1
mov dword [rdx], ecx
jne 0x14004d2f0
mov ecx, r9d
mov r8d, r9d
mov edx, 0xffffff80
shr r8, 2
not ecx
mov eax, 0x80
and ecx, 3
xor ebx, ebx
shl ecx, 3
shl edx, cl
shl eax, cl
and edx, dword [rdi + r8*4 + 0x28]
or edx, eax
cmp r9d, 0x37
mov dword [rdi + r8*4 + 0x28], edx
jbe 0x14004d35e
cmp r9d, 0x3c
jae 0x14004d351
mov dword [rdi + 0x64], ebx
mov rcx, rdi
call fcn.14004c790
mov r9d, ebx
jmp 0x14004d366
shr r9d, 2
add r9d, 1
cmp r9d, 0xe
movsxd rax, r9d
jae 0x14004d388
mov r8d, recv
lea rcx, [rdi + rax*4 + 0x28]
xor edx, edx
sub r8d, r9d
shl r8, 2
call fcn.14011f1f0
mov edx, dword [rdi]
mov ecx, dword [rdi + 4]
shl ecx, 3
mov eax, edx
shr eax, 0x1d
or ecx, eax
lea eax, [rdx*8]
mov dword [rdi + 0x60], ecx
mov rcx, rdi
mov dword [rdi + 0x64], eax
call fcn.14004c790
test ebp, ebp
je 0x14004d3e9
mov rdx, rbx
nop
nop
nop
nop
mov rax, rdx
mov ecx, ebx
add ebx, 1
shr rax, 2
not ecx
add rsi, 1
mov eax, dword [rdi + rax*4 + 8]
and ecx, 3
add rdx, 1
shl ecx, 3
shr eax, cl
cmp ebx, ebp
mov byte [rsi - 1], al
jb 0x14004d3c0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov r9d, dword [rdx]
mov ebp, r8d
mov rdi, rdx
and r9d, 0x7f
mov rsi, rcx
lea eax, [r9 + 7]
shr eax, 3
mov r10d, eax
je 0x14004e270
lea r11, [rdx + rax*8 + 0x50]
mov ebx, 0xff00ff00
nop
nop
mov ecx, dword [r11 - 8]
mov rdx, qword [r11 - 8]
sub r11, 8
shr rdx, 0x20
mov eax, ecx
mov r8d, ecx
ror r8d, 8
and r8, 0xffffffffff00ff00
rol eax, 8
and eax, 0xff00ff
or r8, rax
mov eax, edx
shl r8, 0x20
ror eax, 8
and rax, rbx
or r8, rax
mov eax, edx
rol eax, 8
and eax, 0xff00ff
or r8, rax
sub r10, 1
mov qword [r11], r8
jne 0x14004e220
mov ecx, r9d
mov r8d, r9d
mov rdx, 0xffffffffffffff00
shr r8, 3
not ecx
mov eax, 0x80
and ecx, 7
xor ebx, ebx
shl ecx, 3
shl rdx, cl
shl rax, cl
and rdx, qword [rdi + r8*8 + 0x50]
or rdx, rax
cmp r9d, 0x6f
mov qword [rdi + r8*8 + 0x50], rdx
jbe 0x14004e2c3
cmp r9d, 0x78
jae 0x14004e2b6
mov qword [rdi + 0xc8], rbx
mov rcx, rdi
call fcn.14004d400
mov r9d, ebx
jmp 0x14004e2cb
shr r9d, 3
add r9d, 1
cmp r9d, 0xe
movsxd rax, r9d
jae 0x14004e2ed
mov r8d, recv
lea rcx, [rdi + rax*8 + 0x50]
xor edx, edx
sub r8d, r9d
shl r8, 3
call fcn.14011f1f0
mov rdx, qword [rdi]
mov rcx, qword [rdi + 8]
shl rcx, 3
mov rax, rdx
shr rax, 0x3d
or rcx, rax
lea rax, [rdx*8]
mov qword [rdi + 0xc0], rcx
mov rcx, rdi
mov qword [rdi + 0xc8], rax
call fcn.14004d400
test ebp, ebp
je 0x14004e35b
mov r8, rbx
nop
nop
nop
mov rdx, r8
mov ecx, ebx
add ebx, 1
shr rdx, 3
not ecx
add rsi, 1
mov rdx, qword [rdi + rdx*8 + 0x10]
and ecx, 7
add r8, 1
shl ecx, 3
shr rdx, cl
cmp ebx, ebp
mov byte [rsi - 1], dl
jb 0x14004e330
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
sub rsp, 0x28
mov eax, dword [rdx + 0xd0]
cmp eax, 0x1c
je 0x14004e608
cmp eax, 0x20
je 0x14004e5f9
cmp eax, 0x30
je 0x14004e5ea
cmp eax, 0x40
jne 0x14004e613
mov r8d, eax
add rsp, 0x28
jmp 0x14004e1e0
mov r8d, gethostbyname
add rsp, 0x28
jmp 0x14004e1e0
mov r8d, 0x20
add rsp, 0x28
jmp 0x14004d2b0
mov r8d, 0x1c
call 0x14004d2b0
add rsp, 0x28
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov r9d, dword [rdx]
mov rdi, rdx
mov rsi, rcx
and r9d, 0x3f
lea eax, [r9 + 3]
shr eax, 2
mov edx, eax
je 0x14004fa66
lea r8, [rdi + rax*4 + 0x1c]
nop
mov eax, dword [r8 - 4]
sub r8, 4
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
sub rdx, 1
mov dword [r8], ecx
jne 0x14004fa40
mov ecx, r9d
mov r8d, r9d
mov edx, 0xffffff80
shr r8, 2
not ecx
mov eax, 0x80
and ecx, 3
xor ebx, ebx
shl ecx, 3
shl edx, cl
shl eax, cl
and edx, dword [rdi + r8*4 + 0x1c]
or edx, eax
cmp r9d, 0x37
mov dword [rdi + r8*4 + 0x1c], edx
jbe 0x14004fab0
cmp r9d, 0x3c
jae 0x14004faa3
mov dword [rdi + 0x58], ebx
mov rcx, rdi
call fcn.14004e620
mov r9d, ebx
jmp 0x14004fab8
shr r9d, 2
add r9d, 1
cmp r9d, 0xe
movsxd rax, r9d
jae 0x14004fada
mov r8d, recv
lea rcx, [rdi + rax*4 + 0x1c]
xor edx, edx
sub r8d, r9d
shl r8, 2
call fcn.14011f1f0
mov edx, dword [rdi]
mov ecx, dword [rdi + 4]
shl ecx, 3
mov eax, edx
shr eax, 0x1d
or ecx, eax
lea eax, [rdx*8]
mov dword [rdi + 0x54], ecx
mov rcx, rdi
mov dword [rdi + 0x58], eax
call fcn.14004e620
mov rdx, rbx
mov rax, rdx
mov ecx, ebx
add ebx, 1
shr rax, 2
not ecx
add rsi, 1
mov eax, dword [rdi + rax*4 + 8]
and ecx, 3
add rdx, 1
shl ecx, 3
shr eax, cl
cmp ebx, 0x14
mov byte [rsi - 1], al
jb 0x14004fb01
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret