Function at 0x425b21
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push dword [edi + 0x28]
mov ebx, eax
mov dword [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x425b76
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425b51
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425b5c
mov esi, 0x80004005
push esi
push 0x1e3
push str.cabextract.cpp
call fcn.00432f68
push str.Failed_to_set_operation_complete_event.
jmp 0x425eb1
push 0xffffffffffffffff
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x425bbf
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425b9a
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425ba5
mov esi, 0x80004005
push esi
push 0x1e9
push str.cabextract.cpp
call fcn.00432f68
push str.Failed_to_wait_for_begin_operation_event.
jmp 0x425eb1
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x425c05
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425be0
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425beb
mov esi, 0x80004005
push esi
push 0x1ee
push str.cabextract.cpp
call fcn.00432f68
push str.Failed_to_reset_begin_operation_event.
jmp 0x425eb1
mov eax, dword [edi + 0x2c]
dec eax
je 0x425c39
sub eax, 4
je 0x425c2f
mov esi, 0x8007139f
push esi
push 0x1fc
push str.cabextract.cpp
call fcn.00432f68
push str.Invalid_operation_for_this_state.
jmp 0x425eb1
mov esi, 0x80004004
jmp 0x425eb9
push 0xfde9
push 0
push dword [ebx + 4]
push dword [edi + 0x34]
call fcn.00430ed5
mov esi, eax
test esi, esi
jns 0x425c67
push dword [ebx + 4]
push str.Failed_to_copy_stream_name:__ls
push esi
call fcn.004300f7
add esp, 0xc
jmp 0x425eb9
push dword [edi + 0x28]
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x425c9e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425c88
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425c93
mov esi, 0x80004005
push esi
push 0x206
jmp 0x425b62
push 0xffffffffffffffff
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x425cd8
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425cc2
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425ccd
mov esi, 0x80004005
push esi
push 0x20c
jmp 0x425bab
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x425d0f
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425cf9
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425d04
mov esi, 0x80004005
push esi
push 0x211
jmp 0x425bf1
mov eax, dword [edi + 0x2c]
dec eax
dec eax
je 0x425d79
dec eax
je 0x425d3c
dec eax
je 0x425d33
dec eax
je 0x425c2f
mov esi, 0x8007139f
push esi
push 0x247
jmp 0x425c1b
and dword [ebp - 4], 0
jmp 0x425eb9
push 1
push dword [ebx]
call fcn.00432955
mov dword [edi + 0x40], eax
test eax, eax
jne 0x425d6b
mov esi, 0x8007000e
push esi
push 0x236
push str.cabextract.cpp
call fcn.00432f68
push str.Failed_to_allocate_buffer_for_stream.
jmp 0x425eb1
mov eax, dword [ebx]
and dword [edi + 0x48], 0
mov dword [edi + 0x44], eax
jmp 0x425eb9
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push dword [edi + 0x38]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ecx, eax
mov dword [edi + 0x3c], ecx
cmp ecx, 0xffffffff
jne 0x425dda
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425db2
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425dbd
mov esi, 0x80004005
push esi
push 0x21c
push str.cabextract.cpp
call fcn.00432f68
push dword [edi + 0x38]
push str.Failed_to_create_file:__ls
jmp 0x425c59
mov eax, dword [ebx]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
push 0
cdq
push 0
push edx
push eax
push ecx
call ebx
test eax, eax
jne 0x425e29
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425e04
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425e0f
mov esi, 0x80004005
push esi
push 0x223
push str.cabextract.cpp
call fcn.00432f68
push str.Failed_to_set_file_pointer_to_end_of_file.
jmp 0x425eb1
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x425e6c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425e4a
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425e55
mov esi, 0x80004005
push esi
push 0x228
push str.cabextract.cpp
call fcn.00432f68
push str.Failed_to_set_end_of_file.
jmp 0x425eb1
xor ecx, ecx
push ecx
push ecx
push ecx
xor eax, eax
push eax
push dword [edi + 0x3c]
call ebx
test eax, eax
jne 0x425eb9
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425e91
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425e9c
mov esi, 0x80004005
push esi
push 0x22e
push str.cabextract.cpp
call fcn.00432f68
push str.Failed_to_set_file_pointer_to_beginning_of_file.
push esi
call fcn.004300f7
pop ecx
pop ecx
mov dword [edi + 0x30], esi
test esi, esi
pop esi
pop ebx
js 0x425ec7
mov eax, dword [ebp - 4]
leave
ret
or eax, 0xffffffff
leave
ret