Function at 0x552f90
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rbp, qword [rdx + 0x28]
mov esi, dword [rdx + 0x38]
call fcn.004f2540
mov ecx, 0x1008
test eax, eax
sete r13b
call fcn.004996e0
mov r12, rax
movabs rax, 0x15500000009
lea r10, [r12 + 8]
lea rdi, [r12 + 0x10]
mov qword [r12], rax
xor eax, eax
mov qword [r12 + 8], 0
and rdi, 0xfffffffffffffff8
mov rcx, r10
mov qword [r12 + 0x1000], 0
sub rcx, rdi
add ecx, 0x1000
shr ecx, 3
rep stosq qword [rdi], rax
test esi, esi
je 0x553210
mov ecx, 9
xor ebx, ebx
xor r9d, r9d
nop word cs:[rax + rax]
add rbp, 1
sub esi, 1
movzx r8d, byte [rbp - 1]
setne dl
test dl, r13b
je 0x553040
cmp r8d, 0xd
jne 0x553040
cmp byte [rbp], 0xa
je 0x553020
mov r10d, ebx
mov edx, eax
shr ebx, 0x19
add r9d, 1
shl r10d, 7
shr edx, 0x19
xor edx, r10d
shl eax, 7
xor eax, ebx
lea ebx, [r8 + rdx]
cmp r9d, 0x3f
jg 0x55306b
cmp r8d, 0xa
jne 0x5530e0
imul eax, eax, 0x61
mov r14d, 1
shl r14d, cl
lea edi, [r14 - 1]
add eax, ebx
mov r8d, edi
mov rbx, rax
imul rax, rax, 0x26dcc75
shr rax, 0x2a
imul eax, eax, 0x1a597
sub ebx, eax
mov eax, ebx
and r8d, ebx
movsxd rdx, r8d
jmp 0x5530b3
cmp eax, dword [r12 + rdx*8 + 8]
je 0x553118
add rdx, 1
xor r8d, r8d
cmp r14d, edx
jle 0x55309b
mov ebx, dword [r12 + rdx*8 + 0xc]
movsxd r8, edx
test ebx, ebx
jne 0x5530a0
lea rdx, [r12 + r8*8]
mov dword [rdx + 0xc], r9d
xor r9d, r9d
mov dword [rdx + 8], eax
mov eax, dword [r12 + 4]
lea edx, [rax - 1]
xor eax, eax
mov dword [r12 + 4], edx
test edx, edx
js 0x553130
test esi, esi
jne 0x553020
mov edx, 1
lea r10, [r12 + 8]
shl edx, cl
cmp edx, 1
ja 0x553215
mov rax, r12
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
add ebx, r9d
xor eax, eax
xor r9d, r9d
mov dword [r12 + r8*8 + 0xc], ebx
xor ebx, ebx
jmp 0x5530e0
lea r9d, [r14 + r14]
movsxd r8, r9d
mov dword [rsp + 0x2c], r9d
mov rax, r8
shr rax, 0x3d
jne 0x55322f
shl r8, 3
lea rcx, [r8 + 8]
mov qword [rsp + 0x20], r8
call fcn.004996e0
mov r8, qword [rsp + 0x20]
mov r15, rax
mov eax, dword [r12]
lea ecx, [rax + 1]
sub eax, 2
shl eax, cl
mov dword [r15], ecx
cdq
idiv ecx
xor edx, edx
lea rcx, [r15 + 8]
mov dword [r15 + 4], eax
call sub.msvcrt.dll_memset
test r14d, r14d
mov r9d, dword [rsp + 0x2c]
jle 0x5531f3
lea rdx, [r12 + 0xc]
lea r10, [r12 + rdi*8 + 0x14]
lea r11d, [r9 - 1]
jmp 0x5531a9
add rdx, 8
cmp r10, rdx
je 0x5531f3
mov r14d, dword [rdx]
test r14d, r14d
je 0x5531a0
mov r8d, dword [rdx - 4]
mov ecx, r11d
and ecx, r8d
movsxd rax, ecx
jmp 0x5531cb
add rax, 1
xor ecx, ecx
cmp r9d, eax
jle 0x5531bb
mov edi, dword [r15 + rax*8 + 0xc]
movsxd rcx, eax
test edi, edi
jne 0x5531c0
lea rax, [r15 + rcx*8]
add rdx, 8
mov dword [rax + 8], r8d
mov ecx, dword [rdx - 8]
mov dword [rax + 0xc], ecx
sub dword [r15 + 4], 1
cmp r10, rdx
jne 0x5531a9
mov rcx, r12
mov r12, r15
call fcn.004c9260
mov ecx, dword [r15]
xor eax, eax
xor r9d, r9d
jmp 0x5530e0
mov edx, 0x200
lea r9, [0x00553250]
mov r8d, 8
mov rcx, r10
call fcn.00472570
jmp 0x5530fd
mov edx, 8
lea rcx, [0x005a6d90]
call fcn.00494770
nop
nop word cs:[rax + rax]
nop dword [rax]
mov eax, dword [rcx + 4]
mov r8d, dword [rdx + 4]
test eax, eax
je 0x553278
mov eax, 0xffffffff
test r8d, r8d
je 0x553271
mov edx, dword [rdx]
cmp dword [rcx], edx
jb 0x553271
seta al
movzx eax, al
ret
xor eax, eax
test r8d, r8d
setne al
ret