Function at 0x404af0
Capabilities:
Delete file
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x446bfd
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45b8f8]
xor eax, esp
push eax
lea eax, [esp + 0x130]
mov dword fs:[0], eax
mov edi, ecx
call fcn.0040c808
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404b39
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x138], 0
call fcn.0040c808
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404b6e
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
push 0
lea esi, [esp + 0x20]
mov byte [esp + 0x13c], 1
call fcn.00401100
mov ecx, dword [edi + 8]
mov ebp, dword [esp + 0x20]
add esp, 4
push ecx
push ebp
lea edx, [esp + 0x20]
push str._szip_s
push edx
call fcn.0040a870
add esp, 0x10
push 0x44f180
push 0x44f184
lea eax, [esp + 0x20]
push eax
call fcn.004076a0
mov ebx, dword [esp + 0x18]
push 0
push 0x80
push 3
push 0
push 7
push SysReAllocStringLen
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x404c01
lea ecx, [esp + 0x20]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.0040c808
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x404c1b
push 0x80004005
call fcn.00401bb0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov bl, 2
mov byte [esp + 0x138], bl
mov ecx, dword [edi + 8]
push ecx
push ebp
lea edx, [esp + 0x1c]
push 0x44f188
push edx
call fcn.0040a870
add esp, 0x10
push 0x44f180
push 0x44f184
lea eax, [esp + 0x1c]
push eax
call fcn.004076a0
push 0x450044
push 0x44f19c
lea ecx, [esp + 0x1c]
push ecx
call fcn.004076a0
lea edx, [esp + 0xb0]
mov dword [esp + 0xac], edx
call dword [0x45cb30]
mov esi, dword [esp + 0x14]
push eax
push esi
lea eax, [esp + 0xb4]
call fcn.00408080
lea eax, [esp + 0x2c]
mov byte [esp + 0x138], 3
mov dword [esp + 0x28], eax
call dword [0x45cb30]
push eax
push esi
lea eax, [esp + 0x30]
call fcn.00408080
mov byte [esp + 0x138], 4
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x28]
push 0x403a70
push ecx
push edx
call fcn.00403b20
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x38]
add esp, 0xc
cmp eax, ecx
je 0x404cf1
push eax
call fcn.0042d01e
add esp, 4
mov byte [esp + 0x138], bl
mov eax, dword [esp + 0xac]
lea edx, [esp + 0xb0]
cmp eax, edx
je 0x404d13
push eax
call fcn.0042d01e
add esp, 4
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], eax
call dword [0x45cb30]
push eax
push esi
lea eax, [esp + 0x30]
call fcn.00408080
lea ecx, [esp + 0xb0]
mov byte [esp + 0x138], 5
mov dword [esp + 0xac], ecx
call dword [0x45cb30]
push eax
push esi
lea eax, [esp + 0xb4]
call fcn.00408080
mov byte [esp + 0x138], 6
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0xac]
push 0x4039c0
push edx
push eax
call fcn.00403c20
mov eax, dword [esp + 0xb8]
lea ecx, [esp + 0xbc]
add esp, 0xc
cmp eax, ecx
je 0x404d93
push eax
call fcn.0042d01e
add esp, 4
mov byte [esp + 0x138], bl
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x2c]
cmp eax, edx
je 0x404daf
push eax
call fcn.0042d01e
add esp, 4
mov esi, dword [0x45fe08]
test esi, esi
je 0x404e1f
mov edi, dword [0x45fe0c]
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x404e1f
cmp esi, edi
mov ebp, edi
jbe 0x404df8
call fcn.0042cf2e
mov edi, dword [0x45fe0c]
mov esi, dword [0x45fe08]
cmp esi, edi
jbe 0x404df8
call fcn.0042cf2e
mov ecx, ebp
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
push 0x404a20
add ecx, edx
push ecx
push ebp
push esi
call fcn.004089e0
add esp, 0x10
mov esi, dword [0x45fdf8]
mov eax, dword [0x45fdfc]
cmp esi, eax
jbe 0x404e38
call fcn.0042cf2e
mov eax, dword [0x45fdfc]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edi, 0x45fdf4
cmp dword [0x45fdf8], eax
mov ebp, eax
jbe 0x404e52
call fcn.0042cf2e
test edi, edi
je 0x404e5e
cmp edi, 0x45fdf4
je 0x404e63
call fcn.0042cf2e
cmp esi, ebp
je 0x404e9f
test edi, edi
jne 0x404e70
call fcn.0042cf2e
cmp esi, dword [edi + 8]
jb 0x404e7a
call fcn.0042cf2e
cmp dword [esi + 0x18], 0x10
jb 0x404e85
mov eax, dword [esi + 4]
jmp 0x404e88
lea eax, [esi + 4]
push eax
call ebx
cmp esi, dword [edi + 8]
jb 0x404e95
call fcn.0042cf2e
mov eax, dword [0x45fdfc]
add esi, 0x1c
jmp 0x404e43
mov esi, dword [0x45fe08]
mov eax, dword [0x45fe0c]
cmp esi, eax
jbe 0x404eb8
call fcn.0042cf2e
mov eax, dword [0x45fe0c]
mov ebx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov edi, 0x45fe04
cmp dword [0x45fe08], eax
mov ebp, eax
jbe 0x404ed2
call fcn.0042cf2e
test edi, edi
je 0x404ede
cmp edi, 0x45fe04
je 0x404ee3
call fcn.0042cf2e
cmp esi, ebp
je 0x404f1f
test edi, edi
jne 0x404ef0
call fcn.0042cf2e
cmp esi, dword [edi + 8]
jb 0x404efa
call fcn.0042cf2e
cmp dword [esi + 0x18], 0x10
jb 0x404f05
mov eax, dword [esi + 4]
jmp 0x404f08
lea eax, [esi + 4]
push eax
call ebx
cmp esi, dword [edi + 8]
jb 0x404f15
call fcn.0042cf2e
mov eax, dword [0x45fe0c]
add esi, 0x1c
jmp 0x404ec3
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea eax, [esi - 0x10]
mov byte [esp + 0x138], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x404f4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x138], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404f76
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x138], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404fa1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x130]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x128
ret