Function at 0x10044446
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
call fcn.1003d84c
test al, al
je 0x10044469
pop edx
push eax
pop ecx
push ecx
pop edx
push esp
push edi
push ebx
pop edx
push esp
push edx
pop ebp
pop ebx
pop edx
pop ebx
pop edx
pop esp
pop ebx
pop ebx
call fcn.1003d59a
test al, al
je 0x10044490
pop ecx
push ebx
pop ebp
pop esi
push edi
push ecx
push esi
push ecx
push ebx
push ebp
pop ecx
pop ebp
pop ebx
push edx
push esp
pop esp
pop eax
pop esi
push eax
pop eax
push edi
push ebx
pop ebx
push edx
push edx
pop ecx
push edi
pop esi
pop edi
pop esp
call fcn.1003d9a5
test al, al
je 0x100444a9
pop esi
pop eax
pop esp
push edx
push esi
push edi
push eax
push edx
pop ebp
pop edi
pop edi
pop edi
pop esp
push edx
pop ebp
push edi
call fcn.1003d77d
test al, al
je 0x100444c5
push ecx
pop esi
pop ebp
pop edx
pop eax
pop esp
push ebx
push esi
pop edx
pop esp
push ebp
pop ebx
push esp
push edi
pop ebp
push ebx
push ebx
pop ebx
pop esp
call fcn.1003d5df
test al, al
je 0x100444e5
pop esp
pop esi
pop edi
pop esi
pop ebp
push ebp
push ecx
pop ebp
push eax
push eax
push edx
pop edi
push edi
push esp
pop edx
push edi
pop ebx
pop edi
push ebx
pop eax
pop ecx
pop esp
push esi
xor ecx, ecx
xor edx, edx
xor edi, edi
cmp dword [ebp + 0xc], ecx
jle 0x1004460a
mov esi, dword [ebp + 8]
mov al, byte [edi + esi]
cmp al, 0x3d
jne 0x10044504
inc edx
cmp edx, 2
jg 0x10044545
cmp al, 0x7f
ja 0x10044545
movzx eax, al
mov al, byte [eax + 0x10182c68]
cmp al, 0x7f
je 0x10044545
cmp al, 0x40
jae 0x1004451d
test edx, edx
jne 0x10044545
inc ecx
inc edi
mov dword [ebp - 4], edi
cmp edi, dword [ebp + 0xc]
jl 0x100444f7
test ecx, ecx
je 0x1004460a
imul eax, ecx, 6
mov ecx, dword [ebp + 0x14]
add eax, 7
sar eax, 3
cmp dword [ecx], eax
jge 0x1004454d
mov dword [ecx], eax
push 0xfffffffffffffff0
jmp 0x10044547
push 0xffffffffffffffee
pop eax
jmp 0x1004460c
call fcn.1003d891
test al, al
je 0x10044578
pop eax
push ebp
pop esi
push ebx
pop esi
pop eax
push esi
push eax
push ebp
push ebp
push esp
push eax
push ebp
push ebx
push esp
push esp
pop edi
push eax
push edi
pop esp
push ecx
pop eax
pop ebx
pop edx
push ecx
push ebx
push ebp
pop ebx
pop edx
push esp
pop ebp
mov edi, dword [ebp - 4]
call fcn.1003d6f3
test al, al
je 0x10044592
pop ebx
pop esi
push edx
pop eax
pop eax
push esp
push ecx
push ebx
push ebx
pop eax
push esi
pop esi
push ebx
pop ebp
push esp
push edi
push eax
mov edx, dword [ebp + 0x10]
xor eax, eax
push 3
xor ebx, ebx
mov dword [ebp + 0xc], eax
pop esi
test edi, edi
jle 0x10044602
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
mov cl, byte [eax + 0x10182c68]
xor eax, eax
cmp cl, 0x40
sete al
shl ebx, 6
sub esi, eax
movzx eax, cl
mov ecx, dword [ebp + 0xc]
and eax, 0x3f
or ebx, eax
inc ecx
mov dword [ebp + 0xc], ecx
cmp ecx, 4
jne 0x100445f6
xor eax, eax
mov dword [ebp + 0xc], eax
test esi, esi
jle 0x100445e1
mov eax, ebx
shr eax, 0x10
mov byte [edx], al
inc edx
cmp esi, 1
jle 0x100445ee
mov eax, ebx
shr eax, 8
mov byte [edx], al
inc edx
cmp esi, 2
jle 0x100445f6
mov byte [edx], bl
inc edx
mov eax, dword [ebp + 8]
dec edi
inc eax
mov dword [ebp + 8], eax
test edi, edi
jg 0x100445a6
mov eax, dword [ebp + 0x14]
sub edx, dword [ebp + 0x10]
mov dword [eax], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret