Function at 0x42a300
Capabilities:
Copy file
Move file

Disassembly:
push 0xffffffffffffffff
push 0x4869d8
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ace78]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 8]
xor ebx, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], ebx
test ecx, ecx
jle 0x42aad5
test ebx, ebx
jl 0x42aad0
cmp ebx, dword [eax + 8]
jge 0x42aad0
mov eax, dword [eax + 4]
lea eax, [eax + ebx*4]
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00401630
lea esi, [eax + 0x10]
mov dword [esp + 0x1c], esi
lea ebp, [esi - 0x10]
mov dword [esp + 0x44], esp
mov edi, esp
push ebp
mov dword [esp + 0x7c], 0
mov dword [esp + 0x48], ebp
call fcn.00401630
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.00409a80
add esp, 4
lea ecx, [esp + 0x54]
call fcn.00451a06
push 0
push esi
lea ecx, [esp + 0x5c]
mov byte [esp + 0x7c], 1
call fcn.00451a9e
lea ecx, [esp + 0x54]
mov edi, eax
call fcn.00451697
test edi, edi
je 0x42a72c
push esi
call fcn.0040bf00
add esp, 4
test eax, eax
jne 0x42a72c
push str..__old
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x34]
push edx
call fcn.00403d00
mov eax, dword [eax]
add esp, 0xc
push eax
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov edi, eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a418
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x42a471
push str..__old
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x38]
push edx
call fcn.00403d00
mov eax, dword [eax]
push eax
mov byte [esp + 0x84], 2
call fcn.0040c290
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x74], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a72c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42a72c
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42a993
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push str..__old
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x40]
push edx
mov byte [esp + 0x80], 3
call fcn.00403d00
add esp, 0xc
mov eax, dword [eax]
push eax
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.backup_file_error__s_to__s_
mov byte [esp + 0x84], 4
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push str.MAIN
mov byte [esp + 0x88], 5
call fcn.00401ba0
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x88], 4
call fcn.004163c0
add esp, 0xc
mov eax, dword [eax]
push eax
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x84], 6
call fcn.00403ae0
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x74], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a53c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x74], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a561
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0040dc40
add esp, 4
xor ebx, ebx
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42a993
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
push ebx
push esi
lea ecx, [esp + 0x28]
push str._s.__old_d
push ecx
mov byte [esp + 0x84], 7
call fcn.00403ae0
mov edi, dword [esp + 0x30]
add esp, 0x10
push edi
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x42a6d0
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42a993
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
push edi
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push str.backup_file_error__s_to__s_
mov byte [esp + 0x84], 8
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push str.MAIN
mov byte [esp + 0x88], 9
call fcn.00401ba0
lea ecx, [esp + 0x4c]
push ecx
mov byte [esp + 0x88], 8
call fcn.004163c0
add esp, 0xc
mov eax, dword [eax]
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x84], 0xa
call fcn.00403ae0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x74], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a66e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x24]
push ebp
call fcn.0040dc40
lea eax, [ebp - 0x10]
add esp, 4
mov byte [esp + 0x74], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a69c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x74], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a6bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc ebx
cmp ebx, 0xa
jge 0x42a916
mov ebp, dword [esp + 0x40]
jmp 0x42a570
push edi
call fcn.0040c290
lea eax, [edi - 0x10]
add esp, 4
mov byte [esp + 0x74], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a6fa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp ebx, 0xa
jge 0x42a916
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x74], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a728
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x7c]
dec ecx
cmp ebx, ecx
jne 0x42a7df
push esi
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x42a983
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42a993
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push str.update_file__s_
mov byte [esp + 0x80], 0xb
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push str.MAIN
mov byte [esp + 0x84], 0xc
call fcn.00401ba0
lea ecx, [esp + 0x50]
push ecx
mov byte [esp + 0x84], 0xb
call fcn.004163c0
add esp, 0xc
mov eax, dword [eax]
push eax
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x80], 0xd
call fcn.00403ae0
mov eax, dword [esp + 0x50]
mov byte [esp + 0x80], 0xb
jmp 0x42a87e
push 0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x42aa50
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x42a993
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push str.update_file__s_
mov byte [esp + 0x80], 0x11
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push str.MAIN
mov byte [esp + 0x84], 0x12
call fcn.00401ba0
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x84], 0x11
call fcn.004163c0
add esp, 0xc
mov eax, dword [eax]
push eax
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x80], 0x13
call fcn.00403ae0
mov eax, dword [esp + 0x54]
mov byte [esp + 0x80], 0x11
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
add esp, 0xc
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a89d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x24]
push esi
call fcn.0040dc40
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x78], 1
add esp, 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a8cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x74], 0
call fcn.00451a2f
mov dword [esp + 0x74], 0xffffffff
lea ecx, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a8fb
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
inc ebx
cmp ebx, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
jge 0x42aad5
mov eax, dword [esp + 0x80]
jmp 0x42a343
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x74], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a93b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x74], 0
call fcn.00451a2f
add esi, 0xfffffff0
mov dword [esp + 0x74], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42a96d
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
xor al, al
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42a99d
push 0x80004005
call fcn.00401280
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x80], eax
push esi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x5c], esp
mov bl, 0xe
push str.move_file_error__s_to__s_
mov byte [esp + 0x84], bl
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x5c], esp
push str.MAIN
mov byte [esp + 0x88], 0xf
call fcn.00401ba0
lea ecx, [esp + 0x58]
push ecx
mov byte [esp + 0x88], bl
call fcn.004163c0
add esp, 0xc
mov byte [esp + 0x7c], 0x10
mov eax, dword [eax]
push eax
lea edx, [esp + 0x8c]
push edx
call fcn.00403ae0
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x84], bl
add esp, 0x10
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42aa38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x80]
push edi
call fcn.0040dc40
add esp, 4
lea eax, [edi - 0x10]
jmp 0x42a91d
call fcn.0044ba42
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42aa6a
push 0x80004005
call fcn.00401280
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x80], eax
push esi
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x5c], esp
mov bl, 0x14
push str.copy_file_error__s_to__s_
mov byte [esp + 0x84], bl
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x5c], esp
push str.MAIN
mov byte [esp + 0x88], 0x15
call fcn.00401ba0
lea ecx, [esp + 0x58]
push ecx
mov byte [esp + 0x88], bl
call fcn.004163c0
add esp, 0xc
mov byte [esp + 0x7c], 0x16
jmp 0x42a9fe
call fcn.0044b73e
mov al, 1
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret