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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46bd20
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x4914f4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
xor esi, esi
mov dword [0x4937a8], esi
call fcn.0042fa4e
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x41a5ed
push 0x80004005
call fcn.00401350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], esi
call fcn.0042fa4e
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x41a619
push 0x80004005
call fcn.00401350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
mov edi, dword [ebp + 8]
push 1
push 0x472650
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x18]
push edx
push edi
mov byte [ebp - 4], 1
call fcn.0045d8a0
mov eax, dword [ebp - 0x10]
add esp, 0x14
push 0x475410
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x41a67b
mov ecx, dword [0x493818]
mov ebx, dword [sym.imp.KERNEL32.dll_CopyFileW]
push esi
push ecx
push edi
call ebx
mov edx, dword [0x49388c]
push esi
push edx
push edi
call ebx
jmp 0x41ab1f
call fcn.0042fa4e
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x41a695
push 0x80004005
call fcn.00401350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 2
cmp dword [0x49384c], esi
jle 0x41a71e
mov ecx, dword [0x49386c]
sub ecx, dword [0x493868]
sar ecx, 2
cmp esi, ecx
jb 0x41a6c8
call fcn.00447ea0
mov edx, dword [0x493868]
mov eax, dword [edx + esi*4]
push eax
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x41a715
mov ecx, dword [0x49386c]
sub ecx, dword [0x493868]
sar ecx, 2
cmp esi, ecx
jb 0x41a6f8
call fcn.00447ea0
mov edx, dword [0x493868]
mov eax, dword [edx + esi*4]
push eax
mov ecx, 0x493840
call fcn.00419940
push eax
lea ecx, [ebp - 0x10]
call fcn.00403a00
inc esi
cmp esi, dword [0x49384c]
jl 0x41a6b0
mov eax, dword [ebp - 0x10]
mov esi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
push 0x475404
push eax
call esi
test eax, eax
je 0x41a73c
push 0x1a
push str.DefaultFolderNodeCtrl.gmd
jmp 0x41a752
mov ecx, dword [ebp - 0x10]
push 0x4753c0
push ecx
call esi
test eax, eax
je 0x41a75a
push 0x2a
push str.xtmlmainframemainpanel.xml_MainPanel.gmd
lea ecx, [ebp - 0x10]
call fcn.00403400
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, dword [ebp - 0x10]
push str.Default
call esi
push eax
push str.Default
push ebx
call fcn.0044810c
add esp, 0xc
test eax, eax
jne 0x41a8ae
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
add ebx, 0xea0
mov ecx, ebx
call fcn.0040b330
test eax, eax
je 0x41a7a8
mov edx, dword [0x4937e8]
push 0
push edx
mov ecx, ebx
call fcn.004105e0
mov ecx, ebx
call fcn.0040b330
test eax, eax
jne 0x41a7c4
push edi
push esi
mov ecx, ebx
call fcn.004109e0
test eax, eax
jne 0x41a84e
mov eax, dword [0x4938b4]
inc eax
mov dword [0x4938b4], eax
cmp eax, 0xa
jne 0x41a84e
cmp dword [0x493780], 0
jne 0x41a84e
call fcn.0042fa4e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41a7f7
push 0x80004005
call fcn.00401350
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp + 8], eax
lea ecx, [ebp + 8]
push 0x4752d8
push ecx
mov byte [ebp - 4], 3
call fcn.00403af0
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
add esp, 8
push 0
push 0x4752b4
push esi
call fcn.00426d28
lea eax, [esi - 0x10]
mov byte [ebp - 4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41a84e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4752a8
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
je 0x41aafc
push str.DefaultMainPanelMainMenuButtonmenu_btn_highlight.png
lea ecx, [ebp + 8]
call fcn.00408390
mov esi, dword [ebp + 8]
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.0040b330
test eax, eax
je 0x41a891
mov ecx, dword [0x4937e8]
push 0
push ecx
mov ecx, ebx
call fcn.004105e0
mov ecx, ebx
call fcn.0040b330
test eax, eax
jne 0x41aad9
push edi
push esi
mov ecx, ebx
call fcn.004109e0
jmp 0x41aad9
mov ebx, dword [ebp - 0x10]
push str.xtml
call esi
push eax
push str.xtml
push ebx
call fcn.0044810c
add esp, 0xc
test eax, eax
jne 0x41a91b
cmp dword [0x493780], eax
jne 0x41aafc
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
add esi, 0xf48
mov ecx, esi
call fcn.0040b330
test eax, eax
je 0x41a8fe
mov ecx, dword [0x4937e0]
push 0
push ecx
mov ecx, esi
call fcn.004105e0
mov ecx, esi
call fcn.0040b330
test eax, eax
jne 0x41aafc
push edi
push ebx
mov ecx, esi
call fcn.004109e0
jmp 0x41aafc
mov ebx, dword [ebp - 0x10]
push str.Res
call esi
push eax
push str.Res
push ebx
call fcn.0044810c
add esp, 0xc
test eax, eax
jne 0x41aafc
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
lea ecx, [ebx + 0xdf8]
mov dword [ebp + 8], edx
call fcn.0040b330
test eax, eax
je 0x41a967
mov eax, dword [0x4937e4]
push 0
push eax
lea ecx, [ebx + 0xdf8]
call fcn.004105e0
lea ecx, [ebx + 0xdf8]
call fcn.0040b330
test eax, eax
jne 0x41a986
mov ecx, dword [ebp + 8]
push edi
push ecx
lea ecx, [ebx + 0xdf8]
call fcn.004109e0
push 0x475224
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41aa86
push 0x4751cc
mov ecx, 0x493840
call fcn.00419c00
mov eax, dword [eax]
push edi
push eax
mov ecx, ebx
call fcn.004128e0
push edi
lea ecx, [ebp - 0x14]
call fcn.00408390
push 0x475218
push 0x475224
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 5
call fcn.0040ba10
mov edx, dword [ebp - 0x14]
push edx
call esi
test eax, eax
jne 0x41a9fd
push 0x475218
mov ecx, 0x493840
call fcn.00419c00
mov eax, dword [eax]
push edi
push eax
mov ecx, ebx
call fcn.004128e0
push edi
lea ecx, [ebp + 8]
call fcn.00408390
push 0x47520c
push 0x475224
lea ecx, [ebp + 8]
mov byte [ebp - 4], 6
call fcn.0040ba10
mov eax, dword [ebp + 8]
push eax
call esi
test eax, eax
jne 0x41aa40
push 0x47520c
mov ecx, 0x493840
call fcn.00419c00
mov eax, dword [eax]
push edi
push eax
mov ecx, ebx
call fcn.00412930
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aa63
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41aa86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x475200
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
je 0x41aafc
push edi
lea ecx, [ebp + 8]
call fcn.00408390
push 0x4751f0
push 0x475200
lea ecx, [ebp + 8]
mov byte [ebp - 4], 7
call fcn.0040ba10
mov ecx, dword [ebp + 8]
push ecx
call esi
test eax, eax
jne 0x41aad9
push 0x4751f0
mov ecx, 0x493840
call fcn.00419c00
mov eax, dword [eax]
push edi
push eax
mov ecx, ebx
call fcn.00412930
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
or ecx, 0xffffffff
lea edx, [eax + 0xc]
mov byte [ebp - 4], 2
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41aafc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ab1f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ab42
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41ab68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4