Function at 0x43dd20
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 rbp, qword [r8 + 0x18]
mov r8d, dword [r8 + 0x10]
mov r11d, r9d
mov rbx, rcx
mov rdi, rdx
mov qword [rcx], 0
shr r11d, 0xc
mov qword [rcx + 8], 0
and r11d, 1
cmp r8d, 1
mov byte [rcx + 0x11], 0
mov byte [rcx + 0x10], r11b
je 0x43e020
mov eax, r9d
mov rsi, qword [rdx + 0x4c8]
and eax, 0xf00
cmp eax, 0x400
je 0x43ddb1
cmp eax, 0x200
je 0x43e120
cmp eax, 0x800
je 0x43e0c0
mov r10, rbp
mov rdx, 0xfffffffffffffff7
mov qword [rsp + 0x20], 0xa
mov r14d, 0xa
jmp 0x43ddcb
lea r10, [rbp + 1]
mov rdx, 0xfffffffffffffff9
mov qword [rsp + 0x20], 8
mov r14d, 8
cmp rsi, 0x3f
mov rax, 0xffffffffffffffff
ja 0x43dde2
mov ecx, 0x40
sub ecx, esi
shr rax, cl
lea r15, [rbp + r8]
add rax, rdx
xor edx, edx
div qword [rsp + 0x20]
add rax, 1
cmp r10, r15
jae 0x43de97
mov rdx, 0xffffffffffffffff
mov ecx, esi
xor ebp, ebp
mov r11, rdx
shl r11, cl
mov rcx, r11
xor r11d, r11d
not rcx
mov qword [rsp + 0x28], rcx
lea rcx, [rsi - 0x40]
shl rdx, cl
mov qword [rsp + 0x30], rcx
xor ecx, ecx
not rdx
mov qword [rsp + 0x48], rdx
mov rdx, qword [str.cccccccccccccccccccccccccccccccccccccccccccccccc]
mov qword [rsp + 0x38], rdx
movzx edx, byte [r10]
mov r13, qword [0x005cfd20]
mov r8, rdx
movzx edx, word [r13 + rdx*2]
test dl, 4
jne 0x43dfe0
cmp r14d, 0x10
je 0x43df05
cmp r8d, 0x27
jne 0x43de79
cmp byte [rdi + 0x49e], 0
jne 0x43dfc9
test cl, cl
je 0x43de80
mov qword [rbx], r11
test bpl, bpl
je 0x43de92
and r9d, 0x1000000
je 0x43e170
movzx r11d, byte [rbx + 0x10]
test r11b, r11b
jne 0x43def1
cmp byte [rdi + 0x498], 0
jne 0x43e0b0
cmp rsi, 0x40
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
ja 0x43e0e0
lea ecx, [rsi - 1]
shr rax, cl
not rax
and eax, 1
test al, al
jne 0x43def1
cmp r14d, 0xa
jne 0x43deed
lea r8, str.integer_constant_is_so_large_that_it_is_unsigned
xor edx, edx
cmp byte [rdi + 0x490], 0
mov rcx, rdi
setne dl
add edx, edx
call fcn.0043bba0
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
and dh, 1
je 0x43de66
mov rdx, qword [rbx + 8]
movsxd r8, r8d
mov r13, qword [rsp + 0x38]
cmp rdx, rax
movzx r8d, byte [r13 + r8]
jb 0x43dff8
movzx eax, byte [rbx + 0x10]
mov dword [rsp + 0x40], 0x3c
mov r13d, 4
mov byte [rsp + 0x47], al
nop
movzx ecx, byte [rsp + 0x40]
mov rax, r11
mov r12, rdx
shr rax, cl
mov ecx, r13d
test rax, rax
setne al
shl r11, cl
shl r12, cl
movzx ecx, byte [rsp + 0x40]
shr rdx, cl
mov rcx, r11
or rcx, rdx
add r12, r8
mov r11, rcx
jae 0x43df84
mov r11d, 1
add r11, rcx
mov ecx, 1
cmovb eax, ecx
cmp rsi, 0x40
jbe 0x43e0f0
cmp qword [rsp + 0x30], 0x3f
mov rdx, r12
ja 0x43dfb1
mov rcx, qword [rsp + 0x48]
and rcx, r11
cmp rcx, r11
mov rdx, r12
je 0x43dfb1
mov r11, rcx
mov eax, 1
movzx ecx, byte [rsp + 0x47]
mov byte [rbx + 0x11], al
or ebp, eax
xor eax, eax
mov qword [rbx + 8], rdx
mov byte [rbx + 0x10], cl
mov ecx, 1
add r10, 1
cmp r15, r10
jne 0x43de3f
jmp 0x43de79
mov rdx, qword [rbx + 8]
movsxd r8, r8d
mov r12, qword [str.cccccccccccccccccccccccccccccccccccccccccccccccc]
cmp rdx, rax
movzx r8d, byte [r12 + r8]
jae 0x43e032
imul rdx, qword [rsp + 0x20]
add r10, 1
add r8, rdx
cmp r15, r10
mov qword [rbx + 8], r8
jne 0x43de3f
jmp 0x43de79
movzx eax, byte [rbp]
sub eax, 0x30
cdqe
mov qword [rcx + 8], rax
jmp 0x43def1
movzx eax, byte [rbx + 0x10]
cmp r14d, 2
mov byte [rsp + 0x47], al
je 0x43e140
cmp r14d, 0x10
je 0x43e153
lea r13, [r11*8]
mov rax, r11
mov rcx, rdx
lea r12, [rdx*8]
shr rax, 0x3d
test rax, rax
setne al
shr rcx, 0x3d
or rcx, r13
cmp r14d, 0xa
jne 0x43df6b
mov r13, rdx
add rdx, rdx
shr r13, 0x3f
add rdx, r8
lea r11, [r13 + r11*2]
adc r11, 0
add r12, rdx
setb dl
movzx edx, dl
cmp rdx, 1
sbb r11, 0xffffffffffffffff
jmp 0x43df79
cmp byte [rdi + 0x10], 0
jne 0x43def1
jmp 0x43dea9
lea r10, [rbp + 2]
mov rdx, 0xffffffffffffffff
mov qword [rsp + 0x20], 2
mov r14d, 2
jmp 0x43ddcb
mov rdx, rsi
call fcn.0043c940
jmp 0x43dec6
je 0x43e110
mov rdx, qword [rsp + 0x28]
and rdx, r12
cmp rdx, r12
je 0x43e110
xor r11d, r11d
jmp 0x43dfac
xor ecx, ecx
jmp 0x43dfa1
lea r10, [rbp + 2]
mov rdx, 0xfffffffffffffff1
mov qword [rsp + 0x20], 0x10
mov r14d, 0x10
jmp 0x43ddcb
mov dword [rsp + 0x40], 0x3f
mov r13d, 1
jmp 0x43df40
mov dword [rsp + 0x40], 0x3c
mov r13d, 4
jmp 0x43df40
lea r8, str.integer_constant_is_too_large_for_its_type
mov edx, 2
mov rcx, rdi
call fcn.0043bba0
jmp 0x43def1