Function at 0x1009ce70
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
sub edx, eax
je 0x1009cf5e
cmp edx, 2
jb 0x1009cf5e
cmp byte [eax], 0x64
jne 0x1009cf5e
movzx edx, byte [eax + 1]
cmp edx, 0x58
je 0x1009d015
cmp edx, 0x78
je 0x1009cf6a
cmp edx, 0x69
jne 0x1009cf5e
add eax, 2
mov dword [ecx], eax
mov ebx, ecx
call fcn.10098db0
xor esi, esi
test eax, eax
je 0x1009d0cd
mov edi, eax
mov ecx, ebx
call fcn.1009ce70
test eax, eax
je 0x1009d0cd
mov ecx, ebx
mov ebp, dword [ebx + 0x1198]
mov ecx, dword [ebp + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x1009cf1f
mov esi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x1009d0d7
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [ebx + 0x1198], eax
xor ecx, ecx
mov ebp, eax
mov eax, esi
lea edx, [ecx + 0x20]
mov dword [ebp + 4], edx
lea esi, [ecx + ebp]
add esi, 8
mov byte [ebp + ecx + 0xc], 0x51
and byte [ebp + ecx + 0x10], 0xc0
movzx edx, byte [ebp + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebp + ecx + 0x14], dl
mov dword [ebp + ecx + 8], 0x100bfe2c
mov dword [ebp + ecx + 0x18], edi
mov dword [ebp + ecx + 0x1c], eax
mov byte [ebp + ecx + 0x20], 0
jmp 0x1009d0cd
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.1009a8c0
add eax, 2
mov dword [ecx], eax
mov ebx, ecx
call fcn.1009a8c0
xor esi, esi
test eax, eax
je 0x1009d0cd
mov edi, eax
mov ecx, ebx
call fcn.1009ce70
test eax, eax
je 0x1009d0cd
mov ecx, ebx
mov ebp, dword [ebx + 0x1198]
mov ecx, dword [ebp + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x1009cfd6
mov esi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x1009d0d7
mov dword [eax], ebp
mov dword [eax + 4], 0
mov dword [ebx + 0x1198], eax
xor ecx, ecx
mov ebp, eax
mov eax, esi
lea edx, [ecx + 0x20]
mov dword [ebp + 4], edx
lea esi, [ecx + ebp]
add esi, 8
mov byte [ebp + ecx + 0xc], 0x51
and byte [ebp + ecx + 0x10], 0xc0
movzx edx, byte [ebp + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebp + ecx + 0x14], dl
mov dword [ebp + ecx + 8], 0x100bfe2c
mov dword [ebp + ecx + 0x18], edi
mov dword [ebp + ecx + 0x1c], eax
mov byte [ebp + ecx + 0x20], 1
jmp 0x1009d0cd
add eax, 2
mov dword [ecx], eax
mov ebp, ecx
call fcn.1009a8c0
xor esi, esi
test eax, eax
je 0x1009d0cd
mov edi, eax
mov ecx, ebp
call fcn.1009a8c0
test eax, eax
je 0x1009d0cd
mov ebx, eax
mov ecx, ebp
call fcn.1009ce70
test eax, eax
je 0x1009d0cd
mov dword [esp], ebx
mov ecx, ebp
mov ebx, dword [ebp + 0x1198]
mov ecx, dword [ebx + 4]
lea edx, [ecx - 0xfd8]
cmp edx, 0xfffff007
ja 0x1009d091
mov esi, eax
push 0x1000
call sub.msvcrt.dll_malloc
add esp, 4
test eax, eax
je 0x1009d0d7
mov dword [eax], ebx
mov dword [eax + 4], 0
mov dword [ebp + 0x1198], eax
xor ecx, ecx
mov ebx, eax
mov eax, esi
lea edx, [ecx + 0x20]
mov dword [ebx + 4], edx
lea esi, [ebx + ecx]
add esi, 8
mov byte [ebx + ecx + 0xc], 0x52
and byte [ebx + ecx + 0x10], 0xc0
movzx edx, byte [ebx + ecx + 0x14]
and dl, 0xc0
or dl, 0x15
mov byte [ebx + ecx + 0x14], dl
mov dword [ebx + ecx + 8], 0x100bfe98
mov dword [ebx + ecx + 0x18], edi
mov edx, dword [esp]
mov dword [ebx + ecx + 0x1c], edx
mov dword [ebx + ecx + 0x20], eax
mov eax, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1002a9f0
int3