Function at 0x4234a4
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 0x4234f9
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x4234d4
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x4234df
mov esi, 0x80004005
push esi
push 0x1e6
push str.cabextract.cpp
call fcn.0042fdc3
push str.Failed_to_set_operation_complete_event.
jmp 0x423834
push 0xffffffffffffffff
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x423542
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x42351d
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x423528
mov esi, 0x80004005
push esi
push 0x1ec
push str.cabextract.cpp
call fcn.0042fdc3
push str.Failed_to_wait_for_begin_operation_event.
jmp 0x423834
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x423588
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x423563
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x42356e
mov esi, 0x80004005
push esi
push 0x1f1
push str.cabextract.cpp
call fcn.0042fdc3
push str.Failed_to_reset_begin_operation_event.
jmp 0x423834
mov eax, dword [edi + 0x2c]
dec eax
je 0x4235bc
sub eax, 4
je 0x4235b2
mov esi, 0x8007139f
push esi
push 0x1ff
push str.cabextract.cpp
call fcn.0042fdc3
push str.Invalid_operation_for_this_state.
jmp 0x423834
mov esi, 0x80004004
jmp 0x42383c
push 0xfde9
push 0
push dword [ebx + 4]
push dword [edi + 0x34]
call fcn.0042e3fc
mov esi, eax
test esi, esi
jns 0x4235ea
push dword [ebx + 4]
push str.Failed_to_copy_stream_name:__ls
push esi
call fcn.0042d996
add esp, 0xc
jmp 0x42383c
push dword [edi + 0x28]
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x423621
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x42360b
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x423616
mov esi, 0x80004005
push esi
push 0x209
jmp 0x4234e5
push 0xffffffffffffffff
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x42365b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x423645
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x423650
mov esi, 0x80004005
push esi
push 0x20f
jmp 0x42352e
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x423692
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x42367c
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x423687
mov esi, 0x80004005
push esi
push 0x214
jmp 0x423574
mov eax, dword [edi + 0x2c]
dec eax
dec eax
je 0x4236fc
dec eax
je 0x4236bf
dec eax
je 0x4236b6
dec eax
je 0x4235b2
mov esi, 0x8007139f
push esi
push 0x24a
jmp 0x42359e
and dword [ebp - 4], 0
jmp 0x42383c
push 1
push dword [ebx]
call fcn.0042ff6a
mov dword [edi + 0x40], eax
test eax, eax
jne 0x4236ee
mov esi, 0x8007000e
push esi
push 0x239
push str.cabextract.cpp
call fcn.0042fdc3
push str.Failed_to_allocate_buffer_for_stream.
jmp 0x423834
mov eax, dword [ebx]
and dword [edi + 0x48], 0
mov dword [edi + 0x44], eax
jmp 0x42383c
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 0x42375d
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x423735
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x423740
mov esi, 0x80004005
push esi
push 0x21f
push str.cabextract.cpp
call fcn.0042fdc3
push dword [edi + 0x38]
push str.Failed_to_create_file:__ls
jmp 0x4235dc
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 0x4237ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x423787
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x423792
mov esi, 0x80004005
push esi
push 0x226
push str.cabextract.cpp
call fcn.0042fdc3
push str.Failed_to_set_file_pointer_to_end_of_file.
jmp 0x423834
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x4237ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x4237cd
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x4237d8
mov esi, 0x80004005
push esi
push 0x22b
push str.cabextract.cpp
call fcn.0042fdc3
push str.Failed_to_set_end_of_file.
jmp 0x423834
xor ecx, ecx
push ecx
push ecx
push ecx
xor eax, eax
push eax
push dword [edi + 0x3c]
call ebx
test eax, eax
jne 0x42383c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x423814
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x42381f
mov esi, 0x80004005
push esi
push 0x231
push str.cabextract.cpp
call fcn.0042fdc3
push str.Failed_to_set_file_pointer_to_beginning_of_file.
push esi
call fcn.0042d996
pop ecx
pop ecx
mov dword [edi + 0x30], esi
test esi, esi
pop esi
pop ebx
js 0x42384a
mov eax, dword [ebp - 4]
leave
ret
or eax, 0xffffffff
leave
ret