Function at 0x14002bfea
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x608
mov qword [rsp + 0x50], r8
mov r15, qword [rdx]
test r15, r15
je 0x14002c88b
mov r12, rdx
mov rsi, qword [rdx + 8]
test rsi, rsi
je 0x14002c88b
mov rdi, qword [r12 + 0x10]
test rdi, rdi
je 0x14002c88b
mov r13, r15
add r13, rdi
jb 0x14002c88b
mov qword [rsp + 0x70], rcx
mov rbx, r15
sub rbx, rsi
jb 0x14002c88b
mov rax, r13
shr rax, 0x3d
jne 0x14002c88b
movzx r14d, word [r12 + 0x18]
mov rcx, r13
mov edx, r14d
call fcn.14002bd7c
mov ecx, r14d
sub cx, dx
js 0x14002c88b
mov ebp, edx
and ecx, 0x3f
mov r9, rbx
shl r9, cl
mov rdx, r9
shr rdx, cl
cmp rdx, rbx
jne 0x14002c88b
mov r10, r15
shl r10, cl
mov rdx, r10
shr rdx, cl
cmp rdx, r15
jne 0x14002c88b
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa0], r12
mov ecx, 0xffffffa0
sub ecx, ebp
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
add ecx, 0x153b0
movsxd rcx, ecx
imul rcx, rcx, 0x7b4dc993
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x2a
add ecx, edx
cmp ecx, 0x51
jae 0x14002c88b
mov word [rsp + 0x66], r14w
movzx edx, r14w
mov qword [rsp + 0x78], rdx
movsx rdx, dx
mov qword [rsp + 0x88], rdx
mov ecx, ecx
shl rcx, 4
mov qword [rsp + 0x68], rcx
lea rdx, [0x14006afa0]
mov r12, qword [rcx + rdx]
movzx ebx, word [rcx + rdx + 8]
mov rcx, rax
mov edx, ebp
mov r8, r12
mov r9d, ebx
call fcn.14002be1c
mov r14, rax
mov r13d, edx
mov rcx, qword [rsp + 0x58]
mov edx, ebp
mov r8, r12
mov r9d, ebx
call fcn.14002be1c
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x48]
mov edx, ebp
mov r8, r12
mov r9d, ebx
call fcn.14002be1c
mov qword [rsp + 0x80], rax
lea rax, [r14 + 1]
neg r13d
and r13d, 0x3f
mov rbx, rax
mov ecx, r13d
shr rbx, cl
mov edx, 1
shl rdx, cl
mov ebp, 1
mov qword [rsp + 0x90], rdx
lea r12, [rdx - 1]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x48], rax
and r12, rax
mov ecx, ebx
call fcn.14002be6f
mov r8d, edx
movzx r11d, al
lea rax, [0x14006afa0]
mov rcx, qword [rsp + 0x68]
movzx eax, word [rcx + rax + 0xa]
mov ecx, r11d
sub cx, ax
inc ecx
mov dword [rsp + 0x68], ecx
sub r14, qword [rsp + 0xa8]
add r14, 2
mov r10, qword [rsp + 0x58]
and r10, r14
neg r11
mov r9d, 0xcccccccd
mov eax, ebx
xor edx, edx
div r8d
cmp rbp, 0x12
je 0x14002c88b
mov ebx, edx
mov edx, edx
mov ecx, r13d
shl rdx, cl
add al, 0x30
mov rcx, qword [rsp + 0x50]
mov byte [rcx + rbp - 1], al
add rdx, r12
cmp rdx, r14
jb 0x14002c248
lea rax, [r11 + rbp]
cmp rax, 1
je 0x14002c27d
mov eax, r8d
imul rax, r9
shr rax, 0x23
inc rbp
cmp r8d, 0xa
mov r8d, eax
jae 0x14002c1f4
jmp 0x14002c88b
mov eax, r8d
mov ecx, r13d
shl rax, cl
mov rcx, qword [rsp + 0x48]
sub rcx, qword [rsp + 0x80]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 1
jmp 0x14002c2f7
mov eax, 1
mov r8, qword [rsp + 0x58]
cmp rbp, 0x10
ja 0x14002c88b
add r12, r12
lea rdx, [r12 + r12*4]
mov r12, rdx
and r12, r8
add rax, rax
lea rax, [rax + rax*4]
add r10, r10
lea r10, [r10 + r10*4]
mov ecx, r13d
shr rdx, cl
add dl, 0x30
mov rcx, qword [rsp + 0x50]
mov byte [rcx + rbp], dl
inc rbp
cmp r12, r10
jae 0x14002c287
mov rcx, qword [rsp + 0x48]
sub rcx, qword [rsp + 0x80]
imul rcx, rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0xb0]
mov rdx, qword [rsp + 0x50]
mov r8, rbp
mov r9d, dword [rsp + 0x68]
call fcn.14002befa
cmp qword [rsp + 0xb0], 0
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x98]
je 0x14002c34d
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x70]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rcx], xmm0
jmp 0x14002c877
dec rax
je 0x14002c35c
bsr rax, rax
xor rax, 0x3f
jmp 0x14002c361
mov eax, 0x40
mov rdx, qword [rsp + 0x88]
sub rdx, rax
mov al, byte [rcx + 0x1a]
mov byte [rsp + 0x58], al
imul rax, rdx, 0x4d104d42
movabs r12, 0x1344135080
add r12, rax
shr r12, 0x20
xor r14d, r14d
lea rcx, [rsp + 0xc8]
mov r8d, 0xa0
xor edx, edx
call fcn.14005f650
cmp r14, 0x28
je 0x14002c88b
mov dword [rsp + r14*4 + 0xc8], r15d
shr r15, 0x20
inc r14
test r15, r15
jne 0x14002c3a3
lea rbx, [rsp + 0x170]
lea rdx, [rsp + 0xc8]
mov r8d, 0xa0
mov rcx, rbx
call fcn.14005efb0
mov qword [rbx + 0xa0], r14
xor ebx, ebx
lea rcx, [rsp + 0xc8]
mov r8d, 0xa0
xor edx, edx
call fcn.14005f650
cmp rbx, 0x28
je 0x14002c88b
mov dword [rsp + rbx*4 + 0xc8], esi
shr rsi, 0x20
inc rbx
test rsi, rsi
jne 0x14002c3fd
lea rsi, [rsp + 0x368]
lea rdx, [rsp + 0xc8]
mov r8d, 0xa0
mov rcx, rsi
call fcn.14005efb0
mov qword [rsi + 0xa0], rbx
xor ebx, ebx
lea rcx, [rsp + 0xc8]
mov r8d, 0xa0
xor edx, edx
call fcn.14005f650
cmp rbx, 0x28
je 0x14002c88b
mov dword [rsp + rbx*4 + 0xc8], edi
shr rdi, 0x20
inc rbx
test rdi, rdi
jne 0x14002c456
lea rsi, [rsp + 0x218]
lea rdx, [rsp + 0xc8]
mov r8d, 0xa0
mov rcx, rsi
call fcn.14005efb0
mov qword [rsi + 0xa0], rbx
lea rsi, [rsp + 0x2c4]
mov r8d, 0x9c
mov rcx, rsi
xor edx, edx
call fcn.14005f650
mov qword [rsi + 0x9c], 1
mov dword [rsi - 4], 1
cmp word [rsp + 0x66], 0
js 0x14002c4fc
lea rcx, [rsp + 0x170]
mov rsi, qword [rsp + 0x78]
mov rdx, rsi
call fcn.140028526
lea rcx, [rsp + 0x368]
mov rdx, rsi
call fcn.140028526
lea rcx, [rsp + 0x218]
mov rdx, rsi
jmp 0x14002c50f
mov rax, qword [rsp + 0x78]
neg eax
movsx rdx, ax
lea rcx, [rsp + 0x2c0]
call fcn.140028526
test r12w, r12w
js 0x14002c528
movzx edx, r12w
lea rcx, [rsp + 0x2c0]
jmp 0x14002c55c
mov eax, r12d
neg eax
movsx rsi, ax
lea rcx, [rsp + 0x170]
mov rdx, rsi
call fcn.14002bc8b
lea rcx, [rsp + 0x368]
mov rdx, rsi
call fcn.14002bc8b
lea rcx, [rsp + 0x218]
mov rdx, rsi
call fcn.14002bc8b
lea rdx, [rsp + 0x170]
mov rax, qword [rdx + 0xa0]
lea rsi, [rsp + 0xc8]
mov qword [rsi + 0xa0], rax
mov r8d, 0xa0
mov rcx, rsi
call fcn.14005efb0
lea rdx, [rsp + 0x218]
mov rcx, rsi
call fcn.1400283fe
lea rcx, [rsp + 0x2c0]
mov rdx, rsi
call fcn.140028798
cmp al, byte [rsp + 0x58]
jge 0x14002c5bd
inc r12d
mov qword [rsp + 0x48], r12
jmp 0x14002c5f8
mov qword [rsp + 0x48], r12
lea rcx, [rsp + 0x170]
mov edx, 0xa
call fcn.1400284c3
lea rcx, [rsp + 0x368]
mov edx, 0xa
call fcn.1400284c3
lea rcx, [rsp + 0x218]
mov edx, 0xa
call fcn.1400284c3
lea rbx, [rsp + 0x2c0]
mov rax, qword [rbx + 0xa0]
lea rsi, [rsp + 0x410]
mov qword [rsi + 0xa0], rax
mov r8d, 0xa0
mov rcx, rsi
mov rdx, rbx
call fcn.14005efb0
mov edx, 1
mov rcx, rsi
call fcn.140028526
mov rax, qword [rbx + 0xa0]
lea r12, [rsp + 0x4b8]
mov qword [r12 + 0xa0], rax
mov r8d, 0xa0
mov rcx, r12
mov rdx, rbx
call fcn.14005efb0
mov edx, 2
mov rcx, r12
call fcn.140028526
mov rax, qword [rbx + 0xa0]
lea r15, [rsp + 0x560]
mov qword [r15 + 0xa0], rax
mov r8d, 0xa0
mov rcx, r15
mov rdx, rbx
call fcn.14005efb0
mov edx, 3
mov rcx, r15
call fcn.140028526
xor edi, edi
lea r13, [rsp + 0x170]
lea rsi, [rsp + 0x368]
lea rbp, [rsp + 0xc8]
lea r14, [rsp + 0x218]
mov rcx, r13
mov rdx, r15
call fcn.140028798
cmp al, 1
ja 0x14002c6de
mov rcx, r13
mov rdx, r15
call fcn.140028467
mov r15b, 8
jmp 0x14002c6e1
xor r15d, r15d
mov rcx, r13
mov rdx, r12
call fcn.140028798
cmp al, 1
ja 0x14002c6ff
mov rcx, r13
mov rdx, r12
call fcn.140028467
or r15b, 4
lea r12, [rsp + 0x410]
mov rcx, r13
mov rdx, r12
call fcn.140028798
cmp al, 1
ja 0x14002c725
mov rcx, r13
mov rdx, r12
call fcn.140028467
add r15b, 2
lea r12, [rsp + 0x4b8]
mov rcx, r13
mov rdx, rbx
call fcn.140028798
cmp al, 1
ja 0x14002c74a
mov rcx, r13
mov rdx, rbx
call fcn.140028467
inc r15b
cmp rdi, 0x11
je 0x14002c88b
add r15b, 0x30
mov rax, qword [rsp + 0x50]
mov byte [rax + rdi], r15b
mov rcx, r13
mov rdx, rsi
call fcn.140028798
mov r15d, eax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x168], rax
mov r8d, 0xa0
mov rcx, rbp
mov rdx, r13
call fcn.14005efb0
mov rcx, rbp
mov rdx, r14
call fcn.1400283fe
mov rcx, rbx
mov rdx, rbp
call fcn.140028798
mov cl, byte [rsp + 0x58]
cmp r15b, cl
jl 0x14002c7ea
cmp al, cl
jl 0x14002c7ea
mov rcx, r13
mov edx, 0xa
call fcn.1400284c3
mov rcx, rsi
mov edx, 0xa
call fcn.1400284c3
mov rcx, r14
mov edx, 0xa
call fcn.1400284c3
inc rdi
lea r15, [rsp + 0x560]
jmp 0x14002c6bf
lea rsi, [rdi + 1]
cmp al, cl
jge 0x14002c856
cmp r15b, cl
jge 0x14002c820
lea rbx, [rsp + 0x170]
mov edx, 1
mov rcx, rbx
call fcn.140028526
lea rdx, [rsp + 0x2c0]
mov rcx, rbx
call fcn.140028798
cmp al, 2
jae 0x14002c856
mov rcx, qword [rsp + 0x50]
mov rdx, rsi
call fcn.140027c72
test al, 1
je 0x14002c856
cmp rdi, 0xf
mov r8, qword [rsp + 0x48]
ja 0x14002c88b
mov rax, qword [rsp + 0x50]
mov byte [rax + rdi + 1], dl
add rdi, 2
inc r8d
mov rsi, rdi
mov rax, qword [rsp + 0x70]
jmp 0x14002c866
cmp rdi, 0x11
mov rax, qword [rsp + 0x70]
mov r8, qword [rsp + 0x48]
jae 0x14002c88b
mov rcx, qword [rsp + 0x50]
mov qword [rax], rcx
mov qword [rax + 8], rsi
mov word [rax + 0x10], r8w
add rsp, 0x608
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2