Function at 0x46ac1e
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, ecx
cmp byte [esi + 0x43], 0
je 0x46ac34
xor al, al
jmp 0x46ae66
push edi
call fcn.0046ac0d
mov edi, eax
mov ecx, edi
mov dword [ebp - 4], edi
call fcn.0044424f
test al, al
jne 0x46ac77
push dword [0x4cb8dc]
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 0x30
call fcn.0044f78b
pop ecx
pop ecx
mov ecx, edi
call fcn.004433ab
xor al, al
jmp 0x46ae65
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x24], 0
push ebx
jne 0x46acd8
test dword [esi + 0x38], 0x200
jne 0x46ace1
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 0x46ac98
sub ecx, ebx
sar ecx, 1
cmp eax, 0xffffffff
je 0x46acaf
test al, 0x10
jne 0x46acbb
test ecx, ecx
jle 0x46acd8
cmp word [edi + ecx*2 - 2], 0x5c
jne 0x46acd8
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov edx, dword [eax + 0x20]
mov ecx, edi
call fcn.00443dff
mov ecx, edi
mov ebx, eax
call fcn.004433ab
mov dword [ebp - 4], ebx
mov edi, ebx
test dword [esi + 0x38], 0x200
je 0x46acee
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
push edi
call fcn.0041ed85
jmp 0x46acf9
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
push edi
call fcn.0041f061
push 0x4e6
mov ecx, esi
call fcn.0044dfb2
movzx ebx, al
neg ebx
sbb ebx, ebx
push 0x4b4
mov ecx, esi
and ebx, 0x10
call fcn.0044dfb2
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.0044dfb2
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.0044dfb2
neg al
sbb al, al
inc al
push 0x4b6
mov byte [0x4c61f6], 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 0x46ada5
mov ecx, dword [esi + 0x34]
push edi
call fcn.0044a357
test al, al
jne 0x46ad9c
mov ecx, dword [esi + 0x34]
push edi
call fcn.0044a2fa
mov eax, dword [eax + 0x10]
cmp eax, ebx
je 0x46ad9c
mov byte [eax + 0x20], bl
mov eax, dword [esi + 0x34]
inc edi
cmp edi, dword [eax + 0x14]
jne 0x46ad7c
mov edi, 0x200
test dword [esi + 0x38], edi
jne 0x46adc4
push 0x5c
push dword [ebp - 4]
call sub.MSVCRT.dll_wcsrchr
pop ecx
pop ecx
cmp eax, ebx
je 0x46add4
xor ecx, ecx
mov word [eax], cx
mov edx, dword [ebp - 4]
mov ecx, 0x4c67c0
call fcn.004440c6
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 4]
call fcn.004433ab
push ebx
push 0x4be
mov ecx, esi
call fcn.0046a68d
mov ecx, eax
call fcn.00439f5a
cmp word [eax], bx
je 0x46ae00
mov ecx, dword [esi + 0x24]
mov dword [ecx + 0x25c], eax
jmp 0x46ae07
mov ecx, eax
call fcn.004433ab
mov ecx, dword [esi + 0x24]
mov dword [ebp - 8], ebx
pop ebx
test dword [esi + 0x38], edi
je 0x46ae2b
call fcn.0040537f
mov ecx, eax
call fcn.00439cf8
mov edx, eax
lea ecx, [ebp - 8]
call fcn.00439b86
jmp 0x46ae33
call fcn.00405268
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.0045111f
test al, al
jne 0x46ae4c
mov byte [esi + 0x42], al
jmp 0x46ae5b
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.004433ab
mov al, 1
pop edi
pop esi
leave
ret