Function at 0x404f60
Capabilities:
Copy file
Delete file
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x429c8f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf5c
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x264]
push 0x400
push eax
mov dword [esp + 0x50], 1
call fcn.00403aa0
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x371]
mov byte [esp + 0x370], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
add esp, 8
mov ecx, 0x4383b4
xor ebp, ebp
stosb byte es:[edi], al
call fcn.00401650
push 0x3ff
lea ecx, [esp + 0x36c]
push eax
push ecx
call fcn.0041a84f
lea edx, [esp + 0x374]
push 0x42fdf4
push edx
xor ebx, ebx
call fcn.0041a7a3
mov esi, eax
add esp, 0x14
cmp esi, ebp
je 0x405056
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
call fcn.00403de0
test eax, eax
jne 0x405028
push str._WDZ_SU_PROXY
push esi
call fcn.0041a6f4
add esp, 8
test eax, eax
jne 0x405028
push 0x42fdf4
push ebp
call fcn.0041a7a3
add esp, 8
jmp 0x40504c
lea eax, [esp + 0x264]
push eax
push ebp
push ebp
push ebp
push 4
push esi
push ebx
call fcn.0040d7c4
push 0x42fdf4
push ebp
mov ebx, eax
call fcn.0041a7a3
add esp, 0x24
mov esi, eax
cmp esi, ebp
jne 0x404ff9
cmp ebx, ebp
jne 0x40506c
push str.CopyMUpdateFiles_:_hAutoup__NULL_cannot_get__MUPDATE2__section_files
push 1
call fcn.004036f0
add esp, 8
xor eax, eax
jmp 0x405cf9
push ebx
mov dword [esp + 0xa0], 0x1c8
call fcn.0040c4ad
mov cl, byte [esp + 0x37]
mov edi, eax
add esp, 4
mov dword [esp + 0x40], edi
mov byte [esp + 0x54], cl
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dl, byte [esp + 0x33]
mov dword [esp + 0xf74], ebp
mov byte [esp + 0x1c], dl
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
xor esi, esi
cmp edi, ebp
mov byte [esp + 0xf74], 1
mov dword [esp + 0x34], esi
jbe 0x40523d
lea eax, [esp + 0x9c]
push eax
push esi
push ebx
call fcn.0040c5cd
add esp, 0xc
test eax, eax
je 0x405230
lea ecx, [esp + 0x12c]
push str.ahn.ui
push ecx
call fcn.004228b0
add esp, 8
test eax, eax
je 0x405230
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x20]
call fcn.00401010
mov al, byte [esp + 0x25c]
mov byte [esp + 0xf74], 2
test al, 8
je 0x405131
push 0x4383b0
lea ecx, [esp + 0x1c]
call fcn.00401660
jmp 0x405161
lea edx, [esp + 0x3c]
push edx
call fcn.00403cd0
add esp, 4
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0xf78], 3
call fcn.00401660
lea ecx, [esp + 0x3c]
mov byte [esp + 0xf74], 2
call fcn.00401090
lea eax, [esp + 0x1ec]
lea ecx, [esp + 0x18]
push eax
call fcn.00401b30
lea ecx, [esp + 0x12c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401b30
mov ebp, dword [esp + 0x25a]
test bp, bp
je 0x40519f
mov esi, dword [esp + 0x252]
mov edi, dword [esp + 0x256]
jmp 0x4051b4
mov esi, dword [esp + 0xa0]
mov edi, dword [esp + 0x24c]
mov ebp, dword [esp + 0x250]
lea ecx, [esp + 0x18]
call fcn.00401650
push eax
push ebp
push edi
lea edx, [esp + 0xb0]
push esi
lea eax, [esp + 0x23c]
push edx
push eax
call fcn.0040c26d
add esp, 0x18
test eax, eax
je 0x4051f8
test byte [esp + 0x25c], 4
je 0x4051f8
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x9c]
push ecx
push 1
push edx
jmp 0x40520c
cmp eax, 2
jne 0x405215
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x9c]
push eax
push 1
push ecx
lea ecx, [esp + 0x60]
call fcn.004070d0
lea ecx, [esp + 0x18]
mov byte [esp + 0xf74], 1
call fcn.00401090
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
xor ebp, ebp
inc esi
cmp esi, edi
mov dword [esp + 0x34], esi
jb 0x4050cb
push ebx
call fcn.0040c545
mov eax, dword [esp + 0x5c]
add esp, 4
cmp eax, ebp
jne 0x405252
xor esi, esi
jmp 0x40526d
mov ecx, dword [esp + 0x5c]
sub ecx, eax
mov eax, 0x8fb823ef
imul ecx
add edx, ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
mov esi, edx
push esi
push str.CopyMUpdateFiles_:_UpdateFile_count_is__d
push 1
mov dword [esp + 0x40], esi
call fcn.004036f0
add esp, 0xc
cmp esi, ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x44], ebp
jle 0x405c7d
mov dword [esp + 0x50], 0
mov esi, dword [esp + 0x58]
test esi, esi
je 0x4059ba
mov ecx, dword [esp + 0x5c]
mov eax, 0x8fb823ef
sub ecx, esi
imul ecx
add edx, ecx
mov eax, dword [esp + 0x44]
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, eax
jbe 0x4059ba
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x14]
lea ebx, [edx + esi]
mov dword [esp + 0x38], ebx
call fcn.00401000
lea ecx, [esp + 0x18]
mov byte [esp + 0xf74], 5
call fcn.00401000
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0xf7c], 6
call fcn.00401010
mov al, byte [ebx + 0x1c0]
mov byte [esp + 0xf74], 7
test al, 8
je 0x40532e
push 0x4383b0
lea ecx, [esp + 0x14]
call fcn.00401660
jmp 0x40535e
lea eax, [esp + 0x6c]
push eax
call fcn.00403cd0
add esp, 4
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xf78], 8
call fcn.00401660
lea ecx, [esp + 0x6c]
mov byte [esp + 0xf74], 7
call fcn.00401090
push 0x4383ac
lea ecx, [esp + 0x30]
call fcn.00401040
lea edi, [ebx + 0x150]
lea ecx, [esp + 0x2c]
push edi
mov byte [esp + 0xf78], 9
call fcn.00401b30
lea ebp, [ebx + 0x110]
lea ecx, [esp + 0x2c]
push ebp
call fcn.00401b30
lea ecx, [esp + 0x2c]
call fcn.00401650
push eax
call fcn.004041b0
add esp, 4
lea esi, [ebx + 0x90]
lea ecx, [esp + 0x2c]
push esi
call fcn.00401b30
push edi
lea ecx, [esp + 0x14]
call fcn.00401b30
push esi
lea ecx, [esp + 0x14]
call fcn.00401b30
lea ecx, [esp + 0x68]
push ecx
call fcn.00403b20
add esp, 4
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xf78], 0xa
call fcn.00401660
lea ecx, [esp + 0x68]
mov byte [esp + 0xf74], 9
call fcn.00401090
push ebp
lea ecx, [esp + 0x18]
call fcn.00401b30
lea edx, [esp + 0x14]
lea ecx, [esp + 0x18]
push edx
call fcn.00401660
lea eax, [ebx + 0x10]
lea ecx, [esp + 0x14]
push eax
call fcn.00401b30
push esi
lea ecx, [esp + 0x1c]
call fcn.00401b30
push 0x80
lea ecx, [esp + 0x14]
call fcn.00401650
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
cmp word [ebx + 0x1be], 0
je 0x4054fb
push 0
lea ecx, [esp + 0x1c]
call fcn.00401650
push eax
call fcn.0041a40e
add esp, 8
test eax, eax
jne 0x4054fb
lea ecx, [esp + 0x18]
call fcn.00401650
mov cx, word [ebx + 0x1be]
mov edx, dword [ebx + 0x1ba]
push eax
mov eax, dword [ebx + 0x1b6]
push ecx
push edx
lea ecx, [ebx + 0x190]
push eax
push ecx
call fcn.0040c32c
add esp, 0x14
test eax, eax
je 0x4054eb
push str.CopyMUpdateFiles_:_Set_FileType_compressed_to_normal_type
push 1
call fcn.004036f0
add esp, 8
lea ecx, [esp + 0x14]
push 0
call fcn.00401650
push eax
call fcn.0041a40e
add esp, 8
test eax, eax
jne 0x4054d2
lea ecx, [esp + 0x14]
call fcn.00401650
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea edx, [esp + 0x18]
lea ecx, [esp + 0x14]
push edx
call fcn.00401660
mov word [ebx + 0x1be], 0
jmp 0x4054fb
lea ecx, [esp + 0x18]
call fcn.00401650
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0
lea ecx, [esp + 0x14]
call fcn.00401650
push eax
call fcn.0041a40e
add esp, 8
cmp eax, 0xffffffff
je 0x40579b
push 0
lea ecx, [esp + 0x30]
call fcn.00401650
push eax
lea ecx, [esp + 0x18]
call fcn.00401650
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x405a16
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
push eax
push ecx
push str.CopyMUpdateFiles_:_Backup___s___s_
push 1
call fcn.004036f0
mov ecx, 0x201
xor eax, eax
lea edi, [esp + 0x778]
add esp, 0x10
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x10]
call fcn.00401650
push 0x3ff
lea edx, [esp + 0xb6c]
push eax
push edx
call fcn.0041a84f
add esp, 0xc
lea ecx, [esp + 0x2c]
call fcn.00401650
push 0x3ff
push eax
lea eax, [esp + 0x770]
push eax
call fcn.0041a84f
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
sub ecx, ebp
mov eax, 0x7fc01ff1
imul ecx
sar edx, 0xa
mov ecx, edx
add esp, 0xc
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0xf68], 0
cmp edx, 1
jae 0x4056a9
lea ecx, [esp + 0x1c]
call fcn.00406e70
cmp eax, 1
jbe 0x4055ed
lea ecx, [esp + 0x1c]
call fcn.00406e70
mov esi, eax
jmp 0x4055f2
mov esi, 1
lea ecx, [esp + 0x1c]
call fcn.00406e70
mov edi, eax
add edi, esi
mov eax, edi
jns 0x405605
xor eax, eax
mov edx, eax
shl edx, 9
add edx, eax
shl edx, 2
push edx
call fcn.00418c30
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x1c]
push esi
push ebp
push eax
call fcn.00406eb0
lea ecx, [esp + 0x768]
mov ebx, eax
push ecx
push 1
push ebx
lea ecx, [esp + 0x28]
call fcn.004075e0
mov edx, dword [esp + 0x24]
add ebx, 0x804
push ebx
push edx
push ebp
lea ecx, [esp + 0x28]
call fcn.00406eb0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00406ea0
mov edx, dword [esp + 0x20]
push edx
call fcn.00419036
mov eax, edi
add esp, 4
shl eax, 9
add eax, edi
lea ecx, [esi + eax*4]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x1c]
call fcn.00406e70
inc eax
mov ebx, dword [esp + 0x38]
mov edx, eax
mov dword [esp + 0x20], esi
shl edx, 9
add edx, eax
lea eax, [esi + edx*4]
mov dword [esp + 0x24], eax
jmp 0x40579b
xor ecx, ecx
mov eax, 0x7fc01ff1
imul ecx
sar edx, 0xa
mov dword [esp + 0x38], ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 1
jae 0x40572f
lea edx, [ebp + 0x804]
lea ecx, [esp + 0x1c]
push edx
push ebp
push ebp
call fcn.00406eb0
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x768]
mov ecx, esi
push eax
sub ecx, ebp
mov eax, 0x7fc01ff1
imul ecx
sar edx, 0xa
mov ecx, edx
mov eax, 1
shr ecx, 0x1f
add edx, ecx
lea ecx, [esp + 0x20]
sub eax, edx
push eax
push esi
call fcn.004075e0
mov edx, dword [esp + 0x24]
mov eax, ebp
cmp ebp, edx
je 0x405793
mov edi, eax
add eax, 0x804
mov ecx, 0x201
lea esi, [esp + 0x768]
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jne 0x405714
jmp 0x405793
lea eax, [ebp - 0x804]
push ebp
push ebp
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x44], eax
call fcn.00406eb0
mov eax, dword [esp + 0x24]
mov edx, eax
add eax, 0xfffff7fc
cmp ebp, eax
je 0x40576e
sub eax, 0x804
sub edx, 0x804
mov ecx, 0x201
mov esi, eax
mov edi, edx
cmp eax, ebp
rep movsd dword es:[edi], dword [esi]
jne 0x405754
lea edx, [ebp + 0x804]
mov eax, ebp
cmp ebp, edx
je 0x405793
mov edi, eax
add eax, 0x804
mov ecx, 0x201
lea esi, [esp + 0x768]
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jne 0x40577a
add dword [esp + 0x24], 0x804
xor ebp, ebp
test ebp, ebp
mov esi, 1
jle 0x4057b1
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x4057d6
test ebp, ebp
jle 0x4057d6
lea ecx, [esp + 0x64]
push ecx
call fcn.00404d40
add esp, 4
test eax, eax
je 0x4057d2
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
cmp word [ebx + 0x1be], 0
je 0x405841
cmp ebp, 0x19
jne 0x405823
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call fcn.00401040
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x54], esp
push eax
mov byte [esp + 0xf80], 0xb
call fcn.00401040
push 0
mov byte [esp + 0xf80], 9
call fcn.00406920
add esp, 0xc
jmp 0x40589f
lea ecx, [esp + 0x10]
call fcn.00401650
push eax
lea ecx, [esp + 0x18]
call fcn.00401650
push eax
call fcn.00404170
add esp, 8
jmp 0x40589f
cmp ebp, 0x19
jne 0x405883
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x50], esp
push edx
call fcn.00401040
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x40], esp
push eax
mov byte [esp + 0xf80], 0xc
call fcn.00401040
push esi
mov byte [esp + 0xf80], 9
call fcn.00406920
add esp, 0xc
jmp 0x40589f
push 0
lea ecx, [esp + 0x14]
call fcn.00401650
push eax
lea ecx, [esp + 0x1c]
call fcn.00401650
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x40591e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push ecx
push edx
push str.CopyMUpdateFiles_:_Copy_Success___s___s_
push esi
call fcn.004036f0
add esp, 0x10
lea ecx, [esp + 0x10]
push 0
push 0
push 3
push 0
push 0
push 0x40000000
call fcn.00401650
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40593d
lea eax, [ebx + 8]
push eax
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov edi, eax
test edi, edi
jne 0x405911
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x10]
push eax
push ecx
push str.CopyMUpdateFiles_:_SetFileTime___return_FALSE__s___d_
push 1
call fcn.004036f0
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
jne 0x40594e
jmp 0x40593d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
push ecx
push eax
push str.CopyMUpdateFiles_:_Copy_Fail_Err_d____s___s_
push esi
call fcn.004036f0
add esp, 0x14
mov edx, ebp
inc ebp
cmp edx, 0x19
jge 0x405b48
jmp 0x40579d
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf74], 7
call fcn.00401090
lea ecx, [esp + 0x10]
mov byte [esp + 0xf74], 6
call fcn.00401090
lea ecx, [esp + 0x18]
mov byte [esp + 0xf74], 5
call fcn.00401090
lea ecx, [esp + 0x14]
mov byte [esp + 0xf74], 1
call fcn.00401090
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
inc eax
add edx, 0x1c8
cmp eax, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], edx
jge 0x405c4a
jmp 0x4052a1
mov al, byte [esp + 0x33]
push 0
lea ecx, [esp + 0x74]
mov byte [esp + 0x74], al
call fcn.00406e20
mov edi, str.invalid_vector_T__subscript
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.invalid_vector_T__subscript
lea ecx, [esp + 0x78]
call fcn.00406ef0
lea ecx, [esp + 0x70]
mov byte [esp + 0xf74], 4
push ecx
lea ecx, [esp + 0x84]
call fcn.00405f20
lea edx, [esp + 0x80]
push 0x42d088
push edx
call fcn.0041a8e9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x30]
push eax
push ecx
push str.CopyMUpdateFiles_:_Backup_File_Fail.___s___s__GetLastErr:__d_
push 1
call fcn.004036f0
mov dl, byte [esp + 0x30]
add esp, 4
mov ebx, esp
mov dword [esp + 0x5c], esp
mov byte [ebx], dl
mov eax, dword [esp + 0x30]
test eax, eax
je 0x405a63
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov eax, 0x7fc01ff1
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edx
test eax, eax
jge 0x405a69
xor eax, eax
mov ecx, eax
shl ecx, 9
add ecx, eax
shl ecx, 2
push ecx
call fcn.00418c30
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 4
cmp edx, ecx
mov ebp, ecx
je 0x405aab
test eax, eax
je 0x405a9c
mov ecx, 0x201
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add edx, 0x804
add eax, 0x804
cmp edx, ebp
jne 0x405a8d
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
call fcn.00404b40
xor esi, esi
add esp, 0x10
cmp eax, esi
je 0x405ad2
mov ecx, 0x4383ac
call fcn.00401650
push eax
call fcn.004049a0
add esp, 4
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x24], edx
mov byte [esp + 0xf74], 7
call fcn.00401090
lea ecx, [esp + 0x10]
mov byte [esp + 0xf74], 6
call fcn.00401090
lea ecx, [esp + 0x18]
mov byte [esp + 0xf74], 5
call fcn.00401090
lea ecx, [esp + 0x14]
mov byte [esp + 0xf74], 1
call fcn.00401090
mov eax, dword [esp + 0x20]
push eax
call fcn.00419036
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], esi
push ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
call fcn.00419036
add esp, 8
xor eax, eax
jmp 0x405cf9
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push edx
push eax
push 0x19
push str.CopyMUpdateFiles_:_Copy_Error__d_times___s___s_
push 1
call fcn.004036f0
mov cl, byte [esp + 0x30]
add esp, 4
mov ebp, esp
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], esp
mov byte [ebp], cl
mov eax, dword [esp + 0x30]
test eax, eax
je 0x405b99
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov eax, 0x7fc01ff1
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edx
test eax, eax
jge 0x405b9f
xor eax, eax
mov ecx, eax
shl ecx, 9
add ecx, eax
shl ecx, 2
push ecx
call fcn.00418c30
mov dword [ebp + 4], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 4
cmp edx, ecx
mov ebx, ecx
je 0x405be1
test eax, eax
je 0x405bd2
mov ecx, 0x201
mov esi, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add edx, 0x804
add eax, 0x804
cmp edx, ebx
jne 0x405bc3
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
call fcn.00404b40
add esp, 0x10
test eax, eax
je 0x405c06
mov ecx, 0x4383ac
call fcn.00401650
push eax
call fcn.004049a0
add esp, 4
lea ecx, [esp + 0x2c]
mov byte [esp + 0xf74], 7
call fcn.00401090
lea ecx, [esp + 0x10]
mov byte [esp + 0xf74], 6
call fcn.00401090
lea ecx, [esp + 0x18]
mov byte [esp + 0xf74], 5
call fcn.00401090
lea ecx, [esp + 0x14]
mov byte [esp + 0xf74], 1
call fcn.00401090
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x405c7d
mov eax, dword [esp + 0x48]
test eax, eax
je 0x405c7d
lea edx, [esp + 0x264]
push edx
call fcn.00404670
add esp, 4
mov ecx, 0x4383ac
call fcn.00401650
push eax
call fcn.004049a0
add esp, 4
mov ebx, dword [esp + 0x48]
push ebx
push str.CopyMUpdateFiles_:_return__d
push 1
call fcn.004036f0
mov eax, dword [esp + 0x48]
add esp, 0xc
test eax, eax
je 0x405ca6
mov eax, dword [esp + 0x64]
push eax
call fcn.00404e50
add esp, 4
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
cmp eax, eax
mov ebp, eax
je 0x405cce
mov esi, eax
mov edi, edx
add eax, 0x804
mov ecx, 0x201
add edx, 0x804
cmp eax, ebp
rep movsd dword es:[edi], dword [esi]
jne 0x405cb4
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], edx
push ecx
call fcn.00419036
mov edx, dword [esp + 0x5c]
xor eax, eax
push edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
call fcn.00419036
add esp, 8
mov eax, ebx
mov ecx, dword [esp + 0xf6c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xf68
ret