Function at 0x4011d0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov ebx, edx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
test edi, edi
je case.default.0x401224
push edi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 8
ja case.default.0x401224
jmp dword [eax*4 + 0x4015e0]
lea eax, [esp + 0x3f]
push eax
push edi
call dword [sym.imp.plist.dll_plist_get_bool_val]
cmp byte [esp + 0x47], 0
mov ecx, str.false
mov eax, str.true
cmove eax, ecx
push eax
push 0x4031c8
push dword [ebp + 8]
call fcn.00401010
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x68]
push eax
push edi
call dword [sym.imp.plist.dll_plist_get_uint_val]
push dword [esp + 0x74]
push dword [esp + 0x74]
push str._llu_n
push dword [ebp + 8]
call fcn.00401010
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x78]
push eax
push edi
call dword [sym.imp.plist.dll_plist_get_real_val]
movsd xmm0, qword [esp + 0x80]
movsd qword [esp], xmm0
push 0x4031d4
push dword [ebp + 8]
call fcn.00401010
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x40]
push eax
push edi
call dword [sym.imp.plist.dll_plist_get_string_val]
push dword [esp + 0x48]
push 0x4031c8
push dword [ebp + 8]
call fcn.00401010
add esp, 0x14
push dword [esp + 0x40]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x40]
push eax
push edi
call dword [sym.imp.plist.dll_plist_get_key_val]
push dword [esp + 0x48]
push str._s:
push dword [ebp + 8]
call fcn.00401010
add esp, 0x14
push dword [esp + 0x40]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x50]
push eax
push edi
call dword [sym.imp.plist.dll_plist_get_data_val]
mov ebx, dword [esp + 0x74]
add esp, 0xc
cmp dword [esp + 0x6c], 0
ja 0x40135f
test ebx, ebx
jne 0x40135f
push 0x4031e0
push dword [ebp + 8]
call fcn.00401010
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x5c], edi
test edi, edi
je 0x40149d
test ebx, ebx
je 0x40149d
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
lea eax, [edx*4 + 5]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov dword [esp + 0x54], eax
lea ecx, [ebx - 1]
or eax, 0xffffffff
mov dword [esp + 0x5c], 2
sub eax, dword [esp + 0x60]
xor esi, esi
mov dword [esp + 0x58], eax
add esp, 4
mov eax, 0xaaaaaaab
add edi, 2
mul ecx
mov eax, edx
shr eax, 1
inc eax
mov dword [esp + 0x5c], eax
lea eax, [esi + 2]
mov ecx, dword [esp + 0x54]
mov dl, byte [edi - 2]
add ecx, edi
cmp ecx, ebx
jae 0x4013d9
mov cl, byte [edi - 1]
mov byte [esp + 0x3d], cl
jmp 0x4013de
mov byte [esp + 0x3d], 0
cmp eax, ebx
jae 0x4013ea
mov al, byte [edi]
mov byte [esp + 0x3e], al
jmp 0x4013ef
mov byte [esp + 0x3e], 0
movzx eax, byte [esp + 0x3d]
movzx edx, dl
mov dword [esp + 0x44], eax
mov ecx, edx
shr eax, 4
and edx, 3
and dword [esp + 0x44], 0xf
shl edx, 4
add edx, eax
shr ecx, 2
movzx eax, byte [esp + 0x3e]
mov dword [esp + 0x48], eax
and eax, 0x3f
shr dword [esp + 0x48], 6
mov dword [esp + 0x60], eax
movzx eax, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov ecx, dword [esp + 0x50]
mov byte [esi + ecx], al
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov edx, ecx
mov byte [esi + edx + 1], al
mov eax, dword [esp + 0x54]
add eax, edi
cmp eax, ebx
jae 0x40145b
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov al, byte [ecx + eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
jmp 0x40145d
mov al, 0x3d
mov byte [esi + edx + 2], al
mov eax, dword [esp + 0x58]
cmp eax, ebx
jae 0x401475
mov ecx, dword [esp + 0x60]
mov cl, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
jmp 0x401477
mov cl, 0x3d
mov byte [esi + edx + 3], cl
add eax, 3
add esi, 4
mov dword [esp + 0x58], eax
add edi, 3
sub dword [esp + 0x5c], 1
jne 0x4013c3
mov edi, dword [esp + 0x4c]
mov byte [esi + edx], 0
jmp 0x40149f
xor edx, edx
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push edi
mov dword [esp + 0x44], edx
call esi
mov eax, dword [esp + 0x44]
add esp, 4
test eax, eax
je 0x401348
push eax
push 0x4031c8
push dword [ebp + 8]
call fcn.00401010
add esp, 0xc
push dword [esp + 0x40]
call esi
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x74]
push eax
push edi
call dword [sym.imp.plist.dll_plist_get_date_val]
mov eax, dword [esp + 0x7c]
add esp, 0xc
cdq
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x64], edx
push eax
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__localtime64]
mov esi, eax
add esp, 4
test esi, esi
je 0x401562
push 0x18
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [esp + 0x40], eax
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x40]
push esi
push str._Y__m__dT_H:_M:_SZ
push 0x18
movq qword [eax + 0x10], xmm0
push dword [esp + 0x4c]
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_strftime]
add esp, 0x10
test eax, eax
jne 0x401562
push dword [esp + 0x40]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov dword [esp + 0x40], 0
jmp 0x401348
mov eax, dword [esp + 0x40]
test eax, eax
je 0x401348
push eax
push 0x4031c8
push dword [ebp + 8]
call fcn.00401010
add esp, 0xc
push dword [esp + 0x40]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
push 0x4031e0
push esi
call fcn.00401010
inc dword [ebx]
mov edx, ebx
push esi
mov ecx, edi
call fcn.00401040
add esp, 0xc
dec dword [ebx]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
push 0x4031e0
push esi
call fcn.00401010
inc dword [ebx]
mov edx, ebx
push esi
mov ecx, edi
call fcn.004010c0
add esp, 0xc
dec dword [ebx]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret