Function at 0x4011a0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push edi
xor edi, edi
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp dword [ebp + 0xc], edi
je 0x401480
push ebx
mov eax, dword [ebp + 8]
mov cl, byte [eax]
dec dword [ebp + 0xc]
mov byte [ebp + edi - 4], cl
inc edi
inc eax
mov dword [ebp - 8], edi
mov dword [ebp + 8], eax
cmp edi, 3
jne 0x4012d0
mov al, byte [ebp - 4]
mov dl, al
and al, 3
shl al, 4
shr dl, 2
mov cl, al
mov al, byte [ebp - 3]
mov byte [ebp - 0xc], dl
mov dl, al
and al, 0xf
add al, al
shr dl, 4
add cl, dl
mov byte [ebp - 0xb], cl
mov dword [ebp - 8], 0
lea ecx, [eax + eax]
mov al, byte [ebp - 2]
mov dl, al
shr dl, 6
add ecx, edx
and al, 0x3f
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], al
mov eax, dword [0x455e20]
mov edx, 0x10
cmp dword [0x455e34], edx
jae 0x401237
mov eax, 0x455e20
mov ecx, dword [ebp - 8]
movzx ecx, byte [ebp + ecx - 0xc]
mov bl, byte [ecx + eax]
mov eax, dword [esi + 0x10]
or ecx, 0xffffffff
sub ecx, eax
cmp ecx, 1
jbe 0x401395
lea edi, [eax + 1]
cmp edi, 0xfffffffe
ja 0x401395
mov ecx, dword [esi + 0x14]
cmp ecx, edi
jae 0x401276
push eax
push edi
mov ecx, esi
call fcn.00401f30
mov edx, 0x10
jmp 0x40128a
test edi, edi
jne 0x40128c
mov dword [esi + 0x10], edi
cmp ecx, edx
jb 0x401285
mov eax, dword [esi]
jmp 0x401287
mov eax, esi
mov byte [eax], 0
test edi, edi
setne al
test al, al
je 0x4012b6
mov ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], edx
jb 0x40129f
mov eax, dword [esi]
jmp 0x4012a1
mov eax, esi
mov byte [eax + ecx], bl
mov dword [esi + 0x10], edi
cmp dword [esi + 0x14], edx
jb 0x4012b0
mov eax, dword [esi]
jmp 0x4012b2
mov eax, esi
mov byte [eax + edi], 0
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, 4
jl 0x401220
mov dword [ebp - 8], 0
mov edi, dword [ebp - 8]
cmp dword [ebp + 0xc], 0
jne 0x4011c4
test edi, edi
je 0x40147f
cmp edi, 3
jge 0x4012fe
mov edx, 3
sub edx, edi
push edx
lea eax, [ebp + edi - 4]
push 0
push eax
call fcn.00427fa0
add esp, 0xc
mov al, byte [ebp - 4]
mov cl, al
and al, 3
shl al, 4
mov dl, al
mov al, byte [ebp - 3]
shr cl, 2
mov byte [ebp - 0xc], cl
mov cl, al
and al, 0xf
add al, al
shr cl, 4
add dl, cl
mov byte [ebp - 0xb], dl
lea edx, [eax + eax]
mov al, byte [ebp - 2]
mov cl, al
shr cl, 6
and al, 0x3f
mov byte [ebp - 9], al
lea eax, [edi + 1]
add edx, ecx
mov byte [ebp - 0xa], dl
xor edx, edx
mov dword [ebp + 0xc], edx
test eax, eax
jle 0x4013f5
jmp 0x401350
cmp dword [0x455e34], 0x10
mov eax, dword [0x455e20]
jae 0x401363
mov eax, 0x455e20
movzx ecx, byte [ebp + edx - 0xc]
mov bl, byte [ecx + eax]
mov eax, dword [esi + 0x10]
or ecx, 0xffffffff
sub ecx, eax
cmp ecx, 1
jbe 0x401395
lea edi, [eax + 1]
cmp edi, 0xfffffffe
ja 0x401395
mov ecx, dword [esi + 0x14]
cmp ecx, edi
jae 0x40139f
push eax
push edi
mov ecx, esi
call fcn.00401f30
mov edx, dword [ebp + 0xc]
jmp 0x4013b4
push str.string_too_long
call fcn.004410e6
test edi, edi
jne 0x4013b6
mov dword [esi + 0x10], edi
cmp ecx, 0x10
jb 0x4013af
mov eax, dword [esi]
jmp 0x4013b1
mov eax, esi
mov byte [eax], 0
test edi, edi
setne al
test al, al
je 0x4013e2
cmp dword [esi + 0x14], 0x10
mov ecx, dword [esi + 0x10]
jb 0x4013ca
mov eax, dword [esi]
jmp 0x4013cc
mov eax, esi
mov byte [eax + ecx], bl
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], edi
jb 0x4013dc
mov eax, dword [esi]
jmp 0x4013de
mov eax, esi
mov byte [eax + edi], 0
mov eax, dword [ebp - 8]
inc edx
inc eax
mov dword [ebp + 0xc], edx
cmp edx, eax
jl 0x401350
mov edi, dword [ebp - 8]
cmp edi, 3
jge 0x40147f
jmp 0x401403
mov edi, dword [ebp - 8]
mov eax, dword [esi + 0x10]
or edx, 0xffffffff
inc edi
sub edx, eax
mov dword [ebp - 8], edi
cmp edx, 1
jbe 0x401395
lea edi, [eax + 1]
cmp edi, 0xfffffffe
ja 0x401395
mov ecx, dword [esi + 0x14]
cmp ecx, edi
jae 0x401432
push eax
push edi
mov ecx, esi
call fcn.00401f30
jmp 0x401447
test edi, edi
jne 0x401449
mov dword [esi + 0x10], edi
cmp ecx, 0x10
jb 0x401442
mov eax, dword [esi]
jmp 0x401444
mov eax, esi
mov byte [eax], 0
test edi, edi
setne al
test al, al
je 0x401479
mov ecx, dword [esi + 0x10]
mov edx, 0x10
cmp dword [esi + 0x14], edx
jb 0x401461
mov eax, dword [esi]
jmp 0x401463
mov eax, esi
mov byte [eax + ecx], 0x3d
mov dword [esi + 0x10], edi
cmp dword [esi + 0x14], edx
jb 0x401473
mov eax, dword [esi]
jmp 0x401475
mov eax, esi
mov byte [edi + eax], 0
cmp dword [ebp - 8], 3
jl 0x401400
pop ebx
mov eax, esi
pop edi
mov esp, ebp
pop ebp
ret