Function at 0x18001f890
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rdi
push r12
push r15
sub rsp, 0x58
mov eax, dword [0x180070914]
mov r12, r8
mov ebp, edx
mov r15, rcx
test al, 1
jne 0x18001f8ba
or eax, 1
mov dword [0x180070914], eax
lea eax, [rdx - 0xa]
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x50], rsi
cmp ebp, eax
jbe 0x18001fa31
lea ebx, [rdx - 0xa1]
mov edi, 0xa
lea rsi, [0x180000000]
cmp ebx, 0x12
ja case.0x18001f8f7.9
mov ecx, dword [rsi + rbx*4 + 0x1fed8]
add rcx, rsi
jmp rcx
mov r8d, 3
lea rdx, [0x18006668a]
lea rcx, [0x18007085b]
call fcn.18003a150
mov byte [0x18007085e], 0
jmp case.0x18001f8f7.9
movzx eax, word [0x1800666a2]
mov word [0x180070858], ax
movzx eax, byte [0x1800666a4]
mov byte [0x18007085a], al
jmp case.0x18001f8f7.9
mov byte [0x180070862], 0x53
jmp case.0x18001f8f7.9
movzx eax, word [0x1800666b4]
mov word [0x180070851], ax
movzx eax, byte [0x1800666b6]
mov byte [0x180070853], al
mov byte [0x180070850], 0x41
jmp case.0x18001f8f7.9
mov r8d, 3
mov byte [0x18007085f], 0
lea rdx, [0x1800666d2]
lea rcx, [0x18007085f]
call fcn.18003a150
jmp case.0x18001f8f7.9
xor r8d, r8d
xor edx, edx
mov ecx, 0x10d
call fcn.18000f4f0
mov rcx, qword [0x180070788]
mov edx, 0x10
mov rcx, qword [rcx + 0x48]
call fcn.180031f28
mov qword [0x180070788], 0
jmp case.0x18001f8f7.9
mov r8d, 1
lea rdx, [0x1800666d9]
lea rcx, [0x18007085e]
call fcn.18003a150
jmp case.0x18001f8f7.9
mov byte [0x18007085b], 0
jmp case.0x18001f8f7.9
mov r8d, 5
mov byte [0x180070863], 0
lea rdx, [0x1800666ea]
lea rcx, [0x180070863]
call fcn.18003a150
mov byte [0x180070868], 0
jmp case.0x18001f8f7.9
mov dword [0x180070854], 0x48474645
mov byte [0x180070858], 0
dec ebx
sub rdi, 1
jne 0x18001f8e4
imul edi, ebp, 0x7b2
mov dword [rsp + 0x98], edi
cmp ebp, edi
ja 0x18001fec0
mov rbx, qword [rsp + 0x98]
movabs r11, 0xaaaaaaaaaaaaaaab
mov rsi, qword [0x180070848]
mov qword [rsp + 0x48], r13
imul r8d, ebp, 0xc5
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x88], r8d
mov r14d, dword [rsp + 0x88]
mov r13d, dword [rsp + 0x88]
nop dword [rax + rax]
cmp ebp, 0x28aea
ja 0x18001fbc0
je 0x18001fb70
cmp ebp, 0xa9
je 0x18001fb41
cmp ebp, 0x82b6
je 0x18001fb32
cmp ebp, 0x104c3
je 0x18001fb26
cmp ebp, 0x186d0
je 0x18001fae8
cmp ebp, 0x208dd
jne 0x18001fea1
mov dword [0x18007087a], 0x74737271
mov byte [0x18007087e], 0
jmp 0x18001fea1
mov r8d, 3
lea rdx, [0x18006679a]
lea rcx, [0x180070850]
call fcn.18003a9b0
mov eax, dword [0x1800667e3]
mov dword [0x180070875], eax
movzx eax, byte [0x1800667e7]
mov byte [0x180070879], al
mov byte [0x18007087a], 0
jmp 0x18001fe92
mov byte [0x180070872], 0
jmp 0x18001fea1
mov dword [0x18007086e], 0x68676665
jmp 0x18001fea1
mov r8d, 2
mov dword [0x180070868], 0x62615a59
lea rdx, [0x18006676b]
mov byte [0x18007086c], 0
lea rcx, [0x180070850]
call fcn.18003a9b0
jmp 0x18001fe92
mov r8d, 1
lea rdx, [0x18006670d]
lea rcx, [0x180070850]
call fcn.18003a9b0
mov r8d, 5
lea rdx, [0x180066737]
lea rcx, [0x180070850]
call fcn.18003a9b0
mov r8d, 4
lea rdx, [0x180066757]
lea rcx, [0x180070850]
call fcn.18003a9b0
jmp 0x18001fe92
cmp ebp, 0x30cf7
je 0x18001fe72
cmp ebp, 0x38f04
je 0x18001fe4e
cmp ebp, 0x41111
je 0x18001fd90
cmp ebp, 0x4931e
jne 0x18001fea1
cmp qword [r12 + 0x18], 0x10
mov r9, r12
jb 0x18001fbff
mov r9, qword [r12]
mov rcx, qword [r15 + 0x10]
mov rax, r11
mul rcx
xor r10d, r10d
shr rdx, 1
lea rax, [rdx + rdx*2]
test rax, rax
je 0x18001fcc1
lea rcx, [rax - 1]
mov rax, r11
mul rcx
shr rdx, 1
inc rdx
lea r10, [rdx + rdx*2]
mov r8d, 0xfd
mov eax, r8d
sub eax, 0xfd
je 0x18001fc4b
cmp eax, 1
jne 0x18001fc9f
add rbx, 3
jmp 0x18001fc9f
movzx eax, byte [rbx]
shr rax, 2
movzx eax, byte [rax + rsi]
mov byte [r9], al
movzx eax, byte [rbx + 1]
movzx ecx, byte [rbx]
shr eax, 4
and ecx, 3
shl ecx, 4
add ecx, eax
movzx ecx, byte [rcx + rsi]
mov byte [r9 + 1], cl
movzx eax, byte [rbx + 2]
movzx ecx, byte [rbx + 1]
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + rsi]
mov byte [r9 + 2], al
movzx eax, byte [rbx + 2]
and eax, 0x3f
movzx eax, byte [rax + rsi]
mov byte [r9 + 3], al
add r9, 4
inc r8d
cmp r8d, 0xff
jb 0x18001fc36
sub rdx, 1
jne 0x18001fc30
mov rcx, qword [r15 + 0x10]
mov r8d, dword [rsp + 0x88]
cmp r10, rcx
jae 0x18001fea1
mov r12d, dword [rsp + 0x30]
mov edx, 0x64
mov eax, edx
sub eax, 0x64
je 0x18001fd6b
sub eax, 0x3d
je 0x18001fd41
cmp eax, 0x3d
jne 0x18001fd6f
mov ecx, r13d
mov eax, r14d
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
lea rax, [r10 + 1]
movzx ecx, byte [rcx + rsi]
mov byte [r9], cl
cmp rax, qword [r15 + 0x10]
jae 0x18001fd31
mov eax, r12d
mov ecx, r14d
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + rsi]
mov byte [r9 + 1], al
mov byte [r9 + 2], 0x3d
add r9, 3
jmp 0x18001fd6f
mov al, 0x3d
mov byte [r9 + 1], al
mov byte [r9 + 2], al
add r9, 3
jmp 0x18001fd6f
lea rax, [r10 + 1]
cmp rax, qword [r15 + 0x10]
jae 0x18001fd52
movzx r14d, byte [rbx + 1]
jmp 0x18001fd55
xor r14d, r14d
mov eax, r13d
xor r12d, r12d
shr rax, 2
movzx eax, byte [rax + rsi]
mov byte [r9], al
inc r9
jmp 0x18001fd6f
movzx r13d, byte [rbx]
add edx, 0x3d
cmp edx, 0x11b
jb 0x18001fcd4
mov dword [rsp + 0x30], r12d
mov r12, qword [rsp + 0x90]
jmp 0x18001fea1
mov rcx, qword [r15 + 0x10]
lea rsi, [0x180070850]
add rcx, 2
mov qword [0x180070848], rsi
mov rax, r11
mul rcx
mov rcx, qword [r12 + 0x10]
shr rdx, 1
shl rdx, 2
cmp rdx, rcx
ja 0x18001fdd7
mov qword [r12 + 0x10], rdx
mov rax, r12
cmp qword [r12 + 0x18], 0x10
jb 0x18001fdd1
mov rax, qword [r12]
mov byte [rax + rdx], 0
jmp 0x18001fe3f
mov r8, qword [r12 + 0x18]
mov rdi, rdx
mov rax, r8
sub rdi, rcx
sub rax, rcx
cmp rdi, rax
ja 0x18001fe16
mov qword [r12 + 0x10], rdx
mov rax, r12
cmp r8, 0x10
jb 0x18001fdff
mov rax, qword [r12]
lea rbx, [rax + rcx]
mov r8, rdi
mov rcx, rbx
xor edx, edx
call fcn.180033d80
mov byte [rdi + rbx], 0
jmp 0x18001fe30
mov r9, rdi
mov byte [rsp + 0x20], 0
mov rdx, rdi
mov rcx, r12
call fcn.180028850
mov rsi, qword [0x180070848]
mov r8d, dword [rsp + 0x88]
mov edi, dword [rsp + 0x98]
cmp qword [r15 + 0x18], 0x10
mov rbx, r15
jb 0x18001fea1
mov rbx, qword [r15]
jmp 0x18001fea1
movzx eax, word [0x18006683d]
mov word [0x18007088d], ax
movzx eax, byte [0x18006683f]
mov byte [0x18007088f], al
mov byte [0x180070890], 0
jmp 0x18001fea1
mov r8d, 5
lea rdx, [0x18006677d]
lea rcx, [0x180070888]
call fcn.18003a150
mov byte [0x18007088d], 0
mov r8d, dword [rsp + 0x88]
mov rsi, qword [0x180070848]
add ebp, r8d
movabs r11, 0xaaaaaaaaaaaaaaab
cmp ebp, edi
jbe 0x18001fa90
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x80]
add rsp, 0x58
pop r15
pop r12
pop rdi
pop rbp
ret