Function at 0x10016530
Capabilities:
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x100e6862
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x1012f5f0]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1012f5f0]
xor eax, esp
push eax
lea eax, [esp + 0xb4]
mov dword fs:[0], eax
mov ebx, ecx
xor esi, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], esi
mov edi, 1
mov dword [esp + 0xbc], edi
mov ebp, 0xf
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], esi
mov byte [esp + 0x94], 0
mov byte [esp + 0xbc], 2
mov eax, dword [esp + 0xd8]
cmp eax, esi
jne 0x1001662d
push 0xffffffffffffffff
push esi
lea eax, [esp + 0x98]
mov dword [ebx + 0x18], ebp
mov dword [ebx + 0x14], esi
push eax
mov byte [ebx + 4], 0
call fcn.1000d5f0
mov dword [esp + 0x20], edi
mov edi, 0x10
mov byte [esp + 0xbc], 1
cmp dword [esp + 0xa8], edi
jb 0x100165f5
mov ecx, dword [esp + 0x94]
push ecx
call fcn.1001d705
add esp, 4
mov byte [esp + 0xbc], 0
cmp dword [esp + 0xdc], edi
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], esi
mov byte [esp + 0x94], 0
jb 0x100168e5
mov edx, dword [esp + 0xc8]
push edx
jmp 0x100168dd
lea edi, [eax - 1]
cmp edi, eax
jbe 0x10016639
call fcn.100201de
cmp dword [esp + 0xdc], 0x10
mov eax, dword [esp + 0xc8]
jae 0x10016651
lea eax, [esp + 0xc8]
cmp byte [eax + edi], 0x5c
je 0x1001666a
push 1
push 0x10129994
lea eax, [esp + 0xcc]
call fcn.1000afc0
cmp dword [esp + 0xdc], 0x10
mov edi, dword [esp + 0xc8]
jae 0x10016682
lea edi, [esp + 0xc8]
call fcn.10016390
mov edi, eax
cmp edi, esi
mov dword [esp + 0x1c], edi
je 0x10016864
call fcn.10016440
mov ebp, eax
cmp ebp, esi
je 0x1001683f
lea ebx, [ebp + 0x10]
mov edi, 0x1012a4ac
mov esi, ebx
mov ecx, 2
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x10016828
mov edi, 0x1012a4b0
mov esi, ebx
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x10016828
mov dword [esp + 0x78], eax
mov byte [esp + 0x8c], al
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov al, byte [ebp + 8]
mov byte [esp + 0x8c], al
mov ecx, dword [ebp + 0xc]
and ecx, 0x4000
neg ecx
sbb cl, cl
lea edx, [esp + 0xc4]
and cl, 0x44
push edx
lea eax, [esp + 0x2c]
add cl, 0x20
push eax
mov edi, ebx
mov byte [esp + 0x80], cl
call fcn.10011ae0
mov esi, 0x10
add esp, 8
cmp dword [eax + 0x18], esi
jb 0x10016741
mov eax, dword [eax + 4]
jmp 0x10016744
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp dword [esp + 0x40], esi
mov dword [esp + 0x7c], eax
jb 0x10016762
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.1001d705
add esp, 4
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x2c]
push eax
mov edi, ebx
call fcn.10011ae0
add esp, 8
cmp dword [eax + 0x18], esi
jb 0x10016783
mov eax, dword [eax + 4]
jmp 0x10016786
add eax, 4
lea ecx, [esp + 0x44]
push ecx
push eax
call fcn.10021a68
add esp, 8
cmp eax, 0xffffffff
setne byte [esp + 0x1b]
cmp dword [esp + 0x40], esi
jb 0x100167af
mov edx, dword [esp + 0x2c]
push edx
call fcn.1001d705
add esp, 4
cmp byte [esp + 0x1b], 0
je 0x10016804
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x4a]
mov dword [esp + 0x88], ecx
mov ecx, eax
and ecx, 0x100
neg ecx
sbb cl, cl
and cl, 0x52
and al, 0x80
add cl, 0x20
neg al
sbb al, al
and al, 0x57
add al, 0x20
mov dword [esp + 0x80], edx
mov byte [esp + 0x79], cl
mov byte [esp + 0x7a], al
mov byte [esp + 0x7b], 0x20
push 0x15
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x98]
call fcn.1000afc0
mov eax, dword [ebp + 8]
push eax
push ebx
lea eax, [esp + 0x98]
call fcn.1000afc0
mov edi, dword [esp + 0x1c]
call fcn.10016440
mov ebp, eax
test ebp, ebp
jne 0x100166a4
mov ebx, dword [esp + 0x24]
mov esi, dword [edi + 0x114]
call fcn.10016280
push edi
mov dword [edi + 0x114], 0
call fcn.1001d70a
add esp, 4
xor esi, esi
mov ebp, 0xf
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x98]
push ecx
mov dword [ebx + 0x18], ebp
mov dword [ebx + 0x14], esi
mov ecx, ebx
mov byte [ebx + 4], 0
call fcn.1000d5f0
mov edi, 0x10
mov byte [esp + 0xbc], 1
cmp dword [esp + 0xa8], edi
mov dword [esp + 0x20], 1
jb 0x100168ae
mov edx, dword [esp + 0x94]
push edx
call fcn.1001d705
add esp, 4
mov byte [esp + 0xbc], 0
cmp dword [esp + 0xdc], edi
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa4], esi
mov byte [esp + 0x94], 0
jb 0x100168e5
mov eax, dword [esp + 0xc8]
push eax
call fcn.1001d705
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0xb4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.1001d3e9
add esp, 0xac
ret