Function at 0x140172610
Capabilities:
Encode data using base64

Disassembly:
push r12
push r14
push r15
sub rsp, 0x10
mov r10, qword [rcx]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], rsi
mov qword [rsp + 8], rdi
xor esi, esi
mov qword [rsp], r13
mov r13d, dword [rsp + 0x50]
mov r11, r8
movzx r8d, byte [r10 + 1]
mov edi, r13d
add r10, 2
mov ebp, r9d
shr edi, 0xb
mov r15, rdx
mov r14, rcx
and edi, 1
mov r12d, esi
je 0x140172789
cmp r8d, 0xc0
jb 0x140172789
test r8b, 0x20
jne 0x14017268b
mov al, byte [r10]
and r8d, 0x1f
and eax, 0x3f
shl r8d, 6
or r8d, eax
add r10, 1
jmp 0x140172789
test r8b, 0x10
jne 0x1401726bc
mov cl, byte [r10]
mov al, byte [r10 + 1]
and r8d, 0xf
and eax, 0x3f
and ecx, 0x3f
shl ecx, 6
or ecx, eax
mov eax, r8d
shl eax, 0xc
mov r8d, ecx
or r8d, eax
add r10, 2
jmp 0x140172789
test r8b, 8
jne 0x1401726f9
mov al, byte [r10]
mov cl, byte [r10 + 1]
and r8d, 7
and eax, 0x3f
and ecx, 0x3f
shl eax, 6
or ecx, eax
mov al, byte [r10 + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, r8d
shl eax, 0x12
mov r8d, ecx
or r8d, eax
add r10, 3
jmp 0x140172789
test r8b, 4
jne 0x14017273f
mov al, byte [r10]
mov cl, byte [r10 + 1]
and r8d, 3
and eax, 0x3f
and ecx, 0x3f
shl eax, 6
or ecx, eax
mov al, byte [r10 + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov al, byte [r10 + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, r8d
shl eax, 0x18
mov r8d, ecx
or r8d, eax
add r10, 4
jmp 0x140172789
mov al, byte [r10]
mov cl, byte [r10 + 1]
and r8d, 1
and eax, 0x3f
and ecx, 0x3f
shl eax, 6
or ecx, eax
mov al, byte [r10 + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov al, byte [r10 + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov al, byte [r10 + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, r8d
shl eax, 0x1e
mov r8d, ecx
or r8d, eax
add r10, 5
sub r10, 1
test r8d, r8d
jne 0x1401727a0
mov r9d, 1
mov dword [r11], r9d
jmp 0x140172ead
lea ecx, [r8 - 0x30]
cmp ecx, 0x4a
ja 0x140172ead
mov qword [rsp + 0x30], rbx
lea rbx, [0x140000000]
movsx edx, word [rbx + rcx*2 + 0x1bbfa0]
test edx, edx
je 0x1401727dc
test edx, edx
jle 0x1401727d1
mov r8d, edx
jmp 0x140172ea8
mov r12d, edx
neg r12d
jmp 0x140172b27
cmp ecx, 0x48
ja case.0x1401727f7.9
movzx eax, byte [rbx + rcx + 0x172f14]
mov ecx, dword [rbx + rax*4 + 0x172eec]
add rcx, rbx
jmp rcx
mov dword [r11], 0x25
jmp 0x140172ea8
bt r13d, 0x19
jae 0x1401728e3
movzx eax, byte [r10 + 1]
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172ea8
movzx eax, byte [r10 + 2]
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172ea8
movzx eax, byte [r10 + 3]
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172ea8
movzx eax, byte [r10 + 4]
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172ea8
mov edx, 4
mov r8d, esi
lea r9d, [rdx + 0x2c]
nop
nop
movzx ecx, byte [r10 + 1]
add r10, 1
cmp ecx, 0x61
jb 0x140172881
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, 0x37
cmovb eax, r9d
shl r8d, 4
sub r8d, eax
add r8d, ecx
sub rdx, 1
jne 0x140172870
test edi, edi
mov edx, 0xff
mov ebx, 0x10ffff
cmovne edx, ebx
cmp r8d, edx
jbe 0x1401728bd
mov dword [r11], 0x4c
jmp 0x140172ea8
test edi, edi
je 0x140172ea8
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x140172ea8
mov dword [r11], 0x49
jmp 0x140172ea8
mov dword [r11], 0x25
jmp 0x140172ea8
bt r13d, 0x19
jb 0x140172ea8
mov dword [r11], 0x25
jmp 0x140172ea8
cmp dword [rsp + 0x58], esi
jne 0x140172ea8
movzx eax, byte [r10 + 1]
cmp al, 0x3c
je 0x140172a36
cmp al, 0x27
je 0x140172a36
cmp al, 0x7b
mov r9d, 1
jne 0x140172977
movzx eax, byte [r10 + 2]
lea rcx, [r10 + 2]
test al, al
je 0x140172959
nop
cmp al, 0x7d
je 0x140172961
cmp al, 0x2d
je 0x140172950
cmp al, 0x30
jb 0x140172961
cmp al, 0x39
ja 0x140172961
add rcx, r9
mov al, byte [rcx]
test al, al
jne 0x140172940
mov ebx, r9d
add r10, rbx
jmp 0x140172979
movzx eax, byte [rcx]
test al, al
je 0x140172959
cmp al, 0x7d
je 0x140172959
mov r12d, 0x1c
jmp 0x140172ea8
mov ebx, esi
cmp byte [r10 + 1], 0x2d
jne 0x140172985
add r10, r9
jmp 0x140172988
mov r9d, esi
movzx ecx, byte [r10 + 1]
lea rdx, [r10 + 1]
mov eax, esi
cmp cl, 0x30
jb 0x1401729bc
cmp cl, 0x39
ja 0x1401729bc
cmp eax, 0xccccccb
jg 0x1401729d6
lea ecx, [rax + rax*4]
movzx eax, byte [rdx]
mov r10, rdx
add rdx, 1
lea eax, [rax + rcx*2 - 0x30]
mov cl, byte [rdx]
cmp cl, 0x30
jae 0x140172998
test ebx, ebx
je 0x140172a01
add r10, 1
cmp byte [r10], 0x7d
je 0x140172a01
mov dword [r11], 0x39
jmp 0x140172ea8
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x30
jb 0x1401729f5
cmp al, 0x39
ja 0x1401729f5
mov al, byte [rcx + 1]
mov r10, rcx
add rcx, 1
cmp al, 0x30
jae 0x1401729e3
mov dword [r11], 0x3d
jmp 0x140172ea8
test eax, eax
jne 0x140172a11
mov dword [r11], 0x3a
jmp 0x140172ea8
test r9d, r9d
je 0x140172a2b
cmp eax, ebp
jle 0x140172a26
mov dword [r11], setsockopt
jmp 0x140172ea8
sub ebp, eax
lea eax, [rbp + 1]
mov r12d, eax
neg r12d
jmp 0x140172b27
mov r12d, 0x1b
jmp 0x140172ea8
cmp dword [rsp + 0x58], esi
jne 0x140172a9e
movzx ecx, byte [r10 + 1]
lea r9, [r10 + 1]
mov rbx, r10
cmp cl, 0x30
lea eax, [r8 - 0x30]
jb 0x140172a8a
nop
cmp cl, 0x39
ja 0x140172a8a
cmp eax, 0xccccccb
jg 0x140172af6
lea ecx, [rax + rax*4]
movzx eax, byte [r9]
mov r10, r9
add r9, 1
lea eax, [rax + rcx*2 - 0x30]
mov cl, byte [r9]
cmp cl, 0x30
jae 0x140172a60
cmp eax, 8
jl 0x140172b21
cmp eax, ebp
jle 0x140172b21
mov r10, rbx
movzx r8d, byte [r10]
cmp r8d, 0x38
jae 0x140172ea8
add r8d, 0xffffffd0
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
add edx, 1
cmp al, 0x30
jb 0x140172ad4
cmp al, 0x37
ja 0x140172ad4
cmp edx, 2
movzx eax, al
mov r10, rcx
lea r8d, [rax + r8*8 - 0x30]
jl 0x140172ab0
test edi, edi
jne 0x140172ea8
mov edx, 0xff
cmp r8d, edx
jbe 0x140172ea8
mov dword [r11], gethostbyname
jmp 0x140172ea8
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x30
jb 0x140172b15
cmp al, 0x39
ja 0x140172b15
mov al, byte [rcx + 1]
mov r10, rcx
add rcx, 1
cmp al, 0x30
jae 0x140172b03
mov dword [r11], 0x3d
jmp 0x140172ea8
mov r12d, eax
neg r12d
cmp r12d, 0xc
jne 0x140172ea8
cmp byte [r10 + 1], 0x7b
jne 0x140172ea8
movzx ecx, byte [r10 + 2]
lea rax, [r10 + 2]
cmp cl, 0x30
jb 0x140172bd0
cmp cl, 0x39
ja 0x140172bd0
movzx ecx, byte [rax + 1]
add rax, 1
cmp cl, 0x30
jb 0x140172b75
cmp cl, 0x39
ja 0x140172b75
mov cl, byte [rax + 1]
add rax, 1
cmp cl, 0x30
jae 0x140172b64
movzx ecx, byte [rax]
cmp cl, 0x7d
je 0x140172ea8
cmp cl, 0x2c
jne 0x140172bd0
movzx ecx, byte [rax + 1]
cmp cl, 0x7d
je 0x140172ea8
cmp cl, 0x30
jb 0x140172bd0
cmp cl, 0x39
ja 0x140172bd0
movzx ecx, byte [rax + 2]
add rax, 2
cmp cl, 0x30
jb 0x140172bc1
nop
nop
cmp cl, 0x39
ja 0x140172bc1
mov cl, byte [rax + 1]
add rax, 1
cmp cl, 0x30
jae 0x140172bb0
cmp byte [rax], 0x7d
sete sil
test esi, esi
jne 0x140172ea8
mov dword [r11], 0x25
jmp 0x140172ea8
cmp byte [r10 + 1], 0x7b
je 0x140172bef
mov dword [r11], 0x51
jmp 0x140172ea8
cmp byte [r10 + 2], 0x7d
lea rax, [r10 + 2]
jne 0x140172c06
mov dword [r11], 0x56
jmp 0x140172ea8
mov r10, rax
mov al, byte [rax]
mov r8d, esi
cmp al, 0x30
jb 0x140172c4d
mov edx, 0xff
mov ebx, 0x10ffff
nop
cmp al, 0x37
ja 0x140172c4d
add r10, 1
test r8d, r8d
movzx ecx, al
jne 0x140172c35
cmp ecx, 0x30
je 0x140172c46
test edi, edi
mov eax, edx
lea r8d, [rcx + r8*8 - 0x30]
cmovne eax, ebx
cmp r8d, eax
ja 0x140172c79
mov al, byte [r10]
cmp al, 0x30
jae 0x140172c20
cmp byte [r10], 0x7d
jne 0x140172c9c
test edi, edi
je 0x140172ea8
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x140172ea8
mov dword [r11], 0x49
jmp 0x140172ea8
mov al, byte [r10]
cmp al, 0x30
jb 0x140172c90
cmp al, 0x37
ja 0x140172c90
mov al, byte [r10 + 1]
add r10, 1
cmp al, 0x30
jae 0x140172c80
mov dword [r11], 0x22
jmp 0x140172ea8
mov dword [r11], 0x50
jmp 0x140172ea8
bt r13d, 0x19
jae 0x140172d13
movzx eax, byte [r10 + 1]
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172ea8
movzx eax, byte [r10 + 2]
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172ea8
mov edx, 2
mov r8d, esi
lea r9d, [rdx + 0x2e]
movzx ecx, byte [r10 + 1]
add r10, 1
cmp ecx, 0x61
jb 0x140172cf2
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, 0x37
cmovb eax, r9d
shl r8d, 4
sub r8d, eax
add r8d, ecx
sub rdx, 1
jne 0x140172ce1
jmp 0x140172ea8
cmp byte [r10 + 1], 0x7b
jne 0x140172e0e
mov cl, byte [r10 + 2]
add r10, 2
cmp cl, 0x7d
jne 0x140172d37
mov dword [r11], 0x56
jmp 0x140172ea8
movzx eax, cl
mov r8d, esi
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172da9
mov edx, 0xff
mov ebx, 0x10ffff
mov r9d, gethostbyname
lea rsi, [0x140000000]
nop
add r10, 1
test r8d, r8d
movzx ecx, cl
jne 0x140172d71
cmp ecx, r9d
je 0x140172d9b
cmp ecx, 0x61
jb 0x140172d79
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, 0x37
cmovb eax, r9d
shl r8d, 4
sub r8d, eax
mov eax, edx
add r8d, ecx
test edi, edi
cmovne eax, ebx
cmp r8d, eax
ja 0x140172dd5
movzx ecx, byte [r10]
test byte [rcx + rsi + 0x1bcfa0], 8
jne 0x140172d60
cmp byte [r10], 0x7d
jne 0x140172e02
test edi, edi
je 0x140172ea8
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x140172ea8
mov dword [r11], 0x49
jmp 0x140172ea8
movzx eax, byte [r10]
test byte [rax + rsi + 0x1bcfa0], 8
je 0x140172df6
movzx eax, byte [r10 + 1]
add r10, 1
test byte [rax + rsi + 0x1bcfa0], 8
jne 0x140172de3
mov dword [r11], 0x22
jmp 0x140172ea8
mov dword [r11], 0x4f
jmp 0x140172ea8
mov r8d, esi
mov r9d, gethostbyname
nop
nop
nop
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
add edx, 1
test byte [rax + rbx + 0x1bcfa0], 8
je 0x140172ea8
mov r10, rcx
movzx ecx, byte [rcx]
cmp ecx, 0x61
jb 0x140172e44
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, 0x37
cmovb eax, r9d
shl r8d, 4
sub r8d, eax
add r8d, ecx
cmp edx, 2
jl 0x140172e20
jmp 0x140172ea8
movzx r8d, byte [r10 + 1]
add r10, 1
test r8d, r8d
jne 0x140172e79
mov edx, 2
mov dword [r11], edx
jmp 0x140172ea8
cmp r8d, 0x7f
jbe 0x140172e88
mov dword [r11], 0x44
jmp 0x140172ea8
lea eax, [r8 - 0x61]
cmp eax, 0x19
ja 0x140172e95
add r8d, 0xffffffe0
xor r8d, 0x40
jmp 0x140172ea8
test r13b, 0x40
je 0x140172ea8
mov dword [r11], 3
mov rbx, qword [rsp + 0x30]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
bt r13d, 0x1d
mov r13, qword [rsp]
jae 0x140172ed5
lea ecx, [r12 - 6]
cmp ecx, 5
ja 0x140172ed5
add r12d, 0x17
mov qword [r14], r10
mov eax, r12d
mov dword [r15], r8d
add rsp, 0x10
pop r15
pop r14
pop r12
ret