Function at 0x4c3340
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x48]
cmp r12, qword [r14 + 0x10]
jbe 0x4c3915
push rbp
mov rbp, rsp
sub rsp, 0xc0
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdi
mov rdx, qword [r9]
nop dword [rax]
test rdx, rdx
je 0x4c33c2
mov r8, qword [r9 + 8]
cmp r8, 2
jge 0x4c33a0
mov r8, qword [0x006ad270]
mov r10, qword [0x006ad278]
jmp 0x4c33d0
cmp r8, 0x7fffffff
jle 0x4c33b9
mov r8, qword [0x006ad280]
mov r10, qword [0x006ad288]
jmp 0x4c33d0
xor r8d, r8d
xor r10d, r10d
nop
jmp 0x4c33d0
mov r8, qword [0x006ad260]
mov r10, qword [0x006ad268]
test r8, r8
jne 0x4c3752
mov r8, qword [rdx + 0x10]
lea r10, [r8 - 1]
nop
test r10, r10
jl 0x4c3448
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx + r8*8 - 8]
mov r8, rdx
shr rdx, 1
or rdx, r8
mov r8, rdx
shr rdx, 2
or rdx, r8
mov r8, rdx
shr rdx, 4
or rdx, r8
mov r8, rdx
shr rdx, 8
or rdx, r8
mov r8, rdx
shr rdx, 0x10
or rdx, r8
mov r8, rdx
shr rdx, 0x20
or rdx, r8
shl r10, 6
bsr rdx, rdx
mov r8, 0xffffffffffffffff
cmove rdx, r8
lea rdx, [rdx + r10]
lea rdx, [rdx + 1]
jmp 0x4c344a
xor edx, edx
lea r8, [rdx + 7]
sar r8, 0x3f
shr r8, 0x3d
lea rdx, [r8 + rdx]
lea rdx, [rdx + 7]
sar rdx, 3
mov r8, qword [rsp + 0xd8]
cmp r8, rdx
jg 0x4c34b7
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x118], rdi
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x130], r9
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov rcx, qword [rax + 0x28]
mov rax, rbx
call rcx
lea rcx, [rax + rax]
lea rcx, [rcx + 2]
mov rdx, qword [rsp + 0x50]
cmp rcx, rdx
jle 0x4c34d5
mov rdi, qword [0x006ad290]
mov rsi, qword [0x006ad298]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0xc0
pop rbp
ret
mov rax, qword [rsp + 0x130]
mov rbx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xe0]
xor esi, esi
call fcn.004c2880
nop dword [rax]
test rdi, rdi
jne 0x4c3742
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x58], rbx
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x38]
mov rax, qword [rsp + 0x108]
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xf8]
call rsi
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x30]
mov rax, qword [rsp + 0x108]
xor ebx, ebx
xor ecx, ecx
mov rdi, rcx
call rsi
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xa8], rax
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rdx + 0x20]
mov rax, qword [rsp + 0x108]
call rsi
mov rdx, qword [rsp + 0x58]
test rdx, rdx
jbe 0x4c390a
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rcx + 0x28]
mov rbx, qword [rsp + 0xa0]
movzx esi, byte [rbx]
mov dword [rsp + 0x44], esi
mov rax, qword [rsp + 0x108]
call rdx
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0x60]
cmp rdx, rcx
jb 0x4c3905
cmp rcx, 1
jb 0x4c38f8
mov qword [rsp + 0x70], rax
lea rcx, [rdx - 1]
mov qword [rsp + 0x78], rcx
neg rcx
sar rcx, 0x3f
and ecx, 1
mov qword [rsp + 0x98], rcx
mov rsi, qword [rsp + 0x100]
mov rdi, qword [rsi + 0x28]
mov rax, qword [rsp + 0x108]
call rdi
lea rcx, [rax + 1]
mov rdx, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x98]
add rbx, rdx
mov r9, qword [rsp + 0x58]
cmp r9, rcx
jb 0x4c38ed
mov qword [rsp + 0xb0], rbx
sub r9, rax
mov qword [rsp + 0x98], r9
mov r10, qword [rsp + 0x60]
sub r10, rax
mov qword [rsp + 0x90], r10
lea r11, [r10 - 1]
mov qword [rsp + 0x88], r11
lea r12, [r9 - 1]
mov qword [rsp + 0x80], r12
mov r13, r11
neg r11
sar r11, 0x3f
and r11, rcx
lea r8, [r11 + rdx]
mov qword [rsp + 0xb8], r8
mov rax, rbx
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
mov r9, r12
mov r10, r13
call fcn.004c1fc0
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x118]
mov r8, qword [rsp + 0xb0]
mov r9, qword [rsp + 0x70]
mov r10, qword [rsp + 0x78]
call fcn.004c1fc0
mov rdx, qword [rsp + 0x100]
mov r11, qword [rdx + 0x28]
mov rax, qword [rsp + 0x108]
call r11
mov rdx, qword [rsp + 0x88]
cmp rax, rdx
ja 0x4c38e5
mov rcx, qword [rsp + 0x68]
nop dword [rax + rax]
cmp rcx, rax
jne 0x4c373e
mov rdx, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
xor eax, eax
xor esi, esi
jmp 0x4c38cd
xor eax, eax
jmp 0x4c3768
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0xc0
pop rbp
ret
xor eax, eax
xor ebx, ebx
mov rcx, rbx
mov rdi, r8
mov rsi, r10
add rsp, 0xc0
pop rbp
ret
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x100]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x108]
call rcx
mov rcx, qword [rsp + 0x80]
cmp rax, rcx
ja 0x4c38b7
mov rcx, qword [rsp + 0x90]
sub rcx, rax
mov rbx, qword [rsp + 0x98]
sub rbx, rax
lea rdx, [rcx - 1]
neg rdx
sar rdx, 0x3f
and rdx, rax
mov r8, qword [rsp + 0xb8]
add rdx, r8
lea r8, [rbx - 1]
xor eax, eax
mov esi, 1
xor edi, edi
xor r9d, r9d
jmp 0x4c382d
movzx r10d, byte [rax + rdx]
lea r11d, [r10 - 1]
shr r11d, 0x1f
not r11
xor r10d, 1
movzx r10d, r10b
dec r10d
shr r10d, 0x1f
mov r12d, r10d
and r10, rsi
mov r13, r10
neg r10
and r10, rax
dec r13
and r9, r13
dec r12
and rsi, r12
and r11, rsi
mov r12, r11
neg r11
and r11d, 1
dec r12
and rdi, r12
inc rax
nop
nop
or r9, r10
or rdi, r11
cmp rax, r8
jl 0x4c37d5
not rdi
not rsi
mov r10d, dword [rsp + 0x44]
dec r10d
shr r10d, 0x1f
mov r11, qword [rsp + 0x48]
and r11, r10
and r11, rdi
and rsi, r11
cmp rsi, 1
jne 0x4c3891
lea rax, [r9 + 1]
nop dword [rax]
cmp rax, r8
ja 0x4c38af
sub rbx, r9
sub rcx, r9
add rcx, 0xfffffffffffffffe
add rbx, 0xfffffffffffffffe
mov r8, rcx
neg r8
sar r8, 0x3f
and r8, rax
lea rax, [r8 + rdx]
xor edi, edi
xor esi, esi
add rsp, 0xc0
pop rbp
ret
mov rdi, qword [0x006ad290]
mov rsi, qword [0x006ad298]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0xc0
pop rbp
ret
mov rcx, r8
call fcn.00459540
call fcn.00459540
movzx edi, byte [rax + rbx]
movzx r8d, byte [rax + rdx]
xor edi, r8d
inc rax
or esi, edi
cmp rcx, rax
jg 0x4c38bc
movzx eax, sil
dec eax
nop
shr eax, 0x1f
nop dword [rax]
jmp 0x4c3768
mov rcx, rax
call fcn.00459500
mov rax, rcx
mov rcx, r9
call fcn.00459540
mov eax, 1
xor ecx, ecx
nop
call fcn.00459540
call fcn.00459500
xor eax, eax
mov rcx, rax
call fcn.00459480
nop
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
call fcn.00457200
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
jmp fcn.004c3340