Function at 0x43aa90
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov r11d, dword [r8 + 8]
mov r10, qword [r8 + 0x10]
mov dword [rsp + 0xc8], r9d
shr r9d, 0xc
mov rbx, rcx
and r9d, 1
mov rbp, rdx
mov qword [rcx + 8], 0
mov qword [rcx], 0
mov byte [rcx + 0x10], r9b
mov rax, r11
add r11, r10
mov byte [rcx + 0x11], 0
cmp eax, 1
je 0x43ae40
mov eax, dword [rsp + 0xc8]
mov r15, qword [rdx + 0x488]
and eax, 0xf00
cmp eax, 0x400
je 0x43ae20
test byte [rsi], bl
add eax, dword [rax]
invalid
cmp eax, 0x200
je 0x43ae61
cmp eax, 0x800
mov rdx, 0xfffffffffffffff7
mov qword [rsp + 0x28], 0xa
mov r12d, 0xa
je 0x43aec6
mov ecx, 0x40
mov rax, 0xffffffffffffffff
sub ecx, r15d
mov r8, rax
shr rax, cl
cmp r15, 0x3f
cmova rax, r8
add rax, rdx
xor edx, edx
div qword [rsp + 0x28]
add rax, 1
cmp r10, r11
jae 0x43ac3d
mov edx, 1
mov ecx, r15d
mov r13, qword [str.cccccccccccccccccccccccccccccccccccccccccccccccc]
mov rsi, rdx
xor r9d, r9d
mov byte [rsp + 0x37], 0
shl rsi, cl
mov qword [rsp + 0x38], r15
lea rsi, [rsi + r8]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x58], rsi
lea rsi, [r15 - 0x40]
mov ecx, esi
mov qword [rsp + 0x40], rsi
shl rdx, cl
xor ecx, ecx
lea rsi, [rdx + r8]
mov qword [rsp + 0x50], rsi
mov rsi, qword [0x004e1c40]
jmp 0x43abd5
cmp r12d, 0x10
je 0x43ad80
cmp edx, 0x27
jne 0x43ac13
cmp byte [rbp + 0x45e], 0
je 0x43ac13
add r10, 1
cmp r11, r10
je 0x43ac13
movzx r8d, byte [r10]
mov rdx, r8
movzx r8d, word [rsi + r8*2]
test r8b, 4
je 0x43abb4
movsxd rdx, edx
movzx r8d, byte [r13 + rdx]
mov rdx, qword [rbx + 8]
cmp rdx, rax
jae 0x43ac93
imul rdx, qword [rsp + 0x28]
add r10, 1
add rdx, r8
cmp r11, r10
mov qword [rbx + 8], rdx
jne 0x43abd5
test cl, cl
mov r15, qword [rsp + 0x38]
jne 0x43aefe
cmp byte [rsp + 0x37], 0
je 0x43ac38
test dword [rsp + 0xc8], 0x1000000
je 0x43aee5
movzx r9d, byte [rbx + 0x10]
test r9b, r9b
jne 0x43ac7f
cmp byte [rbp + 0x458], 0
jne 0x43ae52
cmp r15, 0x40
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
ja 0x43ae80
lea ecx, [r15 - 1]
shr rax, cl
not rax
and eax, 1
test al, al
jne 0x43ac7f
cmp r12d, 0xa
je 0x43aea4
mov byte [rbx + 0x10], 1
mov rax, rbx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp r12d, 2
movzx r15d, byte [rbx + 0x10]
je 0x43adf4
cmp r12d, 0x10
je 0x43ae10
mov rax, r9
lea r14, [r9*8]
mov rcx, rdx
shr rax, 0x3d
test rax, rax
lea rax, [rdx*8]
setne dil
shr rcx, 0x3d
or rcx, r14
cmp r12d, 0xa
jne 0x43ae8d
mov r14, rdx
add rdx, rdx
shr r14, 0x3f
lea r9, [r14 + r9*2]
xor r14d, r14d
add r8, rdx
setb r14b
cmp r14, 1
sbb r9, 0xffffffffffffffff
xor r14d, r14d
add r8, rax
setb r14b
mov rax, r8
cmp r14, 1
sbb r9, 0xffffffffffffffff
add r9, rcx
mov ecx, 1
cmovb edi, ecx
cmp qword [rsp + 0x38], 0x40
jbe 0x43ad40
cmp qword [rsp + 0x40], 0x3f
ja 0x43ad62
mov rdx, qword [rsp + 0x50]
and rdx, r9
cmp rdx, r9
je 0x43ad62
mov r9, rdx
jmp 0x43ad5d
je 0x43ae04
mov rdx, qword [rsp + 0x58]
and rdx, rax
cmp rdx, rax
je 0x43ae04
mov rax, rdx
xor r9d, r9d
mov edi, 1
mov qword [rbx + 8], rax
mov byte [rbx + 0x10], r15b
mov ecx, 1
mov byte [rbx + 0x11], dil
or byte [rsp + 0x37], dil
xor eax, eax
jmp 0x43abcc
test r8w, 0x100
je 0x43abbe
mov rdi, qword [rsp + 0x48]
movsxd rdx, edx
movzx r8d, byte [rdi + rdx]
mov rdx, qword [rbx + 8]
cmp rdx, rax
jb 0x43abfd
movzx r15d, byte [rbx + 0x10]
mov dword [rsp + 0x30], 0x3c
mov r14d, 4
nop dword [rax]
movzx ecx, byte [rsp + 0x30]
mov rax, r9
shr rax, cl
mov ecx, r14d
test rax, rax
mov rax, rdx
setne dil
shl r9, cl
shl rax, cl
movzx ecx, byte [rsp + 0x30]
shr rdx, cl
mov rcx, r9
xor r9d, r9d
or rcx, rdx
jmp 0x43acfe
mov dword [rsp + 0x30], 0x3f
mov r14d, 1
jmp 0x43adc0
xor edx, edx
jmp 0x43ad36
mov dword [rsp + 0x30], 0x3c
mov r14d, 4
jmp 0x43adc0
add r10, 1
mov rdx, 0xfffffffffffffff9
mov qword [rsp + 0x28], 8
mov r12d, 8
jmp 0x43ab2e
movzx eax, byte [r10]
sub eax, 0x30
cdqe
mov qword [rcx + 8], rax
jmp 0x43ac7f
cmp byte [rbp + 0x10], 0
jne 0x43ac7f
jmp 0x43ac4f
add r10, 2
mov rdx, 0xfffffffffffffff1
mov qword [rsp + 0x28], 0x10
mov r12d, 0x10
jmp 0x43ab2e
mov rdx, r15
call fcn.00439690
jmp 0x43ac6d
add rax, r8
mov r9d, 1
jb 0x43ad13
mov r9, rcx
jmp 0x43ad1e
xor edx, edx
cmp byte [rbp + 0x450], 0
lea r8, str.integer_constant_is_so_large_that_it_is_unsigned
mov rcx, rbp
setne dl
add edx, edx
call fcn.00438940
jmp 0x43ac7b
add r10, 2
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x28], 2
mov r12d, 2
jmp 0x43ab2e
lea r8, str.integer_constant_is_too_large_for_its_type
mov edx, 2
mov rcx, rbp
call fcn.00438940
jmp 0x43ac7f
mov qword [rbx], r9
jmp 0x43ac20