Function at 0x18001caa0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push r12
push r13
push r15
sub rsp, 0x70
mov eax, dword [0x1800d0150]
mov r10d, edx
mov r15, r9
mov r12, r8
mov rdx, rcx
test al, 1
jne 0x18001cad7
or eax, 1
mov dword [0x1800d0150], eax
mov qword [rsp + 0xa8], rbx
mov r13d, r10d
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x68], rbp
imul eax, r10d, 0xad3
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], r14
mov dword [rsp + 0x24], r10d
mov dword [rsp + 0x30], eax
cmp r10d, eax
ja 0x18001cc01
mov ecx, dword [rsp + 0x98]
lea rsi, [0x1800d0100]
mov r10, qword [0x1800d0148]
xor edi, edi
movabs rbp, 0x307a7978777675
mov qword [rsp + 0x40], rbx
movabs r11, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x48], rcx
lea r8d, [rdi + 0x53]
lea r9d, [rdi + 0x68]
lea r14d, [rdi + 0x69]
mov eax, 0x52
cmp r13d, 0x12ba0
ja 0x18001d070
je 0x18001ce17
cmp r13d, 0x3c38
ja 0x18001cfd3
je 0x18001cf81
mov eax, r13d
sub eax, 0x48
je 0x18001cee1
sub eax, 0x16
je 0x18001ce86
sub eax, 0x68
je 0x18001cdfd
cmp eax, 0x5c
jne 0x18001cd3a
mov eax, dword [rdx]
test eax, eax
je 0x18001d494
cmp eax, 1
je 0x18001d42e
cmp eax, 2
jne 0x18001cc4b
mov eax, 0xde
cmp eax, 0xde
je 0x18001cc2b
cmp eax, 0x35c4
jne 0x18001cc3a
call fcn.180054f68
xor edx, edx
cdqe
div qword [r12]
movsxd rbx, edx
test edx, edx
jle 0x18001cc01
nop word [rax + rax]
call fcn.180054f68
mov byte [rdi + r15], al
inc rdi
cmp rdi, rbx
jl 0x18001cbf0
mov rax, rbx
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0xa8]
add rsp, 0x70
pop r15
pop r13
pop r12
ret
cmp qword [r12], 0x10
jbe 0x18001cc3a
mov qword [r12], 0x10
add eax, 0x34e6
cmp eax, 0x69cc
jbe 0x18001cbc8
jmp 0x18001cd3a
cmp eax, 3
jne 0x18001cd62
mov r14d, 0x48
nop word [rax + rax]
cmp r14d, 0x48
je 0x18001cc84
cmp r14d, 0x1248
je 0x18001cc7a
cmp r14d, 0x2448
je 0x18001cc01
jmp 0x18001ccea
movsxd rbx, ecx
mov qword [rsp + 0x40], rbx
jmp 0x18001ccea
cmp qword [r12], 0x10
jbe 0x18001cc93
mov qword [r12], 0x10
call fcn.180054f68
xor edx, edx
cdqe
div qword [r12]
mov rsi, rdi
mov qword [rsp + 0x48], rdx
mov rcx, rdx
movsxd rbp, edx
test edx, edx
jle 0x18001ccea
call fcn.180054f68
mov r8d, eax
mov eax, 0x8d3dcb09
imul r8d
add edx, r8d
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x3a
sub r8d, ecx
add r8b, 0x41
mov byte [rsi + r15], r8b
inc rsi
cmp rsi, rbp
jl 0x18001ccb2
mov rcx, qword [rsp + 0x48]
add r14d, 0x1200
cmp r14d, 0x3600
jbe 0x18001cc60
mov r10, qword [0x1800d0148]
lea rsi, [0x1800d0100]
movabs rbp, 0x307a7978777675
mov r14d, 0x69
movabs r11, 0xaaaaaaaaaaaaaaab
mov rdx, qword [rsp + 0x90]
mov r8d, 0x53
mov r9d, 0x68
imul eax, dword [rsp + 0x98], 0xa3
add r13d, eax
mov dword [rsp + 0x24], r13d
cmp r13d, dword [rsp + 0x30]
ja 0x18001cc01
mov rcx, qword [rsp + 0x48]
jmp 0x18001cb55
cmp eax, 4
jne 0x18001d3f7
mov ebp, 0xfa
cmp ebp, 0xfa
je 0x18001cd86
cmp ebp, 0xa604
je 0x18001cc01
jmp 0x18001cdd2
cmp qword [r12], 0x10
jbe 0x18001cd95
mov qword [r12], 0x10
call fcn.180054f68
xor edx, edx
cdqe
div qword [r12]
mov rsi, rdi
movsxd rbx, edx
mov qword [rsp + 0x40], rbx
test edx, edx
jle 0x18001cdd2
call fcn.180054f68
and eax, 0x80000003
jge 0x18001cdc4
dec eax
or eax, 0xfffffffc
inc eax
add al, 0x41
mov byte [rsi + r15], al
inc rsi
cmp rsi, rbx
jl 0x18001cdb1
add ebp, 0xa50a
cmp ebp, 0x14a14
jbe 0x18001cd70
mov r10, qword [0x1800d0148]
lea rsi, [0x1800d0100]
movabs rbp, 0x307a7978777675
jmp 0x18001cd1c
mov eax, 0xd7
cmp eax, 0xd7
je 0x18001d4b5
add eax, 0x42
cmp eax, 0x119
jb 0x18001ce02
mov eax, dword [str.VWXY]
lea rdx, [0x180080504]
mov dword [0x1800d0115], eax
lea rcx, [0x1800d0119]
movzx eax, byte [0x180080500]
mov r8d, 3
mov byte [0x1800d0119], al
call fcn.1800543a0
lea rcx, [rsi - 1]
nop dword [rax]
cmp byte [rcx + 1], dil
lea rcx, [rcx + 1]
jne 0x18001ce50
movzx eax, word [0x180080508]
mov r10, qword [0x1800d0148]
mov word [rcx], ax
movzx eax, byte [0x18008050a]
mov byte [rcx + 2], al
mov eax, 0x64
mov word [0x1800d011d], ax
jmp 0x18001cd1c
movzx eax, word [0x1800804f0]
lea rdx, [0x18007cdb4]
mov word [0x1800d0100], ax
lea rcx, [0x1800d0102]
movzx eax, byte [0x1800804f2]
mov r8d, 2
mov byte [0x1800d0102], al
call fcn.1800543a0
movzx eax, word [0x1800804f4]
mov word [0x1800d0103], ax
movzx eax, byte [0x1800804f6]
mov byte [0x1800d0105], al
mov r10, qword [0x1800d0148]
jmp 0x18001cd1c
mov eax, dword [r15 + 8]
test eax, eax
jne 0x18001cf14
mov r9, qword [rsp + 0xb0]
mov dword [r15 + 8], 1
mov dword [r15 + 0xc], 1
mov eax, dword [r12]
mov dword [r15], eax
mov eax, dword [r9]
mov dword [r15 + 4], eax
jmp 0x18001cd34
mov ecx, dword [r12]
mov edx, dword [r15]
cmp ecx, edx
jge 0x18001cf30
sub edx, ecx
add edx, eax
mov dword [r15 + 8], edx
mov eax, dword [r12]
mov dword [r15], eax
jmp 0x18001cf3e
add eax, edx
cmp ecx, eax
jl 0x18001cf3e
sub ecx, edx
inc ecx
mov dword [r15 + 8], ecx
mov r8d, dword [r15 + 4]
mov r9, qword [rsp + 0xb0]
mov edx, dword [r15 + 0xc]
add edx, r8d
mov ecx, dword [r9]
cmp ecx, r8d
jge 0x18001cf6b
sub edx, ecx
mov dword [r15 + 0xc], edx
mov eax, dword [r9]
mov dword [r15 + 4], eax
jmp 0x18001cd26
cmp ecx, edx
jl 0x18001cd26
sub ecx, r8d
inc ecx
mov dword [r15 + 0xc], ecx
jmp 0x18001cd26
mov dword [0x1800d0105], 0x484746
lea rcx, [rsi - 1]
nop
cmp byte [rcx + 1], dil
lea rcx, [rcx + 1]
jne 0x18001cf90
movzx eax, word [0x180080514]
lea rdx, [0x180080518]
mov word [rcx], ax
mov r8d, 3
movzx eax, byte [0x180080516]
mov byte [rcx + 2], al
lea rcx, [0x1800d010a]
call fcn.1800543a0
mov r10, qword [0x1800d0148]
jmp 0x18001cd1c
cmp r13d, 0x7812
je 0x18001d026
cmp r13d, 0xb3ec
je 0x18001d01a
cmp r13d, 0xefc6
jne 0x18001cd3a
movzx eax, word [0x180080510]
mov word [0x1800d0112], r8w
mov word [0x1800d0113], ax
movzx eax, byte [0x180080512]
mov byte [0x1800d0115], al
jmp 0x18001cd3a
mov word [0x1800d0111], ax
jmp 0x18001cd3a
mov eax, 0x4d
lea rdx, [0x1800804e0]
lea rcx, [0x1800d010d]
mov word [0x1800d010c], ax
lea r8d, [rax - 0x4a]
call fcn.1800543a0
movzx eax, word [0x1800804e4]
mov r10, qword [0x1800d0148]
mov word [0x1800d010f], ax
movzx eax, byte [0x1800804e6]
mov byte [0x1800d0111], al
jmp 0x18001cd1c
cmp r13d, 0x256e2
ja 0x18001d1cd
je 0x18001d17a
cmp r13d, 0x1677a
je 0x18001d16b
cmp r13d, 0x1a354
je 0x18001d133
cmp r13d, 0x1df2e
je 0x18001d101
cmp r13d, 0x21b08
jne 0x18001cd3a
mov r8d, 0xa
lea rdx, [0x1800d0135]
lea ecx, [r8 + 0x71]
call fcn.180054ba0
mov r8d, 0xa
lea rdx, [0x1800d0138]
lea ecx, [r8 - 6]
call fcn.180054b20
mov r8d, 0xa
lea rdx, [0x1800d0139]
lea ecx, [r8 - 5]
call fcn.180054b20
mov r10, qword [0x1800d0148]
jmp 0x18001cd1c
mov r8d, 1
mov dword [0x1800d012a], 0x737271
lea rdx, [0x18007e390]
mov rcx, rsi
call fcn.180054160
mov r10, qword [0x1800d0148]
mov qword [0x1800d012e], rbp
jmp 0x18001cd1c
mov word [0x1800d0121], r9w
lea rax, [rsi - 1]
mov word [0x1800d0122], r14w
nop word [rax + rax]
cmp byte [rax + 1], dil
lea rax, [rax + 1]
jne 0x18001d150
movsd xmm0, qword [str.jklmnop]
movsd qword [rax], xmm0
jmp 0x18001cd3a
mov dword [0x1800d011e], 0x676665
jmp 0x18001cd3a
mov r8d, 0xa
lea rdx, [0x1800d013a]
lea ecx, [r8 + 0x39]
call fcn.180054b20
mov r8d, 0xa
lea rdx, [0x1800d013c]
lea ecx, [r8 + 0x4f]
call fcn.180054ba0
movzx eax, word [0x1800804dc]
mov r10, qword [0x1800d0148]
mov word [0x1800d013e], ax
movzx eax, byte [0x1800804de]
mov byte [0x1800d0140], al
jmp 0x18001cd1c
cmp r13d, 0x292bc
je 0x18001d3e8
cmp r13d, 0x2ce96
je 0x18001d3a4
cmp r13d, 0x30a70
jne 0x18001cd3a
cmp qword [r12 + 0x18], 0x10
mov r8, r12
jb 0x18001d203
mov r8, qword [r12]
mov rcx, qword [r15 + 0x10]
mov rax, r11
mul rcx
mov r9, rdi
shr rdx, 1
lea rax, [rdx + rdx*2]
test rax, rax
je 0x18001d2b3
lea rcx, [rax - 1]
mov rax, r11
mov r11, qword [rsp + 0x38]
mul rcx
shr rdx, 1
inc rdx
lea r9, [rdx + rdx*2]
nop dword [rax]
movzx eax, byte [r11]
shr rax, 2
movzx eax, byte [rax + r10]
mov byte [r8], al
movzx eax, byte [r11 + 1]
movzx ecx, byte [r11]
shr eax, 4
and ecx, 3
shl ecx, 4
add ecx, eax
movzx ecx, byte [rcx + r10]
mov byte [r8 + 1], cl
movzx eax, byte [r11 + 2]
movzx ecx, byte [r11 + 1]
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + r10]
mov byte [r8 + 2], al
movzx eax, byte [r11 + 2]
add r11, 3
and eax, 0x3f
movzx eax, byte [rax + r10]
mov byte [r8 + 3], al
add r8, 4
sub rdx, 1
jne 0x18001d240
mov rcx, qword [r15 + 0x10]
mov qword [rsp + 0x38], r11
jmp 0x18001d2b8
mov r11, qword [rsp + 0x38]
cmp r9, rcx
jae 0x18001cd1c
mov r12d, dword [rsp + 0x20]
mov edx, 0xdb
mov r13d, dword [rsp + 0x2c]
mov ebx, dword [rsp + 0x28]
mov eax, edx
sub eax, 0xdb
je 0x18001d356
sub eax, 1
je 0x18001d329
sub eax, 1
je 0x18001d2f9
cmp eax, 1
jne 0x18001d371
mov byte [r8], 0x3d
inc r8
jmp 0x18001d371
lea rax, [r9 + 1]
cmp rax, qword [r15 + 0x10]
jae 0x18001d31f
mov eax, r13d
mov ecx, r12d
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + r10]
mov byte [r8], al
inc r8
jmp 0x18001d371
mov al, 0x3d
mov byte [r8], al
inc r8
jmp 0x18001d371
mov ecx, ebx
mov eax, ebx
shr rax, 2
and ecx, 3
shl ecx, 4
movzx eax, byte [rax + r10]
mov byte [r8], al
mov eax, r12d
shr eax, 4
add ecx, eax
movzx ecx, byte [rcx + r10]
mov byte [r8 + 1], cl
add r8, 2
jmp 0x18001d371
movzx ebx, byte [r11]
lea rax, [r9 + 1]
cmp rax, qword [r15 + 0x10]
jae 0x18001d36b
movzx r12d, byte [r11 + 1]
jmp 0x18001d36e
mov r12d, edi
mov r13d, edi
inc edx
cmp edx, 0xdf
jb 0x18001d2d4
mov dword [rsp + 0x28], ebx
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0x2c], r13d
mov r13d, dword [rsp + 0x24]
mov dword [rsp + 0x20], r12d
mov r12, qword [rsp + 0xa0]
jmp 0x18001cd1c
mov rcx, qword [r15 + 0x10]
mov rax, r11
add rcx, 2
xor r8d, r8d
mul rcx
mov rcx, r12
shr rdx, 1
shl rdx, 2
call fcn.180040c60
cmp qword [r15 + 0x18], 0x10
mov qword [rsp + 0x38], r15
jb 0x18001ced5
mov rax, qword [r15]
mov r10, qword [0x1800d0148]
mov qword [rsp + 0x38], rax
jmp 0x18001cd1c
mov r10, rsi
mov qword [0x1800d0148], rsi
jmp 0x18001cd3a
cmp eax, 5
jne 0x18001d4bd
mov rbx, qword [rsp + 0xb0]
mov rax, qword [r12]
mov ecx, dword [rbx]
cmp rcx, rax
jbe 0x18001d417
mov dword [rbx], eax
mov ecx, eax
mov r8d, ecx
mov edx, 0x41
mov rcx, r15
call fcn.180050c20
mov eax, dword [rbx]
jmp 0x18001cc04
cmp qword [r12], 0x10
jbe 0x18001d43d
mov qword [r12], 0x10
mov rbx, qword [rsp + 0xb0]
lea r9, [rsp + 0x98]
xor edx, edx
xor ecx, ecx
mov eax, dword [rbx]
lea r8d, [rdx + 0x15]
mov dword [rsp + 0x98], eax
call fcn.1800291a0
mov dword [rbx], eax
lea r8, [rsp + 0x98]
mov dword [rsp + 0x98], eax
lea rdx, [rsp + 0x48]
mov rax, qword [r12]
mov r9, r15
mov ecx, 0xea
mov qword [rsp + 0x48], rax
call fcn.180028d70
jmp 0x18001cc04
mov rbx, qword [rsp + 0xb0]
lea rdx, [0x1800804f8]
mov rcx, r15
mov r8d, dword [rbx]
call fcn.18004d800
cdqe
jmp 0x18001cc04
mov ecx, dword [r15]
test cl, 2
je 0x18001d4c5
mov rax, rdi
jmp 0x18001cc04
mov eax, ecx
and eax, 4
je 0x18001d4d3
mov edx, 8
jmp 0x18001d4da
mov rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
and ecx, 1
shr rax, 3
add rax, rdx
lea rax, [rax + rcx*8]
mov rax, qword [rax + r15 - 4]
jmp 0x18001cc04