Function at 0x438678
Capabilities:
Check if file exists
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [0x505c30]
sub esp, 0xc10
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
cmp dword [esi], ecx
jne 0x438e2c
mov eax, dword [esi + 8]
mov edx, 0xfffffe3e
cmp eax, edx
ja 0x438b7e
je 0x438812
cmp eax, 0xfffffe34
je 0x4389cd
cmp eax, 0xfffffe35
je 0x4388e4
cmp eax, 0xfffffe36
je 0x43881e
cmp eax, 0xfffffe39
je 0x438731
cmp eax, 0xfffffe3a
je 0x438812
cmp eax, 0xfffffe3d
jne 0x438e2c
mov eax, dword [esi + 0x3c]
xor edi, edi
cmp eax, edi
je 0x43871b
mov ecx, dword [esi + 0x14]
push eax
push dword [ebp + 0xc]
mov dword [0x506380], ecx
push 0x8001
push dword [0x505c28]
mov dword [0x506384], eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [0x505c30]
push 1
push edi
push edi
push ecx
mov dword [0x505bf8], edi
call dword [sym.imp.USER32.dll_SetScrollPos]
jmp 0x438e2c
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x438812
push eax
call fcn.004317b2
mov edi, eax
test edi, edi
je 0x438812
mov esi, dword [esi + 0xc]
push 4
pop ebx
cmp dword [0x512584], ebx
jl 0x43879c
push dword [edi + 8]
push dword [0x505c30]
call fcn.00429411
lea ecx, [edi + 0xd0a]
cmp word [ecx], 0
jne 0x438779
mov ecx, 0x44f050
push dword [edi + 0x820]
push ecx
push eax
push dword [edi + 0xff8]
push esi
call fcn.004472cc
push eax
push str.TVN_ITEMEXPANDED__S_pTNI__bExp_u__u___s____s
push ebx
call fcn.00449e4d
add esp, 0x1c
cmp esi, 2
jne 0x4387ad
mov dword [edi + 0xff8], 1
jmp 0x4387de
cmp esi, 1
jne 0x4387bb
and dword [edi + 0xff8], 0
jmp 0x4387de
cmp esi, 3
jne 0x4387d6
push dword [edi + 8]
push dword [0x505c30]
call fcn.00429411
mov dword [edi + 0xff8], eax
jmp 0x4387de
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
push str.pTNI__bLastExpandManuallytrue
inc esi
push ebx
mov dword [edi + 0xffc], esi
call fcn.00449e4d
cmp dword [0x5080dc], 0
pop ecx
pop ecx
jne 0x438812
mov eax, dword [edi + 0x10]
cmp eax, 9
je 0x43880a
cmp eax, 0xa
jne 0x438812
push esi
mov ecx, edi
call fcn.0040abaa
and dword [0x505bf8], 0
jmp 0x438e2c
mov esi, dword [esi + 0x14]
push 4
pop ebx
cmp dword [0x512584], ebx
jl 0x43883b
push esi
push str.TVN_DELETEITEM_hti0x_08Ix
push ebx
call fcn.00449e4d
add esp, 0xc
push esi
call fcn.004317b2
mov edi, eax
test edi, edi
je 0x438e2c
cmp dword [0x512584], ebx
jl 0x43889e
lea eax, [edi + 0xd0a]
cmp word [eax], 0
jne 0x438864
mov eax, 0x44f050
push eax
push dword [edi + 0x820]
push str.__s_at__s
push ebx
call fcn.00449e4d
add esp, 0x10
cmp dword [0x512584], ebx
jl 0x43889e
push dword [edi + 8]
push dword [0x505c30]
call fcn.004329f6
push eax
push str._txt_s
push ebx
call fcn.00449e4d
add esp, 0xc
cmp esi, dword [0x506384]
jne 0x4388ad
and dword [0x506384], 0
cmp edi, dword [0x5080f0]
jne 0x4388d3
lea eax, [edi + 0xc6c]
mov ecx, dword [eax]
test ecx, ecx
je 0x438e2c
and dword [eax], 0
push ecx
call fcn.004445cb
jmp 0x438d3f
mov ecx, dword [0x508064]
push edi
call fcn.0040ce9f
jmp 0x438e2c
push dword [esi + 0x10]
call fcn.004317b2
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x4389b1
push dword [esi + 0xfcc]
mov ecx, dword [0x508068]
call fcn.0040121c
test eax, eax
je 0x4389b1
cmp dword [esi + 0x10], 6
jl 0x4389b1
push edi
push edi
push 0x110f
push dword [0x505c30]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x42fb9a
push 0xfffffffffffffffc
push eax
mov dword [0x505c68], eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov dword [0x505d44], eax
mov eax, dword [esi + 0xfcc]
lea ecx, [eax + 0x1638]
cmp word [ecx], di
jne 0x438989
mov ecx, dword [0x49db0c]
sub ecx, edi
je 0x438978
dec ecx
je 0x438970
dec ecx
jne 0x438996
add esi, 0xa68
push esi
jmp 0x43898a
add esi, 0x864
jmp 0x43896d
lea ecx, [eax + 0x1738]
cmp word [ecx], di
jne 0x438989
lea ecx, [eax + 0x1838]
push ecx
push dword [0x505c68]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push 0xfe
push 0x506c40
push dword [0x505c68]
call dword [sym.imp.USER32.dll_GetWindowTextW]
jmp 0x438e2c
push edi
push 1
push 0x1116
push dword [0x505c30]
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
inc eax
jmp 0x438e2e
cmp dword [esi + 0x1c], 0
je 0x438e2c
push str.lblendedit
push 0
push 0x7f02
call fcn.004318be
push dword [esi + 0x10]
call fcn.004317b2
mov dword [ebp + 8], eax
test eax, eax
je 0x438b61
mov ecx, dword [0x508068]
mov edi, eax
add edi, 0xfcc
push dword [edi]
call fcn.0040121c
test eax, eax
je 0x438b61
mov edi, dword [edi]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push str.Device_Parameters
lea eax, [edi + 0xe38]
push eax
push str.SystemCurrentControlSetEnum
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x410]
push 0x44f40c
push eax
call ebx
mov eax, dword [esi + 0x1c]
add esp, 0x14
cmp word [eax], 0
jne 0x438a85
push str.CustomName
lea eax, [ebp - 0x410]
push eax
push 0x80000002
call fcn.004273e9
test eax, eax
jne 0x438a77
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x438b31
xor eax, eax
mov word [edi + 0x1638], ax
jmp 0x438b25
push 0x506c40
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x438b61
push dword [esi + 0x1c]
add edi, 0x1638
push edi
mov dword [ebp + 0xc], edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x438b61
push dword [esi + 0x1c]
lea eax, [ebp - 0x410]
push str.CustomName
push eax
mov edi, 0x80000002
push edi
call fcn.004272b4
test eax, eax
je 0x438b31
push dword [ebp + 0x10]
lea eax, [ebp - 0x410]
push str.SystemCurrentControlSetEnum
push 0x44f22c
push eax
call ebx
add esp, 0x10
push dword [esi + 0x1c]
lea eax, [ebp - 0x410]
push str.FriendlyName
push eax
push edi
call fcn.004272b4
push dword [esi + 0x1c]
push str.CustomName__s_set
push 3
call fcn.00449e4d
add esp, 0xc
push dword [esi + 0x1c]
mov dword [esi + 0xc], 0x11
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ecx, dword [ebp + 8]
push 1
call fcn.0040abaa
jmp 0x438b61
call fcn.0044744a
push eax
lea eax, [ebp - 0xc10]
push str.Error__S_writing_to_registry
push eax
call ebx
add esp, 0xc
push 0x30
push str.Set_name_failed
lea eax, [ebp - 0xc10]
push eax
push dword [0x505c28]
call fcn.0044acc6
and dword [0x505c68], 0
push str.lblendedit
push 0
push 0x7f00
call fcn.004318be
jmp 0x438e2c
cmp eax, 0xfffffe62
je 0x438dce
cmp eax, 0xfffffe64
je 0x438d78
cmp eax, 0xfffffff4
je 0x438bfd
cmp eax, 0xfffffff8
je 0x438bec
cmp eax, 0xfffffffb
jne 0x438e2c
mov esi, dword [sym.imp.USER32.dll_SendDlgItemMessageW]
push 0
push 8
push 0x110a
mov edi, 0x3e8
push edi
push dword [ebp + 8]
call esi
mov dword [ebp + 0x10], eax
test eax, eax
je 0x438e2c
push eax
push 9
mov ebx, 0x110b
push ebx
push edi
push dword [ebp + 8]
call esi
push dword [ebp + 0x10]
push 8
push ebx
push edi
push dword [ebp + 8]
call esi
jmp 0x438e2c
push dword [0x506384]
push ecx
call fcn.0043091b
jmp 0x438e2c
mov eax, dword [esi + 0xc]
dec eax
je 0x438d45
sub eax, 0x10000
jne 0x438e2c
cmp dword [0x512584], 5
mov edi, dword [esi + 0x24]
jl 0x438c34
push dword [esi + 0x34]
push dword [esi + 0x28]
push edi
push str.NM_CUSTOMDRAW__CDDS_ITEMPREPAINT_hTreeItem0x_08Ix_pCustomDraw__nmcd.uItemState0x_02X_clrTextBk0x_06x
push 5
call fcn.00449e4d
add esp, 0x14
test edi, edi
je 0x438d25
push edi
call fcn.004317b2
mov edi, eax
push edi
mov dword [ebp + 0x10], edi
call fcn.004071b8
test eax, eax
je 0x438d25
cmp dword [edi + 8], 0
je 0x438d25
lea edi, [esi + 0x30]
push edi
lea ebx, [esi + 0x34]
push ebx
push dword [esi + 0x28]
push dword [ebp + 0x10]
call fcn.004347fa
test eax, eax
je 0x438d05
cmp dword [0x512584], 5
jl 0x438cac
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x820]
cmp word [eax], 0
jne 0x438c98
lea eax, [ecx + 0xd0a]
push dword [edi]
push dword [ebx]
push eax
push str.__s:_set_clrTextBk0x_06X__clrText0x_06X
push 5
call fcn.00449e4d
add esp, 0x14
cmp dword [0x505610], 5
jne 0x438cc0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x505bf8], eax
cmp dword [0x505628], 0x500
jbe 0x438d01
cmp dword [0x505c18], 0
jne 0x438d01
push 1
push dword [0x505c28]
call fcn.00427d3d
mov eax, dword [0x49dae8]
push 0x42f6b5
add eax, 0x64
push eax
push 0x92025971
push dword [0x505c28]
call dword [sym.imp.USER32.dll_SetTimer]
push 2
jmp 0x438d68
cmp dword [0x512584], 5
jl 0x438e2c
push dword [edi]
push dword [ebx]
push str._unchanged_clrTextBk0x_06X__clrText0x_06X
push 5
call fcn.00449e4d
add esp, 0x10
cmp dword [0x512584], 5
jl 0x438e2c
push str._________CDDS_ITEMPREPAINT_________
push 5
call fcn.00449e4d
pop ecx
pop ecx
jmp 0x438e2c
cmp dword [0x512584], 5
jl 0x438d66
push dword [esi + 0x34]
push dword [esi + 0x28]
push dword [esi + 0x24]
push str.NM_CUSTOMDRAW__CDDS_PREPAINT_hTreeItem0x_08Ix_pCustomDraw__nmcd.uItemState0x_02X_clrTextBk0x_06x
push 5
call fcn.00449e4d
add esp, 0x14
push 0x20
push 0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetWindowLongW]
jmp 0x4389c5
cmp word [esi + 0xc], 0x71
jne 0x438e2c
push dword [0x506384]
call fcn.004317b2
mov esi, eax
test esi, esi
je 0x438e2c
push dword [esi + 0xfcc]
mov ecx, dword [0x508068]
call fcn.0040121c
test eax, eax
je 0x438e2c
cmp dword [esi + 0x10], 6
jl 0x438e2c
push dword [0x506384]
push 0
push 0x1141
push dword [0x505c30]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x438e2c
and dword [ebp - 0x10], 0
mov ebx, dword [esi + 0x14]
xor eax, eax
lea edi, [ebp - 0xc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0x1111
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
call fcn.004317b2
xor edi, edi
add esi, 0xc
cmp eax, edi
je 0x438e12
add eax, 0xc70
cmp byte [eax], 0
je 0x438e12
push eax
push dword [esi]
call fcn.0042c82a
jmp 0x438e14
mov dword [esi], edi
cmp dword [esi], edi
je 0x438e2c
cmp dword [0x505c18], edi
jne 0x438e2c
push edi
push dword [0x505c28]
call fcn.00427d3d
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0xc