Function at 0x41728b
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea rsi, [0x004338e0]
test dl, dl
mov rbx, rcx
cmovne rsi, rax
xor eax, eax
test rcx, rcx
je 0x4172bc
mov rax, qword [rcx]
cvtsi2sd xmm1, rax
lea rdi, [rax*4]
mulsd xmm1, qword [0x00433920]
cvtsi2sd xmm0, rdi
ucomisd xmm1, xmm0
jp 0x4172e2
comisd xmm1, xmm0
je 0x41730a
subsd xmm0, xmm1
movq xmm2, qword [0x00433930]
movups xmm3, xmm1
andps xmm3, xmm2
andps xmm0, xmm2
mulsd xmm0, qword [0x00433940]
comisd xmm3, xmm0
jae 0x41730a
call sym.raiseOverflow
mov rax, rdi
mov ecx, 3
lea r8, [rsp + 0x30]
cqo
idiv rcx
mov edx, 6
mov rcx, rax
call sym.nimAddInt_12
test al, al
je 0x417332
call sym.raiseOverflow
mov rcx, qword [rsp + 0x30]
test rcx, rcx
jns 0x41734d
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
mov rdx, qword [rsp + 0x30]
xor ecx, ecx
call sym.setLengthStr
mov r12, rax
test rbx, rbx
je 0x417374
mov rcx, qword [rbx]
mov r8d, 3
mov rax, rcx
cqo
idiv r8
jmp 0x417378
xor edx, edx
xor ecx, ecx
mov rax, rcx
sub rax, rdx
xor rcx, rax
mov qword [rsp + 0x20], rax
jns 0x417392
xor rdx, rax
js 0x417392
call sym.raiseOverflow
xor r13d, r13d
lea rbp, [rsp + 0x38]
lea r15, [rsp + 0x40]
xor r14d, r14d
cmp r14, qword [rsp + 0x20]
jne 0x4173b7
test rbx, rbx
jne 0x417591
jmp 0x417818
test rbx, rbx
je 0x4173c9
mov rdx, qword [rbx]
cmp r14, rdx
jb 0x4173d5
dec rdx
jmp 0x4173cd
or rdx, 0xffffffffffffffff
mov rcx, r14
call sym.raiseIndexError2
movzx edi, byte [rbx + r14 + 0x10]
mov r8, rbp
mov edx, 1
mov rcx, r14
shl edi, 0x10
mov dword [rsp + 0x2c], edi
call sym.nimAddInt_12
test al, al
je 0x4173fb
call sym.raiseOverflow
mov r14, qword [rsp + 0x38]
mov rdx, qword [rbx]
cmp r14, rdx
jb 0x417413
dec rdx
mov rcx, r14
call sym.raiseIndexError2
movzx edi, byte [rbx + r14 + 0x10]
mov r8, r15
mov edx, 1
mov rcx, r14
shl edi, 8
call sym.nimAddInt_12
test al, al
je 0x417435
call sym.raiseOverflow
mov r14, qword [rsp + 0x40]
mov rdx, qword [rbx]
cmp r14, rdx
jb 0x41744d
dec rdx
mov rcx, r14
call sym.raiseIndexError2
movzx eax, byte [rbx + r14 + 0x10]
lea r8, [rsp + 0x48]
mov edx, 1
mov rcx, r14
or edi, eax
or edi, dword [rsp + 0x2c]
call sym.nimAddInt_12
test al, al
je 0x417474
call sym.raiseOverflow
mov r14, qword [rsp + 0x48]
test r12, r12
je 0x41748c
mov rdx, qword [r12]
cmp r13, rdx
jb 0x417498
dec rdx
jmp 0x417490
or rdx, 0xffffffffffffffff
mov rcx, r13
call sym.raiseIndexError2
mov eax, edi
lea r8, [rsp + 0x50]
mov edx, 1
mov rcx, r13
shr eax, 0x12
mov al, byte [rsi + rax]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x4174c0
call sym.raiseOverflow
mov r13, qword [rsp + 0x50]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x4174d9
dec rdx
mov rcx, r13
call sym.raiseIndexError2
mov eax, edi
lea r8, [rsp + 0x58]
mov edx, 1
mov rcx, r13
shr eax, 0xc
and eax, 0x3f
mov al, byte [rsi + rax]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x417504
call sym.raiseOverflow
mov r13, qword [rsp + 0x58]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x41751d
dec rdx
mov rcx, r13
call sym.raiseIndexError2
mov eax, edi
lea r8, [rsp + 0x60]
mov edx, 1
mov rcx, r13
shr eax, 6
and eax, 0x3f
mov al, byte [rsi + rax]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x417548
call sym.raiseOverflow
mov r13, qword [rsp + 0x60]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x417561
dec rdx
mov rcx, r13
call sym.raiseIndexError2
and edi, 0x3f
lea r8, [rsp + 0x68]
mov edx, 1
mov rcx, r13
mov al, byte [rsi + rdi]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x417587
call sym.raiseOverflow
mov r13, qword [rsp + 0x68]
jmp 0x4173a2
mov rcx, qword [rbx]
mov r8d, 3
mov rax, rcx
cqo
idiv r8
cmp rdx, 1
je 0x4175b7
cmp rdx, 2
je 0x417699
jmp 0x417818
cmp r14, rcx
jb 0x4175c8
lea rdx, [rcx - 1]
mov rcx, r14
call sym.raiseIndexError2
movzx ebx, byte [rbx + r14 + 0x10]
lea r8, [rsp + 0x48]
mov edx, 1
mov rcx, r14
shl ebx, 0x10
call sym.nimAddInt_12
test al, al
je 0x4175ec
call sym.raiseOverflow
test r12, r12
je 0x4175ff
mov rdx, qword [r12]
cmp r13, rdx
jb 0x41760b
dec rdx
jmp 0x417603
or rdx, 0xffffffffffffffff
mov rcx, r13
call sym.raiseIndexError2
mov eax, ebx
lea r8, [rsp + 0x50]
mov edx, 1
mov rcx, r13
shr eax, 0x12
mov al, byte [rsi + rax]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x417633
call sym.raiseOverflow
mov r13, qword [rsp + 0x50]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x41764c
dec rdx
mov rcx, r13
call sym.raiseIndexError2
shr ebx, 0xc
lea r8, [rsp + 0x58]
mov edx, 1
mov rcx, r13
and ebx, 0x30
mov al, byte [rsi + rbx]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x417675
call sym.raiseOverflow
mov r13, qword [rsp + 0x58]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x41768e
dec rdx
mov rcx, r13
call sym.raiseIndexError2
mov byte [r12 + r13 + 0x10], 0x3d
jmp 0x4177be
cmp r14, rcx
jb 0x4176aa
lea rdx, [rcx - 1]
mov rcx, r14
call sym.raiseIndexError2
movzx edi, byte [rbx + r14 + 0x10]
lea r8, [rsp + 0x40]
mov edx, 1
mov rcx, r14
shl edi, 0x10
call sym.nimAddInt_12
test al, al
je 0x4176ce
call sym.raiseOverflow
mov r14, qword [rsp + 0x40]
mov rdx, qword [rbx]
cmp r14, rdx
jb 0x4176e6
dec rdx
mov rcx, r14
call sym.raiseIndexError2
movzx ebx, byte [rbx + r14 + 0x10]
lea r8, [rsp + 0x48]
mov edx, 1
mov rcx, r14
shl ebx, 8
or ebx, edi
call sym.nimAddInt_12
test al, al
je 0x41770c
call sym.raiseOverflow
test r12, r12
je 0x41771f
mov rdx, qword [r12]
cmp r13, rdx
jb 0x41772b
dec rdx
jmp 0x417723
or rdx, 0xffffffffffffffff
mov rcx, r13
call sym.raiseIndexError2
mov eax, ebx
lea r8, [rsp + 0x50]
mov edx, 1
mov rcx, r13
shr eax, 0x12
mov al, byte [rsi + rax]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x417753
call sym.raiseOverflow
mov r13, qword [rsp + 0x50]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x41776c
dec rdx
mov rcx, r13
call sym.raiseIndexError2
mov eax, ebx
lea r8, [rsp + 0x58]
mov edx, 1
mov rcx, r13
shr eax, 0xc
and eax, 0x3f
mov al, byte [rsi + rax]
mov byte [r12 + r13 + 0x10], al
call sym.nimAddInt_12
test al, al
je 0x417797
call sym.raiseOverflow
mov r13, qword [rsp + 0x58]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x4177b0
dec rdx
mov rcx, r13
call sym.raiseIndexError2
shr ebx, 6
and ebx, 0x3c
mov al, byte [rsi + rbx]
mov byte [r12 + r13 + 0x10], al
lea r8, [rsp + 0x60]
mov edx, 1
mov rcx, r13
call sym.nimAddInt_12
test al, al
je 0x4177d9
call sym.raiseOverflow
mov r13, qword [rsp + 0x60]
mov rdx, qword [r12]
cmp r13, rdx
jb 0x4177f2
dec rdx
mov rcx, r13
call sym.raiseIndexError2
mov byte [r12 + r13 + 0x10], 0x3d
lea r8, [rsp + 0x68]
mov edx, 1
mov rcx, r13
call sym.nimAddInt_12
test al, al
je 0x417813
call sym.raiseOverflow
mov r13, qword [rsp + 0x68]
test r13, r13
jns 0x417831
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r13
call sym.raiseRangeErrorI
mov rdx, r13
mov rcx, r12
call sym.setLengthStr
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret