Function at 0x420590
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push esi
push edi
mov edi, eax
mov esi, ecx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4205a0
sub eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jg 0x4205bb
pop edi
mov eax, 0x458408
pop esi
mov esp, ebp
pop ebp
ret
push ebx
push eax
call fcn.004375a9
mov ebx, eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 8]
add esp, 4
mov dword [ebp - 8], ebx
cmp ecx, eax
jae 0x420600
mov ecx, dword [esi]
lea edx, [ebp - 8]
cmp ecx, edx
ja 0x420600
mov ebx, edx
sub ebx, ecx
sar ebx, 2
cmp eax, dword [esi + 8]
jne 0x4205f0
mov eax, esi
call fcn.00429ec0
mov eax, dword [esi + 4]
test eax, eax
je 0x420615
mov ecx, dword [esi]
mov edx, dword [ecx + ebx*4]
mov dword [eax], edx
jmp 0x420615
cmp eax, dword [esi + 8]
jne 0x42060c
mov eax, esi
call fcn.00429ec0
mov eax, dword [esi + 4]
test eax, eax
je 0x420615
mov dword [eax], ebx
mov eax, dword [ebp - 8]
add dword [esi + 4], 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x18]
add eax, 0xfffffffc
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], 0
test eax, eax
jle 0x42085d
dec eax
shr eax, 2
inc eax
lea ecx, [eax*4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
lea esp, [esp]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx]
lea eax, [edx - 0x41]
or esi, 0xffffffff
cmp al, 0x19
ja 0x420667
movsx esi, dl
sub esi, 0x41
jmp 0x42069c
lea ecx, [edx - 0x61]
cmp cl, 0x19
ja 0x420677
movsx esi, dl
sub esi, 0x47
jmp 0x42069c
lea eax, [edx - 0x30]
cmp al, 9
ja 0x420686
movsx esi, dl
add esi, 4
jmp 0x42069c
cmp dl, 0x2b
jne 0x420692
mov esi, 0x3e
jmp 0x42069c
cmp dl, 0x2f
jne 0x42069c
mov esi, 0x3f
mov ecx, edx
shr ecx, 8
lea ebx, [ecx - 0x41]
or eax, 0xffffffff
cmp bl, 0x19
ja 0x4206b4
movsx eax, cl
sub eax, 0x41
jmp 0x4206ea
lea ebx, [ecx - 0x61]
cmp bl, 0x19
ja 0x4206c4
movsx eax, cl
sub eax, 0x47
jmp 0x4206ea
lea ebx, [ecx - 0x30]
cmp bl, 9
ja 0x4206d4
movsx eax, cl
add eax, 4
jmp 0x4206ea
cmp cl, 0x2b
jne 0x4206e0
mov eax, 0x3e
jmp 0x4206ea
cmp cl, 0x2f
jne 0x4206ea
mov eax, 0x3f
add esi, esi
sar eax, 4
lea edi, [esi + esi]
or edi, eax
lea eax, [ecx - 0x41]
and edi, 0xff
or esi, 0xffffffff
cmp al, 0x19
ja 0x42070c
movsx esi, cl
sub esi, 0x41
jmp 0x420740
lea eax, [ecx - 0x61]
cmp al, 0x19
ja 0x42071b
movsx esi, cl
sub esi, 0x47
jmp 0x420740
lea eax, [ecx - 0x30]
cmp al, 9
ja 0x42072a
movsx esi, cl
add esi, 4
jmp 0x420740
cmp cl, 0x2b
jne 0x420736
mov esi, 0x3e
jmp 0x420740
cmp cl, 0x2f
jne 0x420740
mov esi, 0x3f
mov ecx, edx
shr ecx, 0x10
lea ebx, [ecx - 0x41]
or eax, 0xffffffff
cmp bl, 0x19
ja 0x420758
movsx eax, cl
sub eax, 0x41
jmp 0x42078e
lea ebx, [ecx - 0x61]
cmp bl, 0x19
ja 0x420768
movsx eax, cl
sub eax, 0x47
jmp 0x42078e
lea ebx, [ecx - 0x30]
cmp bl, 9
ja 0x420778
movsx eax, cl
add eax, 4
jmp 0x42078e
cmp cl, 0x2b
jne 0x420784
mov eax, 0x3e
jmp 0x42078e
cmp cl, 0x2f
jne 0x42078e
mov eax, 0x3f
sar eax, 2
shl esi, 4
or esi, eax
lea ebx, [ecx - 0x41]
and esi, 0xff
or eax, 0xffffffff
cmp bl, 0x19
ja 0x4207af
movsx eax, cl
sub eax, 0x41
jmp 0x4207e5
lea ebx, [ecx - 0x61]
cmp bl, 0x19
ja 0x4207bf
movsx eax, cl
sub eax, 0x47
jmp 0x4207e5
lea ebx, [ecx - 0x30]
cmp bl, 9
ja 0x4207cf
movsx eax, cl
add eax, 4
jmp 0x4207e5
cmp cl, 0x2b
jne 0x4207db
mov eax, 0x3e
jmp 0x4207e5
cmp cl, 0x2f
jne 0x4207e5
mov eax, 0x3f
shr edx, 0x18
lea ebx, [edx - 0x41]
or ecx, 0xffffffff
cmp bl, 0x19
ja 0x4207fb
movsx ecx, dl
sub ecx, 0x41
jmp 0x420831
lea ebx, [edx - 0x61]
cmp bl, 0x19
ja 0x42080b
movsx ecx, dl
sub ecx, 0x47
jmp 0x420831
lea ebx, [edx - 0x30]
cmp bl, 9
ja 0x42081b
movsx ecx, dl
add ecx, 4
jmp 0x420831
cmp dl, 0x2b
jne 0x420827
mov ecx, 0x3e
jmp 0x420831
cmp dl, 0x2f
jne 0x420831
mov ecx, 0x3f
add dword [ebp - 0xc], 4
shl eax, 6
or eax, ecx
mov ecx, dword [ebp - 4]
and eax, 0xff
shl eax, 8
or eax, esi
shl eax, 8
or eax, edi
mov dword [ecx], eax
add ecx, 3
dec dword [ebp - 0x14]
mov dword [ebp - 4], ecx
jne 0x420650
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x10], ecx
jge 0x420a99
sub ecx, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 0x10], eax
test ecx, ecx
jle 0x420889
push ecx
mov ecx, dword [ebp - 0xc]
push ecx
lea edx, [ebp - 0x10]
push edx
call fcn.004376a0
mov eax, dword [ebp - 0x10]
add esp, 0xc
or edx, 0xffffffff
cmp al, 0x41
jl 0x42089c
cmp al, 0x5a
jg 0x42089c
movsx edx, al
sub edx, 0x41
jmp fcn.004208d0
cmp al, 0x61
jl 0x4208ac
cmp al, 0x7a
jg 0x4208ac
movsx edx, al
sub edx, 0x47
jmp fcn.004208d0
cmp al, 0x30
jl 0x4208bc
cmp al, 0x39
jg 0x4208bc
movsx edx, al
add edx, 4
jmp fcn.004208d0
cmp al, 0x2b
jne 0x4208c7
jmp loc.004cac88
cmp al, 0x2f
jne fcn.004208d0
mov edx, 0x3f