Function at 0x140185ef0
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 0x140186069
cmp r8d, 0xc0
jb 0x140186069
test r8b, 0x20
jne 0x140185f6b
mov al, byte [r10]
and r8d, 0x1f
and eax, 0x3f
shl r8d, 6
or r8d, eax
add r10, 1
jmp 0x140186069
test r8b, 0x10
jne 0x140185f9c
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 0x140186069
test r8b, 8
jne 0x140185fd9
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 0x140186069
test r8b, 4
jne 0x14018601f
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 0x140186069
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 0x140186080
mov r9d, 1
mov dword [r11], r9d
jmp 0x14018678d
lea ecx, [r8 - 0x30]
cmp ecx, 0x4a
ja 0x14018678d
mov qword [rsp + 0x30], rbx
lea rbx, [0x140000000]
movsx edx, word [rbx + rcx*2 + 0x1d22a0]
test edx, edx
je 0x1401860bc
test edx, edx
jle 0x1401860b1
mov r8d, edx
jmp 0x140186788
mov r12d, edx
neg r12d
jmp 0x140186407
cmp ecx, 0x48
ja case.0x1401860d7.9
movzx eax, byte [rbx + rcx + 0x1867f4]
mov ecx, dword [rbx + rax*4 + 0x1867cc]
add rcx, rbx
jmp rcx
mov dword [r11], 0x25
jmp 0x140186788
bt r13d, 0x19
jae 0x1401861c3
movzx eax, byte [r10 + 1]
test byte [rax + rbx + 0x1d32a0], 8
je 0x140186788
movzx eax, byte [r10 + 2]
test byte [rax + rbx + 0x1d32a0], 8
je 0x140186788
movzx eax, byte [r10 + 3]
test byte [rax + rbx + 0x1d32a0], 8
je 0x140186788
movzx eax, byte [r10 + 4]
test byte [rax + rbx + 0x1d32a0], 8
je 0x140186788
mov edx, 4
mov r8d, esi
lea r9d, [rdx + 0x2c]
nop
nop
movzx ecx, byte [r10 + 1]
add r10, 1
cmp ecx, 0x61
jb 0x140186161
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 0x140186150
test edi, edi
mov edx, 0xff
mov ebx, 0x10ffff
cmovne edx, ebx
cmp r8d, edx
jbe 0x14018619d
mov dword [r11], 0x4c
jmp 0x140186788
test edi, edi
je 0x140186788
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x140186788
mov dword [r11], 0x49
jmp 0x140186788
mov dword [r11], 0x25
jmp 0x140186788
bt r13d, 0x19
jb 0x140186788
mov dword [r11], 0x25
jmp 0x140186788
cmp dword [rsp + 0x58], esi
jne 0x140186788
movzx eax, byte [r10 + 1]
cmp al, 0x3c
je 0x140186316
cmp al, 0x27
je 0x140186316
cmp al, 0x7b
mov r9d, 1
jne 0x140186257
movzx eax, byte [r10 + 2]
lea rcx, [r10 + 2]
test al, al
je 0x140186239
nop
cmp al, 0x7d
je 0x140186241
cmp al, 0x2d
je 0x140186230
cmp al, 0x30
jb 0x140186241
cmp al, 0x39
ja 0x140186241
add rcx, r9
mov al, byte [rcx]
test al, al
jne 0x140186220
mov ebx, r9d
add r10, rbx
jmp 0x140186259
movzx eax, byte [rcx]
test al, al
je 0x140186239
cmp al, 0x7d
je 0x140186239
mov r12d, 0x1c
jmp 0x140186788
mov ebx, esi
cmp byte [r10 + 1], 0x2d
jne 0x140186265
add r10, r9
jmp 0x140186268
mov r9d, esi
movzx ecx, byte [r10 + 1]
lea rdx, [r10 + 1]
mov eax, esi
cmp cl, 0x30
jb 0x14018629c
cmp cl, 0x39
ja 0x14018629c
cmp eax, 0xccccccb
jg 0x1401862b6
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 0x140186278
test ebx, ebx
je 0x1401862e1
add r10, 1
cmp byte [r10], 0x7d
je 0x1401862e1
mov dword [r11], 0x39
jmp 0x140186788
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x30
jb 0x1401862d5
cmp al, 0x39
ja 0x1401862d5
mov al, byte [rcx + 1]
mov r10, rcx
add rcx, 1
cmp al, 0x30
jae 0x1401862c3
mov dword [r11], 0x3d
jmp 0x140186788
test eax, eax
jne 0x1401862f1
mov dword [r11], 0x3a
jmp 0x140186788
test r9d, r9d
je 0x14018630b
cmp eax, ebp
jle 0x140186306
mov dword [r11], reloc.WS2_32.dll_ntohs
jmp 0x140186788
sub ebp, eax
lea eax, [rbp + 1]
mov r12d, eax
neg r12d
jmp 0x140186407
mov r12d, 0x1b
jmp 0x140186788
cmp dword [rsp + 0x58], esi
jne 0x14018637e
movzx ecx, byte [r10 + 1]
lea r9, [r10 + 1]
mov rbx, r10
cmp cl, 0x30
lea eax, [r8 - 0x30]
jb 0x14018636a
nop
cmp cl, 0x39
ja 0x14018636a
cmp eax, 0xccccccb
jg 0x1401863d6
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 0x140186340
cmp eax, 8
jl 0x140186401
cmp eax, ebp
jle 0x140186401
mov r10, rbx
movzx r8d, byte [r10]
cmp r8d, 0x38
jae 0x140186788
add r8d, 0xffffffd0
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
add edx, 1
cmp al, 0x30
jb 0x1401863b4
cmp al, 0x37
ja 0x1401863b4
cmp edx, 2
movzx eax, al
mov r10, rcx
lea r8d, [rax + r8*8 - 0x30]
jl 0x140186390
test edi, edi
jne 0x140186788
mov edx, 0xff
cmp r8d, edx
jbe 0x140186788
mov dword [r11], gethostbyname
jmp 0x140186788
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x30
jb 0x1401863f5
cmp al, 0x39
ja 0x1401863f5
mov al, byte [rcx + 1]
mov r10, rcx
add rcx, 1
cmp al, 0x30
jae 0x1401863e3
mov dword [r11], 0x3d
jmp 0x140186788
mov r12d, eax
neg r12d
cmp r12d, 0xc
jne 0x140186788
cmp byte [r10 + 1], 0x7b
jne 0x140186788
movzx ecx, byte [r10 + 2]
lea rax, [r10 + 2]
cmp cl, 0x30
jb 0x1401864b0
cmp cl, 0x39
ja 0x1401864b0
movzx ecx, byte [rax + 1]
add rax, 1
cmp cl, 0x30
jb 0x140186455
cmp cl, 0x39
ja 0x140186455
mov cl, byte [rax + 1]
add rax, 1
cmp cl, 0x30
jae 0x140186444
movzx ecx, byte [rax]
cmp cl, 0x7d
je 0x140186788
cmp cl, 0x2c
jne 0x1401864b0
movzx ecx, byte [rax + 1]
cmp cl, 0x7d
je 0x140186788
cmp cl, 0x30
jb 0x1401864b0
cmp cl, 0x39
ja 0x1401864b0
movzx ecx, byte [rax + 2]
add rax, 2
cmp cl, 0x30
jb 0x1401864a1
nop
nop
cmp cl, 0x39
ja 0x1401864a1
mov cl, byte [rax + 1]
add rax, 1
cmp cl, 0x30
jae 0x140186490
cmp byte [rax], 0x7d
sete sil
test esi, esi
jne 0x140186788
mov dword [r11], 0x25
jmp 0x140186788
cmp byte [r10 + 1], 0x7b
je 0x1401864cf
mov dword [r11], 0x51
jmp 0x140186788
cmp byte [r10 + 2], 0x7d
lea rax, [r10 + 2]
jne 0x1401864e6
mov dword [r11], 0x56
jmp 0x140186788
mov r10, rax
mov al, byte [rax]
mov r8d, esi
cmp al, 0x30
jb 0x14018652d
mov edx, 0xff
mov ebx, 0x10ffff
nop
cmp al, 0x37
ja 0x14018652d
add r10, 1
test r8d, r8d
movzx ecx, al
jne 0x140186515
cmp ecx, 0x30
je 0x140186526
test edi, edi
mov eax, edx
lea r8d, [rcx + r8*8 - 0x30]
cmovne eax, ebx
cmp r8d, eax
ja 0x140186559
mov al, byte [r10]
cmp al, 0x30
jae 0x140186500
cmp byte [r10], 0x7d
jne 0x14018657c
test edi, edi
je 0x140186788
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x140186788
mov dword [r11], 0x49
jmp 0x140186788
mov al, byte [r10]
cmp al, 0x30
jb 0x140186570
cmp al, 0x37
ja 0x140186570
mov al, byte [r10 + 1]
add r10, 1
cmp al, 0x30
jae 0x140186560
mov dword [r11], 0x22
jmp 0x140186788
mov dword [r11], 0x50
jmp 0x140186788
bt r13d, 0x19
jae 0x1401865f3
movzx eax, byte [r10 + 1]
test byte [rax + rbx + 0x1d32a0], 8
je 0x140186788
movzx eax, byte [r10 + 2]
test byte [rax + rbx + 0x1d32a0], 8
je 0x140186788
mov edx, 2
mov r8d, esi
lea r9d, [rdx + 0x2e]
movzx ecx, byte [r10 + 1]
add r10, 1
cmp ecx, 0x61
jb 0x1401865d2
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 0x1401865c1
jmp 0x140186788
cmp byte [r10 + 1], 0x7b
jne 0x1401866ee
mov cl, byte [r10 + 2]
add r10, 2
cmp cl, 0x7d
jne 0x140186617
mov dword [r11], 0x56
jmp 0x140186788
movzx eax, cl
mov r8d, esi
test byte [rax + rbx + 0x1d32a0], 8
je 0x140186689
mov edx, 0xff
mov ebx, 0x10ffff
mov r9d, gethostbyname
lea rsi, [0x140000000]
nop
add r10, 1
test r8d, r8d
movzx ecx, cl
jne 0x140186651
cmp ecx, r9d
je 0x14018667b
cmp ecx, 0x61
jb 0x140186659
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 0x1401866b5
movzx ecx, byte [r10]
test byte [rcx + rsi + 0x1d32a0], 8
jne 0x140186640
cmp byte [r10], 0x7d
jne 0x1401866e2
test edi, edi
je 0x140186788
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x140186788
mov dword [r11], 0x49
jmp 0x140186788
movzx eax, byte [r10]
test byte [rax + rsi + 0x1d32a0], 8
je 0x1401866d6
movzx eax, byte [r10 + 1]
add r10, 1
test byte [rax + rsi + 0x1d32a0], 8
jne 0x1401866c3
mov dword [r11], 0x22
jmp 0x140186788
mov dword [r11], 0x4f
jmp 0x140186788
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 + 0x1d32a0], 8
je 0x140186788
mov r10, rcx
movzx ecx, byte [rcx]
cmp ecx, 0x61
jb 0x140186724
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 0x140186700
jmp 0x140186788
movzx r8d, byte [r10 + 1]
add r10, 1
test r8d, r8d
jne 0x140186759
mov edx, 2
mov dword [r11], edx
jmp 0x140186788
cmp r8d, 0x7f
jbe 0x140186768
mov dword [r11], 0x44
jmp 0x140186788
lea eax, [r8 - 0x61]
cmp eax, 0x19
ja 0x140186775
add r8d, 0xffffffe0
xor r8d, 0x40
jmp 0x140186788
test r13b, 0x40
je 0x140186788
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 0x1401867b5
lea ecx, [r12 - 6]
cmp ecx, 5
ja 0x1401867b5
add r12d, 0x17
mov qword [r14], r10
mov eax, r12d
mov dword [r15], r8d
add rsp, 0x10
pop r15
pop r14
pop r12
ret