Function at 0x62e50470
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [esp + 0x70]
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov edx, dword [esp + 0x84]
mov byte [esp + 0x47], 0
test edi, edi
je 0x62e50c30
mov ebx, dword [esp + 0x74]
test ebx, ebx
js 0x62e50bb8
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x62e50c50
mov eax, dword [esp + 0x7c]
test eax, eax
js 0x62e50c10
cmp byte [esp + 0x80], 0x40
movzx eax, byte [esp + 0x80]
je 0x62e50640
cmp eax, 0x4c
je 0x62e50528
test eax, eax
je 0x62e50630
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_unsupported_base64_variant.
mov dword [esp + 8], 8
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 byte [esp + 0x2f], 0x4c
mov ebx, dword [esp + 0x80]
and ebx, 0xf0000000
cmp ebx, 0x20000000
je 0x62e506ac
ja 0x62e506c0
test ebx, ebx
jne 0x62e506a0
mov ebp, 1
cmp ebp, dword [esp + 0x74]
ja 0x62e50c70
test dl, 0xfe
jne 0x62e50cf0
mov ecx, edx
mov eax, dword [esp + 0x74]
mov edx, 1
and ecx, 1
sub edx, ecx
sub eax, ebp
mov byte [esp + 0x2e], cl
mov byte [esp + 0x2d], dl
cmp eax, ebp
jbe 0x62e50d47
xor edx, edx
xor esi, esi
jmp 0x62e505ec
test ebx, ebx
je 0x62e50650
cmp ebx, 0x10000000
jne 0x62e505b6
movzx esi, byte [edi + eax]
movzx ecx, byte [edi + eax + 1]
shl esi, 8
or esi, ecx
sub eax, ebp
cmp esi, 0xa
je 0x62e505e0
cmp esi, 0xd
je 0x62e505e0
cmp byte [esp + 0x2e], 0
je 0x62e506e0
mov ecx, esi
and ecx, 0xfffffffd
cmp ecx, 9
je 0x62e505e0
cmp esi, 0x20
jne 0x62e506e0
add edx, ebp
mov ecx, edx
cmp eax, ebp
jbe 0x62e506e2
cmp ebx, 0x20000000
je 0x62e50660
jbe 0x62e50598
cmp ebx, 0x30000000
je 0x62e50678
cmp ebx, 0x40000000
jne 0x62e505b6
movzx esi, byte [edi + eax + 3]
movzx ecx, byte [edi + eax + 2]
shl esi, 8
or ecx, esi
movzx esi, byte [edi + eax + 1]
shl ecx, 8
or esi, ecx
movzx ecx, byte [edi + eax]
shl esi, 8
or esi, ecx
jmp 0x62e505b6
mov byte [esp + 0x2f], 0
jmp 0x62e5052d
mov byte [esp + 0x2f], 0x40
jmp 0x62e5052d
movzx esi, byte [edi + eax]
jmp 0x62e505b6
movzx esi, byte [edi + eax + 1]
movzx ecx, byte [edi + eax]
shl esi, 8
or esi, ecx
jmp 0x62e505b6
movzx esi, byte [edi + eax]
movzx ecx, byte [edi + eax + 1]
shl esi, 8
or ecx, esi
movzx esi, byte [edi + eax + 2]
shl ecx, 8
or esi, ecx
movzx ecx, byte [edi + eax + 3]
shl esi, 8
or esi, ecx
jmp 0x62e505b6
cmp ebx, 0x10000000
jne 0x62e504e6
mov ebp, 2
jmp 0x62e50559
lea eax, [ebx - 0x30000000]
mov ebp, 4
test eax, 0xe0000000
jne 0x62e504e6
jmp 0x62e50559
mov ecx, edx
sub dword [esp + 0x74], ecx
mov dword [esp + 0x48], 0
je 0x62e508e0
movzx edx, byte [esp + 0x2f]
mov dword [esp + 0x24], ebp
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], edx
lea esi, [esi]
nop
cmp ebx, 0x20000000
je 0x62e50ab0
ja 0x62e507d0
test ebx, ebx
je 0x62e50a78
cmp ebx, 0x10000000
jne 0x62e50750
movzx esi, byte [edi + eax]
movzx edx, byte [edi + eax + 1]
shl esi, 8
or esi, edx
mov edx, dword [esp + 0x24]
add edx, eax
mov dword [esp + 0x48], edx
cmp esi, 0xa
je 0x62e50820
cmp esi, 0xd
je 0x62e50820
mov ecx, esi
and ecx, 0xfffffffd
cmp ecx, 9
je 0x62e50888
cmp esi, 0x20
je 0x62e50888
cmp byte [esp + 0x2d], 2
jne 0x62e508f0
nop
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp], eax
mov dword [esp + 0xc], str._s:_invalid_character_in_base64_stream_at_index:__d.
mov dword [esp + 8], 1
mov dword [esp + 4], 0x63
call dbg.libcerror_error_set
mov eax, 0xffffffff
jmp 0x62e5051a
cmp ebx, 0x30000000
je 0x62e50a88
cmp ebx, 0x40000000
jne 0x62e50750
movzx esi, byte [edi + eax + 3]
movzx edx, byte [edi + eax + 2]
shl esi, 8
or edx, esi
movzx esi, byte [edi + eax + 1]
shl edx, 8
or esi, edx
movzx edx, byte [edi + eax]
shl esi, 8
or esi, edx
mov edx, dword [esp + 0x24]
add edx, eax
mov dword [esp + 0x48], edx
cmp esi, 0xa
jne 0x62e50763
lea esi, [esi]
movzx ecx, byte [esp + 0x2d]
sub ecx, 1
cmp cl, 1
jbe 0x62e509f0
movzx ecx, byte [esp + 0x2f]
test cl, cl
je 0x62e50790
movzx edx, cl
cmp edx, dword [esp + 0x28]
je 0x62e50790
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_number_of_characters_in_line_does_not_match_character_limit.
mov eax, dword [esp + 0x88]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x63
mov dword [esp], eax
call dbg.libcerror_error_set
mov eax, 0xffffffff
jmp 0x62e5051a
cmp byte [esp + 0x2e], 0
je 0x62e50790
movzx ecx, byte [esp + 0x2d]
cmp cl, 1
je 0x62e50b78
and ecx, 0xfd
jne 0x62e50790
mov eax, edx
nop
cmp eax, dword [esp + 0x74]
jb 0x62e50720
movzx eax, byte [esp + 0x2f]
test al, al
je 0x62e508e0
cmp eax, dword [esp + 0x28]
jae 0x62e508e0
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_number_of_characters_in_last_line_exceed_maximum.
jmp 0x62e5085b
mov eax, 1
jmp 0x62e5051a
cmp byte [esp + 0x47], 0
jne 0x62e50d1d
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x47]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
lea eax, [esp + 0x4c]
mov dword [esp], eax
call dbg.libuna_base64_triplet_copy_from_base64_stream
cmp eax, 1
jne 0x62e50d32
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x7c], eax
jbe 0x62e50b20
movzx eax, byte [esp + 0x47]
mov byte [esp + 0x2d], al
cmp al, 2
ja 0x62e50bd8
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x78]
mov edx, eax
shr edx, 0x10
cmp byte [esp + 0x2d], 2
mov ecx, edx
mov edx, dword [esp + 0x30]
mov byte [ebp + edx], cl
lea ecx, [edx + 1]
mov dword [esp + 0x34], edx
je 0x62e50b68
cmp dword [esp + 0x7c], ecx
jbe 0x62e50b20
mov edx, dword [esp + 0x34]
cmp byte [esp + 0x2d], 0
mov byte [ebp + ecx], ah
lea ecx, [edx + 2]
jne 0x62e50b68
cmp dword [esp + 0x7c], ecx
jbe 0x62e50d08
mov edx, dword [esp + 0x78]
add dword [esp + 0x30], 3
mov byte [edx + ecx], al
movzx eax, byte [esp + 0x2d]
mov edx, dword [esp + 0x28]
mov byte [esp + 0x2d], 1
sub edx, eax
mov eax, edx
add eax, 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
jmp 0x62e508b0
mov eax, dword [esp + 0x24]
add eax, edx
cmp eax, dword [esp + 0x74]
jae 0x62e50a46
cmp ebx, 0x20000000
je 0x62e50ca0
ja 0x62e50ac8
test ebx, ebx
je 0x62e50c90
cmp ebx, 0x10000000
jne 0x62e50a30
movzx ecx, byte [edi + edx]
movzx ebp, byte [edi + edx + 1]
shl ecx, 8
or ecx, ebp
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x38]
cmp ecx, 0xa
je 0x62e50b88
cmp ecx, 0xd
je 0x62e50b88
cmp byte [esp + 0x2f], 0
je 0x62e50b10
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x3c], ecx
jne 0x62e5084b
mov byte [esp + 0x2d], 0
mov eax, edx
mov dword [esp + 0x28], 0
jmp 0x62e508b0
movzx esi, byte [edi + eax]
jmp 0x62e50750
movzx esi, byte [edi + eax]
movzx edx, byte [edi + eax + 1]
shl esi, 8
or edx, esi
movzx esi, byte [edi + eax + 2]
shl edx, 8
or esi, edx
movzx edx, byte [edi + eax + 3]
shl esi, 8
or esi, edx
jmp 0x62e50750
movzx esi, byte [edi + eax + 1]
movzx edx, byte [edi + eax]
shl esi, 8
or esi, edx
jmp 0x62e50750
cmp ebx, 0x30000000
je 0x62e50cc0
cmp ebx, 0x40000000
jne 0x62e50a30
movzx ecx, byte [edi + edx + 3]
movzx ebp, byte [edi + edx + 2]
shl ecx, 8
or ecx, ebp
movzx ebp, byte [edi + edx + 1]
shl ecx, 8
or ecx, ebp
movzx ebp, byte [edi + edx]
shl ecx, 8
or ecx, ebp
mov dword [esp + 0x38], ecx
jmp 0x62e50a30
mov byte [esp + 0x2d], 0
mov eax, edx
jmp 0x62e508b0
mov dword [esp + 0x10], str.libuna_base64_triplet_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_byte_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
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_unable_to_copy_base64_triplet_to_byte_stream.
jmp 0x62e5085b
mov dword [esp + 0x30], ecx
jmp 0x62e509c4
mov byte [esp + 0x2d], 2
mov eax, edx
jmp 0x62e508b0
cmp byte [esp + 0x2f], 0
mov dword [esp + 0x48], eax
je 0x62e50ba9
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x3c], ecx
jne 0x62e5084b
mov dword [esp + 0x28], 0
mov byte [esp + 0x2d], 0
jmp 0x62e50720
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_invalid_base64_stream_size_value_exceeds_maximum.
mov dword [esp + 8], 4
jmp 0x62e504fe
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], str.libuna_base64_triplet_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_invalid_padding_size_value_out_of_bounds.
mov dword [esp + 8], 7
mov dword [esp + 4], 0x61
mov dword [esp], eax
call dbg.libcerror_error_set
jmp 0x62e50b4f
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], 0x62ec0da4
mov dword [esp + 8], 4
jmp 0x62e504fe
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_invalid_base64_stream.
mov dword [esp + 8], 1
jmp 0x62e504fe
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], 0x62ec0d88
mov dword [esp + 8], 1
jmp 0x62e504fe
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_invalid_base64_stream_value_too_small.
mov dword [esp + 8], 5
jmp 0x62e504fe
movzx ecx, byte [edi + edx]
mov dword [esp + 0x38], ecx
jmp 0x62e50a30
movzx ecx, byte [edi + edx + 1]
movzx ebp, byte [edi + edx]
shl ecx, 8
or ecx, ebp
mov dword [esp + 0x38], ecx
jmp 0x62e50a30
movzx ecx, byte [edi + edx]
movzx ebp, byte [edi + edx + 1]
shl ecx, 8
or ecx, ebp
movzx ebp, byte [edi + edx + 2]
shl ecx, 8
or ecx, ebp
movzx ebp, byte [edi + edx + 3]
shl ecx, 8
or ecx, ebp
mov dword [esp + 0x38], ecx
jmp 0x62e50a30
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_unsupported_flags.
jmp 0x62e504f6
mov dword [esp + 0x10], str.libuna_base64_triplet_copy_to_byte_stream
mov dword [esp + 0xc], 0x62ec0e46
jmp 0x62e50b30
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_invalid_1st_base64_sixtet.
jmp 0x62e504f6
mov dword [esp + 0x10], str.libuna_base64_stream_copy_to_byte_stream
mov dword [esp + 0xc], str._s:_unable_to_copy_base64_triplet_from_base64_stream.
jmp 0x62e5085b
xor esi, esi
jmp 0x62e506f4