Function at 0x4257e8
Capabilities:
Encode data using base64

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov dword [ebp - 0x10], edi
test edi, edi
je 0x42589c
cmp dword [ebp + 0xc], 0
je 0x42589c
mov esi, edi
xor edx, edx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, dx
jne 0x425813
sub esi, ecx
xor ecx, ecx
sar esi, 1
call fcn.004298d9
xor ecx, ecx
call fcn.004298d9
cmp esi, ebx
jb 0x425836
mov esi, ebx
lea eax, [edi + esi*2]
mov dword [ebp - 0x18], 3
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], ebx
mov edx, edi
mov dword [ebp - 4], edx
mov esi, 0x100
mov dword [ebp - 0xc], esi
cmp edi, eax
jae 0x4258eb
mov edi, eax
movzx ecx, word [edx]
cmp cx, si
jae 0x42589c
cmp byte [ecx + 0x40a1c0], 0x3f
jbe 0x4258ba
cmp ecx, 0x20
je 0x4258dd
cmp ecx, 9
je 0x4258dd
cmp ecx, 0xd
je 0x4258dd
cmp ecx, 0xa
je 0x4258dd
test ebx, ebx
je 0x42589c
push 3
mov eax, ebx
pop ecx
and eax, ecx
je 0x4258eb
cmp word [edx], 0x3d
jne 0x42589c
cmp eax, 1
jne 0x4258eb
mov ecx, 0x80070057
mov esi, ecx
call fcn.004298bc
mov ecx, esi
call fcn.004298d9
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 8]
xor edx, edx
push eax
inc edx
mov ecx, ebx
call fcn.004274d1
mov esi, eax
test esi, esi
js 0x42598a
mov ebx, dword [ebp - 8]
mov esi, 0x100
mov edx, dword [ebp - 4]
add edx, 2
mov dword [ebp - 4], edx
cmp edx, edi
jb 0x42585f
mov ecx, ebx
xor eax, eax
shr ecx, 2
mov esi, eax
test ecx, ecx
je 0x425919
imul edi, ecx, 3
xor edx, edx
mov eax, edi
div dword [ebp - 0x18]
cmp eax, ecx
je 0x42591b
mov eax, 0x80070216
mov ecx, eax
mov esi, eax
call fcn.004298bc
mov edi, dword [ebp - 4]
jmp 0x42591e
mov edi, eax
mov dword [ebp - 4], edi
mov ecx, esi
call fcn.004298d9
test esi, esi
js 0x42598a
push 3
mov eax, ebx
pop ecx
and eax, ecx
dec eax
je 0x42589c
dec eax
je 0x425954
dec eax
jne 0x42596b
lea eax, [ebp - 4]
xor edx, edx
push eax
inc edx
mov ecx, edi
call fcn.004274d1
mov esi, eax
test esi, esi
js 0x42598a
mov edi, dword [ebp - 4]
lea eax, [ebp - 4]
xor edx, edx
push eax
inc edx
mov ecx, edi
call fcn.004274d1
mov esi, eax
test esi, esi
js 0x42598a
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 8]
test eax, eax
jne 0x42597e
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [eax], edi
jmp 0x4258a8
mov ecx, dword [ebp + 0xc]
cmp dword [ecx], edi
jae 0x425991
mov esi, 0x8007007a
mov ecx, esi
jmp 0x4258a3
mov esi, dword [ebp - 8]
add edi, eax
mov ebx, eax
test esi, esi
je 0x425a59
and dword [ebp - 4], 0
xor edx, edx
mov ecx, dword [ebp - 0x10]
cmp esi, 4
jbe 0x4259b3
push 4
pop eax
jmp 0x4259b5
mov eax, esi
cmp edx, eax
jb 0x425a91
mov dword [ebp - 0x10], ecx
cmp ebx, edi
jae 0x425aa9
mov eax, dword [ebp - 4]
movzx ecx, ah
movzx eax, al
mov ch, byte [ecx + 0x40a1c0]
mov cl, byte [eax + 0x40a1c0]
mov al, ch
shl cl, 2
shr al, 4
or cl, al
mov byte [ebx], cl
inc ebx
mov cl, byte [ebp - 2]
cmp edx, 2
jbe 0x425a0e
cmp ebx, edi
jae 0x425aa9
movzx eax, cl
shl ch, 4
mov al, byte [eax + 0x40a1c0]
shr al, 2
or al, ch
mov byte [ebx], al
inc ebx
push 3
pop eax
cmp edx, eax
jbe 0x425a36
cmp ebx, edi
jae 0x425aa9
movzx eax, cl
mov cl, byte [eax + 0x40a1c0]
movzx eax, byte [ebp - 1]
shl cl, 6
or cl, byte [eax + 0x40a1c0]
mov byte [ebx], cl
inc ebx
lea eax, [ebp - 8]
mov ecx, esi
push eax
call fcn.004257b2
mov esi, eax
test esi, esi
js 0x42598a
mov esi, dword [ebp - 8]
test esi, esi
jne 0x4259a0
mov eax, dword [ebp + 8]
sub ebx, eax
push 0
pop esi
jns 0x425a6e
mov eax, 0x80070216
mov ecx, eax
mov esi, eax
call fcn.004298bc
mov ecx, esi
call fcn.004298d9
test esi, esi
jns 0x425ab3
mov ecx, esi
call fcn.004298bc
jmp 0x425ab8
movzx eax, ax
cmp byte [eax + 0x40a1c0], 0x3f
jbe 0x425a9a
add ecx, 2
movzx eax, word [ecx]
cmp word [ebp - 0xc], ax
ja 0x425a82
mov al, byte [ecx]
add ecx, 2
mov byte [ebp + edx - 4], al
inc edx
jmp 0x4259a9
mov ecx, 0x8000ffff
jmp 0x4258a1
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
mov ecx, esi
call fcn.004298d9
test esi, esi
jns 0x4258a8
jmp 0x42598a