Function at 0x404ba0
Capabilities:
Encode data using base64

Disassembly:
sub esp, 8
mov eax, dword [esp + 0xc]
push ebx
push ebp
push esi
xor esi, esi
cmp dword [esp + 0x1c], 3
mov dword [esp + 0x10], eax
jle 0x404dd8
jmp 0x404bc0
mov ebx, dword [esp + 0x1c]
xor ebp, ebp
mov cl, 0x64
cmp esi, ebx
jge 0x404de7
mov dl, byte [esi + edi]
cmp dl, 0x2f
jne 0x404bdf
mov byte [esp + 0xe], 0x3f
jmp 0x404c2e
cmp dl, 0x2b
jne 0x404beb
mov byte [esp + 0xe], 0x3e
jmp 0x404c2e
mov al, dl
sub al, 0x41
cmp al, 0x19
ja 0x404bfc
sub dl, 0x41
mov byte [esp + 0xe], dl
jmp 0x404c2e
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x404c0d
sub dl, 0x47
mov byte [esp + 0xe], dl
jmp 0x404c2e
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x404c1e
add dl, 4
mov byte [esp + 0xe], dl
jmp 0x404c2e
cmp dl, 0x3d
setne al
dec al
and al, 0xec
add al, 0x64
mov byte [esp + 0xe], al
inc esi
cmp byte [esp + 0xe], 0x64
je 0x404bc8
cmp esi, ebx
jge 0x404de7
mov dl, byte [esi + edi]
cmp dl, 0x2f
jne 0x404c4a
mov al, 0x3f
jmp 0x404c8c
cmp dl, 0x2b
jne 0x404c53
mov al, 0x3e
jmp 0x404c8c
mov al, dl
sub al, 0x41
cmp al, 0x19
ja 0x404c62
sub dl, 0x41
mov al, dl
jmp 0x404c8c
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x404c71
sub dl, 0x47
mov al, dl
jmp 0x404c8c
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x404c80
add dl, 4
mov al, dl
jmp 0x404c8c
cmp dl, 0x3d
setne al
dec al
and al, 0xec
add al, 0x64
inc esi
cmp al, 0x64
je 0x404c36
jmp 0x404c97
mov ebx, dword [esp + 0x1c]
cmp esi, ebx
jge 0x404de7
mov dl, byte [esi + edi]
cmp dl, 0x2f
jne 0x404cab
mov dl, 0x3f
jmp 0x404cef
cmp dl, 0x2b
jne 0x404cb4
mov dl, 0x3e
jmp 0x404cef
mov bl, dl
sub bl, 0x41
cmp bl, 0x19
ja 0x404cc3
sub dl, 0x41
jmp 0x404cef
mov bl, dl
sub bl, 0x61
cmp bl, 0x19
ja 0x404cd2
sub dl, 0x47
jmp 0x404cef
mov bl, dl
sub bl, 0x30
cmp bl, 9
ja 0x404ce1
add dl, 4
jmp 0x404cef
cmp dl, 0x3d
setne dl
dec dl
and dl, 0xec
add dl, 0x64
inc esi
cmp dl, 0x64
je 0x404c93
cmp esi, dword [esp + 0x1c]
jge 0x404d57
mov cl, byte [esi + edi]
cmp cl, 0x2f
jne 0x404d07
mov cl, 0x3f
jmp 0x404d4b
cmp cl, 0x2b
jne 0x404d10
mov cl, 0x3e
jmp 0x404d4b
mov bl, cl
sub bl, 0x41
cmp bl, 0x19
ja 0x404d1f
sub cl, 0x41
jmp 0x404d4b
mov bl, cl
sub bl, 0x61
cmp bl, 0x19
ja 0x404d2e
sub cl, 0x47
jmp 0x404d4b
mov bl, cl
sub bl, 0x30
cmp bl, 9
ja 0x404d3d
add cl, 4
jmp 0x404d4b
cmp cl, 0x3d
setne cl
dec cl
and cl, 0xec
add cl, 0x64
inc esi
cmp cl, 0x64
je 0x404cf5
mov byte [esp + 0xf], cl
jmp 0x404d64
mov byte [esp + 0xf], cl
cmp cl, 0x64
je 0x404de7
cmp byte [esp + 0xe], 0x40
jae 0x404dc2
cmp al, 0x40
jae 0x404dc2
mov cl, byte [esp + 0xe]
add cl, cl
add cl, cl
mov bl, al
shr bl, 4
add bl, cl
mov byte [esp + 0xe], cl
mov cl, byte [esp + 0xf]
mov byte [esp + 0xe], bl
cmp dl, 0x40
jae 0x404dbb
mov bl, dl
shr bl, 2
shl al, 4
add bl, al
cmp cl, 0x40
jae 0x404daf
mov eax, dword [esp + 0x18]
shl dl, 6
add dl, cl
mov byte [eax + 2], dl
mov ebp, 1
mov edx, dword [esp + 0x18]
mov byte [edx + 1], bl
mov bl, byte [esp + 0xe]
inc ebp
mov eax, dword [esp + 0x18]
mov byte [eax], bl
inc ebp
add dword [esp + 0x18], ebp
cmp cl, 0x50
je 0x404dd8
lea ecx, [esi + 3]
cmp ecx, dword [esp + 0x1c]
jl 0x404bc0
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
pop esi
pop ebp
pop ebx
add esp, 8
ret
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 8
ret