Function at 0x463440
Capabilities:
Delete file
Get common file path
Get system information on windows

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x218]
push ebx
mov esi, dword fs:[0x18]
sub esp, 0x2b8
mov dword [ebp - 0x264], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateEventW]
sub esp, 0x10
mov dword [ebp - 0x27c], eax
mov dword [esp + 4], edi
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathA]
sub esp, 8
mov ebx, eax
mov eax, 0x12fb
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x598124
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x12fc
call fcn.0045b740
xor eax, eax
cmp ebx, 0x103
mov dword [esp + 4], 0x59813c
setbe al
lea ebx, [ebp - 0x114]
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 0xc], ebx
mov dword [esp], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x599ba5
call dword [sym.imp.kernel32.dll_GetTempFileNameA]
sub esp, 0x10
mov ebx, eax
mov eax, 0x12fe
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x598160
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
lea ebx, [ebp - 0x114]
setne al
mov dword [esp], eax
call fcn.0045bef0
mov edx, dword [sym.imp.kernel32.dll_CreateFileA]
mov dword [esp], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x60000080
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc0000000
mov dword [ebp - 0x2a0], edx
call edx
sub esp, 0x1c
mov edi, eax
mov dword [ebp - 0x278], eax
mov eax, 0x1302
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x599ba9
mov dword [esp + 8], eax
xor eax, eax
cmp edi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
cmp edi, 0xffffffff
je 0x46479d
mov ebx, dword [sym.imp.kernel32.dll_CreateIoCompletionPort]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3e7
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
call ebx
sub esp, 0x10
mov dword [ebp - 0x2a4], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3e7
mov dword [esp + 4], eax
mov dword [esp], edi
call ebx
sub esp, 0x10
mov ebx, eax
mov dword [ebp - 0x280], eax
mov eax, 0x1307
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CreateIoCompletionPort_failed_err__lu_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x23c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov ebx, dword [sym.imp.kernel32.dll_VirtualAlloc]
sub esp, 4
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x1000
mov eax, dword [ebp - 0x238]
mov dword [esp], 0
mov dword [esp + 4], eax
call ebx
sub esp, 0x10
mov dword [ebp - 0x284], eax
mov eax, 0x130b
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x599beb
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x284]
xor eax, eax
test edx, edx
setne al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x1000
mov eax, dword [ebp - 0x238]
mov dword [esp], 0
mov dword [esp + 4], eax
call ebx
sub esp, 0x10
mov dword [ebp - 0x274], eax
mov eax, 0x130e
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x599beb
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x274]
xor eax, eax
test ecx, ecx
setne al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x1000
mov eax, dword [ebp - 0x238]
mov dword [esp], 0
mov dword [esp + 4], eax
call ebx
sub esp, 0x10
mov ebx, eax
mov dword [ebp - 0x288], eax
mov eax, 0x1311
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], 0x599beb
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
lea ebx, [ebp - 0x250]
setne al
mov dword [esp], eax
call fcn.0045bef0
mov eax, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x284]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x260], edx
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll_memset]
mov dword [esp + 4], 0x42
mov dword [esp], edx
mov dword [ebp - 0x29c], eax
call eax
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x238]
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [ebp - 0x260]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_WriteFileGather]
sub esp, 0x14
test eax, eax
je 0x4648f0
lea eax, [ebp - 0x264]
mov dword [esp + 0x10], 0x3e8
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x268]
mov dword [esp + 8], eax
lea eax, [ebp - 0x270]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x280]
mov edi, dword fs:[0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_GetQueuedCompletionStatus]
mov dword [ebp - 0x290], eax
call eax
sub esp, 0x14
mov esi, eax
mov eax, 0x131d
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.GetQueuedCompletionStatus_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x131e
call fcn.0045b740
mov eax, dword [ebp - 0x264]
mov dword [esp + 4], str.wrong_ovl__p_n
cmp eax, ebx
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0
mov dword [esp + 8], ecx
mov ecx, dword [sym.imp.kernel32.dll_GetOverlappedResult]
mov dword [esp + 0xc], 1
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov dword [ebp - 0x294], ecx
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x1322
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x599c60
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 1
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1323
call fcn.0045b740
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], str.got_unexpected_bytes_transferred:__lu_n
mov dword [esp + 8], eax
cmp dword [ebp - 0x238], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov edx, dword [sym.imp.kernel32.dll_ResetEvent]
mov esi, dword [ebp - 0x27c]
mov dword [esp], esi
mov dword [ebp - 0x298], edx
call edx
mov ecx, dword [ebp - 0x274]
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x27c], esi
sub esp, 4
mov dword [ebp - 0x240], esi
lea esi, [ebp - 0x260]
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call sub.msvcrt.dll_memset
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x238]
mov dword [esp + 4], esi
mov esi, dword [sym.imp.kernel32.dll_ReadFileScatter]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov dword [ebp - 0x28c], esi
call esi
sub esp, 0x14
mov esi, eax
mov eax, 0x132f
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 4], str.ReadFileScatter_should_be_asynchronous_n
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1330
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.ReadFileScatter_failed_err__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x268]
mov dword [esp + 0x10], 0x3e8
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x270]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x280]
mov dword [esp], eax
mov edx, dword [ebp - 0x290]
call edx
sub esp, 0x14
mov esi, eax
mov eax, 0x1333
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.GetQueuedCompletionStatus_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x1334
call fcn.0045b740
mov eax, dword [ebp - 0x264]
mov dword [esp + 4], str.wrong_ovl__p_n
cmp eax, ebx
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov edx, dword [ebp - 0x294]
call edx
sub esp, 0x10
mov esi, eax
mov eax, 0x1338
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x599c60
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 1
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1339
call fcn.0045b740
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], str.got_unexpected_bytes_transferred:__lu_n
mov dword [esp + 8], eax
cmp dword [ebp - 0x238], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x133b
call fcn.0045b740
mov eax, dword [ebp - 0x238]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x284]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x274]
mov dword [esp], ecx
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.data_was_not_read_into_buffer_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov esi, dword [ebp - 0x27c]
mov dword [esp], esi
mov edx, dword [ebp - 0x298]
call edx
mov ecx, dword [ebp - 0x274]
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x240], esi
sub esp, 4
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x260], ecx
lea ecx, [ebp - 0x260]
mov dword [ebp - 0x248], eax
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 4], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov esi, dword [ebp - 0x28c]
call esi
sub esp, 0x14
mov esi, eax
mov eax, 0x1349
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 4], str.ReadFileScatter_should_have_failed_n
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x134a
call fcn.0045b740
mov ecx, dword [edi + 0x34]
mov eax, 1
cmp ecx, 0x26
je 0x463cc3
xor eax, eax
cmp ecx, 0x3e5
sete al
mov dword [esp + 8], ecx
mov dword [esp + 4], str.ReadFileScatter_gave_wrong_error__lu_n
mov dword [esp], eax
mov esi, dword fs:[0x18]
call fcn.0045bef0
cmp dword [esi + 0x34], 0x3e5
mov dword [esi + 0x34], 0xdeadbeef
je 0x4647b0
lea eax, [ebp - 0x264]
mov dword [esp + 0x10], 0x64
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x268]
mov dword [esp + 8], eax
lea eax, [ebp - 0x270]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x280]
mov dword [esp], eax
mov eax, dword [ebp - 0x290]
call eax
sub esp, 0x14
mov edi, eax
mov eax, 0x135d
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.GetQueuedCompletionStatus_failed_err__lu_n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x135e
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.GetQueuedCompletionStatus_gave_wrong_error__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x102
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x135f
call fcn.0045b740
mov eax, dword [ebp - 0x264]
mov dword [esp + 4], str.wrong_ovl__p_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov edi, dword [ebp - 0x27c]
mov dword [esp], edi
mov eax, dword [ebp - 0x298]
call eax
mov esi, dword [ebp - 0x274]
mov dword [ebp - 0x27c], edi
mov dword [ebp - 0x240], edi
mov eax, dword [ebp - 0x238]
sub esp, 4
mov edi, dword [ebp - 0x288]
mov dword [ebp - 0x260], esi
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x258], edi
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x254], 0
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x238]
mov dword [esp + 4], 0x17
mov dword [esp + 8], eax
mov dword [ebp - 0x288], edi
mov dword [esp], edi
mov edx, dword [ebp - 0x29c]
mov edi, dword fs:[0x18]
call edx
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov ecx, dword [ebp - 0x238]
lea eax, [ecx + ecx]
lea ecx, [ebp - 0x260]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov ecx, dword [ebp - 0x28c]
call ecx
sub esp, 0x14
mov esi, eax
mov eax, 0x136e
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 4], str.ReadFileScatter_should_be_asynchronous_n
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x136f
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.ReadFileScatter_failed_err__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x264]
mov dword [esp + 0x10], 0x3e8
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x268]
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x270]
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x280]
mov dword [esp], edx
mov edx, dword [ebp - 0x290]
call edx
sub esp, 0x14
mov esi, eax
mov eax, 0x1372
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.GetQueuedCompletionStatus_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x1373
call fcn.0045b740
mov eax, dword [ebp - 0x264]
mov dword [esp + 4], str.wrong_ovl__p_n
cmp eax, ebx
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov ecx, dword [ebp - 0x294]
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x1377
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x599c60
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 1
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1378
call fcn.0045b740
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], str.got_unexpected_bytes_transferred:__lu_n
mov dword [esp + 8], eax
cmp dword [ebp - 0x238], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x137a
call fcn.0045b740
mov eax, dword [ebp - 0x238]
mov dword [esp + 8], eax
mov esi, dword [ebp - 0x284]
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x274]
mov dword [esp], esi
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.data_was_not_read_into_buffer_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, dword [ebp - 0x238]
mov dword [esp], esi
mov dword [esp + 4], 0x17
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x29c]
call edx
mov eax, 0x137d
call fcn.0045b740
mov eax, dword [ebp - 0x238]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x288]
mov dword [esp], ecx
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.data_should_not_have_been_read_into_buffer_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov edx, dword [ebp - 0x27c]
mov dword [esp], edx
mov eax, dword [ebp - 0x298]
call eax
mov edx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x260], esi
mov dword [ebp - 0x250], 0
sub esp, 4
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [ebp - 0x274], esi
mov dword [esp], esi
call sub.msvcrt.dll_memset
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x238]
shr eax, 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x260]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov ecx, dword [ebp - 0x28c]
call ecx
sub esp, 0x14
mov esi, eax
mov eax, 0x138a
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 4], str.ReadFileScatter_should_be_asynchronous_n
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x138b
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.ReadFileScatter_failed_err__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x264]
mov dword [esp + 0x10], 0x3e8
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x268]
mov dword [esp + 8], eax
lea eax, [ebp - 0x270]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x280]
mov dword [esp], edx
mov esi, dword [ebp - 0x290]
call esi
sub esp, 0x14
mov esi, eax
mov eax, 0x138e
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.GetQueuedCompletionStatus_failed_err__lu_n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x138f
call fcn.0045b740
mov eax, dword [ebp - 0x264]
mov dword [esp + 4], str.wrong_ovl__p_n
cmp eax, ebx
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov eax, dword [ebp - 0x294]
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x1393
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x599c60
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 1
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1394
call fcn.0045b740
mov ecx, dword [ebp - 0x26c]
mov dword [esp + 4], str.got_unexpected_bytes_transferred:__lu_n
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x238]
shr eax, 1
cmp eax, ecx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1396
call fcn.0045b740
mov eax, dword [ebp - 0x238]
shr eax, 1
mov dword [esp + 8], eax
mov esi, dword [ebp - 0x284]
mov dword [esp + 4], esi
mov esi, dword [ebp - 0x274]
mov dword [esp], esi
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.invalid_data_was_read_into_buffer_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, dword [ebp - 0x238]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x288]
mov dword [esp], ecx
call sub.msvcrt.dll_memset
mov eax, 0x1399
call fcn.0045b740
mov ecx, dword [ebp - 0x238]
mov eax, ecx
shr eax, 1
sub ecx, eax
add eax, esi
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x288]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.invalid_data_was_read_into_buffer_n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov eax, dword [0x76d128]
test eax, eax
je 0x464928
mov dword [esp + 4], 1
mov edx, dword [ebp - 0x278]
mov dword [esp], edx
call eax
sub esp, 8
mov esi, eax
mov eax, 0x139f
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x260]
mov dword [esp + 4], str.SetFileCompletionNotificationModes_failed__error__lu._n
mov dword [esp + 8], eax
call fcn.0045bef0
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x238]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x278]
mov dword [esp], edx
mov ecx, dword [ebp - 0x28c]
call ecx
sub esp, 0x14
mov esi, eax
mov eax, 0x13a2
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 4], str.ReadFileScatter_should_be_asynchronous._n
sete al
lea esi, [ebp - 0x264]
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x13a3
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.ReadFileScatter_failed__error__lu._n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 0xc], esi
lea esi, [ebp - 0x268]
mov dword [esp + 8], esi
lea esi, [ebp - 0x270]
mov dword [esp + 0x10], 0x3e8
mov dword [esp + 4], esi
mov ecx, dword [ebp - 0x280]
mov dword [esp], ecx
mov esi, dword [ebp - 0x290]
call esi
sub esp, 0x14
mov esi, eax
mov eax, 0x13a6
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp], esi
lea esi, [ebp - 0x26c]
mov dword [esp + 4], str.GetQueuedCompletionStatus_failed__err__lu._n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x13a7
call fcn.0045b740
mov eax, dword [ebp - 0x264]
mov dword [esp + 4], str.Wrong_ovl__p._n
cmp eax, ebx
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
mov dword [esp + 4], ebx
mov edx, dword [ebp - 0x278]
mov dword [esp], edx
mov ecx, dword [ebp - 0x294]
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x13aa
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.GetOverlappedResult_failed__err__lu._n
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x13ab
call fcn.0045b740
mov eax, dword [ebp - 0x26c]
mov dword [esp + 4], 0x599f42
mov dword [esp + 8], eax
cmp dword [ebp - 0x238], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
mov edx, dword [ebp - 0x27c]
mov dword [esp], edx
mov eax, dword [ebp - 0x298]
call eax
sub esp, 4
mov eax, dword [ebp - 0x278]
mov esi, dword [sym.imp.kernel32.dll_CloseHandle]
mov edi, dword fs:[0x18]
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x2a4]
sub esp, 4
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x280]
sub esp, 4
mov dword [esp], eax
call esi
lea eax, [ebp - 0x114]
sub esp, 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x20000080
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x80000000
mov dword [esp], eax
mov eax, dword [ebp - 0x2a0]
call eax
sub esp, 0x1c
mov dword [ebp - 0x278], eax
mov eax, 0x13b9
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x599ba9
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebp - 0x278], 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
mov ecx, dword [ebp - 0x274]
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x254], 0
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
call sub.msvcrt.dll_memset
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x10], ebx
lea ebx, [ebp - 0x260]
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x238]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov eax, dword [ebp - 0x28c]
call eax
sub esp, 0x14
mov ebx, eax
mov eax, 0x13c1
call fcn.0045b740
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.ReadFileScatter_should_fail_n
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x13c2
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.ReadFileScatter_failed_err__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 8], 0x8000
mov ebx, dword [sym.imp.kernel32.dll_VirtualFree]
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x284]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov ecx, dword [ebp - 0x274]
mov dword [esp], ecx
call ebx
sub esp, 0xc
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x288]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x27c]
sub esp, 0xc
mov dword [esp], eax
call esi
lea eax, [ebp - 0x114]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
lea eax, [ebp - 0x264]
mov dword [esp + 0x10], 0x3e8
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x268]
mov dword [esp + 8], eax
lea eax, [ebp - 0x270]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x280]
mov dword [esp], eax
mov eax, dword [ebp - 0x290]
call eax
sub esp, 0x14
mov edi, eax
mov eax, 0x1350
call fcn.0045b740
xor eax, eax
test edi, edi
mov dword [esp + 4], str.GetQueuedCompletionStatus_should_have_returned_failure_n
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1351
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.Got_wrong_error:__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x26
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1352
call fcn.0045b740
mov eax, dword [ebp - 0x264]
mov dword [esp + 4], str.wrong_ovl__p_n
cmp eax, ebx
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x26c]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x278]
mov dword [esp], eax
mov eax, dword [ebp - 0x294]
call eax
sub esp, 0x10
mov edi, eax
mov eax, 0x1356
call fcn.0045b740
xor eax, eax
test edi, edi
mov dword [esp + 4], str.GetOverlappedResult_should_have_failed_n
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x1357
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.Got_wrong_error:__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x26
sete al
mov dword [esp], eax
call fcn.0045bef0
jmp 0x463daf
mov eax, 0x131a
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.WriteFileGather_failed_err__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x3e5
sete al
mov dword [esp], eax
call fcn.0045bef0
jmp 0x463832
mov eax, 0x13b0
call fcn.0045b740
mov dword [esp], str.SetFileCompletionNotificationModes_not_available._n
call fcn.0045bec0
jmp 0x464571