Function at 0x18002e500
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
movaps xmmword [rsp + 0x60], xmm6
mov rdi, r8
movsd xmm6, qword [rsp + 0xc8]
mov rbx, rdx
imul ebp, ecx, 0x278
mov esi, ecx
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0x40], xmm8
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x2c], ebp
cmp ecx, ebp
ja 0x18002e819
movsd xmm7, qword [0x18008beb8]
xor r8d, r8d
mov r15, qword [rsp + 0xc8]
movabs r9, 0xaaaaaaaaaaaaaaab
mov r12, qword [rsp + 0xc8]
xorps xmm8, xmm8
nop dword [rax]
mov eax, esi
sub eax, 0x31
je 0x18002e800
sub eax, 0x5f
je 0x18002e7ca
sub eax, 0x58e0
je 0x18002e6cd
cmp eax, 0x58e0
jne 0x18002e9f8
mov r9, qword [rsp + 0x30]
cmp r9, qword [rdi + 0x10]
jae 0x18002e9ee
mov ebx, dword [rsp + 0xc8]
mov edx, 0xe5
nop word [rax + rax]
cmp edx, 0xe5
je 0x18002e689
cmp edx, 0x1a2
je 0x18002e642
cmp edx, 0x25f
je 0x18002e604
cmp edx, 0x31c
jne 0x18002e6a7
mov byte [r15], 0x3d
inc r15
jmp 0x18002e6a7
lea rax, [r9 + 1]
cmp rax, qword [rdi + 0x10]
jae 0x18002e634
mov eax, dword [rsp + 0x24]
mov ecx, ebx
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x180092528]
movzx r8d, byte [rcx + rax]
mov byte [r15], r8b
inc r15
xor r8d, r8d
jmp 0x18002e6a7
mov r8b, 0x3d
mov byte [r15], r8b
inc r15
xor r8d, r8d
jmp 0x18002e6a7
mov rax, qword [0x180092528]
mov dword [rsp + 0x24], r8d
mov r8d, dword [rsp + 0x28]
mov ecx, r8d
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov eax, ebx
mov byte [r15], cl
mov ecx, r8d
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
mov rax, qword [0x180092528]
movzx ecx, byte [rcx + rax]
mov byte [r15 + 1], cl
add r15, 2
xor r8d, r8d
jmp 0x18002e6a7
movzx eax, byte [r12]
mov dword [rsp + 0x28], eax
lea rax, [r9 + 1]
cmp rax, qword [rdi + 0x10]
jae 0x18002e6a4
movzx ebx, byte [r12 + 1]
jmp 0x18002e6a7
mov ebx, r8d
add edx, 0xbd
cmp edx, 0x3d9
jb 0x18002e5d0
mov dword [rsp + 0xc8], ebx
mov rbx, qword [rsp + 0xb8]
jmp 0x18002e9ee
cmp qword [rbx + 0x18], 0x10
mov r15, rbx
jb 0x18002e6da
mov r15, qword [rbx]
mov rax, r9
mov qword [rsp + 0x30], r8
mul qword [rdi + 0x10]
shr rdx, 1
lea rcx, [rdx + rdx*2]
test rcx, rcx
je 0x18002e9f8
dec rcx
mov rax, r9
mul rcx
shr rdx, 1
inc rdx
lea rax, [rdx + rdx*2]
mov qword [rsp + 0x30], rax
nop
mov r8d, 0x9e
mov eax, r8d
sub eax, 0x9e
je 0x18002e72f
cmp eax, 1
jne 0x18002e7ab
add r12, 3
jmp 0x18002e7ab
mov rax, qword [0x180092528]
movzx ecx, byte [r12]
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [r15], cl
movzx ecx, byte [r12]
movzx eax, byte [r12 + 1]
and ecx, 3
shl ecx, 4
shr eax, 4
add ecx, eax
mov rax, qword [0x180092528]
movzx ecx, byte [rcx + rax]
mov byte [r15 + 1], cl
movzx ecx, byte [r12 + 1]
movzx eax, byte [r12 + 2]
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x180092528]
movzx ecx, byte [rcx + rax]
mov byte [r15 + 2], cl
movzx ecx, byte [r12 + 2]
mov rax, qword [0x180092528]
and ecx, 0x3f
movzx ecx, byte [rcx + rax]
mov byte [r15 + 3], cl
add r15, 4
inc r8d
cmp r8d, 0xa0
jb 0x18002e716
sub rdx, 1
jne 0x18002e710
jmp 0x18002e9f8
mov rcx, qword [rdi + 0x10]
mov rax, r9
add rcx, 2
xor r8d, r8d
mul rcx
mov rcx, rbx
shr rdx, 1
shl rdx, 2
call fcn.18006a470
cmp qword [rdi + 0x18], 0x10
mov r12, rdi
jb 0x18002e9ee
mov r12, qword [rdi]
jmp 0x18002e9ee
mov r13d, 0xb1
mov eax, r13d
sub eax, 0xb1
je 0x18002e846
cmp eax, 1
jne 0x18002e9d6
movq rax, xmm6
mov rbx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x40]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [rbx]
test eax, eax
je 0x18002ea1c
cmp qword [rdi + 0x60], 0
je 0x18002ea1c
cmp eax, dword [rdi + 0xc]
jbe 0x18002e9c9
cmp eax, dword [rdi + 0x58]
jbe 0x18002e95b
mov ebp, 0xfa
mov eax, ebp
sub eax, 0xfa
je 0x18002e918
sub eax, 1
je 0x18002e90c
sub eax, 1
je 0x18002e8cd
cmp eax, 1
jne 0x18002e94d
movsxd rcx, dword [rdi + 0x58]
mov eax, dword [rbx]
cmp ecx, eax
jae 0x18002e8c5
lea rdx, [rcx*8]
nop dword [rax + rax]
mov rax, qword [rdi + 0x60]
lea rdx, [rdx + 8]
inc ecx
mov qword [rdx + rax - 8], r8
mov eax, dword [rbx]
cmp ecx, eax
jb 0x18002e8b0
mov dword [rdi + 0x58], eax
jmp 0x18002e94d
mov eax, dword [rdi + 4]
mov ecx, dword [rbx]
cmp ecx, eax
jbe 0x18002e8da
mov dword [rbx], eax
mov ecx, eax
mov eax, ecx
lea r8, [rsp + 0x38]
shl rax, 3
lea rcx, [rdi + 0x60]
mov r9d, 0xd5
mov qword [rsp + 0x38], rax
mov rdx, rdi
call fcn.180015ef0
cmp qword [rdi + 0x60], 0
je 0x18002ea1c
xor r8d, r8d
jmp 0x18002e94d
mov eax, dword [rdi + 0x58]
add eax, 0x32
cmp dword [rbx], eax
jae 0x18002e94d
jmp 0x18002e94b
mov ecx, dword [rbx]
cmp ecx, dword [rdi + 4]
jbe 0x18002e929
test byte [rdi + 0x78], 0x40
je 0x18002ea1c
mov eax, dword [rdi + 0x58]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
cvtsi2sd xmm1, rax
mulsd xmm1, xmm7
comisd xmm1, xmm0
jbe 0x18002e94d
cvttsd2si rax, xmm1
mov dword [rbx], eax
inc ebp
cmp ebp, 0xfe
jb 0x18002e872
mov edx, dword [rbx]
mov rbp, qword [rdi + 0x60]
lea r8d, [rdx - 1]
movsd xmm0, qword [rbp + r8*8]
ucomisd xmm0, xmm8
mov r14d, r8d
jp 0x18002e9c6
jne 0x18002e9c6
movsd xmm1, qword [rdi + 0x70]
lea eax, [rdx - 2]
movsd xmm6, qword [rbp + rax*8]
ucomisd xmm6, xmm8
jp 0x18002e9a7
jne 0x18002e9a7
xorps xmm0, xmm0
cvtsi2sd xmm0, rdx
subsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_log
subsd xmm0, qword [rdi + 0x68]
jmp 0x18002e9bf
xorps xmm0, xmm0
mov eax, r8d
cvtsi2sd xmm0, rax
subsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_log
addsd xmm0, xmm6
movsd qword [rbp + r14*8], xmm0
xor r8d, r8d
mov ecx, dword [rbx]
mov rax, qword [rdi + 0x60]
dec ecx
movsd xmm6, qword [rax + rcx*8]
inc r13d
cmp r13d, 0xb3
jb 0x18002e806
mov esi, dword [rsp + 0x20]
mov ebp, dword [rsp + 0x2c]
movabs r9, 0xaaaaaaaaaaaaaaab
imul eax, dword [rsp + 0xb0], 0x9e
mov r8d, 0
add esi, eax
mov dword [rsp + 0x20], esi
cmp esi, ebp
jbe 0x18002e580
jmp 0x18002e819
mov rax, qword [0x18008c028]
jmp 0x18002e81e