Function at 0x14003c6e0
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov r12, r8
mov rbx, rcx
xor r10d, r10d
mov dword [rax - 0x54], r10d
mov qword [rcx], r10
mov qword [rcx + 0x10], r10
mov qword [rcx + 0x18], 7
mov word [rcx], r10w
mov dword [rax - 0x54], 1
cmp r8, 3
lea r15, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
jb 0x14003cc0b
movabs r9, 0x7ffffffffffffffe
movzx ecx, byte [rdx]
mov r8b, byte [rdx + 1]
mov r14b, cl
and r14b, 3
shl r14b, 4
mov al, r8b
shr al, 4
or r14b, al
mov byte [rsp + 0x90], r14b
mov dl, byte [rdx + 2]
and r8b, 0xf
shl r8b, 2
mov al, dl
shr al, 6
or r8b, al
mov byte [rsp + 0x98], r8b
and dl, 0x3f
mov byte [rsp + 0x20], dl
shr rcx, 2
movsx r13d, byte [rcx + r15]
mov r14, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
cmp r14, r15
jae 0x14003c7bc
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp r15, 8
jb 0x14003c7ac
mov rax, qword [rbx]
mov word [rax + r14*2], r13w
mov word [rax + r14*2 + 2], r10w
jmp 0x14003c895
mov rax, r9
sub rax, r14
cmp rax, 1
jb 0x14003ce24
lea rbp, [r14 + 1]
mov rdi, rbp
or rdi, 7
cmp rdi, r9
jbe 0x14003c7e1
mov rdi, r9
jmp 0x14003c7fd
mov rcx, r15
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp r15, rax
ja 0x14003c7dc
lea rax, [r15 + rcx]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007578
mov rsi, rax
mov qword [rbx + 0x10], rbp
mov qword [rbx + 0x18], rdi
add r14, r14
mov r8, r14
mov rcx, rax
cmp r15, 8
jb 0x14003c872
mov rdi, qword [rbx]
mov rdx, rdi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], r13w
xor eax, eax
mov word [r14 + rsi + 2], ax
lea rdx, [r15*2 + 2]
cmp rdx, 0x1000
jb 0x14003c865
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cbfe
mov rdi, rcx
mov rcx, rdi
call fcn.140040994
xor r10d, r10d
jmp 0x14003c888
mov rdx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], r13w
xor r10d, r10d
mov word [r14 + rsi + 2], r10w
movabs r9, 0x7ffffffffffffffe
mov qword [rbx], rsi
movzx eax, byte [rsp + 0x90]
lea rcx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movsx ebp, byte [rax + rcx]
mov r14, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
cmp r14, r15
jae 0x14003c8d9
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp r15, 8
jb 0x14003c8c9
mov rax, qword [rbx]
mov word [rax + r14*2], bp
mov word [rax + r14*2 + 2], r10w
jmp 0x14003c9a8
mov rax, r9
sub rax, r14
cmp rax, 1
jb 0x14003ce24
lea r13, [r14 + 1]
mov rdi, r13
or rdi, 7
cmp rdi, r9
jbe 0x14003c8fe
mov rdi, r9
jmp 0x14003c91a
mov rcx, r15
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp r15, rax
ja 0x14003c8f9
lea rax, [r15 + rcx]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007578
mov rsi, rax
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], rdi
add r14, r14
mov r8, r14
mov rcx, rax
cmp r15, 8
jb 0x14003c98f
mov rdi, qword [rbx]
mov rdx, rdi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], bp
xor eax, eax
mov word [r14 + rsi + 2], ax
lea rdx, [r15*2 + 2]
cmp rdx, 0x1000
jb 0x14003c982
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cbfe
mov rdi, rcx
mov rcx, rdi
call fcn.140040994
xor r10d, r10d
jmp 0x14003c9a5
mov rdx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], bp
xor r10d, r10d
mov word [r14 + rsi + 2], r10w
mov qword [rbx], rsi
movzx eax, byte [rsp + 0x98]
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movsx ebp, byte [rax + r9]
mov r14, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
cmp r14, r15
jae 0x14003c9ed
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp r15, 8
jb 0x14003c9dd
mov rax, qword [rbx]
mov word [rax + r14*2], bp
mov word [rax + r14*2 + 2], r10w
jmp 0x14003cac6
movabs rdx, 0x7ffffffffffffffe
mov rax, rdx
sub rax, r14
cmp rax, 1
jb 0x14003ce24
lea r13, [r14 + 1]
mov rdi, r13
or rdi, 7
cmp rdi, rdx
jbe 0x14003ca1c
mov rdi, rdx
jmp 0x14003ca38
mov rcx, r15
shr rcx, 1
mov rax, rdx
sub rax, rcx
cmp r15, rax
ja 0x14003ca17
lea rax, [r15 + rcx]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007578
mov rsi, rax
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], rdi
add r14, r14
mov r8, r14
mov rcx, rax
cmp r15, 8
jb 0x14003caad
mov rdi, qword [rbx]
mov rdx, rdi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], bp
xor eax, eax
mov word [r14 + rsi + 2], ax
lea rdx, [r15*2 + 2]
cmp rdx, 0x1000
jb 0x14003caa0
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cbfe
mov rdi, rcx
mov rcx, rdi
call fcn.140040994
xor r10d, r10d
jmp 0x14003cac3
mov rdx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], bp
xor r10d, r10d
mov word [r14 + rsi + 2], r10w
mov qword [rbx], rsi
movzx eax, byte [rsp + 0x20]
lea rbp, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movsx r15d, byte [rax + rbp]
mov r14, qword [rbx + 0x10]
mov rbp, qword [rbx + 0x18]
cmp r14, rbp
jae 0x14003cb08
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rbp, 8
jb 0x14003caf8
mov rax, qword [rbx]
mov word [rax + r14*2], r15w
mov word [rax + r14*2 + 2], r10w
jmp 0x14003cbdd
movabs rdx, 0x7ffffffffffffffe
mov rax, rdx
sub rax, r14
cmp rax, 1
jb 0x14003ce24
lea r13, [r14 + 1]
mov rdi, r13
or rdi, 7
cmp rdi, rdx
jbe 0x14003cb37
mov rdi, rdx
jmp 0x14003cb53
mov rcx, rbp
shr rcx, 1
mov rax, rdx
sub rax, rcx
cmp rbp, rax
ja 0x14003cb32
lea rax, [rcx + rbp]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007578
mov rsi, rax
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], rdi
add r14, r14
mov r8, r14
mov rcx, rax
cmp rbp, 8
jb 0x14003cbc4
mov rdi, qword [rbx]
mov rdx, rdi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], r15w
xor eax, eax
mov word [r14 + rsi + 2], ax
lea rdx, [rbp*2 + 2]
cmp rdx, 0x1000
jb 0x14003cbb7
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cbfe
mov rdi, rcx
mov rcx, rdi
call fcn.140040994
xor r10d, r10d
jmp 0x14003cbda
mov rdx, rbx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov word [r14 + rsi], r15w
xor r10d, r10d
mov word [r14 + rsi + 2], r10w
mov qword [rbx], rsi
sub r12, 3
mov rdx, qword [rsp + 0x88]
add rdx, 3
mov qword [rsp + 0x88], rdx
cmp r12, 3
jmp 0x14003c726
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__invalid_parameter_noinfo_noreturn]
nop dword [rax + rax]
int3
sub r12, 1
je 0x14003cd18
cmp r12, 1
jne 0x14003ce0f
movzx ecx, byte [rdx]
mov sil, byte [rdx + 1]
mov dil, cl
and dil, 3
shl dil, 4
mov al, sil
shr al, 4
or dil, al
and sil, 0xf
shl sil, 2
shr rcx, 2
movsx r9d, byte [rcx + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003cc77
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cc6a
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003cc82
mov rcx, rbx
call fcn.140021b88
xor r10d, r10d
movzx eax, dil
movsx r9d, byte [rax + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003ccb7
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003ccaa
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003ccc2
mov rcx, rbx
call fcn.140021b88
xor r10d, r10d
movzx eax, sil
movsx r9d, byte [rax + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003ccf7
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003ccea
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003ccff
mov rcx, rbx
call fcn.140021b88
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jb 0x14003cde6
mov r9d, 0x3d
jmp 0x14003ce07
movzx eax, byte [rdx]
mov dil, al
and dil, 3
shl dil, 4
shr rax, 2
movsx r9d, byte [rax + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003cd5b
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cd4e
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003cd66
mov rcx, rbx
call fcn.140021b88
xor r10d, r10d
movzx eax, dil
movsx r9d, byte [rax + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003cd9b
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cd8e
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003cda3
mov rcx, rbx
call fcn.140021b88
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003cdcc
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cdc2
mov rax, qword [rbx]
mov edi, 0x3d
mov dword [rax + rcx*2], edi
jmp 0x14003cddc
mov edi, 0x3d
mov r9d, edi
mov rcx, rbx
call fcn.140021b88
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003ce04
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cdfb
mov rax, qword [rbx]
mov dword [rax + rcx*2], 0x3d
jmp 0x14003ce0f
mov r9d, edi
mov rcx, rbx
call fcn.140021b88
mov rax, rbx
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.140005e5c
int3