Function at 0x451490
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffef8
mov eax, dword [0x757d2c]
test eax, eax
jne 0x4514c9
mov edx, dword [0x6f6a90]
test edx, edx
jne 0x4514bd
mov ecx, dword [0x6f6a94]
test ecx, ecx
je 0x4514c5
mov eax, dword [0x6f6a98]
dec eax
je 0x4514c9
xor edx, edx
jmp 0x4514ce
mov edx, 1
mov dword [ebp - 0x30], edx
mov ecx, dword [0x6f6920]
test ecx, ecx
je 0x4514e2
xor eax, eax
jmp 0x451c6f
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4514f0
xor eax, eax
jmp 0x451c6f
mov edx, dword [ebp + 8]
mov cl, byte [edx + 0x120]
test cl, cl
je 0x451a68
mov eax, dword [0x6e75f0]
test eax, eax
je 0x451517
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x12c]
test ecx, ecx
jne 0x45151e
xor eax, eax
jmp 0x451c6f
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x451555
mov ecx, dword [ebp + 8]
push dword [ecx + 0x12c]
lea eax, [ebp - 0x1054]
push eax
call fcn.0066c9ec
add esp, 8
lea edx, [ebp - 0x1054]
push edx
call fcn.00451424
pop ecx
lea ecx, [ebp - 0x1054]
mov dword [ebp - 0x34], ecx
jmp 0x451583
push 0x2f
mov eax, dword [ebp + 8]
push dword [eax + 0x12c]
call fcn.0066cb35
add esp, 8
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
test edx, edx
jne 0x451580
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x12c]
mov dword [ebp - 0x34], eax
jmp 0x451583
inc dword [ebp - 0x34]
push dword [ebp - 0x34]
push dword [ebp + 0xc]
push 0x7576d4
lea edx, [ebp - 0x854]
push edx
call fcn.00670e94
add esp, 0x10
push 0
lea ecx, [ebp - 0x854]
push ecx
call fcn.0066e7cc
add esp, 8
test eax, eax
jne 0x45171b
mov eax, dword [0x7569b4]
inc eax
jne 0x45170a
mov edx, dword [0x76c888]
test edx, edx
jne 0x45171b
lea ecx, [ebp - 0x10b4]
push ecx
lea eax, [ebp - 0x854]
push eax
call fcn.0066e728
add esp, 8
lea edx, [ebp - 0x3c]
push edx
lea ecx, [ebp - 0x854]
push ecx
call fcn.00462354
add esp, 8
lea eax, [ebp - 0x854]
mov dword [ebp - 0x1090], eax
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x1088], edx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x1084], edx
mov ecx, dword [ebp - 0x1098]
mov dword [ebp - 0x1080], ecx
xor eax, eax
mov dword [ebp - 0x107c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x134]
mov dword [ebp - 0x1078], ecx
push dword [ebp + 8]
call fcn.00404c44
pop ecx
mov dword [ebp - 0x1070], eax
mov dword [ebp - 0x106c], edx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x124]
mov dword [ebp - 0x1068], edx
mov ecx, dword [0x6f6a84]
test ecx, ecx
je 0x451674
mov dword [ebp - 0x1064], 1
jmp 0x45167c
xor eax, eax
mov dword [ebp - 0x1064], eax
mov edx, dword [0x811df4]
test edx, edx
je 0x45168b
call fcn.00404a4c
lea ecx, [ebp - 0x1090]
push ecx
call fcn.004b344c
pop ecx
cmp eax, 5
ja case.0x45169d.0
jmp dword [eax*4 + 0x4516a4]
mov dword [0x7569b4], 1
jmp case.0x45169d.0
xor eax, eax
jmp 0x451c6f
xor edx, edx
mov dword [0x7569b4], edx
xor eax, eax
jmp 0x451c6f
xor edx, edx
mov dword [0x7569b4], edx
mov dword [0x6f6920], 1
xor eax, eax
jmp 0x451c6f
mov edx, dword [0x811df4]
test edx, edx
je 0x45171b
call fcn.00404a38
jmp 0x45171b
mov ecx, dword [0x7569b4]
test ecx, ecx
jne 0x45171b
xor eax, eax
jmp 0x451c6f
mov dword [ebp - 0x18], 0x20
mov edx, dword [ebp - 0x30]
test edx, edx
jne 0x45175f
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp + 8]
call fcn.00450f34
add esp, 8
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x28]
push edx
call sub.KERNEL32.DLL_LocalFileTimeToFileTime
mov ecx, dword [0x6e761c]
test ecx, ecx
jne 0x45175f
mov eax, dword [ebp + 8]
test byte [eax + 0x145], 1
je 0x45175f
or dword [ebp - 0x18], 2
push 0xc
push 0
lea edx, [ebp - 0x1060]
push edx
call fcn.0066c86c
add esp, 0xc
mov dword [ebp - 0x1060], 0xc
xor ecx, ecx
mov dword [ebp - 0x105c], ecx
xor eax, eax
mov dword [ebp - 0x1058], eax
push 0
push dword [ebp - 0x18]
push 2
lea edx, [ebp - 0x1060]
push edx
push 0
push 0x40000000
lea ecx, [ebp - 0x854]
push ecx
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
jne 0x451829
lea edx, [ebp - 0x854]
push edx
push 0x59f4
call fcn.00402a64
pop ecx
push eax
push 0x9f2fb4
call fcn.00670e94
add esp, 0xc
mov ecx, dword [0x811df4]
test ecx, ecx
je 0x451813
lea eax, [ebp - 0x854]
push eax
push 0x59f4
call fcn.00402a64
pop ecx
push eax
push 0x9f2fb4
call fcn.00670e94
add esp, 0xc
push 4
push 0x9f2fb4
call fcn.00572d90
add esp, 8
jmp 0x451822
push 2
push 0x9f2fb4
call fcn.004f8c6c
add esp, 8
xor eax, eax
jmp 0x451c6f
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x110]
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x10c]
mov dword [ebp - 8], edx
lea ecx, [ebp - 0x854]
push ecx
call fcn.00441278
pop ecx
mov eax, dword [0x6f6a84]
test eax, eax
je 0x45189c
lea edx, [ebp - 0x44]
push edx
mov ecx, dword [ebp + 8]
mov ax, word [ecx + 0x124]
and ax, 0xffff
push eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x124]
sar ecx, 0x10
push ecx
call sub.KERNEL32.DLL_DosDateTimeToFileTime
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x44]
push edx
call sub.KERNEL32.DLL_LocalFileTimeToFileTime
push dword [ebp + 8]
push dword [ebp - 0x14]
call fcn.0051f598
add esp, 8
jmp 0x451a26
mov ecx, dword [0x6f6aac]
test ecx, ecx
je 0x4518ae
mov eax, dword [0x6f6aa0]
dec eax
je 0x4518cb
mov edx, dword [0x6f6aac]
test edx, edx
jne 0x451909
mov ecx, dword [0x6f6aa8]
test ecx, ecx
jne 0x4518cb
mov eax, dword [0x6f6a9c]
test eax, eax
je 0x451909
mov edx, dword [0x6f6a9c]
test edx, edx
je 0x4518e8
push dword [ebp + 8]
push dword [ebp - 0x14]
call fcn.00515cc8
add esp, 8
jmp 0x451a26
mov ecx, dword [0x6f6aa8]
test ecx, ecx
je 0x451a26
push dword [ebp + 8]
push dword [ebp - 0x14]
call fcn.00516884
add esp, 8
jmp 0x451a26
mov eax, dword [0x6f6a7c]
test eax, eax
je 0x45191f
push dword [ebp + 8]
call fcn.00458bec
pop ecx
test eax, eax
jne 0x451936
mov edx, dword [0x6f6a80]
test edx, edx
je 0x451983
push dword [ebp + 8]
call fcn.00458e80
pop ecx
test eax, eax
je 0x451983
push dword [ebp + 8]
call fcn.00450fe4
pop ecx
mov dword [ebp - 0x48], eax
push dword [ebp - 0xc]
push dword [ebp - 0x14]
call fcn.00498358
add esp, 8
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x45196d
push dword [ebp - 0xc]
push dword [ebp - 0x48]
push dword [ebp - 0x14]
call fcn.0045b224
add esp, 0xc
jmp 0x451a26
push dword [ebp - 0xc]
push dword [ebp - 8]
push dword [ebp - 0x14]
call fcn.0045b0e4
add esp, 0xc
jmp 0x451a26
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4519c0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x130]
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp + 8]
push dword [eax + 0x130]
push dword [ebp - 0x14]
call fcn.00497790
add esp, 8
push dword [ebp - 0x14]
push dword [0x757ca8]
push dword [ebp - 0x4c]
call fcn.004c6f20
add esp, 0xc
jmp 0x451a26
mov edx, dword [0x6f69a4]
test edx, edx
je 0x4519e7
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x4519e7
push dword [ebp + 8]
push dword [ebp - 0x14]
call fcn.005045f0
add esp, 8
jmp 0x451a26
mov edx, dword [0x6f699c]
test edx, edx
je 0x451a18
mov ecx, dword [0x6e7400]
test ecx, ecx
je 0x451a18
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0x159]
test dl, dl
je 0x451a18
push dword [ebp + 8]
push dword [ebp - 0x14]
call fcn.00461db4
add esp, 8
jmp 0x451a26
push dword [ebp + 8]
push dword [ebp - 0x14]
call fcn.0045ace4
add esp, 8
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x451a41
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x20]
push edx
lea ecx, [ebp - 0x20]
push ecx
push dword [ebp - 0x14]
call sub.KERNEL32.DLL_SetFileTime
push dword [ebp - 0x14]
call sub.KERNEL32.DLL_CloseHandle
mov eax, dword [0x6f6920]
test eax, eax
je 0x451c6a
lea edx, [ebp - 0x854]
push edx
call fcn.004522ac
pop ecx
jmp 0x451c6a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x134]
test eax, eax
jne 0x451a7c
xor eax, eax
jmp 0x451c6f
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x134]
mov dword [ebp - 4], ecx
push 0x5c
push dword [ebp - 4]
call fcn.0066cb35
add esp, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
test eax, eax
je 0x451aa4
inc dword [ebp - 4]
jmp 0x451aab
xor eax, eax
jmp 0x451c6f
push dword [ebp - 4]
push dword [ebp + 0xc]
push 0x7576da
lea edx, [ebp - 0x854]
push edx
call fcn.00670e94
add esp, 0x10
lea ecx, [ebp - 0x854]
push ecx
mov eax, dword [ebp + 8]
push dword [eax + 0x134]
call fcn.0066cbe8
add esp, 8
test eax, eax
jne 0x451aeb
mov eax, 1
jmp 0x451c6f
push 0
lea edx, [ebp - 0x854]
push edx
call fcn.0066e7cc
add esp, 8
test eax, eax
jne case.0x451bd5.0
mov ecx, dword [0x7569b4]
inc ecx
jne 0x451c2a
lea eax, [ebp - 0x1108]
push eax
lea edx, [ebp - 0x854]
push edx
call fcn.0066e728
add esp, 8
lea ecx, [ebp - 0x54]
push ecx
lea eax, [ebp - 0x854]
push eax
call fcn.00462354
add esp, 8
lea edx, [ebp - 0x854]
mov dword [ebp - 0x10e4], edx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x10dc], ecx
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x10d8], ecx
mov eax, dword [ebp - 0x10ec]
mov dword [ebp - 0x10d4], eax
xor edx, edx
mov dword [ebp - 0x10d0], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x134]
mov dword [ebp - 0x10cc], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x118]
mov dword [ebp - 0x10c4], ecx
mov ecx, dword [edx + 0x11c]
mov dword [ebp - 0x10c0], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x124]
mov dword [ebp - 0x10bc], edx
mov ecx, dword [0x6f6a84]
test ecx, ecx
je 0x451bbb
mov dword [ebp - 0x10b8], 1
jmp 0x451bc3
xor eax, eax
mov dword [ebp - 0x10b8], eax
lea edx, [ebp - 0x10e4]
push edx
call fcn.004b344c
pop ecx
cmp eax, 5
ja case.0x451bd5.0
jmp dword [eax*4 + 0x451bdc]
mov dword [0x7569b4], 1
jmp case.0x451bd5.0
xor eax, eax
jmp 0x451c6f
xor edx, edx
mov dword [0x7569b4], edx
xor eax, eax
jmp 0x451c6f
xor edx, edx
mov dword [0x7569b4], edx
mov dword [0x6f6920], 1
xor eax, eax
jmp 0x451c6f
mov edx, dword [0x7569b4]
test edx, edx
jne case.0x451bd5.0
xor eax, eax
jmp 0x451c6f
push 1
lea edx, [ebp - 0x854]
push edx
mov ecx, dword [ebp + 8]
push dword [ecx + 0x134]
call sub.KERNEL32.DLL_CopyFileA
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x11c]
mov eax, dword [eax + 0x118]
add dword [0x826584], eax
adc dword [0x826588], edx
mov eax, 1
mov esp, ebp
pop ebp
ret