Function at 0x18004ad70
Capabilities:
Encode data using base64

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x20
xor edi, edi
mov byte [rcx + 0x10], 0
mov dword [r9], edi
mov r14, r9
mov eax, dword [rcx + 4]
mov ebp, r8d
dec eax
mov rsi, rdx
mov rbx, rcx
cmp eax, 1
jbe 0x18004ade5
test r8d, r8d
je 0x18004add3
nop
mov rcx, rbx
call fcn.18004ab10
test al, al
je 0x18004add3
cmp byte [rbx + 0x10], dil
jne 0x18004b37f
test rsi, rsi
je 0x18004adc8
mov eax, dword [rbx + 0x1c]
movzx ecx, byte [rax + rbx + 0x20]
mov byte [rsi], cl
inc rsi
inc dword [rbx + 0x1c]
inc dword [r14]
add ebp, 0xffffffff
jne 0x18004ada0
cmp byte [rbx + 0x10], dil
sete al
add rsp, 0x20
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, dword [rbx + 0x1020]
mov ecx, edi
test eax, eax
jle 0x18004ae1d
lea rdx, [rbx + 0x1024]
test ebp, ebp
je 0x18004ae36
test rsi, rsi
je 0x18004ae09
movzx eax, byte [rdx]
mov byte [rsi], al
inc rsi
inc dword [r9]
dec ebp
mov eax, dword [rbx + 0x1020]
inc ecx
inc rdx
cmp ecx, eax
jl 0x18004adf8
mov dword [rbx + 0x1020], edi
cmp byte [rbx + 0x11], dil
je 0x18004ae6c
mov al, 1
add rsp, 0x20
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
sub eax, ecx
movsxd rdx, ecx
add rdx, 0x1024
movsxd r8, eax
add rdx, rbx
mov dword [rbx + 0x1020], eax
lea rcx, [rbx + 0x1024]
call fcn.180100680
cmp byte [rbx + 0x10], dil
sete al
add rsp, 0x20
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp dword [rbx + 4], 1
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], r15
lea r15, [0x180000000]
jne 0x18004b16f
test ebp, ebp
je 0x18004b16f
lea r15, [rbx + 0x1024]
mov r13, r15
nop
cmp byte [rbx + 0x10], 0
jne 0x18004b168
mov rcx, rbx
call fcn.18004ab10
test al, al
je 0x18004b164
mov eax, dword [rbx + 0x1c]
movzx edi, byte [rax + rbx + 0x20]
inc eax
mov ecx, edi
mov dword [rbx + 0x1c], eax
sub ecx, 9
je 0x18004affe
sub ecx, 1
je 0x18004afc9
sub ecx, 3
je 0x18004af4f
cmp ecx, 0x13
je 0x18004affe
lea eax, [rdi - 0x21]
cmp al, 0x5d
ja 0x18004af0f
mov r13, r15
cmp dil, 0x3d
je 0x18004af0f
mov dword [rbx + 0x1020], 1
mov byte [rbx + 0x1024], dil
jmp 0x18004b057
mov rcx, rdi
mov dword [rbx + 0x1020], 3
lea r8, [0x180000000]
mov byte [r13], 0x3d
mov rax, rdi
shr rax, 4
and ecx, 0xf
movzx eax, byte [rax + r8 + 0x123c70]
mov byte [rbx + 0x1025], al
movzx eax, byte [rcx + r8 + 0x123c70]
jmp 0x18004b051
mov eax, dword [rbx]
cmp eax, 1
jne 0x18004af6c
mov dword [rbx + 0x1020], eax
mov byte [r15], 0xd
mov dword [rbx + 0x14], 0xffffffff
jmp 0x18004b057
cmp eax, 3
jne 0x18004afad
mov rcx, rbx
call fcn.18004ab10
test al, al
je 0x18004afad
mov eax, dword [rbx + 0x1c]
cmp byte [rax + rbx + 0x20], 0xa
jne 0x18004afad
mov dword [rbx + 0x1020], 2
inc eax
mov dword [rbx + 0x1c], eax
mov byte [r15], 0xd
mov byte [rbx + 0x1025], 0xa
mov dword [rbx + 0x14], 0xfffffffe
jmp 0x18004b057
mov dword [rbx + 0x1020], 3
mov byte [r15], 0x3d
mov word [rbx + 0x1025], 0x4430
jmp 0x18004b057
cmp dword [rbx], 2
jne 0x18004afe5
mov dword [rbx + 0x1020], 1
mov byte [r15], 0xa
mov dword [rbx + 0x14], 0xffffffff
jmp 0x18004b057
mov dword [rbx + 0x1020], 3
mov byte [r15], 0x3d
mov word [rbx + 0x1025], 0x4130
jmp 0x18004b057
mov rcx, rbx
call fcn.18004abc0
test al, al
jne 0x18004b019
mov dword [rbx + 0x1020], 1
mov byte [r15], dil
jmp 0x18004b057
mov rcx, rdi
mov dword [rbx + 0x1020], 3
lea rdx, [0x180000000]
mov byte [r15], 0x3d
mov rax, rdi
shr rax, 4
and ecx, 0xf
movzx eax, byte [rax + rdx + 0x123c70]
mov byte [rbx + 0x1025], al
movzx eax, byte [rcx + rdx + 0x123c70]
mov byte [rbx + 0x1026], al
mov ecx, dword [rbx + 0x14]
mov r13, r15
mov edx, dword [rbx + 0x1020]
add ecx, edx
mov dword [rbx + 0x14], ecx
cmp ecx, 0x4c
jg 0x18004b085
jne 0x18004b0f5
mov rcx, rbx
call fcn.18004abc0
test al, al
jne 0x18004b0f5
mov edx, dword [rbx + 0x1020]
mov eax, dword [rbx]
cmp eax, 3
jne 0x18004b093
mov edi, 2
jmp 0x18004b09b
xor edi, edi
test eax, eax
setne dil
movsxd r8, edx
inc edi
mov ecx, edi
mov rdx, r15
add rcx, 0x1024
add rcx, rbx
call fcn.180100680
mov eax, dword [rbx + 0x1020]
mov dword [rbx + 0x14], eax
add eax, edi
mov dword [rbx + 0x1020], eax
mov byte [r15], 0x3d
mov ecx, dword [rbx]
sub ecx, 1
je 0x18004b0ee
sub ecx, 1
je 0x18004b0e5
cmp ecx, 1
jne 0x18004b0f5
mov word [rbx + 0x1025], 0xa0d
jmp 0x18004b0f5
mov byte [rbx + 0x1025], 0xa
jmp 0x18004b0f5
mov byte [rbx + 0x1025], 0xd
mov eax, dword [rbx + 0x1020]
xor edi, edi
mov edx, edi
test eax, eax
jle 0x18004b12b
mov rcx, r15
test ebp, ebp
je 0x18004b13b
test rsi, rsi
je 0x18004b117
movzx eax, byte [rcx]
mov byte [rsi], al
inc rsi
inc dword [r14]
dec ebp
mov eax, dword [rbx + 0x1020]
inc edx
inc rcx
cmp edx, eax
jl 0x18004b106
mov dword [rbx + 0x1020], edi
test ebp, ebp
jne 0x18004aea0
jmp 0x18004b168
sub eax, edx
mov rcx, r15
movsxd rdx, edx
add rdx, 0x1024
movsxd r8, eax
add rdx, rbx
mov dword [rbx + 0x1020], eax
call fcn.180100680
cmp byte [rbx + 0x10], dil
jmp 0x18004b370
mov byte [rbx + 0x11], 1
lea r15, [0x180000000]
cmp dword [rbx + 4], 2
jne 0x18004b36c
test ebp, ebp
je 0x18004b36c
cmp byte [rbx + 0x11], 0
jne 0x18004b36c
cmp byte [rbx + 0x10], 0
jne 0x18004b370
mov rcx, rbx
call fcn.18004ab10
test al, al
je 0x18004b290
mov eax, dword [rbx + 0x1c]
movzx ecx, byte [rax + rbx + 0x20]
inc eax
mov dword [rbx + 0x1c], eax
mov edi, ecx
mov eax, ecx
and edi, 3
shr rax, 2
mov rcx, rbx
shl rdi, 4
movzx eax, byte [rax + r15 + 0x123c80]
mov byte [rbx + 0x1024], al
call fcn.18004ab10
test al, al
je 0x18004b255
mov eax, dword [rbx + 0x1c]
movzx ecx, byte [rax + rbx + 0x20]
inc eax
mov dword [rbx + 0x1c], eax
mov edx, ecx
mov eax, ecx
and edx, 0xf
shr rax, 4
mov rcx, rbx
or rax, rdi
lea edi, [rdx*4]
movzx eax, byte [rax + r15 + 0x123c80]
mov byte [rbx + 0x1025], al
call fcn.18004ab10
test al, al
je 0x18004b246
mov eax, dword [rbx + 0x1c]
movzx ecx, byte [rax + rbx + 0x20]
inc eax
mov dword [rbx + 0x1c], eax
mov eax, ecx
and eax, 0x3f
movzx edx, byte [rax + r15 + 0x123c80]
mov eax, ecx
shr eax, 6
or eax, edi
movzx ecx, byte [rax + r15 + 0x123c80]
jmp 0x18004b269
mov eax, edi
mov dl, 0x3d
movzx ecx, byte [rax + r15 + 0x123c80]
jmp 0x18004b269
movzx eax, byte [rdi + r15 + 0x123c80]
mov dl, 0x3d
mov byte [rbx + 0x1025], al
movzx ecx, dl
mov r8d, 0x1026
mov r10d, 0x1027
mov r9, rbx
mov rax, rbx
mov byte [r8 + rbx], cl
mov byte [r10 + rbx], dl
mov edx, 4
add dword [rbx + 0x14], 4
xor edi, edi
jmp 0x18004b296
mov byte [rbx + 0x11], 1
mov edx, edi
mov dword [rbx + 0x1020], edx
cmp dword [rbx + 0x14], 0x4c
jge 0x18004b2a8
cmp byte [rbx + 0x11], 0
je 0x18004b302
mov ecx, dword [rbx]
sub ecx, 1
je 0x18004b2e9
sub ecx, 1
je 0x18004b2dd
cmp ecx, 1
jne 0x18004b2ff
mov eax, edx
mov byte [rax + rbx + 0x1024], 0xd
movsxd rcx, dword [rbx + 0x1020]
lea eax, [rcx + 1]
mov dword [rbx + 0x1020], eax
mov byte [rcx + rbx + 0x1025], 0xa
jmp 0x18004b2f3
mov eax, edx
mov byte [rax + rbx + 0x1024], 0xa
jmp 0x18004b2f3
mov eax, edx
mov byte [rax + rbx + 0x1024], 0xd
inc dword [rbx + 0x1020]
mov edx, dword [rbx + 0x1020]
mov dword [rbx + 0x14], edi
mov r9d, edi
test edx, edx
jle 0x18004b337
lea rcx, [rbx + 0x1024]
test ebp, ebp
je 0x18004b347
test rsi, rsi
je 0x18004b321
movzx eax, byte [rcx]
mov byte [rsi], al
inc rsi
inc dword [r14]
dec ebp
mov edx, dword [rbx + 0x1020]
inc r9d
inc rcx
cmp r9d, edx
jl 0x18004b310
mov dword [rbx + 0x1020], edi
test ebp, ebp
jne 0x18004b181
jmp 0x18004b36c
sub edx, r9d
lea rcx, [rbx + 0x1024]
mov dword [rbx + 0x1020], edx
movsxd r8, edx
movsxd rdx, r9d
add rdx, 0x1024
add rdx, rbx
call fcn.180100680
cmp byte [rbx + 0x10], 0
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
sete al
add rsp, 0x20
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret