Function at 0x46c1c1
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, ecx
cmp byte [esi + 0x43], 0
je 0x46c1d7
xor al, al
jmp 0x46c409
push edi
call fcn.0046c1b0
mov edi, eax
mov ecx, edi
mov dword [ebp - 4], edi
call fcn.00445343
test al, al
jne 0x46c21a
push dword [0x4cef1c]
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 0x30
call fcn.00450a1d
pop ecx
pop ecx
mov ecx, edi
call fcn.004444cc
xor al, al
jmp 0x46c408
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x24], 0
push ebx
jne 0x46c27b
test dword [esi + 0x38], 0x200
jne 0x46c284
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
mov ecx, edi
lea ebx, [ecx + 2]
mov dx, word [ecx]
inc ecx
inc ecx
test dx, dx
jne 0x46c23b
sub ecx, ebx
sar ecx, 1
cmp eax, 0xffffffff
je 0x46c252
test al, 0x10
jne 0x46c25e
test ecx, ecx
jle 0x46c27b
cmp word [edi + ecx*2 - 2], 0x5c
jne 0x46c27b
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov edx, dword [eax + 0x20]
mov ecx, edi
call fcn.00444ef3
mov ecx, edi
mov ebx, eax
call fcn.004444cc
mov dword [ebp - 4], ebx
mov edi, ebx
test dword [esi + 0x38], 0x200
je 0x46c291
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
push edi
call fcn.0041fafb
jmp 0x46c29c
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
push edi
call fcn.0041fd12
push 0x4e6
mov ecx, esi
call fcn.0044f244
movzx ebx, al
neg ebx
sbb ebx, ebx
push 0x4b4
mov ecx, esi
and ebx, 0x10
call fcn.0044f244
movzx edi, al
neg edi
sbb edi, edi
and edi, 0x40
or edi, ebx
mov ebx, dword [esi + 0x3c]
push 0x4b2
mov ecx, esi
call fcn.0044f244
mov ecx, dword [ebx]
movzx eax, al
neg eax
sbb eax, eax
and eax, 2
and ecx, 0xffffffad
or eax, ecx
or eax, edi
push 0x53e
mov ecx, esi
mov dword [ebx], eax
call fcn.0044f244
neg al
sbb al, al
inc al
push 0x4b6
mov byte [0x4c935e], al
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov eax, dword [esi + 0x34]
xor ebx, ebx
xor edi, edi
cmp dword [eax + 0x14], ebx
je 0x46c348
mov ecx, dword [esi + 0x34]
push edi
call fcn.0044b5dd
test al, al
jne 0x46c33f
mov ecx, dword [esi + 0x34]
push edi
call fcn.0044b580
mov eax, dword [eax + 0x10]
cmp eax, ebx
je 0x46c33f
mov byte [eax + 0x20], bl
mov eax, dword [esi + 0x34]
inc edi
cmp edi, dword [eax + 0x14]
jne 0x46c31f
mov edi, 0x200
test dword [esi + 0x38], edi
jne 0x46c367
push 0x5c
push dword [ebp - 4]
call sub.MSVCRT.dll_wcsrchr
pop ecx
pop ecx
cmp eax, ebx
je 0x46c377
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 4]
mov ecx, 0x4c9928
call fcn.004451ba
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 4]
call fcn.004444cc
push ebx
push 0x4be
mov ecx, esi
call fcn.0046bc30
mov ecx, eax
call fcn.0043aff3
cmp word [eax], bx
je 0x46c3a3
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x268], eax
jmp 0x46c3aa
mov ecx, eax
call fcn.004444cc
mov ecx, dword [esi + 0x24]
mov dword [ebp - 8], ebx
pop ebx
test dword [esi + 0x38], edi
je 0x46c3ce
call fcn.0040530e
mov ecx, eax
call fcn.0043ad91
mov edx, eax
lea ecx, [ebp - 8]
call fcn.0043ac1c
jmp 0x46c3d6
call fcn.004051f7
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x3c]
push dword [eax]
mov edx, dword [ebp - 8]
mov ecx, dword [esi + 0x24]
call fcn.004523d0
test al, al
jne 0x46c3ef
mov byte [esi + 0x42], al
jmp 0x46c3fe
push dword [esi + 0x2c]
mov ecx, dword [esi + 0x24]
xor dl, dl
mov byte [esi + 0x42], 1
call dword [esi + 0x28]
mov ecx, dword [ebp - 8]
call fcn.004444cc
mov al, 1
pop edi
pop esi
leave
ret