Function at 0x46c230
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, ecx
cmp byte [esi + 0x43], 0
je 0x46c246
xor al, al
jmp 0x46c478
push edi
call fcn.0046c21f
mov edi, eax
mov ecx, edi
mov dword [ebp - 4], edi
call fcn.00445375
test al, al
jne 0x46c289
push dword [0x4ceefc]
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 0x30
call fcn.00450a13
pop ecx
pop ecx
mov ecx, edi
call fcn.004444fe
xor al, al
jmp 0x46c477
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x24], 0
push ebx
jne 0x46c2ea
test dword [esi + 0x38], 0x200
jne 0x46c2f3
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 0x46c2aa
sub ecx, ebx
sar ecx, 1
cmp eax, 0xffffffff
je 0x46c2c1
test al, 0x10
jne 0x46c2cd
test ecx, ecx
jle 0x46c2ea
cmp word [edi + ecx*2 - 2], 0x5c
jne 0x46c2ea
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov edx, dword [eax + 0x20]
mov ecx, edi
call fcn.00444f25
mov ecx, edi
mov ebx, eax
call fcn.004444fe
mov dword [ebp - 4], ebx
mov edi, ebx
test dword [esi + 0x38], 0x200
je 0x46c300
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
push edi
call fcn.0041fad7
jmp 0x46c30b
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
push edi
call fcn.0041fcee
push 0x4e6
mov ecx, esi
call fcn.0044f23a
movzx ebx, al
neg ebx
sbb ebx, ebx
push 0x4b4
mov ecx, esi
and ebx, 0x10
call fcn.0044f23a
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.0044f23a
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.0044f23a
neg al
sbb al, al
inc al
push 0x4b6
mov byte [0x4c933e], 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 0x46c3b7
mov ecx, dword [esi + 0x34]
push edi
call fcn.0044b5f2
test al, al
jne 0x46c3ae
mov ecx, dword [esi + 0x34]
push edi
call fcn.0044b595
mov eax, dword [eax + 0x10]
cmp eax, ebx
je 0x46c3ae
mov byte [eax + 0x20], bl
mov eax, dword [esi + 0x34]
inc edi
cmp edi, dword [eax + 0x14]
jne 0x46c38e
mov edi, 0x200
test dword [esi + 0x38], edi
jne 0x46c3d6
push 0x5c
push dword [ebp - 4]
call sub.MSVCRT.dll_wcsrchr
pop ecx
pop ecx
cmp eax, ebx
je 0x46c3e6
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 4]
mov ecx, 0x4c9908
call fcn.004451ec
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 4]
call fcn.004444fe
push ebx
push 0x4be
mov ecx, esi
call fcn.0046bc9f
mov ecx, eax
call fcn.0043b014
cmp word [eax], bx
je 0x46c412
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x268], eax
jmp 0x46c419
mov ecx, eax
call fcn.004444fe
mov ecx, dword [esi + 0x24]
mov dword [ebp - 8], ebx
pop ebx
test dword [esi + 0x38], edi
je 0x46c43d
call fcn.00405368
mov ecx, eax
call fcn.0043adb2
mov edx, eax
lea ecx, [ebp - 8]
call fcn.0043ac3d
jmp 0x46c445
call fcn.00405251
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.004523b0
test al, al
jne 0x46c45e
mov byte [esi + 0x42], al
jmp 0x46c46d
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.004444fe
mov al, 1
pop edi
pop esi
leave
ret