Function at 0x68d490
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
xor r12d, r12d
mov rax, rcx
mov qword [rsp + 0x80], rcx
mov ecx, dword [rcx]
mov qword [rsp + 0x90], r8
lea r8, [rax + 8]
mov qword [rsp + 0x88], rdx
test ecx, ecx
jle 0x68d4d7
movsxd rax, ecx
cmp byte [r8 + rax - 1], 0x3d
je 0x68d818
mov edx, dword [rsp + 0xa0]
xor r13d, r13d
test edx, edx
je 0x68d788
mov rax, qword [rsp + 0x80]
lea r15, [0x0093baa0]
test byte [rax + 0x5c], 2
lea rax, [0x0093ba20]
cmovne r15, rax
mov eax, dword [rsp + 0xa0]
test eax, eax
jle 0x68d8c0
movsxd rax, dword [rsp + 0xa0]
mov dword [rsp + 0xa0], 0
add rax, r9
mov qword [rsp + 0x28], rax
jmp 0x68d565
test r12d, r12d
je 0x68d5a0
or eax, 0x13
cmp al, 0xf3
jne 0x68d782
cmp r10d, 0xf2
je 0x68d840
cmp ecx, 0x40
je 0x68d5cc
cmp r9, qword [rsp + 0x28]
je 0x68d7f0
movzx edx, byte [r9]
add r9, 1
test dl, dl
js 0x68d782
movzx eax, dl
movzx r10d, byte [r15 + rax]
mov eax, r10d
cmp r10d, 0xff
je 0x68d782
cmp dl, 0x3d
jne 0x68d538
add r12d, 1
cmp r12d, 3
je 0x68d782
cmp r10d, 0xf2
je 0x68d840
or eax, 0x13
cmp al, 0xf3
je 0x68d555
cmp ecx, 0x3f
jg 0x68d782
movsxd rax, ecx
add ecx, 1
mov byte [r8 + rax], dl
cmp ecx, 0x40
jne 0x68d55a
mov rax, qword [rsp + 0x80]
lea rsi, [0x0093baa0]
mov r10, r8
test byte [rax + 0x5c], 2
lea rax, [0x0093ba20]
cmovne rsi, rax
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax + 8]
test al, al
js 0x68d623
nop dword [rax]
cmp byte [rsi + rax], 0xe0
jne 0x68d61e
test ecx, ecx
je 0x68d7c0
movzx eax, byte [r10 + 1]
add r10, 1
sub ecx, 1
test al, al
jns 0x68d600
cmp ecx, 3
jle 0x68d652
movsxd rax, ecx
lea rdx, [r10 + rax - 1]
jmp 0x68d64b
movzx eax, byte [rsi + rax]
or eax, 0x13
cmp al, 0xf3
jne 0x68d652
sub ecx, 1
sub rdx, 1
cmp ecx, 3
je 0x68d780
movzx eax, byte [rdx]
test al, al
jns 0x68d630
test cl, 3
jne 0x68d780
test ecx, ecx
jle 0x68d7c0
mov rdi, qword [rsp + 0x88]
xor ebp, ebp
xor r13d, r13d
jmp 0x68d70e
movzx eax, byte [rsi + rax]
movzx edx, byte [r10 + 1]
mov r14d, eax
test dl, dl
js 0x68d738
movzx r11d, byte [r10 + 2]
movzx edx, byte [rsi + rdx]
test r11b, r11b
js 0x68d750
add r10, 4
movzx ebx, byte [rsi + r11]
movzx r11d, byte [r10 - 1]
test r11b, r11b
js 0x68d770
movzx r11d, byte [rsi + r11]
test r14b, r14b
js 0x68d780
test dl, dl
js 0x68d780
test bl, bl
js 0x68d780
test r11b, r11b
js 0x68d780
shl edx, 0xc
shl eax, 0x12
add rdi, 3
add ebp, 4
or eax, edx
shl ebx, 6
add r13d, 3
or eax, ebx
mov byte [rdi - 2], ah
mov edx, eax
or r11d, eax
shr edx, 0x10
mov byte [rdi - 3], dl
mov byte [rdi - 1], r11b
cmp ebp, ecx
jge 0x68d7c8
movzx eax, byte [r10]
test al, al
jns 0x68d678
movzx edx, byte [r10 + 1]
mov r14d, 0xffffffff
mov eax, 0xff
test dl, dl
jns 0x68d68c
nop word [rax + rax]
movzx r11d, byte [r10 + 2]
mov edx, 0xff
test r11b, r11b
jns 0x68d69e
nop dword [rax + rax]
movzx r11d, byte [r10 + 3]
add r10, 4
mov ebx, 0xff
test r11b, r11b
jns 0x68d6b5
nop word [rax + rax]
mov r11d, 0xff
test r14b, r14b
jns 0x68d6c3
nop
xor ecx, ecx
mov r13d, 0xffffffff
mov rax, qword [rsp + 0x90]
mov edi, dword [rsp + 0xa0]
mov dword [rax], edi
mov rax, qword [rsp + 0x80]
mov dword [rax], ecx
mov eax, r13d
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r12d, r12d
jne 0x68d780
xor r13d, r13d
sub r13d, r12d
xor ecx, ecx
add dword [rsp + 0xa0], r13d
movsxd r13, r13d
add qword [rsp + 0x88], r13
cmp r9, qword [rsp + 0x28]
jne 0x68d565
nop dword [rax + rax]
test ecx, ecx
jle 0x68d7fd
test cl, 3
je 0x68d88a
test ecx, ecx
setne r13b
test r12d, r12d
sete al
or r13d, eax
movzx r13d, r13b
jmp 0x68d788
mov r12d, 1
cmp ecx, 1
je 0x68d4d7
xor r12d, r12d
cmp byte [r8 + rax - 2], 0x3d
sete r12b
add r12d, 1
jmp 0x68d4d7
xor r13d, r13d
test ecx, ecx
jle 0x68d788
mov r13d, ecx
and r13d, 3
jne 0x68d782
mov r9d, ecx
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
call fcn.0068cf90
cmp r12d, eax
jg 0x68d780
sub eax, r12d
xor ecx, ecx
add dword [rsp + 0xa0], eax
jmp 0x68d788
mov r9d, ecx
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
call fcn.0068cf90
cmp r12d, eax
jg 0x68d780
sub eax, r12d
xor ecx, ecx
add dword [rsp + 0xa0], eax
jmp 0x68d7fd
mov dword [rsp + 0xa0], 0
jmp 0x68d7f0