Function at 0x420b0d
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
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 0x420b5e
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 0x204
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push str.Failed_to_set_operation_complete_event.
jmp 0x420ead
push ebx
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
jne 0x420ba4
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 0x20a
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push str.Failed_to_wait_for_begin_operation_event.
jmp 0x420ead
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x420be9
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
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push str.Failed_to_reset_begin_operation_event.
jmp 0x420ead
mov eax, dword [edi + 0x2c]
sub eax, 1
je 0x420c2a
sub eax, 4
je 0x420c20
mov ebx, 0x8007139f
push ebx
push 0x21d
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
mov esi, ebx
call fcn.00403970
push str.Invalid_operation_for_this_state.
push ebx
call fcn.0043fdf0
or ebx, 0xffffffff
jmp 0x420eb3
mov esi, 0x80004004
jmp 0x420eb5
mov eax, dword [ebp + 0xc]
push 0xfde9
push 0
push dword [eax + 4]
push dword [edi + 0x34]
call fcn.00402266
mov esi, eax
test esi, esi
jns 0x420c5e
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push str.Failed_to_copy_stream_name:__ls
push esi
call fcn.0043fdf0
add esp, 0xc
jmp 0x420eb5
push dword [edi + 0x28]
call dword [sym.imp.KERNEL32.dll_SetEvent]
test eax, eax
jne 0x420c94
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 0x227
jmp 0x420b4a
push ebx
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
jne 0x420ccb
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 0x22d
jmp 0x420b90
push dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
test eax, eax
jne 0x420d01
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 0x232
jmp 0x420bd5
mov eax, dword [edi + 0x2c]
dec eax
sub eax, 1
je 0x420d77
sub eax, 1
je 0x420d34
sub eax, 1
je 0x420d2d
sub eax, 1
je 0x420c20
mov ebx, 0x8007139f
push ebx
push 0x268
jmp 0x420c01
xor eax, eax
jmp 0x420eb8
mov eax, dword [ebp + 0xc]
push 1
push dword [eax]
call fcn.00403a94
mov dword [edi + 0x40], eax
test eax, eax
jne 0x420d66
mov esi, 0x8007000e
push esi
push 0x257
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push str.Failed_to_allocate_buffer_for_stream.
jmp 0x420ead
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
and dword [edi + 0x48], 0
mov dword [edi + 0x44], eax
jmp 0x420eb5
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 0x420dd6
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 0x23d
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push dword [edi + 0x38]
push str.Failed_to_create_file:__ls
jmp 0x420c50
mov eax, dword [ebp + 0xc]
push 0
push 0
mov eax, dword [eax]
cdq
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x420e25
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 0x244
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push str.Failed_to_set_file_pointer_to_end_of_file.
jmp 0x420ead
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x420e67
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 0x249
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push str.Failed_to_set_end_of_file.
jmp 0x420ead
xor eax, eax
push eax
push eax
push eax
push eax
push dword [edi + 0x3c]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x420eb5
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 0x24f
push str.c:jworkspacewix3_build5059eb25_src_burnenginecabextract.cpp
call fcn.00403970
push str.Failed_to_set_file_pointer_to_beginning_of_file.
push esi
call fcn.0043fdf0
pop ecx
pop ecx
xor eax, eax
inc eax
test esi, esi
mov dword [edi + 0x30], esi
pop edi
cmovns ebx, eax
pop esi
mov eax, ebx
pop ebx
pop ebp
ret 8