Function at 0x4049a0
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x474e49
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x2ec
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.00401420
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.00401420
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call fcn.00401420
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.00401420
mov byte [ebp - 4], 4
lea eax, [ebp - 0x28]
push eax
call fcn.00455016
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0x20]
call fcn.0045ee0e
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xa4]
push ecx
push str._s_s
lea edx, [ebp - 0x18]
push edx
call fcn.00454b0b
add esp, 0x10
lea ecx, [ebp - 0x140]
call fcn.00404400
lea ecx, [ebp - 0x258]
call fcn.00404400
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0x18]
call fcn.00402310
push eax
call fcn.0045f70a
push 0x2e
lea ecx, [ebp - 0x20]
call fcn.00454763
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x25c], 0xffffffff
je 0x404b12
mov ecx, dword [ebp - 0x25c]
add ecx, 1
push ecx
lea edx, [ebp - 0x270]
push edx
lea ecx, [ebp - 0x20]
call fcn.00454560
mov dword [ebp - 0x288], eax
mov eax, dword [ebp - 0x288]
mov dword [ebp - 0x28c], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x28c]
push ecx
lea ecx, [ebp - 0x24]
call fcn.0045ee0e
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x270]
call fcn.0045ecd5
mov edx, dword [ebp - 0x25c]
push edx
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x20]
call fcn.00454695
mov dword [ebp - 0x290], eax
mov ecx, dword [ebp - 0x290]
mov dword [ebp - 0x294], ecx
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x294]
push edx
lea ecx, [ebp - 0x20]
call fcn.0045ee0e
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x274]
call fcn.0045ecd5
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x268], 0
mov eax, 1
test eax, eax
je 0x404cc8
cmp dword [ebp - 0x260], 0
jne 0x404bad
push str._Y_m_d
lea ecx, [ebp - 0x278]
push ecx
lea ecx, [ebp - 0x28]
call fcn.004552a3
mov dword [ebp - 0x298], eax
mov edx, dword [ebp - 0x298]
mov dword [ebp - 0x29c], edx
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x29c]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0xa4]
push edx
push str._sUpgradeHistory_s_s._s
lea eax, [ebp - 0x1c]
push eax
call fcn.00454b0b
add esp, 0x18
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x278]
call fcn.0045ecd5
jmp 0x404c19
push str._Y_m_d
lea ecx, [ebp - 0x27c]
push ecx
lea ecx, [ebp - 0x28]
call fcn.004552a3
mov dword [ebp - 0x2a0], eax
mov edx, dword [ebp - 0x2a0]
mov dword [ebp - 0x2a4], edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x260]
push ecx
mov edx, dword [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x2a4]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xa4]
push eax
push str._sUpgradeHistory_s_s__d_._s
lea ecx, [ebp - 0x1c]
push ecx
call fcn.00454b0b
add esp, 0x1c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x27c]
call fcn.0045ecd5
push ecx
mov ecx, esp
mov dword [ebp - 0x280], esp
lea edx, [ebp - 0x1c]
push edx
call fcn.0045ea4a
mov dword [ebp - 0x2a8], eax
call fcn.00404e50
add esp, 4
push 0
lea ecx, [ebp - 0x1c]
call fcn.00402310
push eax
call fcn.0043f384
add esp, 8
cmp eax, 0xffffffff
jne 0x404c5d
mov dword [ebp - 0x268], 1
jmp 0x404cc8
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402310
push eax
call fcn.0045f70a
test eax, eax
je 0x404cb4
push ecx
mov ecx, esp
mov dword [ebp - 0x284], esp
lea edx, [ebp - 0x13c]
push edx
call fcn.00403fd0
lea ecx, [ebp - 0x254]
call fcn.00404e20
test eax, eax
je 0x404cb4
mov eax, dword [ebp - 0x24c]
cmp eax, dword [ebp - 0x134]
jne 0x404cb4
mov dword [ebp - 0x264], 1
jmp 0x404cc8
mov ecx, dword [ebp - 0x260]
add ecx, 1
mov dword [ebp - 0x260], ecx
jmp 0x404b30
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x26c]
call fcn.00401420
mov dword [ebp - 0x2ac], eax
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x264], 0
je 0x404d04
mov edx, dword [ebp - 0x1c]
push edx
push 0x47afdc
lea eax, [ebp - 0x26c]
push eax
call fcn.00454b0b
add esp, 0xc
jmp 0x404d1c
mov ecx, dword [ebp - 0x1c]
push ecx
push 0x47afcc
lea edx, [ebp - 0x26c]
push edx
call fcn.00454b0b
add esp, 0xc
lea ecx, [ebp - 0x26c]
call fcn.00402310
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x2b0]
push eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x218
call fcn.004033a0
mov ecx, dword [ebp - 0x14]
add ecx, 0x218
call fcn.00403340
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
sub ecx, 1
push ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0x218
call fcn.00403370
cmp dword [ebp - 0x268], 0
je 0x404da9
lea ecx, [ebp - 0x1c]
call fcn.00402310
mov dword [ebp - 0x2b8], eax
lea ecx, [ebp - 0x18]
call fcn.00402310
mov dword [ebp - 0x2bc], eax
push 0
mov edx, dword [ebp - 0x2b8]
push edx
mov eax, dword [ebp - 0x2bc]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x26c]
call fcn.0045ecd5
jmp 0x404dc0
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.0045ecd5
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x20]
call fcn.0045ecd5
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1c]
call fcn.0045ecd5
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.0045ecd5
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.0045ecd5
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4