Function at 0x62e4da50
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
test eax, eax
je 0x62e4e008
mov eax, dword [esp + 0x74]
test eax, eax
js 0x62e4dfe8
mov ebp, dword [esp + 0x78]
test ebp, ebp
je 0x62e4e0b0
mov eax, dword [esp + 0x78]
mov ebp, dword [eax]
cmp ebp, dword [esp + 0x74]
jae 0x62e4dfc8
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x62e4db00
mov esi, dword [esp + 0x80]
test esi, esi
js 0x62e4e0d0
mov eax, dword [esp + 0x84]
and eax, 0xff
je 0x62e4db20
cmp eax, 0x40
je 0x62e4df78
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], str._s:_unsupported_base32_variant.
mov dword [esp + 8], 8
lea esi, [esi]
mov eax, dword [esp + 0x88]
mov dword [esp + 4], 0x61
mov dword [esp], eax
call dbg.libcerror_error_set
mov eax, 0xffffffff
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], 0x62ec04b3
mov dword [esp + 8], 1
jmp 0x62e4dad8
mov edx, 0xcccccccd
mov eax, edx
mul dword [esp + 0x80]
mov eax, edx
and edx, 0xfffffffc
shr eax, 2
add edx, eax
cmp dword [esp + 0x80], edx
je 0x62e4e110
mov byte [esp + 0x4a], 0
lea eax, [eax*8 + 8]
cmp eax, dword [esp + 0x74]
ja 0x62e4e120
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x34], 0
xor edi, edi
mov esi, dword [esp + 0x80]
test ebx, ebx
je 0x62e4df1f
lea esi, [esi]
nop
mov eax, dword [esp + 0x7c]
movzx eax, byte [eax + edi]
mov edx, eax
xor eax, eax
mov dword [esp + 0x28], eax
lea eax, [edi + 1]
mov dword [esp + 0x2c], edx
cmp esi, eax
jbe 0x62e4dcf0
mov eax, dword [esp + 0x7c]
xor edx, edx
mov dword [esp + 0x3c], edx
movzx eax, byte [eax + edi + 1]
shld edx, eax, 0x18
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
or eax, edx
mov edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
shl eax, 0x18
mov dword [esp + 0x28], eax
lea eax, [edi + 2]
cmp esi, eax
jbe 0x62e4e15d
mov eax, dword [esp + 0x7c]
xor edx, edx
movzx eax, byte [eax + edi + 2]
shld edx, eax, 0x10
shl eax, 0x10
mov ecx, eax
mov eax, dword [esp + 0x28]
mov ebx, edx
mov edx, dword [esp + 0x2c]
or eax, ecx
or edx, ebx
mov dword [esp + 0x28], eax
lea eax, [edi + 3]
mov dword [esp + 0x2c], edx
cmp esi, eax
jbe 0x62e4e151
mov eax, dword [esp + 0x7c]
xor edx, edx
movzx eax, byte [eax + edi + 3]
shld edx, eax, 8
shl eax, 8
mov ecx, eax
mov eax, dword [esp + 0x28]
mov ebx, edx
mov edx, dword [esp + 0x2c]
or eax, ecx
or edx, ebx
mov dword [esp + 0x28], eax
lea eax, [edi + 4]
mov dword [esp + 0x2c], edx
cmp esi, eax
jbe 0x62e4e145
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x38], 0
movzx eax, byte [eax + edi + 4]
or eax, dword [esp + 0x28]
add edi, 5
mov dword [esp + 0x28], eax
cmp dword [esp + 0x74], ebp
jbe 0x62e4dd01
mov eax, dword [esp + 0x84]
and eax, 0xf0000
cmp eax, 0x10000
je 0x62e4df30
cmp eax, 0x20000
je 0x62e4dd38
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], str.libuna_base32_quintuplet_copy_to_base32_stream
mov dword [esp + 0xc], str._s:_unsupported_base32_variant.
mov dword [esp + 8], 8
mov dword [esp + 4], 0x61
mov dword [esp], eax
call dbg.libcerror_error_set
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], str._s:_unable_to_copy_base32_quintuplet_to_base32_stream.
mov dword [esp], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0x63
call dbg.libcerror_error_set
mov eax, 0xffffffff
jmp 0x62e4daf4
mov byte [esp + 0x38], 6
mov edi, eax
cmp dword [esp + 0x74], ebp
ja 0x62e4dc65
mov dword [esp + 0x10], str.libuna_base32_quintuplet_copy_to_base32_stream
mov dword [esp + 0xc], str._s:_base32_stream_string_too_small.
mov eax, dword [esp + 0x88]
mov dword [esp + 8], 5
mov dword [esp + 4], 0x61
mov dword [esp], eax
call dbg.libcerror_error_set
jmp 0x62e4dcb6
mov dword [esp + 0x40], str.0123456789ABCDEFGHIJKLMNOPQRSTUV
mov eax, dword [esp + 0x84]
and eax, 0xf000000
cmp eax, 0x2000000
je 0x62e4dd69
cmp eax, 0x3000000
je 0x62e4df68
cmp eax, 0x1000000
jne 0x62e4dc87
mov byte [esp + 0x4b], 0
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
lea edx, [ebp + 1]
mov eax, ecx
shrd eax, ebx, 0x1e
shr ebx, 3
and eax, 0x1f
mov ecx, ebx
cmp dword [esp + 0x74], edx
jbe 0x62e4df50
mov ebx, dword [esp + 0x40]
movzx eax, al
movzx edx, byte [ebx + ecx]
movzx eax, byte [ebx + eax]
mov ecx, dword [esp + 0x70]
mov byte [ecx + ebp + 1], al
lea eax, [ebp + 2]
mov byte [ecx + ebp], dl
lea ecx, [ebp + 3]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x74], ecx
jbe 0x62e4df50
cmp byte [esp + 0x38], 6
je 0x62e4e028
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
shrd eax, edx, 0x19
mov edx, dword [esp + 0x2c]
and eax, 0x1f
movzx eax, byte [ebx + eax]
mov ebx, dword [esp + 0x70]
mov byte [ebx + ebp + 2], al
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
shrd eax, edx, 0x14
and eax, 0x1f
movzx eax, byte [ebx + eax]
mov ebx, dword [esp + 0x70]
mov byte [ebx + ebp + 3], al
lea eax, [ebp + 4]
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0x74], ebx
jbe 0x62e4df50
cmp byte [esp + 0x38], 3
lea ebp, [ebx + 1]
ja 0x62e4e0f0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
shrd eax, edx, 0xf
and eax, 0x1f
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x70]
mov byte [ecx + ebx], al
lea eax, [ebx + 2]
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x74], eax
jbe 0x62e4df50
cmp byte [esp + 0x38], 3
je 0x62e4df3d
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x70]
shrd eax, edx, 0xa
mov edx, dword [esp + 0x2c]
and eax, 0x1f
movzx eax, byte [ebx + eax]
mov byte [ecx + ebp], al
mov eax, dword [esp + 0x28]
shrd eax, edx, 5
and eax, 0x1f
movzx eax, byte [ebx + eax]
mov ebx, ecx
mov ecx, dword [esp + 0x4c]
mov byte [ebx + ecx], al
mov eax, dword [esp + 0x44]
lea ebp, [eax + 3]
cmp dword [esp + 0x74], ebp
jbe 0x62e4df50
cmp byte [esp + 0x38], 0
jne 0x62e4e135
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x40]
and eax, 0x1f
movzx eax, byte [ebx + eax]
mov ebx, dword [esp + 0x70]
mov byte [ebx + ebp], al
mov ebp, dword [esp + 0x44]
add ebp, 4
movzx eax, byte [esp + 0x4a]
test al, al
je 0x62e4defd
add dword [esp + 0x34], 8
mov ebx, dword [esp + 0x34]
cmp eax, ebx
ja 0x62e4defd
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], 0
mov byte [eax + ebp], 0xa
add ebp, 1
cmp esi, edi
ja 0x62e4db80
mov eax, dword [esp + 0x34]
test eax, eax
je 0x62e4df1f
cmp byte [esp + 0x4a], 0
je 0x62e4df1f
mov eax, dword [esp + 0x70]
mov byte [eax + ebp], 0xa
add ebp, 1
mov eax, dword [esp + 0x78]
mov dword [eax], ebp
mov eax, 1
jmp 0x62e4daf4
mov dword [esp + 0x40], str.ABCDEFGHIJKLMNOPQRSTUVWXYZ234567
jmp 0x62e4dd40
cmp byte [esp + 0x4b], 0
jne 0x62e4e075
cmp dword [esp + 0x74], ebp
ja 0x62e4ded4
nop
mov dword [esp + 0x10], str.libuna_base32_quintuplet_copy_to_base32_stream
mov dword [esp + 0xc], str._s:_base32_stream_is_too_small.
jmp 0x62e4dd11
mov byte [esp + 0x4b], 0x3d
jmp 0x62e4dd6e
mov edx, 0xcccccccd
mov byte [esp + 0x4a], 0x40
mov eax, edx
mul dword [esp + 0x80]
mov ecx, edx
and edx, 0xfffffffc
shr ecx, 2
add edx, ecx
lea eax, [ecx*8]
cmp dword [esp + 0x80], edx
lea ecx, [ecx*8 + 8]
cmovne eax, ecx
mov edx, eax
shr eax, 6
mov ecx, edx
and ecx, 0x3f
cmp ecx, 1
sbb eax, 0xffffffff
add eax, edx
jmp 0x62e4db51
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], str._s:_base32_stream_string_too_small.
mov dword [esp + 8], 5
jmp 0x62e4dad8
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], str._s:_invalid_base32_stream_size_value_exceeds_maximum.
mov dword [esp + 8], 4
jmp 0x62e4dad8
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], str._s:_invalid_base32_stream.
mov dword [esp + 8], 1
jmp 0x62e4dad8
movzx eax, byte [esp + 0x4b]
test al, al
je 0x62e4de0b
mov ebx, dword [esp + 0x70]
mov byte [ebx + ebp + 2], al
mov byte [ebx + ecx], al
lea eax, [ebp + 4]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x74], eax
jbe 0x62e4df50
add ebp, 5
mov ebx, dword [esp + 0x44]
movzx eax, byte [esp + 0x4b]
mov ecx, dword [esp + 0x70]
mov byte [ecx + ebx], al
lea eax, [ebx + 2]
mov dword [esp + 0x4c], eax
cmp dword [esp + 0x74], eax
jbe 0x62e4df50
mov ebx, dword [esp + 0x70]
movzx eax, byte [esp + 0x4b]
mov ecx, dword [esp + 0x4c]
mov byte [ebx + ebp], al
add ebp, 2
mov byte [ebx + ecx], al
cmp dword [esp + 0x74], ebp
jbe 0x62e4df50
mov ebx, dword [esp + 0x70]
movzx eax, byte [esp + 0x4b]
mov byte [ebx + ebp], al
add ebp, 1
jmp 0x62e4ded4
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], str._s:_invalid_base32_stream_index.
mov dword [esp + 8], 1
jmp 0x62e4dad8
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], 0x62ec04cc
mov dword [esp + 8], 4
jmp 0x62e4dad8
cmp byte [esp + 0x4b], 0
jne 0x62e4e054
cmp dword [esp + 0x74], ebp
jbe 0x62e4df50
mov ebp, dword [esp + 0x44]
jmp 0x62e4ded4
mov byte [esp + 0x4a], 0
shl eax, 3
jmp 0x62e4db51
mov dword [esp + 0x10], str.libuna_base32_stream_with_index_copy_from_byte_stream
mov dword [esp + 0xc], str._s:_base32_stream_is_too_small.
jmp 0x62e4dfd8
cmp byte [esp + 0x4b], 0
jne 0x62e4e095
jmp 0x62e4ded4
mov byte [esp + 0x38], 1
mov edi, eax
jmp 0x62e4dc5b
mov byte [esp + 0x38], 3
mov edi, eax
jmp 0x62e4dc5b
mov byte [esp + 0x38], 4
mov edi, eax
jmp 0x62e4dcf7