Function at 0x140133620
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov r14, r8
mov r15, rdx
mov rdi, rcx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r8
mul rcx
mov rsi, rdx
shr rsi, 1
lea rax, [rsi + rsi*2]
shl rsi, 2
mov r12, r8
sub r12, rax
je 0x1401336c2
mov rax, r14
shr rax, 0x3e
cmp eax, 2
ja 0x1401336ce
add rsi, 4
jb 0x1401336ce
test rsi, rsi
je 0x1401336e8
js 0x140133d47
mov rcx, qword [0x1401e4bf8]
test rcx, rcx
jne 0x14013369d
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1401336b3
mov rcx, rax
mov qword [0x1401e4bf8], rax
mov edx, 8
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x1401336ed
mov edx, 1
mov rcx, rsi
call fcn.140144b00
ud2
mov rax, r14
shr rax, 0x3e
cmp eax, 3
jb 0x140133671
lea rcx, str.integer_overflow_when_calculating_buffer_size
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov edx, 0x2d
call fcn.14014e280
ud2
mov ebx, 1
xor eax, eax
mov r8, r14
mov ecx, 0
sub r8, 0x1a
cmovb r8, rax
jbe 0x1401339ea
mov edx, 0x20
xor eax, eax
lea r9, [0x14014fd6d]
nop word cs:[rax + rax]
mov rcx, rdx
lea rdx, [rax + 0x1a]
cmp rdx, r14
ja 0x140133c9d
test rcx, rcx
je 0x140133ca9
cmp rcx, rsi
ja 0x140133cc0
mov rdx, qword [r15 + rax]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x20], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1f], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1e], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1d], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1c], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1b], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x1a], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 0x19], dl
mov rdx, qword [r15 + rax + 6]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x18], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x17], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x16], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x15], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x14], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x13], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x12], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 0x11], dl
mov rdx, qword [r15 + rax + 0xc]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0x10], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xf], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xe], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xd], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xc], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xb], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 0xa], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 9], dl
mov rdx, qword [r15 + rax + 0x12]
bswap rdx
mov r10, rdx
shr r10, 0x3a
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 8], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 7], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 6], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 5], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 4], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 3], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
movzx r10d, byte [r10 + r9]
mov byte [rbx + rcx - 2], r10b
shr edx, 0x10
and edx, 0x3f
movzx edx, byte [rdx + r9]
mov byte [rbx + rcx - 1], dl
add rax, 0x18
lea rdx, [rcx + 0x20]
cmp rax, r8
jbe 0x140133720
mov r9, r14
sub r9, r12
cmp rax, r9
jae 0x140133b37
lea r8, [0x14014fd6d]
cmp rax, 0xfffffffffffffffc
ja 0x140133cc9
lea r10, [rax + 3]
cmp r10, r14
ja 0x140133cde
lea rdx, [rcx + 4]
cmp rcx, 0xfffffffffffffffb
ja 0x140133cf6
cmp rdx, rsi
ja 0x140133d04
movzx r11d, byte [r15 + rax]
mov r13, r11
shr r13, 2
movzx ebp, byte [r13 + r8]
mov byte [rbx + rcx], bpl
movzx ebp, byte [r15 + rax + 1]
shl r11b, 4
mov r13d, ebp
shr r13b, 4
or r13b, r11b
movzx r11d, r13b
and r11d, 0x3f
movzx r11d, byte [r11 + r8]
mov byte [rbx + rcx + 1], r11b
movzx eax, byte [r15 + rax + 2]
shl bpl, 2
mov r11d, eax
shr r11b, 6
or r11b, bpl
movzx r11d, r11b
and r11d, 0x3f
movzx r11d, byte [r11 + r8]
mov byte [rbx + rcx + 2], r11b
and eax, 0x3f
movzx eax, byte [rax + r8]
mov byte [rbx + rcx + 3], al
mov rcx, rdx
mov rax, r10
cmp r10, r9
jb 0x140133a00
cmp r12, 1
je 0x140133b44
cmp r12, 2
jne 0x140133b95
cmp rdx, rsi
jae 0x140133c51
movzx r10d, byte [r15 + r9]
mov rax, r10
shr rax, 2
lea r8, [0x14014fd6d]
movzx eax, byte [rax + r8]
mov byte [rbx + rdx], al
inc r9
cmp r9, r14
jae 0x140133c66
lea rcx, [rdx + 1]
cmp rcx, rsi
jae 0x140133c83
movzx eax, byte [r15 + r9]
mov ecx, eax
shr cl, 4
shl r10b, 4
or r10b, cl
movzx ecx, r10b
and ecx, 0x3f
movzx ecx, byte [rcx + r8]
mov byte [rbx + rdx + 1], cl
lea rcx, [rdx + 2]
cmp rcx, rsi
jae 0x140133c8c
shl al, 2
and al, 0x3c
mov r8d, 3
jmp 0x140133b80
mov rdx, rcx
cmp r12, 1
jne 0x140133ab5
cmp rdx, rsi
jae 0x140133c5a
movzx eax, byte [r15 + r9]
mov rcx, rax
shr rcx, 2
lea r8, [0x14014fd6d]
movzx ecx, byte [rcx + r8]
mov byte [rbx + rdx], cl
lea rcx, [rdx + 1]
cmp rcx, rsi
jae 0x140133c7a
shl al, 4
and al, 0x30
mov r8d, 2
movzx eax, al
lea r9, [0x14014fd6d]
movzx eax, byte [rax + r9]
mov byte [rbx + rcx], al
add rdx, r8
mov rcx, rsi
sub rcx, rdx
jb 0x140133d19
xor eax, eax
test r12, r12
je 0x140133be0
xor r12, 3
je 0x140133be0
cmp rsi, rdx
je 0x140133c40
mov byte [rbx + rdx], 0x3d
cmp r12, 1
je 0x140133bdd
cmp rcx, 1
je 0x140133c40
mov byte [rbx + rdx + 1], 0x3d
cmp r12, 2
je 0x140133bdd
cmp rcx, 2
je 0x140133c40
mov byte [rbx + rdx + 2], 0x3d
mov rax, r12
add rdx, rax
jb 0x140133d2d
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r8, rsi
call fcn.140009220
cmp qword [rsp + 0x30], 0
je 0x140133c24
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rsp + 0x40]
mov edx, dword [rsp + 0x41]
mov dword [rsp + 0x28], edx
mov edx, dword [rsp + 0x44]
mov dword [rsp + 0x2b], edx
cmp cl, 2
jne 0x140133d4e
mov qword [rdi], rsi
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], rsi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rdx, rcx
call fcn.140144e20
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x140133c61
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rdx
jmp 0x140133c93
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, r9
mov rdx, r14
call fcn.140144e20
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x140133c93
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x140133c93
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rdx, rsi
call fcn.140144e20
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rdx
jmp 0x140133cec
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, 0xffffffffffffffe0
xor edx, edx
call fcn.1401450d0
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
jmp 0x140133d0f
lea rdx, [rax + 3]
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rax
call fcn.1401450d0
ud2
add rax, 3
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rax
mov rdx, r14
call fcn.140144eb0
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
call fcn.1401450d0
ud2
add rcx, 4
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rdx, rsi
call fcn.140144eb0
ud2
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov rcx, rdx
mov rdx, rsi
call fcn.140144ea0
ud2
lea rcx, str.usize_overflow_when_calculating_b64_length
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov edx, 0x2a
call fcn.140145180
ud2
call fcn.1400048d0
ud2
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], cl
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
mov dword [rsp + 0x39], eax
mov dword [rsp + 0x3c], ecx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
lea rax, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_base64_0.12.3_srcencode.rsInvalid_UTF8
mov qword [rsp + 0x20], rax
lea rcx, [0x1401d20cf]
lea r9, [0x1401d1be8]
lea r8, [rsp + 0x30]
mov edx, 0xc
call fcn.1401450e0
ud2