Function at 0x530860
Capabilities:
Delete file
Read .ini file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1bc
mov eax, dword [sym.imp.kernel32.dll_DeleteFileA]
mov dword [esp], str.._testwine3.ini
mov dword [ebp - 0x1ac], eax
call eax
sub esp, 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40000000
mov dword [esp], str.._testwine3.ini
call dword [sym.imp.kernel32.dll_CreateFileA]
sub esp, 0x1c
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x11f
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp + 8], str.._testwine3.ini
mov dword [esp + 4], str._cannot_create__s_n
mov dword [esp], eax
call fcn.00527880
cmp ebx, 0xffffffff
je 0x530fdd
lea eax, [ebp - 0x1a0]
mov dword [esp], ebx
lea edi, [ebp - 0x19c]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x27
mov dword [esp + 4], str.__section1___r_n_section2__r_n_section3__r_n
call dword [sym.imp.kernel32.dll_WriteFile]
sub esp, 0x14
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, 0xc0c0c0c
mov ecx, 0x19
rep stosd dword es:[edi], eax
sub esp, 4
lea eax, [ebp - 0x19c]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_GetPrivateProfileSectionNamesA]
mov dword [esp + 8], str.._testwine3.ini
mov dword [esp + 4], 0x1d
mov dword [ebp - 0x1a8], eax
call eax
sub esp, 0xc
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x127
xor eax, eax
cmp ebx, 0x1b
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_27__got__d_n
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x128
xor eax, eax
cmp byte [ebp + ebx - 0x19d], 0
jne 0x5309d0
xor eax, eax
cmp byte [ebp + ebx - 0x19c], 0
sete al
mov dword [esp], eax
mov dword [esp + 4], str.returned_buffer_not_terminated_with_double_null_n
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x12a
lea eax, [ebp - 0x19c]
shr eax, 0x10
je 0x530fe8
lea eax, [ebp - 0x19c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrA]
sub esp, 8
test eax, eax
jne 0x531230
cmp byte [ebp - 0x19c], 0
je 0x53127b
lea eax, [ebp - 0x19b]
lea ebx, [ebp - 0x19c]
mov dword [esp], eax
lea edi, [ebp - 0x15]
mov esi, ebx
call sub.msvcrt.dll_strlen
mov byte [ebp - 0x138], 0x22
lea edx, [ebp - 0x137]
mov dword [ebp - 0x1a4], eax
jmp 0x530a9b
cmp al, 9
je 0x531170
cmp al, 0xa
jne 0x53118f
movzx eax, word [0x5f4f2e]
add edx, 2
mov word [edx - 2], ax
mov eax, dword [ebp - 0x1a4]
sub eax, 1
cmp edi, edx
jb 0x530ae0
mov ebx, dword [ebp - 0x1a4]
test ebx, ebx
jle 0x530ae0
mov dword [ebp - 0x1a4], eax
movzx eax, byte [esi]
add esi, 1
cmp al, 0xd
je 0x531158
jle 0x530a60
cmp al, 0x22
je 0x5311d0
cmp al, 0x5c
jne 0x531183
movzx eax, word [0x5f4f36]
add edx, 2
mov word [edx - 2], ax
mov eax, dword [ebp - 0x1a4]
sub eax, 1
cmp edi, edx
jae 0x530a8b
lea esi, [esi]
lea esi, [esi]
mov byte [edx], 0x22
test eax, eax
jle 0x531228
movzx eax, word [0x5f4f3a]
mov byte [edx + 3], 0x2e
mov word [edx + 1], ax
lea eax, [edx + 4]
mov byte [eax], 0
lea eax, [ebp - 0x138]
mov dword [ebp - 0x1a4], eax
mov dword [esp], eax
call fcn.0057e390
cmp dword [ebp - 0x19c], 0x74636573
mov edx, eax
jne 0x531029
cmp dword [ebp - 0x198], 0x316e6f69
jne 0x531029
xor eax, eax
cmp byte [ebp - 0x194], 0
je 0x53102e
jmp 0x531029
mov eax, 0xc0c0c0c
mov ecx, 0x19
lea edi, [ebp - 0x19c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x19c]
mov dword [esp + 8], str.._testwine3.ini
mov dword [esp + 4], 0x1b
mov dword [esp], eax
mov eax, dword [ebp - 0x1a8]
call eax
sub esp, 0xc
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x138
xor eax, eax
cmp esi, 0x19
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_25__got__d_n
call fcn.00527880
mov ebx, dword [0x8f0770]
mov dword [ebp - 0x1a0], 0x11
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test ebx, ebx
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x530c33
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x13b
xor eax, eax
cmp byte [ebp + esi - 0x19b], 0
jne 0x530c1b
xor eax, eax
cmp byte [ebp + esi - 0x19c], 0
sete al
mov dword [esp], eax
mov dword [esp + 4], str.returned_buffer_not_terminated_with_double_null_n
call fcn.00527880
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov ebx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test ebx, ebx
jne 0x530bf0
mov eax, 0xc0c0c0c
mov ecx, 0x19
lea edi, [ebp - 0x19c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x19c]
mov dword [esp + 8], str.._not_here.ini
mov dword [esp + 4], 0xa
mov dword [esp], eax
mov eax, dword [ebp - 0x1a8]
call eax
sub esp, 0xc
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x141
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_0__got__d_n
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x142
xor eax, eax
mov dword [esp + 4], str.returned_buffer_not_terminated_with_null_n
cmp byte [ebp - 0x19c], 0
sete al
mov dword [esp], eax
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x143
xor eax, eax
mov dword [esp + 4], str.returned_buffer_terminated_with_double_null_n
cmp byte [ebp - 0x19b], 0
setne al
mov dword [esp], eax
call fcn.00527880
mov edi, dword [ebp - 0x1a4]
mov eax, 0xcccccccc
mov ecx, 0x32
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov esi, dword [sym.imp.kernel32.dll_GetPrivateProfileSectionNamesW]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x1a8], edx
mov dword [esp + 8], 0x5f4dc0
mov dword [esp + 4], 0x1d
mov edi, dword [ebp - 0x1a4]
mov dword [esp], edi
call esi
sub esp, 0xc
mov edi, eax
test eax, eax
jne 0x530d67
mov edx, dword [ebp - 0x1a8]
cmp dword [edx + 0x34], 0x78
je 0x531246
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x14f
xor eax, eax
cmp edi, 0x1b
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_27__got__d_n
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x150
xor eax, eax
cmp word [ebp + edi*2 - 0x13a], 0
jne 0x530dc2
xor eax, eax
cmp word [ebp + edi*2 - 0x138], 0
sete al
mov dword [esp], eax
mov dword [esp + 4], str.returned_buffer_not_terminated_with_double_null_n
call fcn.00527880
mov edi, dword [ebp - 0x1a4]
mov eax, 0xcccccccc
mov ecx, 0x32
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x5f4dc0
mov dword [esp + 4], 0x1c
mov edi, dword [ebp - 0x1a4]
mov dword [esp], edi
call esi
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x155
xor eax, eax
cmp edi, 0x1a
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_26__got__d_n
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x156
movzx eax, word [ebp + edi*2 - 0x136]
test ax, ax
jne 0x5311e8
xor edx, edx
cmp word [ebp + edi*2 - 0x138], 0
sete dl
mov dword [esp], edx
mov dword [esp + 4], str.returned_buffer_not_terminated_with_double_null_n
call fcn.00527880
mov edi, dword [ebp - 0x1a4]
mov eax, 0xcccccccc
mov ecx, 0x32
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x5f4dc0
mov dword [esp + 4], 0x1b
mov edi, dword [ebp - 0x1a4]
mov dword [esp], edi
call esi
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x15d
xor eax, eax
cmp edi, 0x19
sete al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_25__got__d_n
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x15e
cmp word [ebp + edi*2 - 0x136], 0
jne 0x530efe
xor ebx, ebx
cmp word [ebp + edi*2 - 0x138], 0
sete bl
mov dword [esp], ebx
mov dword [esp + 4], str.returned_buffer_not_terminated_with_double_null_n
call fcn.00527880
mov dword [esp], str.._testwine3.ini
mov eax, dword [ebp - 0x1ac]
call eax
mov edi, dword [ebp - 0x1a4]
mov eax, 0xcccccccc
mov ecx, 0x32
sub esp, 4
rep stosd dword es:[edi], eax
mov dword [esp + 8], 0x5f4d84
mov dword [esp + 4], 0xa
mov edi, dword [ebp - 0x1a4]
mov dword [esp], edi
call esi
sub esp, 0xc
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x165
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_0__got__d_n
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x166
xor eax, eax
mov dword [esp + 4], str.returned_buffer_not_terminated_with_null_n
cmp word [ebp - 0x138], 0
sete al
mov dword [esp], eax
call fcn.00527880
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x167
xor eax, eax
mov dword [esp + 4], str.returned_buffer_terminated_with_double_null_n
cmp word [ebp - 0x136], 0
setne al
mov dword [esp], eax
call fcn.00527880
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x1a4], eax
movzx eax, word [ebp - 0x1a4]
mov dword [esp], 0x5f3821
mov dword [esp + 4], eax
call fcn.00526f10
mov edx, eax
lea eax, [ebp - 0x138]
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x19c], 0x74636573
je 0x530b26
mov eax, 1
xor eax, 1
mov dword [esp + 8], edx
lea edi, [ebp - 0x19c]
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_content__s._n
call fcn.00527880
mov eax, 0xc0c0c0c
mov ecx, 0x19
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x19c]
mov dword [esp + 8], str.._testwine3.ini
mov dword [esp + 4], 0x1c
mov dword [esp], eax
mov eax, dword [ebp - 0x1a8]
call eax
sub esp, 0xc
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x12f
xor eax, eax
cmp ebx, 0x1a
sete al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.expected_return_size_26__got__d_n
call fcn.00527880
mov esi, dword [0x8f0770]
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test esi, esi
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x5310fd
xor edx, edx
cmp byte [ebp + ebx - 0x19c], 0
sete dl
mov dword [esp], edx
mov dword [esp + 4], str.returned_buffer_not_terminated_with_double_null_n
call fcn.00527880
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
je 0x530b50
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x131
movzx eax, byte [ebp + ebx - 0x19b]
test al, al
je 0x5310d8
xor edx, edx
cmp al, 0xc
jne 0x5310e5
cmp byte [ebp + ebx - 0x19c], 0
jne 0x5310e5
mov ecx, dword [0x8f0770]
xor edx, edx
test ecx, ecx
sete dl
jmp 0x5310e5
movzx eax, word [0x5f4f30]
add edx, 2
mov word [edx - 2], ax
jmp 0x530a7e
movzx eax, word [0x5f4f32]
add edx, 2
mov word [edx - 2], ax
jmp 0x530a7e
lea ebx, [eax - 0x20]
cmp bl, 0x5e
jbe 0x531218
movzx ebx, word [0x5f4f38]
movzx ecx, word [0x5f4f28]
add edx, 4
mov word [edx - 4], bx
mov ebx, eax
and eax, 0xf
shr bl, 4
movzx ebx, bl
mov cl, byte [ebx + str.0123456789abcdef.]
mov ebx, ecx
mov bh, byte [eax + str.0123456789abcdef.]
mov word [edx - 2], bx
jmp 0x530a7e
movzx eax, word [0x5f4f34]
add edx, 2
mov word [edx - 2], ax
jmp 0x530a7e
xor edx, edx
cmp ax, 0xcccc
jne 0x530e63
cmp word [ebp + edi*2 - 0x138], 0
jne 0x530e63
mov eax, dword [0x8f0770]
xor edx, edx
test eax, eax
sete dl
jmp 0x530e63
mov byte [edx], al
add edx, 1
jmp 0x530a7e
lea eax, [edx + 1]
jmp 0x530afd
lea eax, [ebp - 0x138]
mov edx, 0x5f3827
mov dword [ebp - 0x1a4], eax
jmp 0x531019
call fcn.0057d110
mov dword [eax], 0x5f3817
mov dword [eax + 4], 0x14b
mov dword [esp], str.GetPrivateProfileSectionNamesW_is_not_implemented_n
call fcn.00527840
mov dword [esp], str.._testwine3.ini
mov eax, dword [ebp - 0x1ac]
call eax
sub esp, 4
jmp 0x530fdd
movzx eax, word [0x5f4f2c]
mov word [ebp - 0x138], ax
lea eax, [ebp - 0x136]
jmp 0x530afd