Function at 0x41eee0
Capabilities:
Check if file exists
Create thread
Get common file path
Get file system object information
Get graphical window text
Resolve function by parsing pe exports
Set current directory

Disassembly:
sub esp, 0xab0
mov eax, dword [0x493008]
xor eax, esp
mov dword [esp + 0xaac], eax
mov dword [esp], 0
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push edi
mov edi, ecx
test edx, edx
je 0x41ef1b
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x41ef74
jmp 0x41f4c6
lea eax, [esp + 0x3b0]
push eax
push 0x104
call esi
lea eax, [esp + 0x3b0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41ef6c
push 0x104
lea eax, [esp + 0x8b4]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [esp + 0x8b0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0xc350
push 2
call fcn.00412d90
add esp, 8
mov dword [esp + 0x10], 1
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x1027
push dword [0x561c6c]
call ebp
push 0x5634ac
push 0x12c
mov dword [esp + 0x20], eax
call esi
push 0x2f8
lea eax, [esp + 0x5bc]
push 0
push eax
call fcn.00425950
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
add esp, 0xc
cmp word [0x5634ac], 0
je 0x41f0f9
push 0x5634ac
call dword [sym.imp.SHLWAPI.dll_PathIsRootW]
test eax, eax
jne 0x41f0ea
push 0x2b4
push eax
lea eax, [esp + 0x80]
push eax
call fcn.00425950
add esp, 0xc
lea eax, [esp + 0x78]
push 0x200
push 0x2b4
push eax
push 0
push 0x5634ac
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x41f033
lea eax, [esp + 0x84]
jmp 0x41f03e
push 0x5634ac
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [esp + 0x5bc]
push eax
call ebx
push 0x208
lea eax, [esp + 0x3b4]
push 0
push eax
call fcn.00425950
add esp, 0xc
lea eax, [esp + 0x3b0]
push 0x5634ac
push eax
call ebx
lea eax, [esp + 0x3b0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [esp + 0x5b8]
push 0x48e270
push eax
call esi
lea eax, [esp + 0x3b0]
push eax
lea eax, [esp + 0x5bc]
push eax
call esi
cmp word [esp + 0x3b0], 0
je 0x41f0d9
lea eax, [esp + 0x3b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp word [esp + eax*2 + 0x3ae], 0x5c
jne 0x41f0d9
push 0x48e27c
lea eax, [esp + 0x5bc]
push eax
call esi
jmp 0x41f0f9
push 0x48e280
lea eax, [esp + 0x5bc]
push eax
call esi
jmp 0x41f0f9
push 0x5634ac
lea eax, [esp + 0x5bc]
push eax
call ebx
lea eax, [esp + 0x5b8]
push eax
push edi
call dword [sym.imp.USER32.dll_SetWindowTextW]
push 0x48d9fc
push 0x56493c
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x41f181
cmp dword [0x56343c], eax
jne 0x41f181
cmp dword [0x563440], eax
je 0x41f14e
cmp byte [0x56149d], al
je 0x41f144
call fcn.004019e0
test al, al
je 0x41f144
mov eax, 0xefefef
jmp 0x41f153
push 0x12
call dword [sym.imp.USER32.dll_GetSysColor]
jmp 0x41f153
mov eax, dword [0x563448]
push eax
push 0
push 0x1024
push dword [0x561c6c]
call ebp
mov dword [esp + 0x1c], 0x20
lea eax, [esp + 0x1c]
mov dword [esp + 0x20], 1
mov dword [esp + 0x28], 0xe
jmp 0x41f1de
cmp dword [0x563444], 0
je 0x41f1ad
cmp byte [0x56149d], 0
je 0x41f1a3
call fcn.004019e0
test al, al
je 0x41f1a3
mov eax, 0xefefef
jmp 0x41f1b2
push 0x12
call dword [sym.imp.USER32.dll_GetSysColor]
jmp 0x41f1b2
mov eax, dword [0x56344c]
push eax
push 0
push 0x1024
push dword [0x561c6c]
call ebp
mov dword [esp + 0x3c], 0x20
lea eax, [esp + 0x3c]
mov dword [esp + 0x40], 1
mov dword [esp + 0x48], 0xd
push eax
push 0xa41e
push 0x440
push dword [0x561b48]
call ebp
push dword [0x5634a8]
mov edx, 0x5634ac
push dword [0x5634a4]
push ecx
push dword [0x56343c]
mov ecx, dword [0x561c6c]
push 0x56493c
push dword [0x5634a0]
call fcn.00413320
mov esi, dword [0x561c6c]
add esp, 0x18
mov ebx, dword [sym.imp.USER32.dll_GetPropW]
mov dword [esp + 0x14], eax
push str.DirListData
push esi
call ebx
mov ecx, esi
mov edi, eax
call fcn.00413280
push dword [edi + 0x224]
mov esi, dword [sym.imp.KERNEL32.dll_ResetEvent]
call esi
push dword [edi + 0x228]
call esi
push edi
push 0
push 0x413860
call fcn.00451528
add esp, 0xc
push str.DirListData
push dword [0x561c6c]
call ebx
lea ecx, [esp + 0x3b0]
push ecx
push dword [eax + 8]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x41f29e
lea eax, [esp + 0x3b0]
push eax
push 0x5634ac
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x5634ac
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ebx, dword [esp + 0x14]
test ebx, ebx
jle 0x41f2d5
lea eax, [esp + 0x3c]
mov dword [esp + 0x4c], 1
push eax
push 0
push 0x102b
push dword [0x561c6c]
mov dword [esp + 0x58], 1
call ebp
cmp dword [esp + 0x10], 0
push 0
push 0
je 0x41f321
push 0x1028
push dword [0x561c6c]
lea esi, [ebx - 1]
call ebp
mov edi, dword [esp + 0x18]
add eax, edi
cmp eax, esi
jge 0x41f30e
push 0
push 0
push 0x1028
push dword [0x561c6c]
call ebp
lea esi, [edi + eax]
push 1
push esi
push 0x1013
push dword [0x561c6c]
call ebp
push 1
push edi
push 0x1013
push dword [0x561c6c]
call ebp
push dword [0x56128c]
call dword [sym.imp.KERNEL32.dll_FindCloseChangeNotification]
push 0x1f
push 0
push 0x5634ac
call dword [sym.imp.KERNEL32.dll_FindFirstChangeNotificationW]
mov dword [0x56128c], eax
call fcn.00414510
mov edx, 0x5634ac
call fcn.00414810
push ebx
lea eax, [esp + 0x334]
push 0x48e724
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [esp + 0x330]
call fcn.004166e0
push 0x48d9fc
push 0x56493c
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x41f3a1
cmp dword [0x56343c], eax
mov eax, 0x2711
je 0x41f3a6
mov eax, 0x2712
lea ecx, [esp + 0x330]
push ecx
push eax
lea eax, [esp + 0x8b8]
push 0x100
push eax
call fcn.00415060
add esp, 0x10
lea eax, [esp + 0x8b0]
push eax
push 0x1000
push 0x40b
push dword [0x561b40]
call ebp
cmp dword [esp + 0xac4], 0
je 0x41f4a6
mov eax, dword [0x561c68]
cmp eax, 0x31
ja 0x41f443
push dword [eax*4 + 0x561ba0]
push 0x5634ac
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x41f49b
mov eax, dword [0x561c68]
cmp eax, 0x31
jne 0x41f443
mov eax, dword [0x561ba0]
test eax, eax
je 0x41f42a
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0xc4
push 0x561ba4
push 0x561ba0
call fcn.0042e770
add esp, 0xc
jmp 0x41f47a
inc eax
mov dword [0x561c68], eax
cmp eax, 0x32
jge 0x41f47a
mov edi, dword [sym.imp.KERNEL32.dll_LocalFree]
lea esi, [eax*4 + 0x561ba0]
nop dword [eax + eax]
mov eax, dword [esi]
test eax, eax
je 0x41f469
push eax
call edi
mov dword [esi], 0
add esi, 4
cmp esi, 0x561c68
jl 0x41f460
cmp dword [0x561c68], 0x31
ja 0x41f49b
push 0x5634ac
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov ecx, dword [0x561c68]
mov dword [ecx*4 + 0x561ba0], eax
sub esp, 8
call fcn.00416d00
add esp, 8
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
mov eax, 1
mov ecx, dword [esp + 0xabc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00422d0c
add esp, 0xab0
ret