Function at 0x4ac19e
Capabilities:
Encode data using base64

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov eax, ecx
mov dword [ebp - 0x10], eax
push esi
push edi
mov edi, edx
test eax, eax
je 0x4ac24d
cmp dword [ebp + 0xc], 0
je 0x4ac24d
mov esi, eax
xor ebx, ebx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x4ac1c9
sub esi, ecx
sar esi, 1
xor ecx, ecx
call fcn.0046b356
xor ecx, ecx
call fcn.0046b356
cmp esi, edi
jae 0x4ac1ec
mov edi, esi
mov eax, dword [ebp - 0x10]
mov edx, pe_nt_image_headers32
mov dword [ebp - 8], ebx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], 3
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [ebp - 0x14], ecx
cmp eax, ecx
jae 0x4ac297
movzx ecx, word [edi]
cmp cx, dx
jae 0x4ac24d
cmp byte [ecx + 0x40d180], 0x3f
jbe 0x4ac26b
cmp ecx, 0x20
je 0x4ac28b
cmp ecx, 9
je 0x4ac28b
cmp ecx, 0xd
je 0x4ac28b
cmp ecx, 0xa
je 0x4ac28b
test ebx, ebx
je 0x4ac24d
push 3
mov eax, ebx
pop edx
and eax, edx
je 0x4ac297
cmp ecx, 0x3d
jne 0x4ac24d
cmp eax, 1
jne 0x4ac297
mov ecx, 0x80070057
mov esi, ecx
call fcn.0046b33e
mov ecx, esi
call fcn.0046b356
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.0046c902
mov esi, eax
test esi, esi
js 0x4ac33c
mov ebx, dword [ebp - 8]
mov edx, pe_nt_image_headers32
add edi, 2
cmp edi, dword [ebp - 0x14]
jb 0x4ac211
mov ecx, ebx
xor esi, esi
shr ecx, 2
test ecx, ecx
je 0x4ac2c3
imul edi, ecx, 3
xor edx, edx
mov eax, edi
div dword [ebp - 0xc]
cmp eax, ecx
je 0x4ac2c7
mov eax, 0x80070216
mov ecx, eax
mov esi, eax
call fcn.0046b33e
mov edi, dword [ebp - 4]
jmp 0x4ac2ca
xor edi, edi
xor esi, esi
mov dword [ebp - 4], edi
mov ecx, esi
call fcn.0046b356
test esi, esi
js 0x4ac33c
push 3
mov eax, ebx
pop ecx
and eax, ecx
sub eax, 1
je 0x4ac24d
sub eax, 1
je 0x4ac306
sub eax, 1
jne 0x4ac31d
lea eax, [ebp - 4]
xor edx, edx
push eax
inc edx
mov ecx, edi
call fcn.0046c902
mov esi, eax
test esi, esi
js 0x4ac33c
mov edi, dword [ebp - 4]
lea eax, [ebp - 4]
xor edx, edx
push eax
inc edx
mov ecx, edi
call fcn.0046c902
mov esi, eax
test esi, esi
js 0x4ac33c
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4ac330
mov eax, dword [ebp + 0xc]
xor esi, esi
mov dword [eax], edi
jmp 0x4ac259
mov ecx, dword [ebp + 0xc]
cmp dword [ecx], edi
jae 0x4ac343
mov esi, 0x8007007a
mov ecx, esi
jmp 0x4ac254
mov esi, dword [ebp - 8]
lea edx, [edi + eax]
mov dword [ebp - 0x14], edx
mov ebx, eax
mov dword [ebp - 0xc], ebx
test esi, esi
je 0x4ac452
and dword [ebp - 4], 0
xor edi, edi
mov ecx, dword [ebp - 0x10]
cmp esi, 4
jbe 0x4ac36c
push 4
pop eax
jmp 0x4ac36e
mov eax, esi
cmp edi, eax
jae 0x4ac3a9
movzx edx, word [ecx]
mov eax, pe_nt_image_headers32
cmp ax, dx
jbe 0x4ac39f
mov ebx, edx
movzx eax, bx
mov dl, bl
cmp byte [eax + 0x40d180], 0x3f
jbe 0x4ac39f
add ecx, 2
movzx eax, word [ecx]
mov ebx, eax
mov dl, al
cmp word [ebp - 0x18], ax
ja 0x4ac381
mov byte [ebp + edi - 4], dl
add ecx, 2
inc edi
jmp 0x4ac362
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
cmp ebx, dword [ebp - 0x14]
jae 0x4ac47b
mov eax, dword [ebp - 4]
movzx ecx, ah
movzx eax, al
mov dl, byte [ecx + 0x40d180]
mov cl, byte [eax + 0x40d180]
mov al, dl
shl cl, 2
shr al, 4
or cl, al
mov byte [ebx], cl
inc ebx
mov cl, byte [ebp - 2]
mov dword [ebp - 0xc], ebx
cmp edi, 2
jbe 0x4ac405
cmp ebx, dword [ebp - 0x14]
jae 0x4ac47b
movzx eax, cl
shl dl, 4
mov al, byte [eax + 0x40d180]
shr al, 2
or al, dl
mov byte [ebx], al
inc ebx
mov dword [ebp - 0xc], ebx
push 3
pop eax
cmp edi, eax
jbe 0x4ac42d
cmp ebx, dword [ebp - 0x14]
jae 0x4ac47b
movzx eax, cl
mov cl, byte [eax + 0x40d180]
movzx eax, byte [ebp - 1]
shl cl, 6
or cl, byte [eax + 0x40d180]
mov byte [ebx], cl
inc ebx
mov dword [ebp - 0xc], ebx
lea eax, [ebp - 8]
mov edx, edi
push eax
mov ecx, esi
call fcn.0046c991
mov esi, eax
test esi, esi
js 0x4ac33c
mov esi, dword [ebp - 8]
test esi, esi
jne 0x4ac359
mov eax, dword [ebp + 8]
sub ebx, eax
push 0
pop esi
jns 0x4ac467
mov eax, 0x80070216
mov ecx, eax
mov esi, eax
call fcn.0046b33e
mov ecx, esi
call fcn.0046b356
test esi, esi
jns 0x4ac485
mov ecx, esi
call fcn.0046b33e
jmp 0x4ac48a
mov ecx, 0x8000ffff
jmp 0x4ac252
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
mov ecx, esi
call fcn.0046b356
test esi, esi
jns 0x4ac259
jmp 0x4ac33c