Function at 0x415521
Capabilities:
Copy file
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4395b8
mov eax, dword fs:[0]
push eax
sub esp, 0x698
mov eax, dword [0x4444c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push 0x26
lea eax, [ebp - 0x518]
push eax
call fcn.0041aee6
add esp, 0xc
and dword [ebp - 4], 0
push 0x43b782
lea ecx, [ebp - 0x538]
call fcn.00408211
mov byte [ebp - 4], 1
push 0x43bb1c
lea ecx, [ebp - 0x2a8]
call fcn.00408e1f
mov byte [ebp - 4], 2
lea eax, [ebp - 0x538]
push eax
lea eax, [ebp - 0x518]
push eax
call fcn.00408632
pop ecx
pop ecx
mov dword [ebp - 0x5f4], 0x43bb18
mov eax, dword [ebp - 0x5f4]
inc eax
mov dword [ebp - 0x5f8], eax
mov eax, dword [ebp - 0x5f4]
mov al, byte [eax]
mov byte [ebp - 0x5f9], al
inc dword [ebp - 0x5f4]
cmp byte [ebp - 0x5f9], 0
jne 0x4155b7
mov eax, dword [ebp - 0x5f4]
sub eax, dword [ebp - 0x5f8]
mov dword [ebp - 0x600], eax
push dword [ebp - 0x600]
push 0x43bb18
push 2
push 1
lea ecx, [ebp - 0x538]
call fcn.00416775
lea eax, [ebp - 0x2a8]
push eax
lea eax, [ebp - 0x538]
push eax
call fcn.00408591
pop ecx
pop ecx
push 0x43bb1c
lea ecx, [ebp - 0x28c]
call fcn.00408e1f
mov byte [ebp - 4], 3
lea eax, [ebp - 0x5c1]
mov dword [ebp - 0x5c0], eax
lea eax, [ebp - 0x270]
mov dword [ebp - 0x604], eax
mov byte [ebp - 4], 4
push 0
push 0
lea ecx, [ebp - 0x270]
call fcn.004050af
mov byte [ebp - 4], 5
push dword [0x43b6a8]
push 0
lea eax, [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x28c]
call fcn.00407683
mov dword [ebp - 0x608], 0x43ba2c
mov eax, dword [ebp - 0x608]
add eax, 2
mov dword [ebp - 0x60c], eax
mov eax, dword [ebp - 0x608]
mov ax, word [eax]
mov word [ebp - 0x60e], ax
add dword [ebp - 0x608], 2
cmp word [ebp - 0x60e], 0
jne 0x41568b
mov eax, dword [ebp - 0x608]
sub eax, dword [ebp - 0x60c]
sar eax, 1
mov dword [ebp - 0x614], eax
push dword [ebp - 0x614]
push 0x43ba2c
lea ecx, [ebp - 0x28c]
call fcn.004073b3
push dword [0x43b6a8]
push 0
lea eax, [ebp - 0x28c]
push eax
lea ecx, [ebp - 0x270]
call fcn.00406382
mov dword [ebp - 0x618], str.newver_
mov eax, dword [ebp - 0x618]
add eax, 2
mov dword [ebp - 0x61c], eax
mov eax, dword [ebp - 0x618]
mov ax, word [eax]
mov word [ebp - 0x61e], ax
add dword [ebp - 0x618], 2
cmp word [ebp - 0x61e], 0
jne 0x415709
mov eax, dword [ebp - 0x618]
sub eax, dword [ebp - 0x61c]
sar eax, 1
mov dword [ebp - 0x624], eax
push dword [ebp - 0x624]
push str.newver_
lea ecx, [ebp - 0x28c]
call fcn.004073b3
mov dword [ebp - 0x628], str.YSDrv
mov eax, dword [ebp - 0x628]
add eax, 2
mov dword [ebp - 0x62c], eax
mov eax, dword [ebp - 0x628]
mov ax, word [eax]
mov word [ebp - 0x62e], ax
add dword [ebp - 0x628], 2
cmp word [ebp - 0x62e], 0
jne 0x41576d
mov eax, dword [ebp - 0x628]
sub eax, dword [ebp - 0x62c]
sar eax, 1
mov dword [ebp - 0x634], eax
push dword [ebp - 0x634]
push str.YSDrv
lea ecx, [ebp - 0x28c]
call fcn.004073b3
mov dword [ebp - 0x638], 0x43cbe4
mov eax, dword [ebp - 0x638]
add eax, 2
mov dword [ebp - 0x63c], eax
mov eax, dword [ebp - 0x638]
mov ax, word [eax]
mov word [ebp - 0x63e], ax
add dword [ebp - 0x638], 2
cmp word [ebp - 0x63e], 0
jne 0x4157d1
mov eax, dword [ebp - 0x638]
sub eax, dword [ebp - 0x63c]
sar eax, 1
mov dword [ebp - 0x644], eax
push dword [ebp - 0x644]
push 0x43cbe4
lea ecx, [ebp - 0x28c]
call fcn.004073b3
and dword [ebp - 0x4fc], 0
push 0x24c
push 0
lea eax, [ebp - 0x4f8]
push eax
call fcn.0041d130
add esp, 0xc
push 0x208
push 0
lea eax, [ebp - 0x254]
push eax
call fcn.0041d130
add esp, 0xc
lea ecx, [ebp - 0x28c]
call fcn.00416ddb
mov dword [ebp - 0x5c8], eax
push dword [ebp - 0x5c8]
push 0x104
lea eax, [ebp - 0x254]
push eax
call fcn.0041d850
add esp, 0xc
lea eax, [ebp - 0x4fc]
push eax
lea eax, [ebp - 0x254]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x51c], eax
cmp dword [ebp - 0x51c], 0xffffffff
jne 0x415929
and dword [ebp - 0x590], 0
mov byte [ebp - 4], 6
push 0
push 1
lea ecx, [ebp - 0x270]
call fcn.004050af
mov byte [ebp - 4], 3
mov byte [ebp - 4], 7
push 0
push 1
lea ecx, [ebp - 0x28c]
call fcn.004050af
mov byte [ebp - 4], 2
mov byte [ebp - 4], 8
push 0
push 1
lea ecx, [ebp - 0x2a8]
call fcn.004050af
mov byte [ebp - 4], 1
mov byte [ebp - 4], 9
push 0
push 1
lea ecx, [ebp - 0x538]
call fcn.00402ad2
mov byte [ebp - 4], 0
mov dword [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0x518]
call fcn.004050af
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x590]
jmp 0x415e03
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x58c]
call fcn.00408e1f
mov byte [ebp - 4], 0xb
push str.newver_
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x554]
push eax
call fcn.00417892
add esp, 0xc
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x648], str.YSDrv
mov eax, dword [ebp - 0x648]
add eax, 2
mov dword [ebp - 0x64c], eax
mov eax, dword [ebp - 0x648]
mov ax, word [eax]
mov word [ebp - 0x64e], ax
add dword [ebp - 0x648], 2
cmp word [ebp - 0x64e], 0
jne 0x415977
mov eax, dword [ebp - 0x648]
sub eax, dword [ebp - 0x64c]
sar eax, 1
mov dword [ebp - 0x654], eax
push dword [ebp - 0x654]
push str.YSDrv
lea ecx, [ebp - 0x554]
call fcn.004073b3
mov dword [ebp - 0x658], 0x43cbd0
mov eax, dword [ebp - 0x658]
add eax, 2
mov dword [ebp - 0x65c], eax
mov eax, dword [ebp - 0x658]
mov ax, word [eax]
mov word [ebp - 0x65e], ax
add dword [ebp - 0x658], 2
cmp word [ebp - 0x65e], 0
jne 0x4159db
mov eax, dword [ebp - 0x658]
sub eax, dword [ebp - 0x65c]
sar eax, 1
mov dword [ebp - 0x664], eax
push dword [ebp - 0x664]
push 0x43cbd0
lea ecx, [ebp - 0x554]
call fcn.004073b3
lea eax, [ebp - 0x4d0]
mov dword [ebp - 0x668], eax
mov eax, dword [ebp - 0x668]
add eax, 2
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x668]
mov ax, word [eax]
mov word [ebp - 0x66e], ax
add dword [ebp - 0x668], 2
cmp word [ebp - 0x66e], 0
jne 0x415a41
mov eax, dword [ebp - 0x668]
sub eax, dword [ebp - 0x66c]
sar eax, 1
mov dword [ebp - 0x674], eax
push dword [ebp - 0x674]
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x554]
call fcn.004073b3
lea eax, [ebp - 0x4d0]
push eax
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x570]
push eax
call fcn.00417892
add esp, 0xc
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x678], 0x43cbcc
lea eax, [ebp - 0x4d0]
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp - 0x67c]
mov ax, word [eax]
mov word [ebp - 0x67e], ax
mov ecx, dword [ebp - 0x678]
cmp ax, word [ecx]
jne 0x415b28
cmp word [ebp - 0x67e], 0
je 0x415b1f
mov eax, dword [ebp - 0x67c]
mov ax, word [eax + 2]
mov word [ebp - 0x680], ax
mov ecx, dword [ebp - 0x678]
cmp ax, word [ecx + 2]
jne 0x415b28
add dword [ebp - 0x67c], 4
add dword [ebp - 0x678], 4
cmp word [ebp - 0x680], 0
jne 0x415ac5
and dword [ebp - 0x684], 0
jmp 0x415b33
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x684], eax
mov eax, dword [ebp - 0x684]
mov dword [ebp - 0x688], eax
cmp dword [ebp - 0x688], 0
je 0x415be5
mov dword [ebp - 0x68c], 0x43cbc4
lea eax, [ebp - 0x4d0]
mov dword [ebp - 0x690], eax
mov eax, dword [ebp - 0x690]
mov ax, word [eax]
mov word [ebp - 0x692], ax
mov ecx, dword [ebp - 0x68c]
cmp ax, word [ecx]
jne 0x415bc5
cmp word [ebp - 0x692], 0
je 0x415bbc
mov eax, dword [ebp - 0x690]
mov ax, word [eax + 2]
mov word [ebp - 0x694], ax
mov ecx, dword [ebp - 0x68c]
cmp ax, word [ecx + 2]
jne 0x415bc5
add dword [ebp - 0x690], 4
add dword [ebp - 0x68c], 4
cmp word [ebp - 0x694], 0
jne 0x415b62
and dword [ebp - 0x698], 0
jmp 0x415bd0
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x698], eax
mov eax, dword [ebp - 0x698]
mov dword [ebp - 0x69c], eax
cmp dword [ebp - 0x69c], 0
jne 0x415c2f
mov byte [ebp - 4], 0xe
push 0
push 1
lea ecx, [ebp - 0x570]
call fcn.004050af
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 0xf
push 0
push 1
lea ecx, [ebp - 0x554]
call fcn.004050af
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 0x10
push 0
push 1
lea ecx, [ebp - 0x58c]
call fcn.004050af
mov byte [ebp - 4], 5
jmp 0x415d84
lea ecx, [ebp - 0x570]
call fcn.00416ddb
mov dword [ebp - 0x5d8], eax
lea ecx, [ebp - 0x554]
call fcn.00416ddb
mov dword [ebp - 0x5dc], eax
push 0
push dword [ebp - 0x5d8]
push dword [ebp - 0x5dc]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x415d57
push str.DoInstall.cpp
lea ecx, [ebp - 0x48]
call fcn.00408211
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x570]
call fcn.00416ddb
mov dword [ebp - 0x5ec], eax
lea ecx, [ebp - 0x554]
call fcn.00416ddb
mov dword [ebp - 0x5f0], eax
push dword [ebp - 0x5ec]
push dword [ebp - 0x5f0]
push str.copy__ls_to__ls_failed_
lea eax, [ebp - 0x2c]
push eax
call fcn.00419558
add esp, 0x10
mov dword [ebp - 0x6a0], eax
mov eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x6a4], eax
mov byte [ebp - 4], 0x12
push 1
push dword [ebp - 0x6a4]
push 3
push 0x800
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x44621c
call fcn.0041952f
mov byte [ebp - 4], 0x13
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402ad2
mov byte [ebp - 4], 0x11
mov byte [ebp - 4], 0x14
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.00402ad2
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 0x15
push 0
push 1
lea ecx, [ebp - 0x570]
call fcn.004050af
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 0x16
push 0
push 1
lea ecx, [ebp - 0x554]
call fcn.004050af
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x58c]
call fcn.00404d88
jmp 0x415d9f
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x570]
call fcn.00404d88
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x554]
call fcn.00404d88
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x58c]
call fcn.00404d88
lea eax, [ebp - 0x4fc]
push eax
push dword [ebp - 0x51c]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x415929
push dword [ebp - 0x51c]
call dword [sym.imp.KERNEL32.dll_FindClose]
and dword [ebp - 0x594], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00404d88
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28c]
call fcn.00404d88
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2a8]
call fcn.00404d88
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x538]
call fcn.00402765
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x518]
call fcn.00404d88
mov eax, dword [ebp - 0x594]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041c438
leave
ret