Function at 0x401080
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 8], 0
push edi
mov dword [ebp - 0xc], 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
add esp, 4
mov ebx, eax
mov dword [ebp - 4], ebx
push 0x2e
push ebx
call dword [sym.imp.VCRUNTIME140.dll_strrchr]
mov esi, eax
add esp, 8
test esi, esi
je 0x4012c0
mov ecx, str..plist
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4010e3
test dl, dl
je 0x4010df
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4010e3
add eax, 2
add ecx, 2
test dl, dl
jne 0x4010c3
xor eax, eax
jmp 0x4010e8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4012c0
mov eax, dword [str..crash]
mov dword [esi], eax
mov ax, word [0x404230]
mov word [esi + 4], ax
mov al, byte [0x404232]
mov byte [esi + 6], al
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test edi, edi
je 0x401173
xorps xmm0, xmm0
push 0x4041c0
push edi
movlpd qword [ebp - 0x18], xmm0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x40116d
push 2
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
add esp, 4
cdq
mov edi, edx
mov ebx, eax
mov dword [ebp - 0x10], edi
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_rewind]
mov eax, ebx
add esp, 4
or eax, edi
jne 0x401199
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov ebx, dword [ebp - 4]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor edi, edi
mov eax, dword [ebp - 8]
test eax, eax
je 0x401186
push eax
call dword [sym.imp.plist.dll_plist_free]
add esp, 4
test ebx, ebx
je 0x401190
push ebx
call esi
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 1]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov edi, eax
push esi
push ebx
push 1
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
xor ecx, ecx
cmp eax, ebx
jne 0x4011cd
cmp ecx, dword [ebp - 0x10]
jne 0x4011cd
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, dword [ebp - 0x10]
jmp 0x4011da
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
add esp, 4
test edi, edi
je 0x40116a
test eax, eax
jne 0x4011ea
cmp ebx, 8
jbe 0x401209
cmp dword [edi], 0x696c7062
jne 0x401209
cmp dword [edi + 4], 0x30307473
jne 0x401209
lea eax, [ebp - 8]
push eax
push ebx
push edi
call dword [sym.imp.plist.dll_plist_from_bin]
jmp 0x401215
lea eax, [ebp - 8]
push eax
push ebx
push edi
call dword [sym.imp.plist.dll_plist_from_xml]
add esp, 0xc
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push str.description
push dword [ebp - 8]
call dword [sym.imp.plist.dll_plist_dict_get_item]
mov esi, eax
add esp, 8
test esi, esi
je 0x40116a
push esi
call dword [sym.imp.plist.dll_plist_get_node_type]
add esp, 4
cmp eax, 3
jne 0x40116a
lea eax, [ebp - 0xc]
push eax
push esi
call dword [sym.imp.plist.dll_plist_get_string_val]
mov ebx, dword [ebp - 0xc]
add esp, 8
test ebx, ebx
je 0x40116a
mov esi, ebx
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x401270
push 0x4041c4
push dword [ebp - 4]
sub esi, ecx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
mov edi, eax
add esp, 8
test edi, edi
je 0x4012a5
push edi
push esi
push 1
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x14
push dword [ebp - 0xc]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call esi
mov ebx, dword [ebp - 4]
add esp, 4
mov edi, 1
jmp 0x401175
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret