Function at 0x453c30
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov byte [ebp - 1], al
mov eax, dword [ebp - 0xc]
shl eax, 2
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, 4
mov eax, dword [ebp + 8]
call fcn.00403f88
mov eax, dword [ebp + 8]
call fcn.00403e28
push eax
mov eax, dword [ebp - 0xc]
shl eax, 2
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, 2
xor ecx, ecx
pop eax
call fcn.00402b90
cmp byte [ebp - 1], 0
jne 0x453cae
mov eax, dword [ebp + 8]
call fcn.00403e28
mov dl, byte [ebp - 0xc]
dec edx
and dl, 0x3f
add dl, 0x21
mov byte [eax], dl
mov eax, dword [ebp - 0xc]
add eax, 2
mov ecx, 3
cdq
idiv ecx
lea eax, [eax + eax*2]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 2
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov al, byte [ebp - 1]
sub al, 1
jb 0x453ccc
sub al, 2
jb 0x453cd5
jmp 0x453cdc
mov dword [ebp - 0x18], 2
jmp 0x453cdc
mov dword [ebp - 0x18], 1
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x18]
mov byte [eax + edx - 1], 0
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge 0x453df6
cmp dword [ebp - 0x10], 0
jle 0x453d50
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov ebx, 0x3f
shl ebx, cl
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
movzx ecx, byte [ecx + esi]
and ebx, ecx
mov ecx, dword [ebp - 0x10]
shr ebx, cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov esi, dword [ebp - 0x18]
or bl, byte [ecx + esi - 1]
mov byte [eax + edx - 1], bl
sub dword [ebp - 0x10], 6
inc dword [ebp - 0x18]
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x18]
mov byte [eax + edx - 1], 0
jmp 0x453dea
cmp dword [ebp - 0x10], 0
jge 0x453da4
mov eax, dword [ebp - 0x10]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov ebx, 0x3f
shr ebx, cl
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 0x14]
and bl, byte [ecx + esi]
mov ecx, dword [ebp - 0x10]
shl bl, cl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov esi, dword [ebp - 0x18]
or bl, byte [ecx + esi - 1]
mov byte [eax + edx - 1], bl
mov eax, 8
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x14]
jmp 0x453dea
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x14]
mov cl, byte [ecx + ebx]
and cl, 0x3f
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
mov esi, dword [ebp - 0x18]
mov bl, byte [ebx + esi - 1]
or cl, bl
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x18]
inc dword [ebp - 0x14]
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x18]
mov byte [eax + edx - 1], 0
mov dword [ebp - 0x10], 2
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jl 0x453cf8
mov al, byte [ebp - 1]
sub al, 1
jb 0x453e06
sub al, 2
jb 0x453e55
jmp 0x453eb7
cmp dword [ebp - 0x10], 2
jne 0x453e0f
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub eax, 2
jl 0x453eb7
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 2
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov ebx, dword [ebp - 0x1c]
movzx ecx, byte [ecx + ebx - 1]
mov ebx, dword [0x495b7c]
mov cl, byte [ebx + ecx]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x453e26
jmp 0x453eb7
cmp dword [ebp - 0x10], 2
jne 0x453e5e
dec dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
test eax, eax
jle 0x453eb1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov ebx, dword [ebp - 0x1c]
movzx ecx, byte [ecx + ebx - 1]
mov ebx, dword [0x495b80]
mov cl, byte [ebx + ecx]
mov byte [eax + edx - 1], cl
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x453e6f
jmp 0x453eb1
inc dword [ebp - 0x18]
mov eax, dword [ebp + 8]
call fcn.00403e28
mov edx, dword [ebp - 0x18]
mov byte [eax + edx - 1], 0x3d
test byte [ebp - 0x18], 3
jne 0x453e9e
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
call fcn.00403f88
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4