Function at 0x1000f290
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x10038214]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
xor edx, edx
and dword [ebp - 0x48], edx
mov ecx, dword [ebp + 0x14]
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x64], eax
push edi
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x4c], edx
cmp dword [ebp + 8], edx
je 0x1000f473
test eax, eax
je 0x1000f473
test ecx, ecx
je 0x1000f473
cmp dword [ebp + 0xc], edx
je 0x1000f473
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x1000f2f3
cmp byte [edi], dl
je 0x1000f473
cmp byte [edi + 1], dl
je 0x1000f473
push dword [ebp + 0x18]
lea eax, [ebp - 0x48]
push eax
push dword [ebp + 0xc]
call fcn.1000f4aa
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1000f342
mov ecx, esi
shr ecx, 0x1f
test cl, cl
je 0x1000f499
mov ecx, esi
shr ecx, 0x10
movzx eax, cl
test byte [eax*4 + sym.GNSDK_FP.DLL_g_gcsl_log_enabled_pkgs], 1
je 0x1000f499
push 0
push esi
push 1
push 0x1002c770
push 0x187
jmp 0x1000f490
push dword [ebp - 0x48]
call sym.GNSDK_FP.DLL_gcsl_memory_alloc
mov esi, eax
mov dword [ebp - 0x5c], esi
pop ecx
test esi, esi
jne 0x1000f379
test byte [0x1003c3ac], 1
mov esi, 0x900f0002
je 0x1000f499
push eax
push esi
push 1
push 0x1002c770
push 0x18d
jmp 0x1000f490
push 0x40
lea eax, [ebp - 0x44]
push str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_d:_a1_s_sourcegcslgcsl_utilsgcsl_base64.c
push eax
call sym.GNSDK_FP.DLL_gcsl_memory_memcpy
add esp, 0xc
test edi, edi
je 0x1000f39b
mov al, byte [edi]
mov byte [ebp - 6], al
mov al, byte [edi + 1]
mov byte [ebp - 5], al
xor edx, edx
push 3
mov dword [ebp - 0x48], edx
pop edi
cmp dword [ebp + 0xc], edx
jbe 0x1000f434
mov eax, dword [ebp + 8]
movzx eax, byte [eax]
push 2
pop ecx
sub ecx, ebx
shl ecx, 3
shl eax, cl
or dword [ebp - 0x4c], eax
inc ebx
mov dword [ebp - 0x58], ebx
cmp ebx, edi
je 0x1000f3cf
lea eax, [edx + 1]
cmp eax, dword [ebp + 0xc]
jne 0x1000f420
mov eax, ebx
xor edx, edx
shl eax, 2
div edi
test edx, edx
lea ecx, [eax + 1]
cmove ecx, eax
and dword [ebp - 0x50], 0
mov dword [ebp - 0x54], ecx
test ecx, ecx
je 0x1000f40f
mov edx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x50]
mov eax, edi
sub eax, ebx
imul ecx, eax, 6
mov eax, edx
shr eax, cl
and eax, 0x3f
inc ebx
mov al, byte [ebp + eax - 0x44]
mov byte [esi], al
inc esi
cmp ebx, dword [ebp - 0x54]
jb 0x1000f3f1
mov ebx, dword [ebp - 0x58]
xor edx, edx
xor eax, eax
cmp ebx, edi
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x48]
cmovne eax, ebx
mov ebx, eax
mov eax, dword [ebp + 8]
inc edx
inc eax
mov dword [ebp - 0x48], edx
mov dword [ebp + 8], eax
cmp edx, dword [ebp + 0xc]
jb 0x1000f3af
cmp byte [ebp + 0x1c], 0
je 0x1000f456
xor edx, edx
mov eax, ebx
div edi
test edx, edx
je 0x1000f456
sub edi, ebx
je 0x1000f456
push edi
push 0x3d
push esi
call fcn.10012ca0
add esp, 0xc
add esi, edi
cmp byte [ebp + 0x18], 0
je 0x1000f460
mov byte [esi], 0
inc esi
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
sub esi, eax
mov dword [ecx], esi
mov ecx, dword [ebp - 0x64]
mov dword [ecx], eax
xor eax, eax
jmp 0x1000f49b
test byte [0x1003c3ac], 1
mov esi, 0x900f0001
je 0x1000f499
push 0
push esi
push 1
push 0x1002c770
push 0x181
call dword [sym.GNSDK_FP.DLL_g_gcsl_log_callback]
add esp, 0x14
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10011d07
leave
ret