Function at 0x180037be0
Capabilities:
Encode data using base64

Disassembly:
push rbx
push rsi
push r12
push r13
sub rsp, 0x168
mov rax, qword [0x18017a408]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov esi, r8d
mov r13, rcx
mov r8d, dword [rcx + 8]
mov rbx, r9
mov eax, 0xaaaaaaab
mov r12, rdx
lea r9d, [rsi*4 + 8]
mul r9d
mov ecx, edx
shr ecx, 1
test r8d, r8d
je 0x180037c35
xor edx, edx
lea eax, [rcx + rcx]
div r8d
add eax, ecx
jmp 0x180037c37
mov eax, ecx
lea edx, [rax + 3]
mov rcx, rbx
call fcn.18000f700
test al, al
je 0x180037dc8
test esi, esi
je 0x180037ef7
test r12, r12
je 0x180037ef7
mov qword [rsp + 0x160], rbp
mov eax, 0xaaaaaaab
mul esi
mov qword [rsp + 0x158], rdi
xor ebp, ebp
mov qword [rsp + 0x150], r14
xor r8d, r8d
mov r14d, edx
mov qword [rsp + 0x148], r15
xor r15d, r15d
lea rdx, [0x180125450]
xor edi, edi
shr r14d, 1
je 0x180037ded
nop
movzx r9d, byte [rbp + r12]
add r15d, 4
mov eax, r9d
movsxd rcx, r8d
shr rax, 2
and r9d, 3
shl r9d, 4
inc r8d
inc ebp
movzx eax, byte [rax + rdx]
mov byte [rsp + rcx + 0x20], al
movzx r11d, byte [rbp + r12]
inc ebp
movsxd rcx, r8d
mov eax, r11d
shr rax, 4
inc r8d
mov edx, r9d
and r11d, 0xf
or rdx, rax
mov r10d, ebp
lea r9, [0x180125450]
shl r11d, 2
inc ebp
movzx eax, byte [rdx + r9]
movzx r9d, byte [r10 + r12]
mov byte [rsp + rcx + 0x20], al
mov eax, r9d
shr rax, 6
and r9d, 0x3f
movsxd rcx, r8d
inc r8d
mov edx, r11d
or rdx, rax
lea rax, [0x180125450]
movzx eax, byte [rdx + rax]
lea rdx, [0x180125450]
mov byte [rsp + rcx + 0x20], al
movzx eax, byte [r9 + rdx]
movsxd rcx, r8d
inc r8d
mov byte [rsp + rcx + 0x20], al
cmp r15d, dword [r13 + 8]
jb 0x180037d61
movsxd rax, r8d
inc r8d
mov byte [rsp + rax + 0x20], 0xd
movsxd rax, r8d
inc r8d
xor r15d, r15d
mov byte [rsp + rax + 0x20], 0xa
cmp r8d, 0x100
jl 0x180037d85
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.18000e0d0
test al, al
je 0x180037da6
xor r8d, r8d
lea rdx, [0x180125450]
inc edi
cmp edi, r14d
jb 0x180037ca0
test r8d, r8d
je 0x180037ded
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.18000e0d0
test al, al
jne 0x180037de6
xor al, al
mov r14, qword [rsp + 0x150]
mov rdi, qword [rsp + 0x158]
mov rbp, qword [rsp + 0x160]
mov r15, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.1800c9b90
add rsp, 0x168
pop r13
pop r12
pop rsi
pop rbx
ret
lea rdx, [0x180125450]
lea eax, [r14 + r14*2]
mov cl, 1
sub esi, eax
je 0x180037ed1
sub esi, 1
je 0x180037e6f
cmp esi, 1
jne 0x180037eef
movzx esi, byte [rbp + r12]
lea eax, [rbp + 1]
movzx edi, byte [rax + r12]
mov rcx, rbx
mov eax, esi
shr rax, 2
movzx edx, byte [rax + rdx]
call fcn.18000d3a0
movzx ecx, al
test al, al
je 0x180037eef
and esi, 3
mov eax, edi
shl esi, 4
mov ecx, esi
lea rsi, [0x180125450]
shr rax, 4
or rcx, rax
movzx edx, byte [rcx + rsi]
mov rcx, rbx
call fcn.18000d3a0
movzx ecx, al
test al, al
je 0x180037eef
and edi, 0xf
shl edi, 2
movzx edx, byte [rdi + rsi]
jmp 0x180037eb1
movzx edi, byte [rbp + r12]
mov rcx, rbx
mov eax, edi
shr rax, 2
movzx edx, byte [rax + rdx]
call fcn.18000d3a0
movzx ecx, al
test al, al
je 0x180037eef
and edi, 3
lea r9, [0x180125450]
shl edi, 4
mov rcx, rbx
movzx edx, byte [rdi + r9]
call fcn.18000d3a0
movzx ecx, al
test al, al
je 0x180037eef
mov dl, 0x3d
mov rcx, rbx
call fcn.18000d3a0
movzx ecx, al
test al, al
je 0x180037eef
mov dl, 0x3d
mov rcx, rbx
call fcn.18000d3a0
movzx ecx, al
test al, al
je 0x180037eef
mov dl, 0xd
mov rcx, rbx
call fcn.18000d3a0
movzx ecx, al
test al, al
je 0x180037eef
mov dl, 0xa
mov rcx, rbx
call fcn.18000d3a0
movzx ecx, al
movzx eax, cl
jmp 0x180037da8
mov al, 1
jmp 0x180037dc8