Function at 0x425b46
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 0x425b9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425b76
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425b81
mov esi, 0x80004005
push esi
push 0x1e3
push str.cabextract.cpp
call fcn.00432f06
push str.Failed_to_set_operation_complete_event.
jmp 0x425ed6
push 0xffffffffffffffff
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x425be4
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425bbf
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425bca
mov esi, 0x80004005
push esi
push 0x1e9
push str.cabextract.cpp
call fcn.00432f06
push str.Failed_to_wait_for_begin_operation_event.
jmp 0x425ed6
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x425c2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425c05
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425c10
mov esi, 0x80004005
push esi
push 0x1ee
push str.cabextract.cpp
call fcn.00432f06
push str.Failed_to_reset_begin_operation_event.
jmp 0x425ed6
mov eax, dword [edi + 0x2c]
dec eax
je 0x425c5e
sub eax, 4
je 0x425c54
mov esi, 0x8007139f
push esi
push 0x1fc
push str.cabextract.cpp
call fcn.00432f06
push str.Invalid_operation_for_this_state.
jmp 0x425ed6
mov esi, 0x80004004
jmp 0x425ede
push 0xfde9
push 0
push dword [ebx + 4]
push dword [edi + 0x34]
call fcn.00430e73
mov esi, eax
test esi, esi
jns 0x425c8c
push dword [ebx + 4]
push str.Failed_to_copy_stream_name:__ls
push esi
call fcn.00430126
add esp, 0xc
jmp 0x425ede
push dword [edi + 0x28]
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x425cc3
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425cad
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425cb8
mov esi, 0x80004005
push esi
push 0x206
jmp 0x425b87
push 0xffffffffffffffff
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x425cfd
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425ce7
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425cf2
mov esi, 0x80004005
push esi
push 0x20c
jmp 0x425bd0
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x425d34
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425d1e
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425d29
mov esi, 0x80004005
push esi
push 0x211
jmp 0x425c16
mov eax, dword [edi + 0x2c]
dec eax
dec eax
je 0x425d9e
dec eax
je 0x425d61
dec eax
je 0x425d58
dec eax
je 0x425c54
mov esi, 0x8007139f
push esi
push 0x247
jmp 0x425c40
and dword [ebp - 4], 0
jmp 0x425ede
push 1
push dword [ebx]
call fcn.004328f3
mov dword [edi + 0x40], eax
test eax, eax
jne 0x425d90
mov esi, 0x8007000e
push esi
push 0x236
push str.cabextract.cpp
call fcn.00432f06
push str.Failed_to_allocate_buffer_for_stream.
jmp 0x425ed6
mov eax, dword [ebx]
and dword [edi + 0x48], 0
mov dword [edi + 0x44], eax
jmp 0x425ede
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 0x425dff
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425dd7
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425de2
mov esi, 0x80004005
push esi
push 0x21c
push str.cabextract.cpp
call fcn.00432f06
push dword [edi + 0x38]
push str.Failed_to_create_file:__ls
jmp 0x425c7e
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 0x425e4e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425e29
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425e34
mov esi, 0x80004005
push esi
push 0x223
push str.cabextract.cpp
call fcn.00432f06
push str.Failed_to_set_file_pointer_to_end_of_file.
jmp 0x425ed6
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x425e91
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425e6f
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425e7a
mov esi, 0x80004005
push esi
push 0x228
push str.cabextract.cpp
call fcn.00432f06
push str.Failed_to_set_end_of_file.
jmp 0x425ed6
xor ecx, ecx
push ecx
push ecx
push ecx
xor eax, eax
push eax
push dword [edi + 0x3c]
call ebx
test eax, eax
jne 0x425ede
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x425eb6
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
js 0x425ec1
mov esi, 0x80004005
push esi
push 0x22e
push str.cabextract.cpp
call fcn.00432f06
push str.Failed_to_set_file_pointer_to_beginning_of_file.
push esi
call fcn.00430126
pop ecx
pop ecx
mov dword [edi + 0x30], esi
test esi, esi
pop esi
pop ebx
js 0x425eec
mov eax, dword [ebp - 4]
leave
ret
or eax, 0xffffffff
leave
ret