Function at 0x44e38d
Capabilities:
Decode data using base64 via dword translation table
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
je 0x44e69c
cmp dword [ebp + 0x10], ebx
je 0x44e69c
cmp dword [ebp + 0x18], ebx
je 0x44e69c
mov eax, dword [ebp + 0xc]
lea ecx, [eax + 3]
shr ecx, 2
imul ecx, ecx, 3
cmp dword [ebp + 0x14], ecx
jb 0x44e69c
push esi
push edi
xor edi, edi
xor esi, esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], edi
cmp eax, ebx
jbe 0x44e68c
jmp 0x44e3e4
mov edi, dword [ebp - 8]
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], ebx
cmp edi, dword [ebp + 0xc]
jae 0x44e52c
mov eax, dword [ebp + 8]
movzx eax, byte [edi + eax]
inc edi
push eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
call fcn.0044e193
pop ecx
test eax, eax
jne 0x44e440
mov eax, dword [ebp - 4]
cmp eax, 0x3d
je 0x44e439
cmp eax, 0xd
je 0x44e432
cmp eax, 0xa
je 0x44e432
cmp eax, 0x20
je 0x44e432
cmp eax, 9
je 0x44e432
mov dword [ebp - 0x14], 1
cmp edi, dword [ebp + 0xc]
jb 0x44e3f6
jmp 0x44e440
mov dword [ebp - 0x10], 1
cmp edi, dword [ebp + 0xc]
jae 0x44e52c
mov eax, dword [ebp + 8]
movzx ebx, byte [edi + eax]
inc edi
push ebx
mov dword [ebp - 8], edi
call fcn.0044e193
pop ecx
test eax, eax
jne 0x44e48d
cmp ebx, 0x3d
je 0x44e486
cmp ebx, 0xd
je 0x44e47f
cmp ebx, 0xa
je 0x44e47f
cmp ebx, 0x20
je 0x44e47f
cmp ebx, 9
je 0x44e47f
mov dword [ebp - 0x14], 1
cmp edi, dword [ebp + 0xc]
jb 0x44e449
jmp 0x44e48d
mov dword [ebp - 0x10], 1
cmp edi, dword [ebp + 0xc]
jae 0x44e52c
mov eax, dword [ebp + 8]
movzx eax, byte [edi + eax]
inc edi
push eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], edi
call fcn.0044e193
pop ecx
test eax, eax
jne 0x44e51e
mov eax, dword [ebp - 0x18]
cmp eax, 0x3d
je 0x44e4d9
cmp eax, 0xd
je 0x44e4d2
cmp eax, 0xa
je 0x44e4d2
cmp eax, 0x20
je 0x44e4d2
cmp eax, 9
je 0x44e4d2
mov dword [ebp - 0x14], 1
cmp edi, dword [ebp + 0xc]
jb 0x44e496
jmp 0x44e51e
mov dword [ebp - 0x10], 1
jmp 0x44e51e
mov eax, dword [ebp + 8]
movzx eax, byte [edi + eax]
inc edi
push eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edi
call fcn.0044e193
pop ecx
test eax, eax
jne 0x44e52c
mov eax, dword [ebp - 0xc]
cmp eax, 0x3d
je 0x44e525
cmp eax, 0xd
je 0x44e51e
cmp eax, 0xa
je 0x44e51e
cmp eax, 0x20
je 0x44e51e
cmp eax, 9
je 0x44e51e
mov dword [ebp - 0x14], 1
cmp edi, dword [ebp + 0xc]
jb 0x44e4e2
jmp 0x44e52c
mov dword [ebp - 0x10], 1
push dword [ebp - 4]
call fcn.0044e193
pop ecx
test eax, eax
je 0x44e5df
push ebx
call fcn.0044e193
pop ecx
test eax, eax
je 0x44e5df
mov edi, dword [ebp - 0x18]
push edi
call fcn.0044e193
pop ecx
test eax, eax
je 0x44e5e2
push dword [ebp - 0xc]
call fcn.0044e193
pop ecx
test eax, eax
je 0x44e5e2
movzx ecx, byte [ebx + 0x5fd550]
movzx edi, byte [edi + 0x5fd550]
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0x5fd550]
mov edx, edi
and edx, 3
shl edx, 6
and eax, 0x3f
or eax, edx
mov edx, dword [ebp - 4]
mov dl, byte [edx + 0x5fd550]
mov ebx, ecx
sar ebx, 4
and bl, 3
shl dl, 2
or bl, dl
mov edx, dword [ebp + 0x10]
mov byte [esi + edx], bl
mov ebx, edi
sar ebx, 2
and bl, 0xf
shl cl, 4
or bl, cl
mov byte [esi + edx + 1], bl
mov byte [esi + edx + 2], al
add esi, 3
cmp dword [ebp - 0x10], 0
jne 0x44e68c
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 8], eax
jb 0x44e3df
jmp 0x44e68c
mov edi, dword [ebp - 0x18]
push dword [ebp - 4]
call fcn.0044e193
pop ecx
mov dword [ebp + 8], eax
test eax, eax
je 0x44e651
push ebx
call fcn.0044e193
pop ecx
test eax, eax
je 0x44e651
push edi
call fcn.0044e193
pop ecx
test eax, eax
je 0x44e651
cmp dword [ebp - 0xc], 0x3d
jne 0x44e651
movzx ecx, byte [ebx + 0x5fd550]
movzx eax, byte [edi + 0x5fd550]
mov edx, ecx
and edx, 0xf
shl edx, 4
shr eax, 2
and eax, 0xf
or eax, edx
mov edx, ecx
mov ecx, dword [ebp - 4]
mov cl, byte [ecx + 0x5fd550]
sar edx, 4
shl cl, 2
and dl, 3
or dl, cl
mov ecx, dword [ebp + 0x10]
mov byte [esi + ecx], dl
mov byte [esi + ecx + 1], al
add esi, 2
jmp 0x44e68c
cmp dword [ebp + 8], 0
je 0x44e68c
push ebx
call fcn.0044e193
pop ecx
test eax, eax
je 0x44e68c
cmp edi, 0x3d
jne 0x44e68c
cmp dword [ebp - 0xc], edi
jne 0x44e68c
mov al, byte [ebx + 0x5fd550]
mov ecx, dword [ebp - 4]
mov cl, byte [ecx + 0x5fd550]
shr al, 4
shl cl, 2
and al, 3
or al, cl
mov ecx, dword [ebp + 0x10]
mov byte [esi + ecx], al
inc esi
mov eax, dword [ebp + 0x18]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
neg eax
pop edi
sbb eax, eax
pop esi
jmp 0x44e69f
or eax, 0xffffffff
pop ebx
leave
ret