Function at 0x10012cb9
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100640dc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
cmp byte [ebp + 0xc], 0
push ebx
push esi
mov byte [esp + 0x10], dl
je 0x10012fc8
test dl, dl
je 0x10012fbc
push 0x3543
push 1
push ecx
push 0x6b14
xor ebx, ebx
xor dl, dl
push ebx
push 0x78f2
push 0x227f
push 0x1c2b
push 0x207f
push 0x1e59
push 0x6ec5
mov ecx, 0x65ec
call fcn.1001310b
add esp, 0x2c
mov dword [esp + 0x50], ebx
xor eax, eax
mov word [esp + 0x40], ax
push 7
pop esi
mov dword [esp + 0x54], esi
push 0x66a6
push 0x4c02
push 0x53a7
lea eax, [esp + 0x4c]
mov dword [esp + 0x70], ebx
push eax
push 1
push 1
xor dl, dl
lea ecx, [ebp + 0x18]
call fcn.10012cb9
add esp, 0x18
lea ecx, [esp + 0x34]
push 2
call fcn.10001f82
mov byte [esp + 0x64], 1
mov dword [esp + 0x18], 0x57976326
mov dword [esp + 0x14], ebx
jmp 0x10012d94
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov dword [eax + ecx*4], esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x10012d85
mov dword [esp + 0x18], 1
cmp dword [esp + 0x18], ebx
jl 0x10012ddc
mov dword [esp + 0x14], 0x4696a485
mov dword [esp + 0x14], 1
cmp dword [esp + 0x14], ebx
jl 0x10012dd6
lea eax, [esp + 0xd]
mov byte [esp + 0xd], bl
push eax
mov dl, 1
call fcn.100129c2
dec dword [esp + 0x18]
pop ecx
jns 0x10012dbf
dec dword [esp + 0x18]
jns 0x10012da9
lea ecx, [esp + 0x34]
mov byte [esp + 0x64], bl
call fcn.10001fdf
mov eax, dword [0x10146c90]
test al, 1
jne 0x10012e14
or eax, 1
mov dword [0x10146c90], eax
push 0xfe4d
mov byte [esp + 0x68], 2
call fcn.10021ed6
pop ecx
mov word [0x10146c80], ax
mov byte [esp + 0x64], bl
mov dword [esp + 0x14], 0xfffffffe
mov byte [esp + 0xe], bl
cmp byte [esp + 0xe], 0
je 0x10012e37
push 0x773e
mov ecx, 0x4d73
call fcn.100137dc
pop ecx
mov dword [esp + 0x14], ebx
jmp 0x10012e6c
push 0x4941
push 0x46fd
lea eax, [esp + 0x17]
mov byte [esp + 0x17], bl
push eax
push 0x1095
push 1
push 1
mov dl, 1
mov ecx, 0x61a6
call fcn.10012a2b
add esp, 0x18
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffea
je 0x10012e3d
mov eax, dword [0x10146c90]
test al, 2
jne 0x10012e9e
or eax, 2
mov dword [0x10146c90], eax
push 0xb425
mov byte [esp + 0x68], 3
call fcn.10021ed6
pop ecx
mov word [0x10146c8c], ax
mov byte [esp + 0x64], bl
mov esi, ebx
cmp dword [ebp + 0x18], esi
jbe 0x10012f93
xor edx, edx
inc edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 3
mov dword [esp + 0x14], ebx
jmp 0x10012ece
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x28], 0xfffffffc
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10012ebe
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x10012f4c
mov dword [esp + 0x1c], 0x34859bb
xor ecx, ecx
mov dword [esp + 0x20], 0x53526c71
mov dword [esp + 0x18], 0xb3a0
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
cmp eax, edx
setge cl
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + eax*4 + 0x28]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x28], ecx
dec dword [esp + 0x14]
jns 0x10012ee3
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
call fcn.1001144c
push 0x24
pop ecx
xor edx, edx
div ecx
lea eax, [esp + 0x40]
push eax
push 0x10146c8c
push ecx
push 1
push ecx
lea eax, [esp + 0x38]
mov dword [esp + 0x38], edx
push eax
push 0x10146c80
mov ecx, 0x6afd
call fcn.100128ab
add esp, 0x1c
inc esi
cmp esi, dword [ebp + 0x18]
jb 0x10012ea9
mov dl, 1
call fcn.10012c30
mov ecx, dword [ebp + 0x1c]
lea eax, [esp + 0x40]
cmp ecx, eax
je 0x10012fae
push 0xffffffffffffffff
push ebx
push eax
call fcn.10008966
push ebx
push 1
lea ecx, [esp + 0x48]
call fcn.10008b6b
jmp 0x10012fdd
push dword [ecx]
mov ecx, dword [ebp + 0x10]
call fcn.10009864
jmp 0x10012fdd
cmp byte [ebp + 8], 0
je 0x10012fd5
mov eax, dword [ebp + 0x14]
dec dword [eax]
jmp 0x10012fdd
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [esp + 0x5c]
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret