Function at 0x42358f
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push dword [edi + 0x28]
call dword [sym.imp.KERNEL32.dll_SetEvent]
or ebx, 0xffffffff
test eax, eax
jne 0x4235e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x1e6
push str.cabextract.cpp
call fcn.0042fef9
push str.Failed_to_set_operation_complete_event.
jmp 0x423933
push ebx
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
jne 0x423628
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x1ec
push str.cabextract.cpp
call fcn.0042fef9
push str.Failed_to_wait_for_begin_operation_event.
jmp 0x423933
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x42366d
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x1f1
push str.cabextract.cpp
call fcn.0042fef9
push str.Failed_to_reset_begin_operation_event.
jmp 0x423933
mov eax, dword [edi + 0x2c]
dec eax
je 0x4236ac
sub eax, 4
je 0x4236a2
mov ebx, 0x8007139f
push ebx
push 0x1ff
push str.cabextract.cpp
mov esi, ebx
call fcn.0042fef9
push str.Invalid_operation_for_this_state.
push ebx
call fcn.00430877
or ebx, 0xffffffff
jmp 0x423939
mov esi, 0x80004004
jmp 0x42393b
mov eax, dword [ebp + 0xc]
push 0xfde9
push 0
push dword [eax + 4]
push dword [edi + 0x34]
call fcn.00433e24
mov esi, eax
test esi, esi
jns 0x4236e0
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push str.Failed_to_copy_stream_name:__ls
push esi
call fcn.00430877
add esp, 0xc
jmp 0x42393b
push dword [edi + 0x28]
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x423716
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x209
jmp 0x4235ce
push ebx
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
jne 0x42374d
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x20f
jmp 0x423614
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x423783
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x214
jmp 0x423659
mov eax, dword [edi + 0x2c]
dec eax
dec eax
je 0x4237f1
dec eax
je 0x4237ae
dec eax
je 0x4237a7
dec eax
je 0x4236a2
mov ebx, 0x8007139f
push ebx
push 0x24a
jmp 0x423683
xor eax, eax
jmp 0x42393e
mov eax, dword [ebp + 0xc]
push 1
push dword [eax]
call fcn.00430e98
mov dword [edi + 0x40], eax
test eax, eax
jne 0x4237e0
mov esi, 0x8007000e
push esi
push 0x239
push str.cabextract.cpp
call fcn.0042fef9
push str.Failed_to_allocate_buffer_for_stream.
jmp 0x423933
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
and dword [edi + 0x48], 0
mov dword [edi + 0x44], eax
jmp 0x42393b
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, ebx
jne 0x423850
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x21f
push str.cabextract.cpp
call fcn.0042fef9
push dword [edi + 0x38]
push str.Failed_to_create_file:__ls
jmp 0x4236d2
mov eax, dword [ebp + 0xc]
push 0
mov eax, dword [eax]
cdq
push 0
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x42389f
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x226
push str.cabextract.cpp
call fcn.0042fef9
push str.Failed_to_set_file_pointer_to_end_of_file.
jmp 0x423933
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x4238e1
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x22b
push str.cabextract.cpp
call fcn.0042fef9
push str.Failed_to_set_end_of_file.
jmp 0x423933
push 0
push 0
xorps xmm0, xmm0
movlpd qword [ebp - 8], xmm0
push dword [ebp - 4]
push dword [ebp - 8]
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x42393b
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, 0x80004005
test esi, esi
cmovns esi, eax
push esi
push 0x231
push str.cabextract.cpp
call fcn.0042fef9
push str.Failed_to_set_file_pointer_to_beginning_of_file.
push esi
call fcn.00430877
pop ecx
pop ecx
xor eax, eax
inc eax
mov dword [edi + 0x30], esi
test esi, esi
pop edi
cmovns ebx, eax
pop esi
mov eax, ebx
pop ebx
leave
ret 8