Function at 0x4221e0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rdi, qword [r8 + 0x10]
mov r8d, dword [r8 + 8]
mov r10d, r9d
mov rbx, rcx
mov r12, rdx
shr r10d, 0xc
mov qword [rcx + 8], 0
mov qword [rcx], 0
and r10d, 1
mov byte [rcx + 0x11], 0
cmp r8d, 1
mov byte [rcx + 0x10], r10b
je 0x422532
mov eax, r9d
mov rbp, qword [rdx + 0x4a0]
and eax, 0xf00
cmp eax, 0x400
je 0x4223b0
cmp eax, 0x200
je 0x4225c0
cmp eax, 0x800
je 0x4225f2
mov rsi, rdi
mov rdx, 0xfffffffffffffff7
mov r13d, 0xa
mov r14d, 0xa
cmp rbp, 0x3f
mov rax, 0xffffffffffffffff
ja 0x422287
mov ecx, 0x40
sub ecx, ebp
shr rax, cl
add rax, rdx
xor edx, edx
add rdi, r8
div r13
add rax, 1
cmp rsi, rdi
jae 0x42233b
mov rdx, 0xffffffffffffffff
mov ecx, ebp
xor r11d, r11d
mov r15, rdx
shl r15, cl
mov rcx, r15
xor r15d, r15d
not rcx
mov qword [rsp + 0x48], rcx
lea rcx, [rbp - 0x40]
shl rdx, cl
mov qword [rsp + 0x28], rcx
mov rcx, qword [str.cccccccccccccccccccccccccccccccccccccccccccccccc]
not rdx
mov qword [rsp + 0x40], rdx
xor edx, edx
mov qword [rsp + 0x30], rcx
movzx r8d, byte [rsi]
mov r10, qword [0x00481f70]
mov rcx, r8
movzx r8d, word [r10 + r8*2]
test r8b, 4
jne 0x4223d0
cmp r14d, 0x10
je 0x422410
cmp ecx, 0x27
jne 0x42231c
cmp byte [r12 + 0x466], 0
jne 0x4223f7
test dl, dl
jne 0x422649
test r15b, r15b
je 0x422336
and r9d, 0x1000000
je 0x422610
movzx r10d, byte [rbx + 0x10]
test r10b, r10b
jne 0x422399
cmp byte [r12 + 0x460], 0
jne 0x422543
cmp rbp, 0x40
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
ja 0x422554
lea ecx, [rbp - 1]
shr rax, cl
not rax
and eax, 1
test al, al
jne 0x422399
cmp r14d, 0xa
jne 0x422395
xor edx, edx
cmp byte [r12 + 0x458], 0
lea r8, str.integer_constant_is_so_large_that_it_is_unsigned
mov rcx, r12
setne dl
add edx, edx
call fcn.00420150
mov byte [rbx + 0x10], 1
mov rax, rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rsi, [rdi + 1]
mov rdx, 0xfffffffffffffff9
mov r13d, 8
mov r14d, 8
jmp 0x422270
mov r8, qword [rbx + 8]
mov r10, qword [str.cccccccccccccccccccccccccccccccccccccccccccccccc]
movsxd rcx, ecx
cmp r8, rax
movzx r10d, byte [r10 + rcx]
jae 0x4224c0
imul r8, r13
add r10, r8
mov qword [rbx + 8], r10
add rsi, 1
cmp rdi, rsi
jne 0x4222e1
jmp 0x42231c
test r8w, 0x100
je 0x422308
mov r8, qword [rbx + 8]
mov r10, qword [rsp + 0x30]
movsxd rcx, ecx
cmp r8, rax
movzx r10d, byte [r10 + rcx]
jb 0x4223ec
movzx eax, byte [rbx + 0x10]
mov dword [rsp + 0x38], 0x3c
mov edx, 4
mov byte [rsp + 0x3f], al
movzx ecx, byte [rsp + 0x38]
mov rax, r11
shr rax, cl
mov ecx, edx
test rax, rax
mov rax, r8
setne byte [rsp + 0x3e]
shl r11, cl
shl rax, cl
movzx ecx, byte [rsp + 0x38]
shr r8, cl
mov rcx, r11
xor r11d, r11d
or rcx, r8
add rax, r10
jae 0x42247f
add r11, 1
movzx edx, byte [rsp + 0x3e]
add r11, rcx
mov ecx, 1
cmovb edx, ecx
cmp rbp, 0x40
jbe 0x422573
cmp qword [rsp + 0x28], 0x3f
ja 0x422595
mov rcx, qword [rsp + 0x40]
and rcx, r11
cmp rcx, r11
je 0x422595
mov r11, rcx
jmp 0x422590
movzx eax, byte [rbx + 0x10]
cmp r14d, 2
mov byte [rsp + 0x3f], al
je 0x4225e0
cmp r14d, 0x10
je 0x422561
mov rax, r11
lea rcx, [r11*8]
mov rdx, r8
shr rax, 0x3d
test rax, rax
lea rax, [r8*8]
setne byte [rsp + 0x3e]
shr rdx, 0x3d
or rcx, rdx
cmp r14d, 0xa
jne 0x422637
mov rdx, r8
add r8, r8
shr rdx, 0x3f
add r8, r10
lea r11, [rdx + r11*2]
mov r10, r8
jae 0x422476
add r11, 1
jmp 0x422476
movzx eax, byte [rdi]
sub eax, 0x30
cdqe
mov qword [rcx + 8], rax
jmp 0x422399
cmp byte [r12 + 0x10], 0
je 0x42234f
jmp 0x422399
mov rdx, rbp
call fcn.00420d80
jmp 0x42236c
mov dword [rsp + 0x38], 0x3c
mov edx, 4
jmp 0x422447
je 0x422630
mov rcx, qword [rsp + 0x48]
and rcx, rax
cmp rcx, rax
je 0x422630
mov rax, rcx
xor r11d, r11d
mov edx, 1
mov qword [rbx + 8], rax
movzx eax, byte [rsp + 0x3f]
add rsi, 1
or r15d, edx
mov byte [rbx + 0x11], dl
mov edx, 1
mov byte [rbx + 0x10], al
xor eax, eax
cmp rdi, rsi
jne 0x4222e1
jmp 0x42231c
lea rsi, [rdi + 2]
mov rdx, 0xfffffffffffffff1
mov r13d, 0x10
mov r14d, 0x10
jmp 0x422270
mov dword [rsp + 0x38], 0x3f
mov edx, 1
jmp 0x422447
lea rsi, [rdi + 2]
mov rdx, 0xffffffffffffffff
mov r13d, 2
mov r14d, 2
jmp 0x422270
lea r8, str.integer_constant_is_too_large_for_its_type
mov edx, 2
mov rcx, r12
call fcn.00420150
jmp 0x422399
xor ecx, ecx
jmp 0x4224ad
add rax, r10
jb 0x422651
movzx edx, byte [rsp + 0x3e]
mov r11, rcx
jmp 0x42248f
mov qword [rbx], r11
jmp 0x422324
xor r11d, r11d
jmp 0x42247b