Function at 0x425020
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], ebx
jb 0x42503a
mov eax, dword [esi]
jmp 0x42503c
mov eax, esi
mov byte [eax], bl
test ecx, ecx
je 0x4252e1
test edx, edx
je 0x4252e1
push edi
nop
mov al, byte [ecx]
mov byte [ebp + ebx - 8], al
mov al, byte [ebp - 6]
mov ah, byte [ebp - 7]
dec edx
inc ebx
inc ecx
mov byte [ebp - 1], al
mov al, byte [ebp - 8]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
mov byte [ebp - 3], ah
mov byte [ebp + 0xb], al
cmp ebx, 3
jne 0x425144
mov cl, byte [ebp + 0xb]
mov dl, byte [ebp - 1]
shr al, 2
mov byte [ebp - 0xc], al
and cl, 3
shl cl, 4
mov al, ah
shr al, 4
add cl, al
mov byte [ebp - 0xb], cl
mov cl, ah
and cl, 0xf
mov al, dl
shr al, 6
shl cl, 2
add cl, al
mov al, dl
and al, 0x3f
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], al
xor ebx, ebx
movzx eax, byte [ebp + ebx - 0xc]
mov ecx, dword [esi + 0x10]
mov dl, byte [eax + 0x57a300]
or eax, 0xffffffff
sub eax, ecx
mov byte [ebp - 2], dl
cmp eax, 1
jbe 0x4252e9
lea edi, [ecx + 1]
cmp edi, 0xfffffffe
ja 0x4252e9
mov eax, dword [esi + 0x14]
cmp eax, edi
jae 0x425100
push ecx
push edi
mov ecx, esi
call fcn.00401900
mov dl, byte [ebp - 2]
test edi, edi
je 0x425132
cmp dword [esi + 0x14], 0x10
mov ecx, dword [esi + 0x10]
jb 0x42511a
mov eax, dword [esi]
jmp 0x42511c
test edi, edi
jne 0x4250f3
mov dword [esi + 0x10], edi
cmp eax, 0x10
jb 0x425113
mov eax, dword [esi]
mov byte [eax], 0
jmp 0x425132
mov eax, esi
mov byte [eax], 0
jmp 0x425132
mov eax, esi
mov byte [eax + ecx], dl
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], edi
jb 0x42512c
mov eax, dword [esi]
jmp 0x42512e
mov eax, esi
mov byte [eax + edi], 0
inc ebx
cmp ebx, 4
jl 0x4250b1
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
xor ebx, ebx
test edx, edx
jne 0x425050
test ebx, ebx
je 0x4252d7
mov eax, ebx
cmp ebx, 3
jge 0x42517a
cmp eax, 3
jae 0x4252f3
mov byte [ebp + eax - 8], 0
inc eax
cmp eax, 3
jl 0x42515e
mov ah, byte [ebp - 6]
mov cl, byte [ebp - 7]
mov dl, byte [ebp - 8]
jmp 0x425183
mov cl, byte [ebp - 3]
mov dl, byte [ebp + 0xb]
mov ah, byte [ebp - 1]
mov al, dl
shr al, 2
mov byte [ebp - 0xc], al
mov al, cl
and dl, 3
shr al, 4
shl dl, 4
add dl, al
and cl, 0xf
mov al, ah
shr al, 6
and ah, 0x3f
shl cl, 2
add cl, al
mov byte [ebp - 9], ah
mov byte [ebp - 0xb], dl
xor edx, edx
lea eax, [ebx + 1]
mov byte [ebp - 0xa], cl
mov dword [ebp - 8], edx
test eax, eax
jle 0x425257
movzx eax, byte [ebp + edx - 0xc]
mov ecx, dword [esi + 0x10]
mov al, byte [eax + 0x57a300]
mov byte [ebp + 0xb], al
or eax, 0xffffffff
sub eax, ecx
cmp eax, 1
jbe 0x4252e9
lea edi, [ecx + 1]
cmp edi, 0xfffffffe
ja 0x4252e9
mov eax, dword [esi + 0x14]
cmp eax, edi
jae 0x425210
push ecx
push edi
mov ecx, esi
call fcn.00401900
mov edx, dword [ebp - 8]
test edi, edi
je 0x425248
cmp dword [esi + 0x14], 0x10
mov ecx, dword [esi + 0x10]
jb 0x42522a
mov eax, dword [esi]
jmp 0x42522c
test edi, edi
jne 0x425203
mov dword [esi + 0x10], edi
cmp eax, 0x10
jb 0x425223
mov eax, dword [esi]
mov byte [eax], 0
jmp 0x425248
mov eax, esi
mov byte [eax], 0
jmp 0x425248
mov eax, esi
mov dl, byte [ebp + 0xb]
mov byte [eax + ecx], dl
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], edi
jb 0x42523f
mov eax, dword [esi]
jmp 0x425241
mov eax, esi
mov edx, dword [ebp - 8]
mov byte [eax + edi], 0
inc edx
lea eax, [ebx + 1]
mov dword [ebp - 8], edx
cmp edx, eax
jl 0x4251c1
cmp ebx, 3
jge 0x4252d7
mov ecx, dword [esi + 0x10]
or eax, 0xffffffff
sub eax, ecx
inc ebx
cmp eax, 1
jbe 0x4252e9
lea edi, [ecx + 1]
cmp edi, 0xfffffffe
ja 0x4252e9
mov eax, dword [esi + 0x14]
cmp eax, edi
jae 0x42529f
push ecx
push edi
mov ecx, esi
call fcn.00401900
test edi, edi
je 0x4252d2
cmp dword [esi + 0x14], 0x10
mov ecx, dword [esi + 0x10]
jb 0x4252b9
mov eax, dword [esi]
jmp 0x4252bb
test edi, edi
jne 0x425292
mov dword [esi + 0x10], edi
cmp eax, 0x10
jb 0x4252b2
mov eax, dword [esi]
mov byte [eax], 0
jmp 0x4252d2
mov eax, esi
mov byte [eax], 0
jmp 0x4252d2
mov eax, esi
mov byte [eax + ecx], 0x3d
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], edi
jb 0x4252cc
mov eax, dword [esi]
jmp 0x4252ce
mov eax, esi
mov byte [eax + edi], 0
cmp ebx, 3
jl 0x425260
mov eax, dword [esi + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push str.string_too_long
call fcn.0050098b
call fcn.004dd09f
int3