Function at 0x48cbb0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
cmp byte [ecx + 0x413], 0
jne 0x48cd5c
mov edi, dword [ecx + 0x400]
mov esi, ecx
test edi, edi
je 0x48cd5c
mov ecx, dword [esi + 0x408]
test ecx, ecx
je 0x48cc2c
cmp ecx, 0x400
mov byte [esi + 0x413], 1
ja 0x48cdab
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov dword [ebp - 0x10], ecx
sub eax, ebx
cmp eax, ecx
jb 0x48cd64
mov eax, dword [edi + 4]
add eax, ebx
push ecx
push esi
push eax
call sym._memcpy
add esp, 0xc
add ebx, dword [ebp - 0x10]
mov dword [edi + 8], ebx
mov byte [esi + 0x413], 0
mov dword [esi + 0x408], 0
mov ebx, dword [esi + 0x404]
test ebx, ebx
je 0x48cd5c
cmp ebx, 4
jae 0x48cdba
mov ecx, dword [esi + 0x40c]
mov edx, 0xaaaaaaab
mov eax, ebx
mov dword [ebp - 0x14], ebx
mul edx
mov eax, ebx
mov edi, edx
shr edi, 1
movzx ebx, byte [ecx]
lea edx, [edi + edi*2]
shl edi, 2
sub eax, edx
lea edx, [esi + 0x410]
mov byte [ebp - 0x10], bl
je 0x48cc8c
mov ebx, dword [ebp - 0x14]
cmp byte [ebp - 0x10], 0
je 0x48ccd2
add edi, 4
push edi
push esi
push ebx
call sym.__ZN90__LT_base64..engine..general_purpose..GeneralPurpose_u20_as_u20_base64..engine..Engine_GT_15internal_encode17hc8d1d97bb6
add esp, 0xc
mov ecx, eax
jmp 0x48cca1
push edi
push esi
push dword [ebp - 0x14]
call sym.__ZN90__LT_base64..engine..general_purpose..GeneralPurpose_u20_as_u20_base64..engine..Engine_GT_15internal_encode17hc8d1d97bb6
add esp, 0xc
cmp byte [ebp - 0x10], 0
mov ecx, eax
je 0x48ccf2
mov eax, edi
sub eax, ecx
jb 0x48cdf3
mov edx, ecx
neg edx
and edx, 3
je 0x48ccf2
mov dword [ebp - 0x10], eax
mov ebx, edx
mov eax, ecx
nop dword [eax + eax]
cmp edi, eax
je 0x48cd9c
mov byte [esi + eax], 0x3d
inc eax
dec ebx
jne 0x48ccc0
jmp 0x48ccf4
mov dword [ebp - 0x10], edx
xor edx, edx
cmp eax, 1
sete dl
xor edx, 3
or edi, edx
mov edx, dword [ebp - 0x10]
push edi
push esi
push ebx
call sym.__ZN90__LT_base64..engine..general_purpose..GeneralPurpose_u20_as_u20_base64..engine..Engine_GT_15internal_encode17hc8d1d97bb6
add esp, 0xc
mov ecx, eax
xor edx, edx
add ecx, edx
jb 0x48cdcb
test edi, edi
mov dword [esi + 0x408], edi
je 0x48cd52
mov ecx, dword [esi + 0x400]
mov byte [esi + 0x413], 1
test ecx, ecx
je 0x48cddf
mov eax, dword [ecx]
mov ebx, dword [ecx + 8]
mov dword [ebp - 0x10], ecx
sub eax, ebx
cmp eax, edi
jb 0x48cd82
mov eax, dword [ecx + 4]
add eax, ebx
push edi
push esi
push eax
call sym._memcpy
add esp, 0xc
mov eax, dword [ebp - 0x10]
add ebx, edi
mov dword [eax + 8], ebx
mov byte [esi + 0x413], 0
mov dword [esi + 0x408], 0
mov dword [esi + 0x404], 0
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
mov edx, ebx
push 1
push 1
push dword [ebp - 0x10]
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov ebx, dword [edi + 8]
jmp 0x48cc05
mov ecx, dword [ebp - 0x10]
mov edx, ebx
push 1
push 1
push edi
call sym.alloc::raw_vec::RawVecInner_LT_A_GT_::reserve::do_reserve_and_handle::h35901dc27c78f3f2
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov ebx, dword [ecx + 8]
jmp 0x48cd29
mov ecx, dword [ebp - 0x10]
mov edx, ecx
push 0x57878c
call sym.core::panicking::panic_bounds_check::hf1cd1614d6353f3c
mov edx, 0x400
push 0x5a9c74
call sym.core::slice::index::slice_end_index_len_fail::h31017dc9c470f2c8
mov ecx, ebx
mov edx, 3
push 0x5a9c84
call sym.core::slice::index::slice_end_index_len_fail::h31017dc9c470f2c8
mov ecx, str.usize_overflow_when_calculating_b64_length_usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_base64_0.22.1_src_encode.rs
mov edx, 0x2a
push 0x5a9d18
call sym.core::option::expect_failed::hd8e256290d73f0e2
mov ecx, 0x5a9bec
mov edx, 0x16
push 0x5a9c64
call sym.core::option::expect_failed::hd8e256290d73f0e2
mov edx, edi
push 0x5a9d28
call sym.core::slice::index::slice_start_index_len_fail::hb6088e54b0b075d5
nop