Function at 0x10097e50
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, dword [esp + 0x20]
push esi
push edi
mov edi, dword [esp + 0x2c]
test edi, edi
jne 0x10097e75
mov edi, ebp
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x10097e68
sub edi, ecx
mov dword [esp + 0x2c], edi
xor ecx, ecx
lea eax, [edi - 4]
xor edx, edx
mov dword [esp + 0x28], ecx
mov ebx, 0x3f
mov dword [esp + 0x14], ebx
test eax, eax
jle 0x100980cd
mov edi, dword [esp + 0x24]
lea ecx, [eax - 1]
shr ecx, 2
inc ecx
mov dword [esp + 0x10], ecx
lea eax, [ecx + ecx*2]
shl ecx, 2
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
nop
mov edx, dword [ebp]
or esi, 0xffffffff
mov al, dl
sub al, 0x41
cmp al, 0x19
ja 0x10097ec6
movsx esi, dl
sub esi, 0x41
jmp 0x10097ef8
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x10097ed6
movsx esi, dl
sub esi, 0x47
jmp 0x10097ef8
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x10097ee6
movsx esi, dl
add esi, 4
jmp 0x10097ef8
cmp dl, 0x2b
jne 0x10097ef2
mov esi, 0x3e
jmp 0x10097ef8
cmp dl, 0x2f
cmove esi, ebx
mov ecx, edx
or ebx, 0xffffffff
shr ecx, 8
mov al, cl
sub al, 0x41
mov byte [esp + 0x24], al
cmp al, 0x19
ja 0x10097f14
movsx ebx, cl
sub ebx, 0x41
jmp 0x10097f4b
mov al, cl
sub al, 0x61
cmp al, 0x19
ja 0x10097f24
movsx ebx, cl
sub ebx, 0x47
jmp 0x10097f4b
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10097f34
movsx ebx, cl
add ebx, 4
jmp 0x10097f4b
cmp cl, 0x2b
jne 0x10097f40
mov ebx, 0x3e
jmp 0x10097f4b
cmp cl, 0x2f
mov eax, 0x3f
cmove ebx, eax
lea eax, [esi*4]
sar ebx, 4
or ebx, eax
or esi, 0xffffffff
cmp byte [esp + 0x24], 0x19
movzx eax, bl
mov dword [esp + 0x18], eax
ja 0x10097f70
movsx esi, cl
sub esi, 0x41
jmp 0x10097fa7
mov al, cl
sub al, 0x61
cmp al, 0x19
ja 0x10097f80
movsx esi, cl
sub esi, 0x47
jmp 0x10097fa7
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10097f90
movsx esi, cl
add esi, 4
jmp 0x10097fa7
cmp cl, 0x2b
jne 0x10097f9c
mov esi, 0x3e
jmp 0x10097fa7
cmp cl, 0x2f
mov eax, 0x3f
cmove esi, eax
mov ecx, edx
or ebx, 0xffffffff
shr ecx, 0x10
mov ah, cl
sub ah, 0x41
cmp ah, 0x19
ja 0x10097fc1
movsx ebx, cl
sub ebx, 0x41
jmp 0x10097ff5
mov al, cl
sub al, 0x61
cmp al, 0x19
ja 0x10097fd1
movsx ebx, cl
sub ebx, 0x47
jmp 0x10097ff5
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10097fe1
movsx ebx, cl
add ebx, 4
jmp 0x10097ff5
cmp cl, 0x2b
jne 0x10097fed
mov ebx, 0x3e
jmp 0x10097ff5
cmp cl, 0x2f
cmove ebx, dword [esp + 0x14]
sar ebx, 2
shl esi, 4
or ebx, esi
movzx esi, bl
or ebx, 0xffffffff
cmp ah, 0x19
ja 0x10098010
movsx ebx, cl
sub ebx, 0x41
jmp 0x10098044
mov al, cl
sub al, 0x61
cmp al, 0x19
ja 0x10098020
movsx ebx, cl
sub ebx, 0x47
jmp 0x10098044
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x1009802d
movsx ebx, cl
jmp 0x10098044
cmp cl, 0x2b
jne 0x10098039
mov ebx, 0x3e
jmp 0x10098044
cmp cl, 0x2f
mov eax, 0x3f
cmove ebx, eax
shr edx, 0x18
or ecx, 0xffffffff
mov al, dl
sub al, 0x41
cmp al, 0x19
ja 0x1009805a
movsx ecx, dl
sub ecx, 0x41
jmp 0x10098091
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x1009806a
movsx ecx, dl
sub ecx, 0x47
jmp 0x10098091
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x1009807a
movsx ecx, dl
add ecx, 4
jmp 0x10098091
cmp dl, 0x2b
jne 0x10098086
mov ecx, 0x3e
jmp 0x10098091
cmp dl, 0x2f
mov eax, 0x3f
cmove ecx, eax
shl ebx, 6
add ebp, 4
or ebx, ecx
movzx eax, bl
mov ebx, 0x3f
shl eax, 8
or eax, esi
shl eax, 8
or eax, dword [esp + 0x18]
mov dword [edi], eax
add edi, 3
sub dword [esp + 0x10], 1
jne 0x10097eb0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x2c]
cmp edx, edi
jge 0x10098333
sub edi, edx
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x2c], ecx
test edi, edi
jle 0x100980f6
mov al, byte [ebp]
lea ebp, [ebp + 1]
mov byte [esp + edx + 0x2c], al
inc edx
cmp edx, edi
jl 0x100980e3
mov ecx, dword [esp + 0x2c]
lea edx, [ecx - 0x41]
cmp dl, 0x19
jbe 0x1009812c
mov al, cl
sub al, 0x61
cmp al, 0x19
ja 0x1009810b
lea edx, [ecx - 0x47]
jmp 0x1009812c
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x10098118
lea edx, [ecx + 4]
jmp 0x1009812c
cmp cl, 0x2b
jne 0x10098121
mov dl, 0x3e
jmp 0x1009812c
or al, 0xff
cmp cl, 0x2f
movzx edx, al
cmove edx, ebx
mov eax, ecx
mov edi, 0x3f
shr eax, 8
mov dword [esp + 0x2c], eax
lea ebx, [eax - 0x41]
cmp bl, 0x19
ja 0x1009814a
movsx eax, al
sub eax, 0x41
jmp 0x10098183
sub al, 0x61
cmp al, 0x19
mov eax, dword [esp + 0x2c]
ja 0x1009815c
movsx eax, al
sub eax, 0x47
jmp 0x10098183
sub al, 0x30
cmp al, 9
mov eax, dword [esp + 0x2c]
ja 0x1009816e
movsx eax, al
add eax, 4
jmp 0x10098183
cmp al, 0x2b
jne 0x10098179
mov eax, 0x3e
jmp 0x10098183
cmp al, 0x2f
mov eax, 0xffffffff
cmove eax, edi
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
shl dl, 2
inc ebp
sar eax, 4
or al, dl
mov edx, dword [esp + 0x2c]
mov byte [esi], al
inc esi
cmp dl, 0x3d
je 0x10098245
mov eax, ecx
shr eax, 0x10
mov dword [esp + 0x24], eax
cmp al, 0x3d
je 0x10098245
cmp bl, 0x19
jbe 0x100981ec
mov al, dl
sub al, 0x61
cmp al, 0x19
ja 0x100981c7
lea ebx, [edx - 0x47]
jmp 0x100981e8
mov al, dl
sub al, 0x30
cmp al, 9
ja 0x100981d4
lea ebx, [edx + 4]
jmp 0x100981e8
cmp dl, 0x2b
jne 0x100981dd
mov bl, 0x3e
jmp 0x100981e8
or al, 0xff
cmp dl, 0x2f
movzx ebx, al
cmove ebx, edi
mov eax, dword [esp + 0x24]
sub al, 0x41
or edx, 0xffffffff
cmp al, 0x19
mov eax, dword [esp + 0x24]
ja 0x10098201
movsx edx, al
sub edx, 0x41
jmp 0x10098239
sub al, 0x61
cmp al, 0x19
ja 0x10098213
mov eax, dword [esp + 0x24]
movsx edx, al
sub edx, 0x47
jmp 0x10098239
mov al, byte [esp + 0x24]
sub al, 0x30
cmp al, 9
mov eax, dword [esp + 0x24]
ja 0x10098229
movsx edx, al
add edx, 4
jmp 0x10098239
cmp al, 0x2b
jne 0x10098234
mov edx, 0x3e
jmp 0x10098239
cmp al, 0x2f
cmove edx, edi
sar edx, 2
shl bl, 4
or dl, bl
mov byte [esi], dl
inc esi
inc ebp
mov ebx, ecx
shr ebx, 0x10
cmp bl, 0x3d
je 0x10098324
shr ecx, 0x18
cmp ecx, 0x3d
je 0x10098324
lea edx, [ebx - 0x41]
cmp dl, 0x19
jbe 0x10098294
mov al, bl
sub al, 0x61
cmp al, 0x19
ja 0x10098274
lea edx, [ebx - 0x47]
jmp 0x10098294
mov al, bl
sub al, 0x30
cmp al, 9
ja 0x10098280
mov dl, bl
jmp 0x10098294
cmp bl, 0x2b
jne 0x10098289
mov dl, 0x3e
jmp 0x10098294
or al, 0xff
cmp bl, 0x2f
movzx edx, al
cmove edx, edi
mov al, cl
sub al, 0x41
cmp al, 0x19
jbe 0x1009830c
mov al, cl
sub al, 0x61
cmp al, 0x19
mov al, cl
ja 0x100982c0
sub al, 0x47
shl dl, 6
or dl, al
lea eax, [ebp + 1]
pop edi
mov byte [esi], dl
mov byte [esi + 1], 0
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc
sub al, 0x30
cmp al, 9
ja 0x100982e2
mov al, cl
shl dl, 6
add al, 4
or dl, al
lea eax, [ebp + 1]
pop edi
mov byte [esi], dl
mov byte [esi + 1], 0
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc
cmp cl, 0x2b
jne 0x10098301
mov al, 0x3e
shl dl, 6
or dl, al
lea eax, [ebp + 1]
pop edi
mov byte [esi], dl
mov byte [esi + 1], 0
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc
or al, 0xff
cmp cl, 0x2f
movzx eax, al
cmove eax, edi
shl dl, 6
or dl, al
lea eax, [ebp + 1]
pop edi
mov byte [esi], dl
mov byte [esi + 1], 0
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc
pop edi
mov byte [esi], 0
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc
mov esi, dword [esp + 0x24]
mov eax, ecx
pop edi
mov byte [esi], 0
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0xc