Function at 0x14003c800
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 0x14003cd2b
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 0x14003c8dc
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp r15, 8
jb 0x14003c8cc
mov rax, qword [rbx]
mov word [rax + r14*2], r13w
mov word [rax + r14*2 + 2], r10w
jmp 0x14003c9b5
mov rax, r9
sub rax, r14
cmp rax, 1
jb 0x14003cf44
lea rbp, [r14 + 1]
mov rdi, rbp
or rdi, 7
cmp rdi, r9
jbe 0x14003c901
mov rdi, r9
jmp 0x14003c91d
mov rcx, r15
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp r15, rax
ja 0x14003c8fc
lea rax, [r15 + rcx]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007598
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 0x14003c992
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 0x14003c985
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cd1e
mov rdi, rcx
mov rcx, rdi
call fcn.140040ab4
xor r10d, r10d
jmp 0x14003c9a8
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 0x14003c9f9
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp r15, 8
jb 0x14003c9e9
mov rax, qword [rbx]
mov word [rax + r14*2], bp
mov word [rax + r14*2 + 2], r10w
jmp 0x14003cac8
mov rax, r9
sub rax, r14
cmp rax, 1
jb 0x14003cf44
lea r13, [r14 + 1]
mov rdi, r13
or rdi, 7
cmp rdi, r9
jbe 0x14003ca1e
mov rdi, r9
jmp 0x14003ca3a
mov rcx, r15
shr rcx, 1
mov rax, r9
sub rax, rcx
cmp r15, rax
ja 0x14003ca19
lea rax, [r15 + rcx]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007598
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 0x14003caaf
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 0x14003caa2
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cd1e
mov rdi, rcx
mov rcx, rdi
call fcn.140040ab4
xor r10d, r10d
jmp 0x14003cac5
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 0x14003cb0d
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp r15, 8
jb 0x14003cafd
mov rax, qword [rbx]
mov word [rax + r14*2], bp
mov word [rax + r14*2 + 2], r10w
jmp 0x14003cbe6
movabs rdx, 0x7ffffffffffffffe
mov rax, rdx
sub rax, r14
cmp rax, 1
jb 0x14003cf44
lea r13, [r14 + 1]
mov rdi, r13
or rdi, 7
cmp rdi, rdx
jbe 0x14003cb3c
mov rdi, rdx
jmp 0x14003cb58
mov rcx, r15
shr rcx, 1
mov rax, rdx
sub rax, rcx
cmp r15, rax
ja 0x14003cb37
lea rax, [r15 + rcx]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007598
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 0x14003cbcd
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 0x14003cbc0
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cd1e
mov rdi, rcx
mov rcx, rdi
call fcn.140040ab4
xor r10d, r10d
jmp 0x14003cbe3
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 0x14003cc28
lea rax, [r14 + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp rbp, 8
jb 0x14003cc18
mov rax, qword [rbx]
mov word [rax + r14*2], r15w
mov word [rax + r14*2 + 2], r10w
jmp 0x14003ccfd
movabs rdx, 0x7ffffffffffffffe
mov rax, rdx
sub rax, r14
cmp rax, 1
jb 0x14003cf44
lea r13, [r14 + 1]
mov rdi, r13
or rdi, 7
cmp rdi, rdx
jbe 0x14003cc57
mov rdi, rdx
jmp 0x14003cc73
mov rcx, rbp
shr rcx, 1
mov rax, rdx
sub rax, rcx
cmp rbp, rax
ja 0x14003cc52
lea rax, [rcx + rbp]
cmp rdi, rax
cmovb rdi, rax
lea rdx, [rdi + 1]
call fcn.140007598
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 0x14003cce4
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 0x14003ccd7
add rdx, 0x27
mov rcx, qword [rdi - 8]
sub rdi, rcx
lea rax, [rdi - 8]
cmp rax, 0x1f
ja 0x14003cd1e
mov rdi, rcx
mov rcx, rdi
call fcn.140040ab4
xor r10d, r10d
jmp 0x14003ccfa
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 0x14003c846
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 0x14003ce38
cmp r12, 1
jne 0x14003cf2f
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 0x14003cd97
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cd8a
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003cda2
mov rcx, rbx
call fcn.140021cb8
xor r10d, r10d
movzx eax, dil
movsx r9d, byte [rax + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003cdd7
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cdca
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003cde2
mov rcx, rbx
call fcn.140021cb8
xor r10d, r10d
movzx eax, sil
movsx r9d, byte [rax + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003ce17
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003ce0a
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003ce1f
mov rcx, rbx
call fcn.140021cb8
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jb 0x14003cf06
mov r9d, 0x3d
jmp 0x14003cf27
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 0x14003ce7b
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003ce6e
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003ce86
mov rcx, rbx
call fcn.140021cb8
xor r10d, r10d
movzx eax, dil
movsx r9d, byte [rax + r15]
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003cebb
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003ceae
mov rax, qword [rbx]
mov word [rax + rcx*2], r9w
mov word [rax + rcx*2 + 2], r10w
jmp 0x14003cec3
mov rcx, rbx
call fcn.140021cb8
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003ceec
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cee2
mov rax, qword [rbx]
mov edi, 0x3d
mov dword [rax + rcx*2], edi
jmp 0x14003cefc
mov edi, 0x3d
mov r9d, edi
mov rcx, rbx
call fcn.140021cb8
mov rcx, qword [rbx + 0x10]
cmp rcx, qword [rbx + 0x18]
jae 0x14003cf24
lea rax, [rcx + 1]
mov qword [rbx + 0x10], rax
mov rax, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003cf1b
mov rax, qword [rbx]
mov dword [rax + rcx*2], 0x3d
jmp 0x14003cf2f
mov r9d, edi
mov rcx, rbx
call fcn.140021cb8
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.140005e7c
int3