Function at 0x415a90
Capabilities:
Check if file exists
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49cdf8
mov eax, dword fs:[0]
push eax
sub esp, 0x138
mov eax, dword [0x4c6374]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, edx
mov edi, ecx
cmp dword [ebx + 0x10], 0
je 0x41605a
cmp dword [edi + 0x10], 0
je 0x41605a
cmp dword [edi + 0x14], 8
jb 0x415ae0
mov eax, dword [edi]
jmp 0x415ae2
mov eax, edi
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call esi
test eax, eax
je 0x41605a
mov ecx, edi
call fcn.00414c70
test al, al
je 0x415b2d
cmp dword [ebx + 0x10], 0
je 0x415b26
cmp dword [ebx + 0x14], 8
jb 0x415b0e
mov eax, dword [ebx]
jmp 0x415b10
mov eax, ebx
push eax
call esi
test eax, eax
je 0x415b26
mov ecx, ebx
call fcn.00414c70
test al, al
je 0x41605a
mov ecx, ebx
call fcn.00415030
xor eax, eax
mov dword [ebp - 0x98], 7
mov dword [ebp - 0x9c], 0
mov word [ebp - 0xac], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x68], 7
mov dword [ebp - 0x6c], eax
mov word [ebp - 0x7c], ax
sub esp, 0x18
mov byte [ebp - 4], 1
mov ecx, esp
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], eax
cmp dword [ecx + 0x14], 8
jb 0x415b78
mov eax, dword [ecx]
jmp 0x415b7a
mov eax, ecx
push 0xffffffffffffffff
xor esi, esi
push esi
push edi
mov word [eax], si
call fcn.0040ec30
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0xac]
call fcn.00415790
add esp, 0x18
test al, al
jne 0x415ba4
xor bl, bl
jmp 0x41600f
xor eax, eax
mov dword [ebp - 0x50], 7
mov dword [ebp - 0x54], esi
mov word [ebp - 0x64], ax
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], eax
mov word [ebp - 0x4c], ax
sub esp, 0x18
mov byte [ebp - 4], 3
mov ecx, esp
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], eax
cmp dword [ecx + 0x14], 8
jb 0x415bdf
mov eax, dword [ecx]
jmp 0x415be1
mov eax, ecx
push 0xffffffffffffffff
xor esi, esi
push esi
push ebx
mov word [eax], si
call fcn.0040ec30
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x64]
call fcn.00415790
add esp, 0x18
test al, al
je 0x415fbb
mov ecx, edi
call fcn.00414c70
test al, al
jne 0x415ca6
lea ecx, [ebp - 0x64]
call fcn.00415030
test al, al
je 0x415fbb
cmp dword [ebp - 0x3c], esi
lea ecx, [ebp - 0x4c]
lea eax, [ebp - 0x7c]
cmovne eax, ecx
lea edx, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x34]
call fcn.0040c0c0
add esp, 4
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 4
call fcn.00414db0
test al, al
je 0x415c5d
lea edx, [ebp - 0x34]
mov ecx, edi
call fcn.00414b60
test al, al
jne 0x415c88
mov dl, 1
lea ecx, [ebp - 0x34]
call fcn.00415680
cmp dword [ebp - 0x20], 8
lea eax, [ebp - 0x34]
cmovae eax, dword [ebp - 0x34]
cmp dword [edi + 0x14], 8
jb 0x415c7a
mov edi, dword [edi]
push 0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x415c97
lea ecx, [ebp - 0x34]
mov bl, 1
call fcn.0040f680
jmp 0x415fbd
lea ecx, [ebp - 0x34]
xor bl, bl
call fcn.0040f680
jmp 0x415fbd
xorps xmm0, xmm0
mov dword [ebp - 0x14], esi
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
push 0
push 1
lea edx, [ebp - 0x1c]
mov byte [ebp - 4], 5
mov ecx, edi
call fcn.004162b0
xor ecx, ecx
mov eax, 0x2aaaaaab
mov dword [ebp - 0xe0], ecx
add esp, 8
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x1c]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x415e84
xor esi, esi
mov dword [ebp - 0xe4], esi
nop dword [eax]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edi + 0x10]
add edx, esi
mov eax, dword [edx + 0x10]
sub eax, ecx
dec eax
push eax
lea eax, [ecx + 1]
mov ecx, edx
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00408960
xor eax, eax
mov byte [ebp - 4], 6
push 0xffffffffffffffff
push eax
push ebx
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x80], 7
mov dword [ebp - 0x84], 0
mov word [ebp - 0x94], ax
call fcn.0040ec30
mov edx, 0x5c
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x94]
call fcn.00425ab0
mov edx, 0x2f
lea ecx, [ebp - 0x94]
call fcn.00425ab0
push 0x4b66d4
lea ecx, [ebp - 0x144]
call fcn.00408ac0
mov esi, eax
push 0x4b66d4
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 8
call fcn.00408ac0
push eax
lea edx, [ebp - 0x94]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x114]
call fcn.00416ac0
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 0xa
push ecx
mov edx, eax
lea ecx, [ebp - 0xfc]
call fcn.00416a70
push esi
mov edx, eax
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xc4]
call fcn.00416a00
add esp, 0xc
lea ecx, [ebp - 0xfc]
call fcn.0040f680
lea ecx, [ebp - 0x114]
call fcn.0040f680
lea ecx, [ebp - 0x12c]
call fcn.0040f680
lea ecx, [ebp - 0x144]
mov byte [ebp - 4], 0x10
call fcn.0040f680
lea ecx, [ebp - 0xc4]
call fcn.00415030
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0xc4]
mov esi, dword [ebp - 0xe4]
lea ecx, [esi + ecx]
call fcn.00415a90
lea ecx, [ebp - 0xc4]
call fcn.0040f680
lea ecx, [ebp - 0x94]
call fcn.0040f680
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 5
call fcn.0040f680
mov ecx, dword [ebp - 0x18]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x1c]
add esi, 0x18
inc dword [ebp - 0xe0]
imul ecx
mov dword [ebp - 0xe4], esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0xe0], eax
jb 0x415d00
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
push 0
push 0
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 0x11
mov ecx, edi
call fcn.004162b0
mov edi, dword [ebp - 0x24]
xor ecx, ecx
mov esi, dword [ebp - 0x28]
mov eax, 0x2aaaaaab
mov dword [ebp - 0xe0], ecx
add esp, 8
mov ecx, edi
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x415f1d
xor edi, edi
lea ecx, [edi + esi]
mov edx, ebx
call fcn.00415a90
mov ecx, dword [ebp - 0x24]
lea edi, [edi + 0x18]
mov esi, dword [ebp - 0x28]
mov eax, 0x2aaaaaab
inc dword [ebp - 0xe0]
sub ecx, esi
imul ecx
mov ecx, dword [ebp - 0xe0]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jb 0x415ee4
mov edi, dword [ebp - 0x24]
mov bl, 1
test esi, esi
je 0x415f6b
push dword [ebp - 0xe4]
mov edx, edi
push ecx
mov ecx, esi
call fcn.00413210
mov ecx, dword [ebp - 0x20]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x28]
add esp, 8
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.00412bc0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x415fbd
push dword [ebp - 0xe4]
mov edx, dword [ebp - 0x18]
push ecx
call fcn.00413210
mov ecx, dword [ebp - 0x14]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x1c]
add esp, 8
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.00412bc0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
jmp 0x415fbd
xor bl, bl
mov eax, dword [ebp - 0x38]
cmp eax, 8
jb 0x415fd2
inc eax
lea ecx, [ebp - 0x4c]
push eax
push dword [ebp - 0x4c]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x38], 7
mov word [ebp - 0x4c], ax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x3c], 0
cmp eax, 8
jb 0x415ffb
inc eax
lea ecx, [ebp - 0x64]
push eax
push dword [ebp - 0x64]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x50], 7
mov dword [ebp - 0x54], 0
mov word [ebp - 0x64], ax
mov eax, dword [ebp - 0x68]
cmp eax, 8
jb 0x416024
inc eax
lea ecx, [ebp - 0x7c]
push eax
push dword [ebp - 0x7c]
call fcn.0040f5b0
mov ecx, dword [ebp - 0x98]
xor eax, eax
mov dword [ebp - 0x68], 7
mov dword [ebp - 0x6c], 0
mov word [ebp - 0x7c], ax
cmp ecx, 8
jb 0x416056
inc ecx
push ecx
push dword [ebp - 0xac]
lea ecx, [ebp - 0xac]
call fcn.0040f5b0
mov al, bl
jmp 0x41605c
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00475cda
mov esp, ebp
pop ebp
ret