Function at 0x4049a0
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 0x404bd8
jmp 0x4049c0
mov ebx, dword [esp + 0x1c]
xor ebp, ebp
mov cl, 0x64
cmp esi, ebx
jge 0x404be7
mov dl, byte [esi + edi]
cmp dl, 0x2f
jne 0x4049df
mov byte [esp + 0xe], 0x3f
jmp 0x404a2e
cmp dl, 0x2b
jne 0x4049eb
mov byte [esp + 0xe], 0x3e
jmp 0x404a2e
mov al, dl
sub al, 0x41
cmp al, 0x19
ja 0x4049fc
sub dl, 0x41
mov byte [esp + 0xe], dl
jmp 0x404a2e
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x404a0d
sub dl, 0x47
mov byte [esp + 0xe], dl
jmp 0x404a2e
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x404a1e
add dl, 4
mov byte [esp + 0xe], dl
jmp 0x404a2e
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 0x4049c8
cmp esi, ebx
jge 0x404be7
mov dl, byte [esi + edi]
cmp dl, 0x2f
jne 0x404a4a
mov al, 0x3f
jmp 0x404a8c
cmp dl, 0x2b
jne 0x404a53
mov al, 0x3e
jmp 0x404a8c
mov al, dl
sub al, 0x41
cmp al, 0x19
ja 0x404a62
sub dl, 0x41
mov al, dl
jmp 0x404a8c
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x404a71
sub dl, 0x47
mov al, dl
jmp 0x404a8c
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x404a80
add dl, 4
mov al, dl
jmp 0x404a8c
cmp dl, 0x3d
setne al
dec al
and al, 0xec
add al, 0x64
inc esi
cmp al, 0x64
je 0x404a36
jmp 0x404a97
mov ebx, dword [esp + 0x1c]
cmp esi, ebx
jge 0x404be7
mov dl, byte [esi + edi]
cmp dl, 0x2f
jne 0x404aab
mov dl, 0x3f
jmp 0x404aef
cmp dl, 0x2b
jne 0x404ab4
mov dl, 0x3e
jmp 0x404aef
mov bl, dl
sub bl, 0x41
cmp bl, 0x19
ja 0x404ac3
sub dl, 0x41
jmp 0x404aef
mov bl, dl
sub bl, 0x61
cmp bl, 0x19
ja 0x404ad2
sub dl, 0x47
jmp 0x404aef
mov bl, dl
sub bl, 0x30
cmp bl, 9
ja 0x404ae1
add dl, 4
jmp 0x404aef
cmp dl, 0x3d
setne dl
dec dl
and dl, 0xec
add dl, 0x64
inc esi
cmp dl, 0x64
je 0x404a93
cmp esi, dword [esp + 0x1c]
jge 0x404b57
mov cl, byte [esi + edi]
cmp cl, 0x2f
jne 0x404b07
mov cl, 0x3f
jmp 0x404b4b
cmp cl, 0x2b
jne 0x404b10
mov cl, 0x3e
jmp 0x404b4b
mov bl, cl
sub bl, 0x41
cmp bl, 0x19
ja 0x404b1f
sub cl, 0x41
jmp 0x404b4b
mov bl, cl
sub bl, 0x61
cmp bl, 0x19
ja 0x404b2e
sub cl, 0x47
jmp 0x404b4b
mov bl, cl
sub bl, 0x30
cmp bl, 9
ja 0x404b3d
add cl, 4
jmp 0x404b4b
cmp cl, 0x3d
setne cl
dec cl
and cl, 0xec
add cl, 0x64
inc esi
cmp cl, 0x64
je 0x404af5
mov byte [esp + 0xf], cl
jmp 0x404b64
mov byte [esp + 0xf], cl
cmp cl, 0x64
je 0x404be7
cmp byte [esp + 0xe], 0x40
jae 0x404bc2
cmp al, 0x40
jae 0x404bc2
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 0x404bbb
mov bl, dl
shr bl, 2
shl al, 4
add bl, al
cmp cl, 0x40
jae 0x404baf
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 0x404bd8
lea ecx, [esi + 3]
cmp ecx, dword [esp + 0x1c]
jl 0x4049c0
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