Function at 0x405f91
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x417d52
mov eax, dword fs:[0]
push eax
sub esp, 0xc98
mov eax, dword [0x41f024]
xor eax, esp
mov dword [esp + 0xc90], eax
push ebx
push esi
push edi
mov eax, dword [0x41f024]
xor eax, esp
push eax
lea eax, [esp + 0xca8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
and dword [esp + 0x14], 0
mov esi, ecx
push eax
mov dword [esp + 0x28], esi
call fcn.00405d12
mov edi, eax
pop ecx
mov dword [esp + 0x1c], edi
test edi, edi
jne 0x405ffa
or dword [esp + 0x14], 0xffffffff
jmp 0x40628a
push esi
call fcn.00405e33
pop ecx
test eax, eax
je 0x406012
mov dword [esp + 0x14], 0xfffffffe
jmp 0x406280
push 0xffffffffffffffff
lea ecx, [esp + 0x68]
mov eax, edi
call fcn.00405dc5
pop ecx
test eax, eax
je 0x406031
mov dword [esp + 0x14], 0xfffffffd
jmp 0x406280
mov eax, dword [esp + 0x64]
and dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
test eax, eax
jle 0x406280
mov ebx, str..old
push dword [esp + 0x18]
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x68]
call fcn.00405dc5
pop ecx
test eax, eax
je 0x406218
cmp byte [ebp + 0xc], 0
jne 0x40626e
push 0
push 0x41befc
push str.zip
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40626e
cmp eax, 0x200
jne 0x406266
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x4a0]
push 0x41bf70
push eax
call fcn.00409d08
add esp, 0xc
xor eax, eax
push 0x206
push eax
mov word [esp + 0x29c], ax
lea eax, [esp + 0x29e]
push eax
call fcn.00409e10
mov esi, dword [esp + 0x30]
add esp, 0xc
lea eax, [esp + 0x294]
push esi
push eax
call fcn.00409631
push esi
call fcn.00409df3
lea eax, [esi + eax*2 - 2]
movzx eax, word [eax]
add esp, 0xc
cmp eax, 0x5c
je 0x40610d
cmp eax, 0x2f
je 0x40610d
lea eax, [esp + 0x294]
push 0x41bea8
push eax
call fcn.00409631
pop ecx
pop ecx
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x298]
push eax
call fcn.00409631
pop ecx
pop ecx
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x4c]
call fcn.00401821
and dword [esp + 0xcb0], 0
lea eax, [esp + 0x294]
push eax
lea eax, [esp + 0x30]
call fcn.00401821
push ebx
mov byte [esp + 0xcb4], 1
call fcn.00409df3
pop ecx
mov edi, eax
push ebx
lea eax, [esp + 0x30]
call fcn.00406748
xor esi, esi
cmp dword [esp + 0x5c], 8
mov eax, dword [esp + 0x48]
jae 0x406174
lea eax, [esp + 0x48]
movzx eax, word [esi + eax]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
lea edi, [esp + 0x4c]
call fcn.0040669b
cmp eax, 0xffffffff
jne 0x406199
add esi, 2
cmp esi, 8
jl 0x406165
jmp 0x4061df
xor esi, esi
cmp dword [esp + 0x40], 8
mov eax, dword [esp + 0x2c]
jae 0x4061aa
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x298]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x4061da
mov eax, esi
inc esi
cmp eax, 2
jge 0x4061da
push ebx
call fcn.00409df3
pop ecx
mov edi, eax
push ebx
lea eax, [esp + 0x30]
call fcn.00406748
jmp 0x40619b
cmp esi, 3
jl 0x4061f0
lea ecx, [esp + 0x294]
call fcn.0040638c
cmp eax, 2
je 0x406236
push 1
xor edi, edi
lea esi, [esp + 0x30]
mov byte [esp + 0xcb4], 0
call fcn.00401a97
or dword [esp + 0xcb0], 0xffffffff
push 1
lea esi, [esp + 0x4c]
call fcn.00401a97
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
call fcn.00405e04
pop ecx
pop ecx
test eax, eax
jne 0x406088
jmp 0x40626e
xor eax, eax
inc eax
push eax
xor edi, edi
lea esi, [esp + 0x30]
mov dword [esp + 0x18], eax
mov byte [esp + 0xcb4], 0
call fcn.00401a97
or dword [esp + 0xcb0], 0xffffffff
push 1
lea esi, [esp + 0x4c]
call fcn.00401a97
jmp 0x40626e
mov dword [esp + 0x14], 0xfffffffb
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x20]
jl 0x40604b
push dword [esp + 0x1c]
call fcn.00405e9b
pop ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xca8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc90]
xor ecx, esp
call fcn.00409256
mov esp, ebp
pop ebp
ret