Function at 0x14008d0f0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rbx, r9
mov r15d, r8d
mov rbp, rdx
mov rdi, rcx
mov rax, qword [0x140165040]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov dword [rcx], 0
lea rcx, [0x14017e408]
lea rdx, [0x1400839c0]
call fcn.1400ba2e0
test rbp, rbp
je 0x14008d185
mov esi, dword [rbp + 0x10]
cmp esi, dword [0x14017e420]
jne 0x14008d177
movsxd r9, dword [0x14017e418]
mov r8, qword [0x14017e410]
movsxd rdx, dword [rbp + 8]
mov rcx, qword [rbp]
call fcn.140083f40
mov ecx, eax
neg ecx
test esi, esi
cmove ecx, eax
test ecx, ecx
jg 0x14008d185
jmp 0x14008d304
mov r14d, 1
test esi, esi
jne 0x14008d30a
mov r12d, dword [rbp + 8]
test r12d, r12d
jle 0x14008d1bf
mov dword [rsp + 0x38], r15d
mov r13, qword [rbp]
mov r15, qword [r13]
test r15b, 1
jne 0x14008d1ec
xor r15, 2
cmp r12d, 1
je 0x14008d1d3
mov eax, 1
or r15, qword [r13 + rax*8]
inc rax
cmp r12, rax
jne 0x14008d1b0
jmp 0x14008d1d3
test r12, r12
je 0x14008d300
mov rax, qword [rbp]
mov r15, qword [rax]
xor r15, 2
xor eax, eax
test r15, r15
jne 0x14008d302
xor eax, eax
cmp dword [rbp + 0x10], 0
sete al
jmp 0x14008d302
mov rax, r15
xor rax, 3
cmp r12d, 1
je 0x14008d20d
mov ecx, 1
nop
or rax, qword [r13 + rcx*8]
inc rcx
cmp r12, rcx
jne 0x14008d200
test rax, rax
jne 0x14008d21c
cmp dword [rbp + 0x10], 0
je 0x14008d45d
cmp dword [rsp + 0xf0], 0
je 0x14008d369
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x28], rdi
xor ebp, ebp
cmp r12d, 0x11
setge bpl
shl ebp, 9
lea rsi, [rbp + 0x200]
xor rbp, 0xfffffffffffffe01
mov dil, 1
mov ebx, 2
nop dword [rax]
lea rax, [0x14014f370]
movzx r14d, word [rax + rbx*2 - 2]
mov rcx, qword [rsp + 0x30]
mov edx, r14d
call fcn.140085e60
test ax, ax
je 0x14008d29b
cmp rbx, rsi
setb dil
lea rax, [rbx + rbp]
inc rax
inc rbx
cmp rax, 2
jne 0x14008d260
mov r14w, 0xaaaa
test dil, 1
je 0x14008d331
movzx eax, r14w
xor r15, rax
cmp r12d, 2
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
jl 0x14008d2dd
mov eax, 1
nop word cs:[rax + rax]
or r15, qword [r13 + rax*8]
inc rax
cmp r12, rax
jne 0x14008d2d0
xor eax, eax
test r15, r15
jne 0x14008d74b
test r14w, r14w
je 0x14008d746
xor eax, eax
cmp dword [rdx + 0x10], 0
sete al
jmp 0x14008d74b
xor eax, eax
mov dword [rdi], eax
mov r14d, 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1400fb950
mov eax, r14d
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, qword [rsp + 0xf8]
test r8, r8
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x30]
je 0x14008d369
mov rax, qword [r8 + 8]
mov ecx, 1
mov edx, 0xffffffff
call qword [0x140191008]
test eax, eax
je 0x14008d5a7
mov r15d, dword [rsp + 0x38]
test r15d, r15d
je 0x14008d389
xor r14d, r14d
test rbx, rbx
je 0x14008d3c0
xor esi, esi
cmp byte [rbx + 0x28], 0
jne 0x14008d5b8
jmp 0x14008d3f1
mov edx, dword [rbp + 8]
mov eax, edx
sar eax, 0x1f
and eax, edx
lea ecx, [rdx + 1]
mov r9, rdx
nop dword [rax]
test r9d, r9d
jle 0x14008d468
mov r8, qword [rbp]
dec ecx
cmp qword [r8 + r9*8 - 8], 0
lea r9, [r9 - 1]
je 0x14008d3a0
jmp 0x14008d47c
mov ecx, 0x30
call fcn.1400ae130
test rax, rax
je 0x14008d30a
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rax + 0x1a], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
mov rsi, rax
cmp byte [rbx + 0x28], 0
jne 0x14008d5b8
mov rcx, qword [rbx + 0x10]
mov r14, qword [rbx + 0x20]
cmp rcx, qword [rbx + 0x18]
jne 0x14008d599
mov r12, rsi
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov esi, 0x20
cmovne rsi, rax
cmp rsi, rcx
jbe 0x14008d5af
mov rax, rsi
shr rax, 0x3d
jne 0x14008d5af
lea rdx, [rsi*8]
mov rcx, qword [rbx + 8]
call fcn.1400ae2f0
test rax, rax
je 0x14008d5af
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rsi
mov rcx, qword [rbx + 0x10]
mov rsi, r12
jmp 0x14008d59d
mov dword [rdi], 1
jmp 0x14008d304
mov r15d, 0x22
test edx, edx
jns 0x14008d373
mov r8, qword [rbp]
mov ecx, eax
movsxd rax, ecx
shl ecx, 6
mov rdx, qword [r8 + rax*8 - 8]
xor eax, eax
test rdx, rdx
setne al
or eax, ecx
xor ecx, ecx
mov r8, rdx
shr r8, 0x20
setne cl
cmove r8, rdx
shl ecx, 5
mov r9, r8
shr r9, 0x10
xor edx, edx
cmp r8, 0x10000
setae dl
cmovb r9, r8
shl edx, 4
mov r10, r9
shr r10, 8
xor r8d, r8d
cmp r9, 0x100
setae r8b
cmovb r10, r9
mov r9, r10
shr r9, 4
xor r11d, r11d
cmp r10, 0x10
setae r11b
cmovb r9, r10
mov r10, r9
shr r10, 2
xor esi, esi
cmp r9, 4
cmovb r10, r9
setae sil
add esi, esi
or ecx, eax
or ecx, edx
lea eax, [rcx + r8*8]
lea eax, [rax + r11*4]
add eax, 0xffffffc0
or eax, esi
cmp r10, 2
sbb eax, 0xffffffff
mov r15d, 3
cmp eax, 0xea2
jg 0x14008d373
mov r15d, 4
cmp eax, 0x540
jg 0x14008d373
mov r15d, 5
cmp eax, 0x1db
jg 0x14008d373
mov r15d, 6
cmp eax, 0x18f
jg 0x14008d373
mov r15d, 7
cmp eax, 0x15a
jg 0x14008d373
mov r15d, 8
cmp eax, 0x133
jg 0x14008d373
cmp eax, 0x37
mov eax, 0x1b
mov r15d, 0x22
cmovge r15d, eax
jmp 0x14008d373
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], r14
inc qword [rbx + 0x10]
jmp 0x14008d5b8
xor r14d, r14d
jmp 0x14008d30a
mov word [rbx + 0x28], 0x101
mov rsi, r12
mov rcx, rbx
call fcn.140084300
mov qword [rsp + 0x30], rax
mov ecx, 0x40
call fcn.1400ae130
mov r12, rax
test rax, rax
je 0x14008d60f
xorps xmm0, xmm0
movups xmmword [r12 + 0x30], xmm0
movups xmmword [r12 + 0x20], xmm0
movups xmmword [r12 + 0x10], xmm0
movups xmmword [r12], xmm0
mov rcx, r12
mov rdx, rbp
call fcn.14008b0b0
test eax, eax
je 0x14008d60f
mov rcx, r12
mov rdx, rbx
call fcn.14008b2c0
test eax, eax
jne 0x14008d61a
mov rcx, r12
call fcn.140086a60
xor r12d, r12d
xor r14d, r14d
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rax
movaps xmm0, xmmword [0x14013ab10]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
cmp qword [rsp + 0x30], 0
je 0x14008d773
test r12, r12
je 0x14008d773
lea rcx, [rsp + 0x50]
mov rdx, r12
mov r8, rbx
call fcn.14008c900
test eax, eax
je 0x14008d773
mov qword [rsp + 0x28], rsi
mov rsi, rbx
movsxd rbp, r15d
mov ebx, 1
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x38], rax
xor r15d, r15d
jmp 0x14008d6bb
add r15, r13
xor eax, eax
cmp ebx, 0x10
lea ecx, [rbx + 1]
setb al
mov rdx, r15
xor rdx, rbp
mov r8, r15
sub r8, rbp
xor r8, r15
or r8, rdx
xor r8, r15
sar r8, 0x3f
or r8, rax
mov ebx, ecx
je 0x14008d75f
mov dword [rsp + 0x4c], 0xaaaaaaaa
mov r8d, 2
mov r14, qword [rsp + 0x30]
mov rcx, r14
lea rdx, [rsp + 0x4c]
mov r9, qword [rsp + 0x38]
call fcn.14008d7d0
test eax, eax
je 0x14008d752
movsxd r13, dword [rsp + 0x4c]
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x48]
mov r8, r14
mov r9, r12
call fcn.14008ccf0
xor r14d, r14d
test eax, eax
je 0x14008d76b
cmp dword [rsp + 0x48], 0
je 0x14008d757
mov r8, qword [rsp + 0xf8]
test r8, r8
je 0x14008d689
lea edx, [rbx - 1]
mov rax, qword [r8 + 8]
mov ecx, 1
call qword [0x140191008]
test eax, eax
jne 0x14008d689
jmp 0x14008d76b
mov eax, 1
mov dword [rcx], eax
jmp 0x14008d304
xor r14d, r14d
jmp 0x14008d76b
mov dword [rdi], 0
jmp 0x14008d765
mov dword [rdi], 1
mov r14d, 1
mov rbx, rsi
mov rsi, qword [rsp + 0x28]
mov rcx, r12
call fcn.140086a60
cmp byte [rbx + 0x28], 0
jne 0x14008d79a
mov rax, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
lea rdx, [rcx - 1]
mov qword [rbx + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [rbx + 0x20], rax
test rsi, rsi
je 0x14008d30a
mov rcx, qword [rsi]
lea rdx, [0x1400a3830]
lea r8, [fcn.140083860]
call fcn.1400bc070
mov rcx, qword [rsi + 8]
call fcn.1400ae2a0
mov rcx, rsi
call fcn.1400ae2a0
jmp 0x14008d30a