Function at 0x180015520
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x388
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x2f0], xmm15
movdqa xmmword [rbp + 0x2e0], xmm14
movdqa xmmword [rbp + 0x2d0], xmm13
movdqa xmmword [rbp + 0x2c0], xmm12
movapd xmmword [rbp + 0x2b0], xmm11
movdqa xmmword [rbp + 0x2a0], xmm10
movapd xmmword [rbp + 0x290], xmm9
movaps xmmword [rbp + 0x280], xmm8
movaps xmmword [rbp + 0x270], xmm7
movaps xmmword [rbp + 0x260], xmm6
mov qword [rbp + 0x258], 0xfffffffffffffffe
mov qword [rbp + 0x1c8], r9
mov r15, r8
mov rbx, rdx
mov qword [rbp + 0x210], rcx
movabs rcx, 0x346dc5d63886594b
mov rax, r8
mul rcx
mov rsi, rdx
shr rsi, 0xb
inc rsi
imul rdi, rsi, 0xc8
lea r14, [rdi*4 + 0x320]
movzx eax, byte [0x1800a4291]
mov edx, 4
mov rcx, r14
call fcn.1800458d0
test rax, rax
je 0x180016070
mov rcx, rax
add rdi, 0xc8
mov qword [rbp + 0x100], rax
xor eax, eax
mov rdx, r15
sub rdx, rdi
cmovae rax, rdx
mov qword [rbp + 0x108], rdi
mov rdx, rax
or rdx, rsi
shr rdx, 0x20
je 0x18001562e
xor edx, edx
div rsi
mov r14, rax
jmp 0x180015635
xor edx, edx
div esi
mov r14d, eax
lea rax, [rbx + r15*4]
cmp r15, 0xc8
mov edx, 0xc8
cmovb rdx, r15
test rdx, rdx
je 0x1800156c4
cmp rdx, 8
jae 0x180015659
xor r8d, r8d
jmp 0x1800156b0
mov r8d, edx
and r8d, 0xf8
lea r9, [rdx*4]
and r9, 0xffffffffffffffe0
xor r10d, r10d
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rbx + r10]
movdqu xmm1, xmmword [rbx + r10 + 0x10]
movdqu xmmword [rcx + r10], xmm0
movdqu xmmword [rcx + r10 + 0x10], xmm1
add r10, 0x20
cmp r9, r10
jne 0x180015680
cmp rdx, r8
je 0x1800156c4
nop dword [rax + rax]
mov r9d, dword [rbx + r8*4]
mov dword [rcx + r8*4], r9d
lea r9, [r8 + 1]
mov r8, r9
cmp rdx, r9
jne 0x1800156b0
mov qword [rbp + 0x110], rdx
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x38], 0xc8
add r14, 0xc8
lea rbx, [rbp + 0x100]
lea r15, [rbp - 0x50]
mov rdi, r14
mov qword [rbp - 0x40], rdi
mov rcx, rbx
mov rdx, r15
call fcn.180006730
add rdi, r14
dec rsi
jne 0x1800156f0
mov rax, qword [rbp + 0x100]
mov qword [rbp + 0x248], rax
mov rax, qword [rbp + 0x108]
mov qword [rbp + 0x250], rax
mov rbx, qword [rbp + 0x110]
lea rdi, [rbx*4]
movdqa xmm6, xmmword [0x180083740]
movapd xmm7, xmmword [0x180083750]
movsd xmm8, qword [0x180083760]
xorpd xmm9, xmm9
movsd xmm15, qword [0x180083768]
xor eax, eax
mov r15, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
mov qword [rbp + 0x1d0], rdi
mov qword [rbp + 0x1d8], rbx
cmp rax, 8
jae 0x180015f86
nop word cs:[rax + rax]
mov r14, rax
mov qword [rbp + 0x1e0], rcx
movzx eax, byte [0x1800a4291]
mov ecx, 0x18
mov edx, 8
call fcn.1800458d0
test rax, rax
je 0x18001602a
mov r12, rax
mov esi, 4
test rbx, rbx
je 0x1800157f8
mov rax, rbx
shr rax, 0x3d
jne 0x18001604c
test rdi, rdi
je 0x1800157f8
movzx eax, byte [0x1800a4291]
mov edx, 4
mov rcx, rdi
call fcn.1800458d0
mov rsi, rax
test rax, rax
je 0x18001605a
mov rcx, rsi
mov rdx, qword [rbp + 0x248]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov qword [r12], rsi
mov qword [r12 + 8], rbx
mov qword [r12 + 0x10], rbx
mov qword [rbp + 0x198], r12
mov qword [rbp + 0x1a0], 1
mov qword [rbp + 0x1a8], 1
movzx eax, byte [0x1800a4291]
mov ecx, 8
mov edx, 8
call fcn.1800458d0
test rax, rax
je 0x18001603b
mov qword [rax], rbx
mov qword [rbp + 0x218], rax
mov qword [rbp + 0x220], 1
mov qword [rbp + 0x228], 1
mov dword [rbp + 0xf4], 0
mov rax, qword [rbp + 0x1c8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r14
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x198]
lea r8, [rbp + 0x218]
lea r9, [rbp + 0xf4]
call fcn.180012e50
mov eax, dword [rbp + 0x30]
cmp eax, 3
je 0x180015f23
movups xmm0, xmmword [rbp + 0x20]
movaps xmmword [rbp + 0xe0], xmm0
movups xmm0, xmmword [rbp + 0x10]
movaps xmmword [rbp + 0xd0], xmm0
movups xmm0, xmmword [rbp]
movaps xmmword [rbp + 0xc0], xmm0
movups xmm0, xmmword [rbp - 0x10]
movaps xmmword [rbp + 0xb0], xmm0
movups xmm0, xmmword [rbp - 0x50]
movups xmm1, xmmword [rbp - 0x40]
movups xmm2, xmmword [rbp - 0x30]
movups xmm3, xmmword [rbp - 0x20]
movaps xmmword [rbp + 0xa0], xmm3
movaps xmmword [rbp + 0x90], xmm2
movaps xmmword [rbp + 0x80], xmm1
movaps xmmword [rbp + 0x70], xmm0
lea rdx, [rbp + 0x34]
mov ecx, dword [rdx + 8]
lea r8, [rbp + 0x184]
mov dword [r8 + 8], ecx
mov rcx, qword [rdx]
mov qword [r8], rcx
movaps xmm0, xmmword [rbp + 0x70]
movdqa xmm1, xmmword [rbp + 0x80]
movdqa xmm2, xmmword [rbp + 0x90]
movdqa xmm3, xmmword [rbp + 0xa0]
movaps xmmword [rbp + 0x100], xmm0
movdqa xmmword [rbp + 0x110], xmm1
movdqa xmmword [rbp + 0x120], xmm2
movdqa xmmword [rbp + 0x130], xmm3
movaps xmm0, xmmword [rbp + 0xb0]
movaps xmmword [rbp + 0x140], xmm0
movaps xmm0, xmmword [rbp + 0xc0]
movaps xmmword [rbp + 0x150], xmm0
movaps xmm0, xmmword [rbp + 0xd0]
movaps xmmword [rbp + 0x160], xmm0
movdqa xmm0, xmmword [rbp + 0xe0]
movdqa xmmword [rbp + 0x170], xmm0
mov dword [rbp + 0x180], eax
mov rcx, qword [rbp + 0x218]
test rcx, rcx
je 0x1800159c8
mov rdx, qword [rbp + 0x220]
test rdx, rdx
je 0x1800159c8
shl rdx, 3
mov r8d, 8
call fcn.1800458e0
mov r9, qword [rbp + 0x160]
mov rax, qword [rbp + 0x170]
test rax, rax
je 0x180015a20
mov rcx, rax
shl rcx, 5
mov r10d, 0x20
xor edx, edx
nop word [rax + rax]
mov r8, qword [r9 + rdx + 0x10]
lea r8, [r8 + r8*2]
lea r10, [r10 + r8*4]
add rdx, 0x20
cmp rcx, rdx
jne 0x1800159f0
cmp qword [rbp + 0x128], 0
jne 0x180015a34
jmp 0x180016018
mov r10d, 0x20
cmp qword [rbp + 0x128], 0
je 0x180016018
mov qword [rbp + 0x1b8], r15
mov qword [rbp + 0x1b0], r14
mov rcx, qword [rbp + 0x118]
mov r12, qword [rbp + 0x110]
cmp rax, r12
cmovb r12, rax
mov rax, qword [rcx + 0x10]
cmp r12, rax
cmovae r12, rax
test r12, r12
mov qword [rbp + 0x1c0], r10
je 0x180015ab0
mov rdx, qword [rbp + 0x100]
mov r14, qword [rcx]
mov rax, qword [rcx + 0x20]
mov rcx, qword [rbp + 0x178]
shl rcx, 5
cmp r12, 4
mov qword [rbp + 0x208], r12
jae 0x180015ac0
xor esi, esi
xor ebx, ebx
mov r10, rax
mov r12, rcx
jmp 0x180015e03
xor esi, esi
jmp 0x180015ec8
mov rbx, r12
and rbx, 0xfffffffffffffffc
mov qword [rbp + 0x1e8], rax
movq xmm0, rax
pshufd xmm0, xmm0, 0x44
movdqa xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x1f0], rcx
movq xmm0, rcx
pshufd xmm0, xmm0, 0x44
movdqa xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x1f8], r9
lea rsi, [r9 + 0x78]
mov qword [rbp + 0x200], rdx
lea r15, [rdx + 0x170]
pxor xmm10, xmm10
xor r13d, r13d
pxor xmm12, xmm12
xor edi, edi
jmp 0x180015ba5
unpcklps xmm14, xmmword [rbp + 0x230]
unpcklps xmm13, xmmword [rbp + 0x40]
xorpd xmm0, xmm0
unpcklps xmm14, xmm0
unpcklps xmm13, xmm0
psllq xmm14, 2
psllq xmm13, 2
movq xmm0, rax
movq xmm1, rdx
punpcklqdq xmm0, xmm1
ucomisd xmm6, xmm15
movq xmm1, r8
cmova r9, rcx
movq xmm2, r9
punpcklqdq xmm1, xmm2
movdqa xmm2, xmmword [rbp + 0x60]
paddq xmm10, xmm2
paddq xmm10, xmm14
paddq xmm10, xmm0
paddq xmm12, xmm2
paddq xmm12, xmm13
paddq xmm12, xmm1
add r13, 4
sub rsi, 0xffffffffffffff80
add r15, 0x1c0
cmp rbx, r13
je 0x180015db0
movdqu xmm1, xmmword [r14 + r13*8]
movdqu xmm0, xmmword [r14 + r13*8 + 0x10]
movdqa xmm2, xmmword [rbp + 0x50]
psubq xmm1, xmm2
psubq xmm0, xmm2
movss xmm2, dword [rsi - 0x40]
movaps xmmword [rbp + 0x230], xmm2
movss xmm14, dword [rsi - 0x60]
movss xmm2, dword [rsi]
movaps xmmword [rbp + 0x40], xmm2
movss xmm13, dword [rsi - 0x20]
movdqa xmm2, xmm1
movdqa xmm3, xmmword [0x180083850]
pand xmm2, xmm3
movdqa xmm4, xmmword [0x180083860]
por xmm2, xmm4
psrlq xmm1, 0x20
movdqa xmm5, xmmword [0x180083870]
por xmm1, xmm5
movapd xmm6, xmmword [0x180083880]
subpd xmm1, xmm6
addpd xmm1, xmm2
movdqa xmm2, xmm0
pand xmm2, xmm3
por xmm2, xmm4
psrlq xmm0, 0x20
por xmm0, xmm5
subpd xmm0, xmm6
addpd xmm0, xmm2
movsd xmm6, qword [r15 - 0x150]
movapd xmm11, xmm8
movsd xmm8, qword [r15 - 0x70]
movhpd xmm6, qword [r15 - 0xe0]
movhpd xmm8, qword [r15]
mulpd xmm6, xmm1
mulpd xmm8, xmm0
movapd xmm0, xmm6
unpckhpd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
movapd xmm7, xmm0
movapd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
movapd xmm9, xmm0
movapd xmm0, xmm8
unpckhpd xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
movapd xmm6, xmm0
movapd xmm0, xmm8
movapd xmm8, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
cvttsd2si rcx, xmm9
mov rdx, rcx
sar rdx, 0x3f
movapd xmm1, xmm9
subsd xmm1, xmm11
cvttsd2si rax, xmm1
and rax, rdx
or rax, rcx
xorpd xmm2, xmm2
ucomisd xmm9, xmm2
cmovb rax, rdi
ucomisd xmm9, xmm15
mov rcx, 0xffffffffffffffff
cmova rax, rcx
cvttsd2si r8, xmm7
mov r9, r8
sar r9, 0x3f
movapd xmm1, xmm7
subsd xmm1, xmm11
cvttsd2si rdx, xmm1
and rdx, r9
or rdx, r8
ucomisd xmm7, xmm2
cmovb rdx, rdi
ucomisd xmm7, xmm15
cmova rdx, rcx
ucomisd xmm0, xmm2
mov r9d, 0
jae 0x180015d40
ucomisd xmm0, xmm15
mov r8, 0xffffffffffffffff
jbe 0x180015d6e
ucomisd xmm6, xmm2
mov r9d, 0
jb 0x180015b20
jmp 0x180015d81
cvttsd2si r8, xmm0
mov r10, r8
sar r10, 0x3f
movapd xmm1, xmm0
subsd xmm1, xmm8
cvttsd2si r9, xmm1
and r9, r10
or r9, r8
ucomisd xmm0, xmm15
mov r8, 0xffffffffffffffff
ja 0x180015d2e
mov r8, r9
ucomisd xmm6, xmm2
mov r9d, 0
jb 0x180015b20
cvttsd2si r10, xmm6
mov r11, r10
sar r11, 0x3f
movapd xmm0, xmm6
subsd xmm0, xmm8
cvttsd2si r9, xmm0
and r9, r11
or r9, r10
jmp 0x180015b20
paddq xmm12, xmm10
pshufd xmm0, xmm12, 0xee
paddq xmm0, xmm12
movq rsi, xmm0
cmp qword [rbp + 0x208], rbx
movdqa xmm6, xmmword [0x180083740]
movapd xmm7, xmmword [0x180083750]
xorpd xmm9, xmm9
mov r10, qword [rbp + 0x1e8]
mov r12, qword [rbp + 0x1f0]
mov r9, qword [rbp + 0x1f8]
mov rdx, qword [rbp + 0x200]
je 0x180015ec8
imul rax, rbx, 0x70
lea r15, [rdx + rax]
add r15, 0x20
mov rax, rbx
shl rax, 5
lea r13, [r9 + rax]
add r13, 0x18
nop
mov rax, qword [r14 + rbx*8]
inc rbx
sub rax, r10
mov edx, dword [r13]
mov qword [rbp + 0x230], rdx
movq xmm1, rax
punpckldq xmm1, xmm6
subpd xmm1, xmm7
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
mulsd xmm0, qword [r15]
mov rdi, rbx
mov rbx, r10
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
mov r10, rbx
mov rbx, rdi
mov r9, 0xffffffffffffffff
cvttsd2si rax, xmm0
mov rcx, rax
sar rcx, 0x3f
movapd xmm1, xmm0
subsd xmm1, xmm8
cvttsd2si rdx, xmm1
and rdx, rcx
or rdx, rax
ucomisd xmm0, xmm9
mov eax, 0
cmovae rax, rdx
ucomisd xmm0, xmm15
cmova rax, r9
add rsi, r12
mov rdx, qword [rbp + 0x230]
lea rsi, [rsi + rdx*4]
add rsi, rax
add r15, 0x70
add r13, 0x20
cmp qword [rbp + 0x208], rdi
jne 0x180015e20
mov edx, 8
mov rcx, rsi
call fcn.180046210
mov rsi, rax
add rsi, qword [rbp + 0x1c0]
cmp rsi, qword [rbp + 0x1b8]
mov rdi, qword [rbp + 0x1b0]
jae 0x180015f73
lea rcx, [rbp + 0x100]
call fcn.180018180
lea rax, [rdi + 1]
mov r15, rsi
mov rcx, rdi
mov rdi, qword [rbp + 0x1d0]
mov rbx, qword [rbp + 0x1d8]
cmp rax, 8
jb 0x180015790
jmp 0x180015f86
movdqu xmm0, xmmword [rbp - 0x50]
movdqu xmm1, xmmword [rbp - 0x40]
movdqa xmmword [rbp + 0x80], xmm1
movdqa xmmword [rbp + 0x70], xmm0
mov rax, qword [rbp + 0x210]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
mov rcx, qword [rbp + 0x218]
test rcx, rcx
je 0x180015f94
mov rdx, qword [rbp + 0x220]
test rdx, rdx
je 0x180015f94
shl rdx, 3
mov r8d, 8
call fcn.1800458e0
jmp 0x180015f94
lea rcx, [rbp + 0x100]
call fcn.180018180
mov rcx, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x210]
mov qword [rax], rcx
mov byte [rax + 0x18], 0x2d
mov rdx, qword [rbp + 0x250]
test rdx, rdx
je 0x180015fb6
shl rdx, 2
mov r8d, 4
mov rcx, qword [rbp + 0x248]
call fcn.1800458e0
movaps xmm6, xmmword [rbp + 0x260]
movaps xmm7, xmmword [rbp + 0x270]
movaps xmm8, xmmword [rbp + 0x280]
movaps xmm9, xmmword [rbp + 0x290]
movaps xmm10, xmmword [rbp + 0x2a0]
movaps xmm11, xmmword [rbp + 0x2b0]
movaps xmm12, xmmword [rbp + 0x2c0]
movaps xmm13, xmmword [rbp + 0x2d0]
movaps xmm14, xmmword [rbp + 0x2e0]
movaps xmm15, xmmword [rbp + 0x2f0]
add rsp, 0x388
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, [0x180083a48]
xor ecx, ecx
xor edx, edx
call fcn.180082960
jmp 0x18001606e
mov ecx, 8
mov edx, 0x18
call fcn.180082720
jmp 0x18001606e
mov ecx, 8
mov edx, 8
call fcn.180082720
jmp 0x18001606e
mov qword [rbp + 0x230], r12
call fcn.18006c380
jmp 0x18001606e
mov qword [rbp + 0x230], r12
mov ecx, 4
mov rdx, rdi
call fcn.180082720
ud2
mov ecx, 4
mov rdx, r14
call fcn.180082720
ud2