Function at 0x40bfd0
Capabilities:
Delete file
Get disk size
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4533bb
mov eax, dword fs:[0]
push eax
sub esp, 0x658
mov eax, dword [0x465b00]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.UnCompressThread...
call fcn.00407f90
add esp, 4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x128]
mov edx, dword [ecx]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp - 0x128]
mov eax, dword [edx + 8]
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x354], 0
cmp dword [ebp - 0x140], 0
je 0x40c09b
push 1
push 0
call fcn.0040c8e0
add esp, 8
test eax, eax
jne 0x40c099
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ChoiceTempDir_Failed_Error__d
call fcn.00407f90
add esp, 8
mov dword [0x567500], 0x2714
jmp 0x40c0c9
push 0
push 0
call fcn.0040c8e0
add esp, 8
test eax, eax
jne 0x40c0c9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ChoiceTempDir_Failed_Error__d
call fcn.00407f90
add esp, 8
mov dword [0x567500], 0x2714
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x3f4], 0x94
lea ecx, [ebp - 0x3f4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x40c2d4
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x3f8], eax
cmp dword [ebp - 0x3f8], 0
je 0x40c2d4
cmp dword [ebp - 0x3f0], 4
jne 0x40c1ec
cmp dword [ebp - 0x3ec], 0
jne 0x40c1ec
push 0x45809c
mov edx, dword [ebp - 0x3f8]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x3fc], eax
cmp dword [ebp - 0x3fc], 0
je 0x40c1e7
mov dword [ebp - 0x514], 0
mov dword [ebp - 0x518], 0
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x400], 0
push 0x5671e0
lea eax, [ebp - 0x50c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x5c
lea ecx, [ebp - 0x50c]
push ecx
call fcn.00442ed0
add esp, 8
mov byte [eax + 1], 0
lea edx, [ebp - 0x400]
push edx
lea eax, [ebp - 0x510]
push eax
lea ecx, [ebp - 0x518]
push ecx
lea edx, [ebp - 0x514]
push edx
lea eax, [ebp - 0x50c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov ecx, dword [ebp - 0x514]
imul ecx, dword [ebp - 0x518]
imul ecx, dword [ebp - 0x510]
xor edx, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
jmp 0x40c2d4
push str.GetDiskFreeSpaceExA
mov eax, dword [ebp - 0x3f8]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x51c], eax
cmp dword [ebp - 0x51c], 0
je 0x40c2d4
mov dword [ebp - 0x644], 0
mov dword [ebp - 0x640], 0
mov dword [ebp - 0x63c], 0
mov dword [ebp - 0x638], 0
mov dword [ebp - 0x62c], 0
mov dword [ebp - 0x628], 0
mov byte [ebp - 0x624], 0
push 0x103
push 0
lea ecx, [ebp - 0x623]
push ecx
call fcn.004401c0
add esp, 0xc
push 0x5671e0
lea edx, [ebp - 0x624]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x5c
lea eax, [ebp - 0x624]
push eax
call fcn.00442ed0
add esp, 8
mov byte [eax + 1], 0
lea ecx, [ebp - 0x62c]
push ecx
lea edx, [ebp - 0x63c]
push edx
lea eax, [ebp - 0x644]
push eax
lea ecx, [ebp - 0x624]
push ecx
call dword [ebp - 0x51c]
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x630], 0
je 0x40c2d4
mov edx, dword [ebp - 0x62c]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x628]
mov dword [ebp - 0x10], eax
push str.Make_7Z_file_
call fcn.00407f90
add esp, 4
mov byte [ebp - 0x124], 0
push 0x104
push 0
lea ecx, [ebp - 0x123]
push ecx
call fcn.004401c0
add esp, 0xc
mov byte [ebp - 0x34c], 0
push 0x207
push 0
lea edx, [ebp - 0x34b]
push edx
call fcn.004401c0
add esp, 0xc
push 0x5671e0
lea eax, [ebp - 0x34c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.Rav.7z
lea ecx, [ebp - 0x34c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x104
lea edx, [ebp - 0x124]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x124]
push eax
push str.GetModuleFileName_szSoucFile__s
call fcn.00407f90
add esp, 8
push 0
push 0
push 3
push 0
push 3
push SysReAllocStringLen
lea ecx, [ebp - 0x124]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x358], eax
cmp dword [ebp - 0x358], 0xffffffff
jne 0x40c3d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [ebp - 0x124]
push edx
push str.CreateFile_Failed__SoucFile__s_Error__d
call fcn.00407f90
add esp, 0xc
push 0x10
push 9
push 0
call fcn.0040cce0
add esp, 0xc
push 0x5671e0
call fcn.0040c730
add esp, 4
mov dword [0x567500], 0x2715
xor eax, eax
jmp 0x40c70b
mov dword [ebp - 0x144], 0
lea eax, [ebp - 0x144]
push eax
mov ecx, dword [ebp - 0x358]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x35c]
mov edx, 2
mul edx
mov dword [ebp - 0x65c], eax
mov dword [ebp - 0x658], edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x658]
ja 0x40c467
jb 0x40c42e
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x65c]
jae 0x40c467
mov edx, dword [ebp - 0x358]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x5671e0
call fcn.0040c730
add esp, 4
push 0
push 0xa
push 0
call fcn.0040cce0
add esp, 0xc
mov dword [0x567500], 0x2716
xor eax, eax
jmp 0x40c70b
mov eax, dword [ebp - 0x358]
push eax
call fcn.0040cbd0
add esp, 4
push eax
lea ecx, [ebp - 0x34c]
push ecx
mov edx, dword [ebp - 0x358]
push edx
call fcn.0040cb10
add esp, 0xc
mov eax, dword [ebp - 0x358]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x34c]
push ecx
push str.7z_Open_file__s
call fcn.00407f90
add esp, 8
mov dword [ebp - 0x12c], 0
mov dword [ebp - 4], 0
lea edx, [ebp - 0x34c]
push edx
lea ecx, [ebp - 0x12c]
call fcn.00403150
test eax, eax
jne 0x40c53a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.7z_Open_File_failed_Error__d
call fcn.00407f90
add esp, 8
push 0x10
push 8
push 0
call fcn.0040cce0
add esp, 0xc
mov dword [0x567500], 0x2717
mov dword [ebp - 0x648], 0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x12c], 0
je 0x40c52f
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebp - 0x648]
jmp 0x40c70b
cmp dword [ebp - 0x140], 0
je 0x40c58d
cmp dword [0x5674f8], 0
je 0x40c558
mov dword [ebp - 0x660], 0x5672e8
jmp 0x40c562
mov dword [ebp - 0x660], 0x5671e0
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x14]
push edx
push 0x5674f4
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x660]
push ecx
lea ecx, [ebp - 0x12c]
call fcn.00403480
mov dword [ebp - 0x350], eax
jmp 0x40c5dc
cmp dword [0x5674f8], 0
je 0x40c5a2
mov dword [ebp - 0x664], 0x5672e8
jmp 0x40c5ac
mov dword [ebp - 0x664], 0x5671e0
mov edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
push 0x5674f4
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x664]
push eax
lea ecx, [ebp - 0x12c]
call fcn.004039e0
mov dword [ebp - 0x350], eax
cmp dword [ebp - 0x350], 0
je 0x40c6b6
cmp dword [ebp - 0x350], 0x81000001
jne 0x40c654
push str.No_Have_Enough_disk_space_
call fcn.00407f90
add esp, 4
push 0x5671e0
call fcn.0040c730
add esp, 4
mov dword [0x567500], 0x2716
mov dword [ebp - 0x64c], 0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x12c], 0
je 0x40c647
mov ecx, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x12c]
mov eax, dword [edx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [ebp - 0x64c]
jmp 0x40c70b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.File_Extract_failed__Error__d
call fcn.00407f90
add esp, 8
push 0x10
push 8
push 0
call fcn.0040cce0
add esp, 0xc
mov dword [0x567500], 0x2717
mov dword [ebp - 0x650], 0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x12c], 0
je 0x40c6ae
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x12c]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 8]
call edx
mov eax, dword [ebp - 0x650]
jmp 0x40c70b
lea eax, [ebp - 0x34c]
push eax
push str.Delete__s
call fcn.00407f90
add esp, 8
lea ecx, [ebp - 0x34c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebp - 0x654], 0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x12c], 0
je 0x40c705
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x12c]
mov ecx, dword [eax]
push edx
mov edx, dword [ecx + 8]
call edx
mov eax, dword [ebp - 0x654]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004401a3
mov esp, ebp
pop ebp
ret 4