Function at 0x50a290
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0xc
push ebx
push ebp
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
push esi
push edi
jne 0x50a2b3
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
cmp dl, bl
jne 0x50a2a4
sub eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffffc
cmp eax, ebx
mov dword [esp + 0x10], ebx
mov ebp, ecx
mov dword [esp + 0x18], ebx
jle 0x50a536
add eax, 0xffffffff
shr eax, 2
add eax, 1
lea ecx, [eax + eax*2]
lea edx, [eax*4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edx
mov edx, dword [ebp]
or esi, 0xffffffff
cmp dl, 0x41
jl 0x50a30b
cmp dl, 0x5a
jg 0x50a30b
movsx esi, dl
sub esi, 0x41
jmp 0x50a345
cmp dl, 0x61
jl 0x50a31d
cmp dl, 0x7a
jg 0x50a31d
movsx esi, dl
sub esi, 0x47
jmp 0x50a345
cmp dl, 0x30
jl 0x50a32f
cmp dl, 0x39
jg 0x50a32f
movsx esi, dl
add esi, 4
jmp 0x50a345
cmp dl, 0x2b
jne 0x50a33b
mov esi, 0x3e
jmp 0x50a345
cmp dl, 0x2f
jne 0x50a345
mov esi, 0x3f
mov eax, edx
shr eax, 8
mov bl, al
sub bl, 0x41
or ecx, 0xffffffff
cmp bl, 0x19
ja 0x50a35f
movsx ecx, al
sub ecx, 0x41
jmp 0x50a397
mov bl, al
sub bl, 0x61
cmp bl, 0x19
ja 0x50a371
movsx ecx, al
sub ecx, 0x47
jmp 0x50a397
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x50a383
movsx ecx, al
add ecx, 4
jmp 0x50a397
cmp al, 0x2b
jne 0x50a38e
mov ecx, 0x3e
jmp 0x50a397
cmp al, 0x2f
jne 0x50a397
mov ecx, 0x3f
lea edi, [ecx*4]
sar edi, 6
lea ecx, [esi*4]
or edi, ecx
mov bl, al
sub bl, 0x41
and edi, 0xff
or ecx, 0xffffffff
cmp bl, 0x19
ja 0x50a3c5
movsx ecx, al
sub ecx, 0x41
jmp 0x50a3fd
mov bl, al
sub bl, 0x61
cmp bl, 0x19
ja 0x50a3d7
movsx ecx, al
sub ecx, 0x47
jmp 0x50a3fd
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x50a3e9
movsx ecx, al
add ecx, 4
jmp 0x50a3fd
cmp al, 0x2b
jne 0x50a3f4
mov ecx, 0x3e
jmp 0x50a3fd
cmp al, 0x2f
jne 0x50a3fd
mov ecx, 0x3f
mov eax, edx
shr eax, 0x10
mov bl, al
sub bl, 0x41
or esi, 0xffffffff
cmp bl, 0x19
ja 0x50a417
movsx esi, al
sub esi, 0x41
jmp 0x50a44f
mov bl, al
sub bl, 0x61
cmp bl, 0x19
ja 0x50a429
movsx esi, al
sub esi, 0x47
jmp 0x50a44f
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x50a43b
movsx esi, al
add esi, 4
jmp 0x50a44f
cmp al, 0x2b
jne 0x50a446
mov esi, 0x3e
jmp 0x50a44f
cmp al, 0x2f
jne 0x50a44f
mov esi, 0x3f
add esi, esi
add esi, esi
sar esi, 4
shl ecx, 4
or esi, ecx
mov bl, al
sub bl, 0x41
and esi, 0xff
or ecx, 0xffffffff
cmp bl, 0x19
ja 0x50a476
movsx ecx, al
sub ecx, 0x41
jmp 0x50a4ae
mov bl, al
sub bl, 0x61
cmp bl, 0x19
ja 0x50a488
movsx ecx, al
sub ecx, 0x47
jmp 0x50a4ae
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x50a49a
movsx ecx, al
add ecx, 4
jmp 0x50a4ae
cmp al, 0x2b
jne 0x50a4a5
mov ecx, 0x3e
jmp 0x50a4ae
cmp al, 0x2f
jne 0x50a4ae
mov ecx, 0x3f
shr edx, 0x18
mov bl, dl
sub bl, 0x41
or eax, 0xffffffff
cmp bl, 0x19
ja 0x50a4c6
movsx eax, dl
sub eax, 0x41
jmp 0x50a500
mov bl, dl
sub bl, 0x61
cmp bl, 0x19
ja 0x50a4d8
movsx eax, dl
sub eax, 0x47
jmp 0x50a500
mov bl, dl
sub bl, 0x30
cmp bl, 9
ja 0x50a4ea
movsx eax, dl
add eax, 4
jmp 0x50a500
cmp dl, 0x2b
jne 0x50a4f6
mov eax, 0x3e
jmp 0x50a500
cmp dl, 0x2f
jne 0x50a500
mov eax, 0x3f
shl ecx, 6
lea edx, [eax*4]
mov eax, dword [esp + 0x20]
sar edx, 2
or edx, ecx
xor ecx, ecx
mov ch, dl
add eax, 3
add ebp, 4
mov dword [esp + 0x20], eax
or ecx, esi
shl ecx, 8
or ecx, edi
sub dword [esp + 0x14], 1
mov dword [eax - 3], ecx
jne 0x50a2f3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jge 0x50a7c0
sub ecx, eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], eax
jle 0x50a565
push ecx
lea edx, [esp + 0x28]
push ebp
push edx
call fcn.005e796e
mov eax, dword [esp + 0x30]
add esp, 0xc
or edx, 0xffffffff
cmp al, 0x41
jl 0x50a578
cmp al, 0x5a
jg 0x50a578
movsx edx, al
sub edx, 0x41
jmp 0x50a5ac
cmp al, 0x61
jl 0x50a588
cmp al, 0x7a
jg 0x50a588
movsx edx, al
sub edx, 0x47
jmp 0x50a5ac
cmp al, 0x30
jl 0x50a598
cmp al, 0x39
jg 0x50a598
movsx edx, al
add edx, 4
jmp 0x50a5ac
cmp al, 0x2b
jne 0x50a5a3
mov edx, 0x3e
jmp 0x50a5ac
cmp al, 0x2f
jne 0x50a5ac
mov edx, 0x3f
shr eax, 8
mov bl, al
sub bl, 0x41
or ecx, 0xffffffff
cmp bl, 0x19
ja 0x50a5c4
movsx ecx, al
sub ecx, 0x41
jmp 0x50a5fc
mov bl, al
sub bl, 0x61
cmp bl, 0x19
ja 0x50a5d6
movsx ecx, al
sub ecx, 0x47
jmp 0x50a5fc
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x50a5e8
movsx ecx, al
add ecx, 4
jmp 0x50a5fc
cmp al, 0x2b
jne 0x50a5f3
mov ecx, 0x3e
jmp 0x50a5fc
cmp al, 0x2f
jne 0x50a5fc
mov ecx, 0x3f
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add ecx, ecx
add ecx, ecx
add dl, dl
sar ecx, 6
add dl, dl
or cl, dl
mov byte [edi], cl
add edi, 1
add ebp, 1
cmp al, 0x3d
je 0x50a6e6
mov edx, esi
shr edx, 0x10
cmp dl, 0x3d
je 0x50a6e6
mov bl, al
sub bl, 0x41
or ecx, 0xffffffff
cmp bl, 0x19
ja 0x50a648
movsx ecx, al
sub ecx, 0x41
jmp 0x50a680
mov bl, al
sub bl, 0x61
cmp bl, 0x19
ja 0x50a65a
movsx ecx, al
sub ecx, 0x47
jmp 0x50a680
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x50a66c
movsx ecx, al
add ecx, 4
jmp 0x50a680
cmp al, 0x2b
jne 0x50a677
mov ecx, 0x3e
jmp 0x50a680
cmp al, 0x2f
jne 0x50a680
mov ecx, 0x3f
mov bl, dl
sub bl, 0x41
or eax, 0xffffffff
cmp bl, 0x19
ja 0x50a695
movsx eax, dl
sub eax, 0x41
jmp 0x50a6cf
mov bl, dl
sub bl, 0x61
cmp bl, 0x19
ja 0x50a6a7
movsx eax, dl
sub eax, 0x47
jmp 0x50a6cf
mov bl, dl
sub bl, 0x30
cmp bl, 9
ja 0x50a6b9
movsx eax, dl
add eax, 4
jmp 0x50a6cf
cmp dl, 0x2b
jne 0x50a6c5
mov eax, 0x3e
jmp 0x50a6cf
cmp dl, 0x2f
jne 0x50a6cf
mov eax, 0x3f
lea edx, [eax*4]
sar edx, 4
shl cl, 4
or dl, cl
mov byte [edi], dl
add edi, 1
add ebp, 1
mov eax, esi
shr eax, 0x10
cmp al, 0x3d
je 0x50a7b1
mov edx, esi
shr edx, 0x18
cmp edx, 0x3d
je 0x50a7b1
mov bl, al
sub bl, 0x41
or ecx, 0xffffffff
cmp bl, 0x19
ja 0x50a716
movsx ecx, al
sub ecx, 0x41
jmp 0x50a74e
mov bl, al
sub bl, 0x61
cmp bl, 0x19
ja 0x50a728
movsx ecx, al
sub ecx, 0x47
jmp 0x50a74e
mov bl, al
sub bl, 0x30
cmp bl, 9
ja 0x50a73a
movsx ecx, al
add ecx, 4
jmp 0x50a74e
cmp al, 0x2b
jne 0x50a745
mov ecx, 0x3e
jmp 0x50a74e
cmp al, 0x2f
jne 0x50a74e
mov ecx, 0x3f
mov bl, dl
sub bl, 0x41
or eax, 0xffffffff
cmp bl, 0x19
ja 0x50a763
movsx eax, dl
sub eax, 0x41
jmp 0x50a79d
mov bl, dl
sub bl, 0x61
cmp bl, 0x19
ja 0x50a775
movsx eax, dl
sub eax, 0x47
jmp 0x50a79d
mov bl, dl
sub bl, 0x30
cmp bl, 9
ja 0x50a787
movsx eax, dl
add eax, 4
jmp 0x50a79d
cmp dl, 0x2b
jne 0x50a793
mov eax, 0x3e
jmp 0x50a79d
cmp dl, 0x2f
jne 0x50a79d
mov eax, 0x3f
add eax, eax
add eax, eax
sar eax, 2
shl cl, 6
or al, cl
mov byte [edi], al
add edi, 1
add ebp, 1
mov byte [edi], 0
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0xc
ret 8
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov byte [ecx], 0
pop ebx
add esp, 0xc
ret 8