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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
mov ebx, ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], ebx
push esi
push edi
test ebx, ebx
je 0x4d191e
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
test edi, edi
jne 0x4d18b3
test esi, esi
jne 0x4d191e
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4d191e
mov dword [eax], 0
cmp edx, 0xffffffff
jne 0x4d18dc
mov edx, ebx
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x4d18d0
sub edx, ecx
mov dword [ebp - 0x18], edx
lea eax, [ebx + edx]
cmp eax, ebx
jb 0x4d191e
lea eax, [edx + 3]
shr eax, 2
lea eax, [eax + eax*2]
cmp esi, eax
jae 0x4d192a
mov ecx, edx
test edx, edx
je 0x4d1900
cmp byte [ebx + ecx - 1], 0x3d
jne 0x4d1900
dec ecx
jne 0x4d18f6
mov edx, ecx
and edx, 3
jbe 0x4d1915
shr ecx, 2
lea eax, [ecx*2 - 1]
add eax, edx
add eax, ecx
cmp esi, eax
jae 0x4d1927
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x18]
test edi, edi
je 0x4d1d33
lea eax, [edi + esi]
cmp eax, edi
jbe 0x4d1d33
xor esi, esi
mov dword [ebp - 0xc], 0
xor ecx, ecx
mov dword [ebp - 8], 0
mov dword [ebp - 4], esi
test edx, edx
je 0x4d1d1f
lea ebx, [ebx]
xor ebx, ebx
xor eax, eax
xor edi, edi
mov dword [ebp - 0x20], ebx
xor esi, esi
mov dword [ebp - 0x1c], eax
cmp ecx, edx
jae 0x4d1c49
mov eax, dword [ebp - 0x10]
movzx eax, byte [ecx + eax]
inc ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], ecx
cmp eax, 0x41
jl 0x4d198e
cmp eax, 0x5a
jle 0x4d19dc
cmp eax, 0x61
jl 0x4d1998
cmp eax, 0x7a
jle 0x4d19dc
cmp eax, 0x30
jl 0x4d19a2
cmp eax, 0x39
jle 0x4d19dc
cmp eax, 0x2b
je 0x4d19dc
cmp eax, 0x2f
je 0x4d19dc
cmp eax, 0x3d
je 0x4d19d5
cmp eax, 0xd
je 0x4d19cc
cmp eax, 0xa
je 0x4d19cc
cmp eax, 0x20
je 0x4d19cc
cmp eax, 9
je 0x4d19cc
mov dword [ebp - 0xc], 1
cmp ecx, edx
jb 0x4d1976
jmp 0x4d1b17
mov dword [ebp - 8], 1
cmp ecx, edx
jae 0x4d1b17
mov esi, dword [ebp - 0x10]
movzx esi, byte [ecx + esi]
inc ecx
mov dword [ebp - 0x14], ecx
cmp esi, 0x41
jl 0x4d19f9
cmp esi, 0x5a
jle 0x4d1a47
cmp esi, 0x61
jl 0x4d1a03
cmp esi, 0x7a
jle 0x4d1a47
cmp esi, 0x30
jl 0x4d1a0d
cmp esi, 0x39
jle 0x4d1a47
cmp esi, 0x2b
je 0x4d1a47
cmp esi, 0x2f
je 0x4d1a47
cmp esi, 0x3d
je 0x4d1a40
cmp esi, 0xd
je 0x4d1a37
cmp esi, 0xa
je 0x4d1a37
cmp esi, 0x20
je 0x4d1a37
cmp esi, 9
je 0x4d1a37
mov dword [ebp - 0xc], 1
cmp ecx, edx
jb 0x4d19e4
jmp 0x4d1b17
mov dword [ebp - 8], 1
cmp ecx, edx
jae 0x4d1b17
nop
mov edi, dword [ebp - 0x10]
movzx edi, byte [ecx + edi]
inc ecx
mov dword [ebp - 0x14], ecx
cmp edi, 0x41
jl 0x4d1a65
cmp edi, 0x5a
jle 0x4d1ab0
cmp edi, 0x61
jl 0x4d1a6f
cmp edi, 0x7a
jle 0x4d1ab0
cmp edi, 0x30
jl 0x4d1a79
cmp edi, 0x39
jle 0x4d1ab0
cmp edi, 0x2b
je 0x4d1ab0
cmp edi, 0x2f
je 0x4d1ab0
cmp edi, 0x3d
je 0x4d1aa9
cmp edi, 0xd
je 0x4d1aa3
cmp edi, 0xa
je 0x4d1aa3
cmp edi, 0x20
je 0x4d1aa3
cmp edi, 9
je 0x4d1aa3
mov dword [ebp - 0xc], 1
cmp ecx, edx
jb 0x4d1a50
jmp 0x4d1b17
mov dword [ebp - 8], 1
cmp ecx, edx
jae 0x4d1b17
mov ebx, dword [ebp - 0x10]
movzx ebx, byte [ecx + ebx]
inc ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ecx
cmp ebx, 0x41
jl 0x4d1acc
cmp ebx, 0x5a
jle 0x4d1b17
cmp ebx, 0x61
jl 0x4d1ad6
cmp ebx, 0x7a
jle 0x4d1b17
cmp ebx, 0x30
jl 0x4d1ae0
cmp ebx, 0x39
jle 0x4d1b17
cmp ebx, 0x2b
je 0x4d1b17
cmp ebx, 0x2f
je 0x4d1b17
cmp ebx, 0x3d
je 0x4d1b10
cmp ebx, 0xd
je 0x4d1b0a
cmp ebx, 0xa
je 0x4d1b0a
cmp ebx, 0x20
je 0x4d1b0a
cmp ebx, 9
je 0x4d1b0a
mov dword [ebp - 0xc], 1
cmp ecx, edx
jb 0x4d1ab4
jmp 0x4d1b17
mov dword [ebp - 8], 1
cmp eax, 0x41
jl 0x4d1b21
cmp eax, 0x5a
jle 0x4d1b43
cmp eax, 0x61
jl 0x4d1b2b
cmp eax, 0x7a
jle 0x4d1b43
cmp eax, 0x30
jl 0x4d1b35
cmp eax, 0x39
jle 0x4d1b43
cmp eax, 0x2b
je 0x4d1b43
cmp eax, 0x2f
jne 0x4d1c49
cmp esi, 0x41
jl 0x4d1b4d
cmp esi, 0x5a
jle 0x4d1b6f
cmp esi, 0x61
jl 0x4d1b57
cmp esi, 0x7a
jle 0x4d1b6f
cmp esi, 0x30
jl 0x4d1b61
cmp esi, 0x39
jle 0x4d1b6f
cmp esi, 0x2b
je 0x4d1b6f
cmp esi, 0x2f
jne 0x4d1c49
cmp edi, 0x41
jl 0x4d1b79
cmp edi, 0x5a
jle 0x4d1b9b
cmp edi, 0x61
jl 0x4d1b83
cmp edi, 0x7a
jle 0x4d1b9b
cmp edi, 0x30
jl 0x4d1b8d
cmp edi, 0x39
jle 0x4d1b9b
cmp edi, 0x2b
je 0x4d1b9b
cmp edi, 0x2f
jne 0x4d1c49
cmp ebx, 0x41
jl 0x4d1ba5
cmp ebx, 0x5a
jle 0x4d1bc7
cmp ebx, 0x61
jl 0x4d1baf
cmp ebx, 0x7a
jle 0x4d1bc7
cmp ebx, 0x30
jl 0x4d1bb9
cmp ebx, 0x39
jle 0x4d1bc7
cmp ebx, 0x2b
je 0x4d1bc7
cmp ebx, 0x2f
jne 0x4d1c49
movzx eax, byte [eax + 0x58b610]
movzx edx, byte [esi + 0x58b610]
movzx ebx, byte [edi + 0x58b610]
mov ecx, edx
mov esi, dword [ebp - 4]
mov edi, dword [ebp + 8]
shl al, 2
sar ecx, 4
and cl, 3
shl dl, 4
or cl, al
mov eax, ebx
sar eax, 2
and al, 0xf
mov byte [esi + edi], cl
or al, dl
shl bl, 6
mov byte [esi + edi + 1], al
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax + 0x58b610]
and al, 0x3f
or al, bl
mov byte [esi + edi + 2], al
add esi, 3
cmp dword [ebp - 8], 0
mov dword [ebp - 4], esi
jne 0x4d1d1f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
cmp ecx, edx
jb 0x4d1960
mov ecx, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0xc], eax
pop edi
sete al
mov dword [ecx], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, eax
call fcn.004d1680
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4d1d1c
mov ecx, esi
call fcn.004d1680
test eax, eax
je 0x4d1cc9
mov ecx, edi
call fcn.004d1680
test eax, eax
je 0x4d1cc9
cmp ebx, 0x3d
jne 0x4d1cc9
movzx edx, byte [esi + 0x58b610]
mov eax, dword [ebp - 0x1c]
mov ecx, edx
mov esi, dword [ebp - 4]
mov ebx, dword [ebp + 8]
sar ecx, 4
movzx eax, byte [eax + 0x58b610]
and cl, 3
shl al, 2
or cl, al
shl dl, 4
movzx eax, byte [edi + 0x58b610]
shr al, 2
mov byte [esi + ebx], cl
and al, 0xf
mov ecx, dword [ebp + 0x10]
or al, dl
mov byte [esi + ebx + 1], al
add esi, 2
xor eax, eax
cmp dword [ebp - 0xc], eax
pop edi
mov dword [ecx], esi
sete al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4d1d1c
mov ecx, esi
call fcn.004d1680
test eax, eax
je 0x4d1d1c
cmp edi, 0x3d
jne 0x4d1d1c
cmp ebx, edi
jne 0x4d1d1c
mov cl, byte [esi + 0x58b610]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 4]
mov ebx, dword [ebp + 8]
shr cl, 4
mov al, byte [eax + 0x58b610]
and cl, 3
shl al, 2
or cl, al
xor eax, eax
mov byte [esi + ebx], cl
inc esi
mov ecx, dword [ebp + 0x10]
cmp dword [ebp - 0xc], eax
pop edi
sete al
mov dword [ecx], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0xc], eax
pop edi
sete al
mov dword [ecx], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
test esi, esi
pop esi
sete al
pop ebx
mov esp, ebp
pop ebp
ret