Function at 0x45a504
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xf
push 0
push 0
dec ecx
jne 0x45a50c
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x45aacd
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0040a6b0
fstp qword [ebp - 0x28]
wait
push dword [ebp - 0x24]
push dword [ebp - 0x28]
mov eax, dword [ebp - 8]
push dword [eax + 0x2c]
push dword [eax + 0x28]
call fcn.00457eec
fstp qword [ebp - 0x20]
wait
mov eax, dword [ebp - 8]
cmp dword [eax + 0x1c], 0
je 0x45a574
mov eax, dword [ebp - 8]
cmp dword [eax + 0x1c], 0
jle 0x45aaa5
fld qword [ebp - 0x20]
fcomp dword [0x45aadc]
fnstsw ax
sahf
jbe 0x45aaa5
mov eax, dword [ebp - 8]
inc dword [eax + 0x1c]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x24]
mov dword [eax + 0x2c], edx
xor edx, edx
push ebp
push 0x45aa8c
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, dword [0x441614]
call fcn.004416b8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
push dword [eax + 0x14]
mov eax, dword [ebp - 8]
push dword [eax]
push 0x45aae8
mov eax, dword [ebp - 8]
push dword [eax]
push 0x45aaf4
lea eax, [ebp - 0x30]
mov edx, 5
call fcn.00404a34
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc]
call fcn.004416d8
test al, al
jne 0x45a5ff
mov edx, 7
mov eax, 0x45ab04
call fcn.00423b18
mov eax, dword [ebp - 8]
mov byte [eax + 0x18], 8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aaa5
push 0
lea eax, [ebp - 0x14]
call fcn.004046a4
mov ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
mov edx, 0x45ab28
call fcn.0043e438
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
call fcn.00405a44
cmp eax, 2
jl 0x45a679
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x14]
call fcn.004266b0
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.004083d4
mov eax, dword [ebp - 0x34]
push eax
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 8]
call fcn.004083d4
mov edx, dword [ebp - 0x3c]
pop eax
call fcn.00404ac0
jne 0x45a679
push 0xffffffffffffffff
mov eax, dword [0x47004c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x45ab4c
call fcn.004304ec
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov edx, 0x45ab5c
call fcn.00404ac0
jne 0x45a704
push 0
lea ecx, [ebp - 0xd]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
mov edx, 0x45ab74
call fcn.0043e0dc
test al, al
je 0x45a6c4
cmp byte [ebp - 0xd], 1
je 0x45a6c4
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
xor ecx, ecx
mov edx, 0x45ab74
call fcn.0043eca8
mov eax, dword [ebp - 0xc]
add eax, 0x18
mov edx, 0x45abb4
call fcn.004046f8
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
call fcn.00405a44
dec eax
test eax, eax
jl 0x45a704
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
lea eax, [eax + ebx*8 + 4]
mov edx, 0x45abc8
call fcn.004046f8
inc ebx
dec dword [ebp - 0x2c]
jne 0x45a6ea
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
call fcn.00405a44
dec eax
test eax, eax
jl 0x45a7cf
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + ebx*8 + 4]
lea edx, [ebp - 0x40]
call fcn.0045001c
mov ecx, dword [ebp - 0x40]
mov edx, dword [0x46fcdc]
mov edx, dword [edx]
lea eax, [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*8]
lea eax, [ebp - 0x44]
mov edx, dword [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0x44]
call fcn.00426660
test al, al
je 0x45a7c5
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*8]
lea eax, [ebp - 0x48]
mov edx, dword [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0x48]
mov edx, 1
call fcn.00408b7c
test eax, eax
jne 0x45a7c0
push 0x45abe8
push dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
push dword [eax + ebx*8]
lea eax, [ebp - 0x4c]
mov edx, 3
call fcn.00404a34
mov eax, dword [ebp - 0x4c]
mov edx, 7
call fcn.00423b7c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aaa5
call fcn.00426648
inc ebx
dec dword [ebp - 0x2c]
jne 0x45a71e
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
call fcn.00405a44
dec eax
test eax, eax
jl 0x45a88f
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + ebx*8 + 4]
lea edx, [ebp - 0x50]
call fcn.0045001c
mov ecx, dword [ebp - 0x50]
mov edx, dword [0x46fcdc]
mov edx, dword [edx]
lea eax, [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*8]
lea eax, [ebp - 0x54]
mov edx, dword [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0x54]
call fcn.00426660
test al, al
je 0x45a885
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*8]
lea eax, [ebp - 0x58]
mov edx, dword [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0x58]
call fcn.00408f4c
test al, al
jne 0x45a885
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*8]
lea eax, [ebp - 0x5c]
mov edx, 0x45ac04
call fcn.004049c0
mov eax, dword [ebp - 0x5c]
mov edx, 7
call fcn.00423b18
mov eax, dword [ebp - 8]
mov byte [eax + 0x18], 8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aaa5
inc ebx
dec dword [ebp - 0x2c]
jne 0x45a7e9
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
call fcn.00405a44
dec eax
test eax, eax
jl 0x45aa2d
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + ebx*8 + 4]
lea edx, [ebp - 0x60]
call fcn.0045001c
mov ecx, dword [ebp - 0x60]
mov edx, dword [0x46fcdc]
mov edx, dword [edx]
lea eax, [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0x18]
call fcn.00404974
mov edi, eax
dec edi
test edi, edi
jle 0x45a8fd
mov esi, 1
mov eax, dword [ebp - 0x18]
cmp byte [eax + esi - 1], 0x2f
jne 0x45a8f9
lea eax, [ebp - 0x18]
call fcn.00404bcc
mov byte [eax + esi - 1], 0x5c
inc esi
dec edi
jne 0x45a8e2
mov eax, dword [ebp - 0x18]
call fcn.00426688
test al, al
jne 0x45a946
mov eax, dword [ebp - 0x18]
call fcn.00455ef8
test al, al
jne 0x45a946
lea eax, [ebp - 0x64]
mov ecx, dword [ebp - 0x18]
mov edx, 0x45ac20
call fcn.004049c0
mov eax, dword [ebp - 0x64]
mov edx, 7
call fcn.00423b18
mov eax, dword [ebp - 8]
mov byte [eax + 0x18], 8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aaa5
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*8]
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0x68]
call fcn.00404b74
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x14]
mov eax, dword [ebp - 8]
push dword [eax]
push 0x45aae8
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
push dword [eax + ebx*8]
lea eax, [ebp - 0x6c]
mov edx, 4
call fcn.00404a34
mov eax, dword [ebp - 0x6c]
call fcn.00404b74
push eax
call sub.kernel32.dll_MoveFileA
test eax, eax
jne 0x45aa07
push 0x45ac44
call sub.kernel32.dll_GetLastError_1
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x74]
call fcn.004087d0
push dword [ebp - 0x74]
push 0x45ac60
mov eax, dword [ebp - 4]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
push dword [eax + ebx*8]
push 0x45ac7c
push dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
push dword [eax + ebx*8]
lea eax, [ebp - 0x70]
mov edx, 8
call fcn.00404a34
mov eax, dword [ebp - 0x70]
mov edx, 7
call fcn.00423b18
mov eax, dword [ebp - 8]
mov byte [eax + 0x18], 8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aaa5
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*8]
lea eax, [ebp - 0x78]
mov edx, dword [ebp - 0x18]
call fcn.004049c0
mov eax, dword [ebp - 0x78]
call fcn.004253c8
inc ebx
dec dword [ebp - 0x2c]
jne 0x45a8a9
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 4
mov edx, 1
call fcn.00404bd4
mov eax, dword [ebp - 0x7c]
lea edx, [ebp - 0x14]
call fcn.004083d4
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
call fcn.0045e148
mov eax, dword [ebp - 8]
mov byte [eax + 0x18], 7
mov eax, dword [ebp - 4]
mov byte [eax + 0x11], 1
mov eax, dword [ebp - 4]
call fcn.00458290
mov eax, dword [ebp - 0xc]
call fcn.00403828
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45aaa5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45aad4
lea eax, [ebp - 0x7c]
mov edx, 0x14
call fcn.004046c8
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.004046c8
ret