Function at 0x180052ae0
Capabilities:
Encode data using base64

Disassembly:
push r13
push r15
sub rsp, 0x38
mov r9d, r8d
mov r10d, r8d
shr r9d, 0x1b
mov r13, rdx
shr r10d, 0x1c
and r9b, 1
and r10b, 1
mov r15, rcx
bt r8d, 0xe
jae 0x180052b14
cmp byte [rdx], 0
je 0x180052b14
mov dl, 1
jmp 0x180052b16
xor dl, dl
mov qword [rsp + 0x28], rdi
test r15, r15
je 0x180052b2c
mov rdi, r15
xor eax, eax
mov ecx, 0x158
rep stosb byte [rdi], al
test r9b, r9b
je 0x180052b75
or qword [r15 + 0x38], 2
movabs rax, 0x200000000
or qword [r15 + 8], 2
or qword [r15 + 0x38], 4
or qword [r15 + 8], 4
or qword [r15 + 0x38], 8
or qword [r15 + 8], 8
or qword [r15 + 0x38], 0x10
or qword [r15 + 8], 0x10
or qword [r15 + 0x38], 0x20
or qword [r15 + 8], 0x20
or qword [r15 + 0x40], rax
or qword [r15 + 0x10], rax
test r10b, r10b
je 0x180052ba4
or qword [r15 + 0x40], 0x10
or qword [r15 + 0x10], 0x10
or qword [r15 + 0x48], 0x2000
or qword [r15 + 0x18], 0x2000
or qword [r15 + 0x48], 0x4000
or qword [r15 + 0x18], 0x4000
test dl, dl
je 0x180052faa
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x30], rsi
mov esi, 1
mov ebx, esi
mov qword [rsp + 0x20], r14
mov ecx, esi
call fcn.180052210
cmp eax, 0xffffffff
je 0x180052c6d
mov edx, eax
mov rcx, r13
call fcn.180051bd0
mov rdi, rbx
mov r8d, eax
shr rdi, 6
test eax, 0xfedbffff
je 0x180052c05
movzx ecx, bl
mov edx, 1
and cl, 0x3f
shl rdx, cl
or qword [r15 + rdi*8 + 8], rdx
mov rcx, rbx
and ecx, 0x3f
test r8b, 1
je 0x180052c1e
mov eax, 1
shl rax, cl
or qword [r15 + rdi*8 + 0x20], rax
mov eax, 1
shl rax, cl
test r8b, 4
je 0x180052c39
or qword [r15 + rdi*8 + 0x50], rax
or qword [r15 + rdi*8 + 0x140], rax
test r8b, 2
je 0x180052c44
or qword [r15 + rdi*8 + 0x68], rax
test r8d, 0x118
je 0x180052c57
or qword [r15 + rdi*8 + 0xc8], rax
jmp 0x180052c5e
mov rdi, rbx
shr rdi, 6
bt r8d, 0xe
jae 0x180052c6d
or qword [r15 + rdi*8 + 0x98], rax
inc esi
inc rbx
cmp esi, 0x99
jl 0x180052bc7
cmp dword [r13 + 0x11c], 0
je 0x180052c99
movabs rax, 0x31e0700001e
or qword [r15 + 0x80], rax
movabs rax, 0x2048201480
mov edx, 1
or qword [r15 + 8], rax
mov edi, edx
or qword [r15 + 0x20], 0x48201000
movabs r9, 0x2000004000000780
or qword [r15 + 0x50], 0x48201000
movabs r10, 0x4001c0000000011
or qword [r15 + 0x140], 0x48201000
or qword [r15 + 0x68], 0x48201000
nop word [rax + rax]
movzx ecx, dil
mov r8d, 1
and cl, 0x3f
shl r8, cl
mov rcx, rdi
shr rcx, 6
test qword [r15 + rcx*8 + 8], r8
je 0x180052d2f
cmp edx, 0x3d
ja 0x180052d19
bt r9, rdx
jb 0x180052d27
lea eax, [rdx - 0x4c]
cmp eax, 0x3a
ja 0x180052d2f
bt r10, rax
jae 0x180052d2f
or qword [r15 + rcx*8 + 0xe0], r8
inc edx
inc rdi
cmp edx, 0x99
jl 0x180052cf0
mov r10d, 1
lea r9, [r13 + 0x184]
mov r11d, 0x98
nop
mov r8d, dword [r9]
test r8b, 1
je 0x180052de2
mov rdx, r10
movzx ecx, r10b
shr rdx, 6
and cl, 0x3f
mov edi, 1
shl rdi, cl
or qword [r15 + rdx*8 + 8], rdi
test r8b, 0x20
je 0x180052d83
or qword [r15 + rdx*8 + 0x20], rdi
test r8b, 0x40
je 0x180052d96
or qword [r15 + rdx*8 + 0x50], rdi
or qword [r15 + rdx*8 + 0x140], rdi
test r8b, r8b
jns 0x180052da0
or qword [r15 + rdx*8 + 0x68], rdi
test r8b, 4
je 0x180052db6
or qword [r15 + rdx*8 + 0x80], rdi
or qword [r15 + rdx*8 + 0xc8], rdi
test r8b, 8
je 0x180052dc4
or qword [r15 + rdx*8 + 0xe0], rdi
bt r8d, 8
jae 0x180052dd3
or qword [r15 + rdx*8 + 0xb0], rdi
bt r8d, 9
jae 0x180052de2
or qword [r15 + rdx*8 + 0x128], rdi
inc r10
add r9, 4
sub r11, 1
jne 0x180052d50
movabs rax, 0xfffdffffffffffff
movabs rcx, 0x7fffffffffffffff
and qword [r15 + 0x58], rax
mov ebx, 1
and qword [r15 + 0x60], 0xfffffffffeffffff
movabs rax, 0xffffe7ffffffffff
and qword [r15 + 0x50], rax
mov r14d, ebx
movabs rax, 0xfffffffdffffffff
and qword [r15 + 0x58], rax
movabs rax, 0xffffffff7fffffff
and qword [r15 + 0x88], rax
movabs rax, 0xff7fffffffffffff
and qword [r15 + 0x80], rax
mov rax, qword [r15 + 0x88]
btr rax, 0x1a
and rax, rcx
mov qword [r15 + 0x88], rax
and qword [r15 + 0x90], 0xffffffffffffffeb
nop word [rax + rax]
mov rsi, r14
movzx ecx, r14b
and cl, 0x3f
shr rsi, 6
mov ebp, 1
shl rbp, cl
test qword [r15 + rsi*8 + 0xc8], rbp
jne 0x180052eed
cmp dword [r13 + 0x16c], 0
je 0x180052ef5
mov edi, 1
nop
movsxd rdx, edi
movzx eax, dl
shr rdx, 6
and al, 0x3f
movzx ecx, al
mov rax, qword [r15 + rdx*8 + 0xc8]
bt rax, rcx
jae 0x180052ee1
xor r9d, r9d
mov r8d, edi
mov edx, ebx
mov rcx, r15
call fcn.180052950
test al, al
jne 0x180052eed
inc edi
cmp edi, 0x99
jl 0x180052eb0
jmp 0x180052ef5
or qword [r15 + rsi*8 + 0xf8], rbp
inc ebx
inc r14
cmp ebx, 0x99
jl 0x180052e80
mov ebx, 1
mov r14d, ebx
nop
mov rsi, r14
movzx ecx, r14b
and cl, 0x3f
shr rsi, 6
mov ebp, 1
shl rbp, cl
test qword [r15 + rsi*8 + 0xe0], rbp
jne 0x180052f7d
cmp dword [r13 + 0x16c], 0
je 0x180052f85
mov edi, 1
nop
movsxd rdx, edi
movzx eax, dl
shr rdx, 6
and al, 0x3f
movzx ecx, al
mov rax, qword [r15 + rdx*8 + 0xe0]
bt rax, rcx
jae 0x180052f71
xor r9d, r9d
mov r8d, edi
mov edx, ebx
mov rcx, r15
call fcn.180052950
test al, al
jne 0x180052f7d
inc edi
cmp edi, 0x99
jl 0x180052f40
jmp 0x180052f85
or qword [r15 + rsi*8 + 0x110], rbp
inc ebx
inc r14
cmp ebx, 0x99
jl 0x180052f10
mov r14, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x28]
add rsp, 0x38
pop r15
pop r13
ret