Function at 0x53ef90
Capabilities:
Delete file
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x24c
mov dword [esp], 0x5f72ac
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
sub esp, 4
mov dword [esp + 4], str.BindIoCompletionCallback
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [0x88031c], eax
sub esp, 8
test eax, eax
je 0x53f720
mov dword [esp + 0xc], 0
lea edi, [ebp - 0x214]
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateSemaphoreW]
sub esp, 0x10
mov dword [0x880320], eax
call fcn.0057d110
mov dword [eax], 0x5f5ef4
mov dword [eax + 4], 0x2ec
xor eax, eax
mov dword [esp + 4], str.Creating_a_semaphore_failed_n
cmp dword [0x880320], 0xffffffff
setne al
mov dword [esp], eax
mov esi, dword fs:[0x18]
call fcn.00538680
mov dword [esp + 4], edi
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
mov ebx, eax
mov eax, 0x2ef
call fcn.00537ed0
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x5f7321
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.00538680
mov eax, 0x2f0
call fcn.00537ed0
xor eax, eax
cmp ebx, 0x103
mov dword [esp + 4], 0x5f733c
setbe al
mov dword [esp], eax
call fcn.00538680
lea eax, [ebp - 0x110]
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x5f802c
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
sub esp, 0x10
mov ebx, eax
mov eax, 0x2f3
call fcn.00537ed0
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.GetTempFileNameA_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.00538680
lea eax, [ebp - 0x110]
mov dword [esp + 0x18], 0
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [esp + 0x14], 0x10000000
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov dword [ebp - 0x238], eax
call eax
sub esp, 0x1c
mov ebx, eax
mov eax, 0x2f7
call fcn.00537ed0
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CreateFileA:_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00538680
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x537830
call dword [0x88031c]
sub esp, 0xc
mov edi, eax
mov eax, 0x2fa
call fcn.00537ed0
xor eax, eax
test edi, edi
mov dword [esp + 4], str.BindIoCompletionCallback_succeeded_on_a_file_that_wasnt_created_with_FILE_FLAG_OVERLAPPED_n
sete al
mov dword [esp], eax
call fcn.00538680
mov eax, 0x2fb
call fcn.00537ed0
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.Last_error_is__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00538680
mov ecx, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], ebx
mov dword [ebp - 0x234], ecx
call ecx
sub esp, 4
mov ebx, eax
mov eax, 0x2fe
call fcn.00537ed0
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.CloseHandle:_error__ld_n
mov dword [esp + 8], eax
call fcn.00538680
mov ecx, dword [sym.imp.kernel32.dll_DeleteFileA]
lea edx, [ebp - 0x110]
mov dword [esp], edx
mov dword [ebp - 0x230], ecx
call ecx
sub esp, 4
mov ebx, eax
mov eax, 0x300
call fcn.00537ed0
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.DeleteFileA:_error__ld_n
mov dword [esp + 8], eax
call fcn.00538680
lea edx, [ebp - 0x110]
mov dword [esp + 0x18], 0
mov dword [esp], edx
mov dword [esp + 0x14], 0x50000000
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x1c
mov ebx, eax
mov eax, 0x304
call fcn.00537ed0
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CreateFileA:_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00538680
mov dword [esp + 8], 0
mov dword [esp + 4], 0x537830
mov dword [esp], ebx
call dword [0x88031c]
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x5f5ef4
mov dword [eax + 4], 0x307
xor eax, eax
cmp edi, 1
sete al
mov dword [esp + 4], str.BindIoCompletionCallback_failed_n
mov dword [esp], eax
call fcn.00538680
lea eax, [ebp - 0x228]
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x218], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x22c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 4
mov dword [esp + 4], str.12345678123456781234567812345678
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_WriteFile]
sub esp, 0x14
mov edi, eax
mov eax, 0x30b
call fcn.00537ed0
mov eax, dword [esi + 0x34]
cmp edi, 1
je 0x53f372
xor ecx, ecx
cmp eax, 0x3e5
sete cl
mov edi, ecx
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 4], str.WriteFile_failed__lastError___ld_n
call fcn.00538680
mov dword [esp + 4], 0x1388
mov eax, dword [0x880320]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
sub esp, 8
mov edi, eax
mov eax, 0x30e
call fcn.00537ed0
xor eax, eax
test edi, edi
mov dword [esp + 4], str.Wait_for_the_IO_completion_callback_failed_n
sete al
mov dword [esp], eax
call fcn.00538680
mov eax, dword [0x880320]
mov dword [esp], eax
mov esi, dword [ebp - 0x234]
call esi
sub esp, 4
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x537830
call dword [0x88031c]
sub esp, 0xc
mov edi, eax
mov eax, 0x312
call fcn.00537ed0
xor eax, eax
test edi, edi
mov dword [esp + 4], str.BindIoCompletionCallback_succeeded_when_setting_the_same_callback_on_the_file_again_n
sete al
mov dword [esp], eax
mov edi, dword fs:[0x18]
call fcn.00538680
mov eax, 0x313
call fcn.00537ed0
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Last_error_is__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00538680
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [0x88031c]
sub esp, 0xc
mov dword [ebp - 0x23c], eax
call fcn.0057d110
mov dword [eax], 0x5f5ef4
mov dword [eax + 4], 0x315
xor eax, eax
mov dword [esp + 4], str.BindIoCompletionCallback_succeeded_when_setting_the_callback_to_NULL_n
mov edx, dword [ebp - 0x23c]
test edx, edx
sete al
mov dword [esp], eax
call fcn.00538680
call fcn.0057d110
mov dword [eax], 0x5f5ef4
mov dword [eax + 4], 0x316
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Last_error_is__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00538680
mov dword [esp], ebx
call esi
sub esp, 4
mov ebx, eax
mov eax, 0x319
call fcn.00537ed0
mov eax, dword [edi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.CloseHandle:_error__ld_n
mov dword [esp + 8], eax
call fcn.00538680
lea eax, [ebp - 0x110]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 4
mov ebx, eax
mov eax, 0x31b
call fcn.00537ed0
mov eax, dword [edi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.DeleteFileA:_error__ld_n
mov dword [esp + 8], eax
call fcn.00538680
lea eax, [ebp - 0x110]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x50000000
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov dword [esp], eax
mov eax, dword [ebp - 0x238]
call eax
sub esp, 0x1c
mov ebx, eax
mov eax, 0x321
call fcn.00537ed0
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CreateFileA:_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00538680
mov dword [esp + 8], 0x3039
mov dword [esp + 4], 0x537830
mov dword [esp], ebx
call dword [0x88031c]
sub esp, 0xc
test eax, eax
je 0x53f6f0
mov dword [ebp - 0x238], eax
mov eax, 0x327
call fcn.00537ed0
mov dword [esp + 4], str.BindIoCompletionCallback_failed_with_Flags___0_n
xor eax, eax
mov edx, dword [ebp - 0x238]
cmp edx, 1
sete al
mov dword [esp], eax
call fcn.00538680
mov dword [esp], ebx
mov eax, dword [ebp - 0x234]
call eax
sub esp, 4
mov edi, eax
mov eax, 0x329
call fcn.00537ed0
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.CloseHandle:_error__ld_n
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00538680
lea eax, [ebp - 0x110]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 4
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f5ef4
mov dword [eax + 4], 0x32b
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.DeleteFileA:_error__ld_n
call fcn.00538680
mov dword [esp + 8], 0
mov dword [esp + 4], 0x537830
mov dword [esp], 0
call dword [0x88031c]
sub esp, 0xc
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x5f5ef4
mov dword [eax + 4], 0x32e
xor eax, eax
test esi, esi
sete al
mov dword [esp + 4], str.BindIoCompletionCallback_succeeded_on_a_NULL_file_n
mov dword [esp], eax
call fcn.00538680
mov eax, 0x32f
call fcn.00537ed0
mov edx, dword [ebx + 0x34]
mov eax, 1
cmp edx, 6
je 0x53f6d3
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 8], edx
mov dword [esp + 4], str.Last_error_is__ld_n
mov dword [esp], eax
call fcn.00538680
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x324
call fcn.00537ed0
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x5f756c
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00538680
jmp 0x53f5f2
mov eax, 0x2e7
call fcn.00537ed0
mov dword [esp], str.BindIoCompletionCallback_not_found_in_this_DLL_n
call fcn.00538570
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret