Function at 0x18001e780
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
test r9d, r9d
mov r12d, r9d
mov r11, r8
mov rsi, rdx
jne 0x18001e7b6
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r8
repne scasb al, byte [rdi]
not rcx
lea r12, [rcx - 1]
xor r9d, r9d
lea eax, [r12 - 4]
test eax, eax
mov ebp, r9d
mov r14d, r9d
lea ebx, [r9 + 0x3e]
lea r15d, [r9 + 0x3f]
jle 0x18001e9f4
add eax, 0xffffffff
mov qword [rsp + 0x50], r13
shr eax, 2
add eax, 1
mov r13d, eax
lea ebp, [rax + rax*2]
lea r14d, [rax*4]
mov edx, dword [r11]
cmp dl, 0x41
jl 0x18001e807
cmp dl, 0x5a
jg 0x18001e807
movsx r8d, dl
sub r8d, 0x41
jmp 0x18001e844
cmp dl, 0x61
jl 0x18001e81b
cmp dl, 0x7a
jg 0x18001e81b
movsx r8d, dl
sub r8d, 0x47
jmp 0x18001e844
cmp dl, 0x30
jl 0x18001e82f
cmp dl, 0x39
jg 0x18001e82f
movsx r8d, dl
add r8d, 4
jmp 0x18001e844
cmp dl, 0x2b
jne 0x18001e839
mov r8d, ebx
jmp 0x18001e844
or r8d, 0xffffffff
cmp dl, 0x2f
cmove r8d, r15d
mov edi, edx
shr edi, 8
lea eax, [rdi - 0x41]
cmp al, 0x19
ja 0x18001e859
movsx ecx, dil
sub ecx, 0x41
jmp 0x18001e88e
lea eax, [rdi - 0x61]
cmp al, 0x19
ja 0x18001e869
movsx ecx, dil
sub ecx, 0x47
jmp 0x18001e88e
lea eax, [rdi - 0x30]
cmp al, 9
ja 0x18001e879
movsx ecx, dil
add ecx, 4
jmp 0x18001e88e
cmp dil, 0x2b
jne 0x18001e883
mov ecx, ebx
jmp 0x18001e88e
or ecx, 0xffffffff
cmp dil, 0x2f
cmove ecx, r15d
shl ecx, 2
lea eax, [r8*4]
sar ecx, 6
or ecx, eax
lea eax, [rdi - 0x41]
cmp al, 0x19
movzx r10d, cl
ja 0x18001e8b3
movsx r8d, dil
sub r8d, 0x41
jmp 0x18001e8ec
lea eax, [rdi - 0x61]
cmp al, 0x19
ja 0x18001e8c4
movsx r8d, dil
sub r8d, 0x47
jmp 0x18001e8ec
lea eax, [rdi - 0x30]
cmp al, 9
ja 0x18001e8d5
movsx r8d, dil
add r8d, 4
jmp 0x18001e8ec
cmp dil, 0x2b
jne 0x18001e8e0
mov r8d, ebx
jmp 0x18001e8ec
or r8d, 0xffffffff
cmp dil, 0x2f
cmove r8d, r15d
mov ecx, edx
shr ecx, 0x10
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x18001e900
movsx eax, cl
sub eax, 0x41
jmp 0x18001e931
lea eax, [rcx - 0x61]
cmp al, 0x19
ja 0x18001e90f
movsx eax, cl
sub eax, 0x47
jmp 0x18001e931
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x18001e91e
movsx eax, cl
add eax, 4
jmp 0x18001e931
cmp cl, 0x2b
jne 0x18001e927
mov eax, ebx
jmp 0x18001e931
or eax, 0xffffffff
cmp cl, 0x2f
cmove eax, r15d
shl eax, 2
shl r8d, 4
sar eax, 4
or eax, r8d
movzx r8d, al
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x18001e951
movsx edi, cl
sub edi, 0x41
jmp 0x18001e982
lea eax, [rcx - 0x61]
cmp al, 0x19
ja 0x18001e960
movsx edi, cl
sub edi, 0x47
jmp 0x18001e982
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x18001e96f
movsx edi, cl
add edi, 4
jmp 0x18001e982
cmp cl, 0x2b
jne 0x18001e978
mov edi, ebx
jmp 0x18001e982
or edi, 0xffffffff
cmp cl, 0x2f
cmove edi, r15d
shr edx, 0x18
lea eax, [rdx - 0x41]
cmp al, 0x19
ja 0x18001e994
movsx eax, dl
sub eax, 0x41
jmp 0x18001e9c5
lea eax, [rdx - 0x61]
cmp al, 0x19
ja 0x18001e9a3
movsx eax, dl
sub eax, 0x47
jmp 0x18001e9c5
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x18001e9b2
movsx eax, dl
add eax, 4
jmp 0x18001e9c5
cmp dl, 0x2b
jne 0x18001e9bb
mov eax, ebx
jmp 0x18001e9c5
or eax, 0xffffffff
cmp dl, 0x2f
cmove eax, r15d
shl edi, 6
add rsi, 3
add r11, 4
or edi, eax
movzx eax, dil
shl eax, 8
or eax, r8d
shl eax, 8
or eax, r10d
sub r13, 1
mov dword [rsi - 3], eax
jne 0x18001e7f0
mov r13, qword [rsp + 0x50]
cmp r14d, r12d
jge 0x18001ec41
sub r12d, r14d
mov dword [rsp + 0x68], r9d
test r12d, r12d
movsxd r8, r12d
jle 0x18001ea1f
lea rcx, [rsp + 0x68]
mov rdx, r11
call sub.MSVCR80.dll_memcpy
mov r9d, dword [rsp + 0x68]
cmp r9b, 0x41
jl 0x18001ea34
cmp r9b, 0x5a
jg 0x18001ea34
movsx edx, r9b
sub edx, 0x41
jmp 0x18001ea73
cmp r9b, 0x61
jl 0x18001ea49
cmp r9b, 0x7a
jg 0x18001ea49
movsx edx, r9b
sub edx, 0x47
jmp 0x18001ea73
cmp r9b, 0x30
jl 0x18001ea5e
cmp r9b, 0x39
jg 0x18001ea5e
movsx edx, r9b
add edx, 4
jmp 0x18001ea73
cmp r9b, 0x2b
jne 0x18001ea68
mov edx, ebx
jmp 0x18001ea73
or edx, 0xffffffff
cmp r9b, 0x2f
cmove edx, r15d
mov ecx, r9d
shr ecx, 8
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x18001ea88
movsx eax, cl
sub eax, 0x41
jmp 0x18001eab9
lea eax, [rcx - 0x61]
cmp al, 0x19
ja 0x18001ea97
movsx eax, cl
sub eax, 0x47
jmp 0x18001eab9
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x18001eaa6
movsx eax, cl
add eax, 4
jmp 0x18001eab9
cmp cl, 0x2b
jne 0x18001eaaf
mov eax, ebx
jmp 0x18001eab9
or eax, 0xffffffff
cmp cl, 0x2f
cmove eax, r15d
shl eax, 2
shl dl, 2
add rsi, 1
sar eax, 6
add ebp, 1
or al, dl
cmp cl, 0x3d
mov byte [rsi - 1], al
je 0x18001eb81
mov edi, r9d
shr edi, 0x10
cmp dil, 0x3d
je 0x18001eb81
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x18001eaf6
movsx edx, cl
sub edx, 0x41
jmp 0x18001eb27
lea eax, [rcx - 0x61]
cmp al, 0x19
ja 0x18001eb05
movsx edx, cl
sub edx, 0x47
jmp 0x18001eb27
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x18001eb14
movsx edx, cl
add edx, 4
jmp 0x18001eb27
cmp cl, 0x2b
jne 0x18001eb1d
mov edx, ebx
jmp 0x18001eb27
or edx, 0xffffffff
cmp cl, 0x2f
cmove edx, r15d
lea eax, [rdi - 0x41]
cmp al, 0x19
ja 0x18001eb37
movsx eax, dil
sub eax, 0x41
jmp 0x18001eb6c
lea eax, [rdi - 0x61]
cmp al, 0x19
ja 0x18001eb47
movsx eax, dil
sub eax, 0x47
jmp 0x18001eb6c
lea eax, [rdi - 0x30]
cmp al, 9
ja 0x18001eb57
movsx eax, dil
add eax, 4
jmp 0x18001eb6c
cmp dil, 0x2b
jne 0x18001eb61
mov eax, ebx
jmp 0x18001eb6c
or eax, 0xffffffff
cmp dil, 0x2f
cmove eax, r15d
shl eax, 2
shl dl, 4
add rsi, 1
sar eax, 4
or al, dl
add ebp, 1
mov byte [rsi - 1], al
mov ecx, r9d
shr ecx, 0x10
cmp cl, 0x3d
je 0x18001ec3c
shr r9d, 0x18
cmp r9d, 0x3d
je 0x18001ec3c
lea eax, [rcx - 0x41]
cmp al, 0x19
ja 0x18001ebad
movsx edx, cl
sub edx, 0x41
jmp 0x18001ebde
lea eax, [rcx - 0x61]
cmp al, 0x19
ja 0x18001ebbc
movsx edx, cl
sub edx, 0x47
jmp 0x18001ebde
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x18001ebcb
movsx edx, cl
add edx, 4
jmp 0x18001ebde
cmp cl, 0x2b
jne 0x18001ebd4
mov edx, ebx
jmp 0x18001ebde
or edx, 0xffffffff
cmp cl, 0x2f
cmove edx, r15d
lea eax, [r9 - 0x41]
cmp al, 0x19
ja 0x18001ebef
movsx ebx, r9b
sub ebx, 0x41
jmp 0x18001ec22
lea eax, [r9 - 0x61]
cmp al, 0x19
ja 0x18001ec00
movsx ebx, r9b
sub ebx, 0x47
jmp 0x18001ec22
lea eax, [r9 - 0x30]
cmp al, 9
ja 0x18001ec11
movsx ebx, r9b
add ebx, 4
jmp 0x18001ec22
cmp r9b, 0x2b
je 0x18001ec22
or ebx, 0xffffffff
cmp r9b, 0x2f
cmove ebx, r15d
lea ecx, [rbx*4]
shl dl, 6
lea eax, [rbp + 1]
sar ecx, 2
or cl, dl
mov byte [rsi], cl
mov byte [rsi + 1], 0
jmp 0x18001ec46
mov byte [rsi], 0
jmp 0x18001ec44
mov byte [rsi], r9b
mov eax, ebp
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret