Function at 0x1001d258
Capabilities:
Get file system object information

Disassembly:
mov eax, 0x1008a817
call fcn.10089da0
sub esp, 0xf8
push ebx
push edi
mov edi, ecx
mov dword [ebp - 0x3c], edx
xor ebx, ebx
cmp dword [edi + 0x10], ebx
jne 0x1001d27d
xor al, al
jmp 0x1001db12
push 4
lea ecx, [ebp - 0x90]
call fcn.10018d3c
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], 0xee76f502
mov dword [ebp - 0x20], 0x66e66b6c
mov dword [ebp - 0x14], ebx
jmp 0x1001d2b3
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x90]
mov dword [eax + ecx*4], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1001d2a0
push esi
mov dword [ebp - 0x18], 3
push 9
pop esi
cmp dword [ebp - 0x18], ebx
jl 0x1001d3e7
mov dword [ebp - 0x20], 0x21cd4309
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x20], 0xfffffff6
mov dword [ebp - 0x20], 0x2ccd2044
mov dword [ebp - 0x20], 0xf79b347d
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0x84], ebx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x90]
cmp dword [eax + ecx*4], ebx
jne 0x1001d325
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x90]
setne dl
imul edx, dword [eax + esi*4]
test edx, edx
je 0x1001d3a5
mov dword [ebp - 0x20], 0x5b8b78a
mov dword [ebp - 0x10], ebx
jmp 0x1001d35c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xf8], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x1001d34f
mov dword [ebp - 0x10], ebx
jmp 0x1001d378
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x104], 0x7d6364d6
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 3
jl 0x1001d367
lea eax, [ebp - 0x84]
push ebx
push eax
call fcn.1001db60
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
pop ecx
pop ecx
je 0x1001d3b6
push ebx
push 0x373d
call fcn.1001fc14
pop ecx
pop ecx
jmp 0x1001d3b6
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1001d3b6
push ebx
push ebx
call dword [sym.imp.GDI32.dll_RectInRegion]
mov dword [ebp - 0x14], 0x19
jmp 0x1001d3d5
push ebx
push 0x18b9
push 0x39b0
call fcn.10020761
add esp, 0xc
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x14
jg 0x1001d3bf
dec dword [ebp - 0x18]
push 9
pop esi
jns 0x1001d2cd
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
call fcn.10018dbe
lea eax, [ebp - 0x3c]
push ebx
push eax
call fcn.1001fdf8
pop ecx
mov dword [ebp - 0x18], 0xfffffff9
pop ecx
mov dword [ebp - 0x18], 0xfffffff3
jmp 0x1001d6cb
mov dword [ebp - 0x10], 1
lea ecx, [ebp - 0x58]
push 1
call fcn.10018d3c
mov dword [ebp - 4], 1
mov dword [ebp - 0x28], ebx
jmp 0x1001d440
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x7c], 0xfe6e
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x1001d432
push ebx
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.1001f9b4
mov dword [ebp - 0x10], 2
add esp, 0xc
cmp dword [ebp - 0x10], ebx
jl 0x1001d597
push 3
lea ecx, [ebp - 0xc0]
call fcn.10018d3c
mov byte [ebp - 4], 2
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x14], ebx
jmp 0x1001d497
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc0]
mov dword [eax + ecx*4], 0x8af066b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1001d484
mov eax, dword [ebp - 0x74]
xor edx, edx
cmp eax, 0xab1d
mov eax, dword [ebp - 0x7c]
push 4
setle dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x74]
cmp edx, eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc0]
sete cl
imul edx, ecx
xor ecx, ecx
add edx, 0xfffffff6
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x18]
cmp eax, edx
pop eax
setl cl
xor edx, edx
cmp ecx, 0xfffffff7
setle dl
sub eax, edx
je 0x1001d4ee
cmp dword [ebp - 0x18], ebx
je 0x1001d4ee
xor eax, eax
inc eax
jmp 0x1001d4f0
mov eax, ebx
imul eax, eax, 0xfffffff7
test eax, eax
je 0x1001d501
cmp dword [ebp - 0x18], ebx
je 0x1001d501
xor edx, edx
inc edx
jmp 0x1001d503
mov edx, ebx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x18]
add ecx, edx
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setg dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x10]
setg bl
mov ecx, dword [ebp + eax*4 - 0x7c]
mov eax, dword [ebp - 0x58]
sub ecx, ebx
xor ebx, ebx
mov dword [eax], ecx
mov dword [ebp - 0x14], ebx
jmp 0x1001d579
push 0x3eff
push 0x47e8
push 0x28f6
push 0x31f
push 0x693d
push 0x38e0
mov dword [ebp - 0x80], 0xffffffff
push ebx
call fcn.10020044
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x58]
push eax
push ebx
push 0xd0c
call fcn.10020171
add esp, 0x2c
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x1001d535
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 1
call fcn.10018dbe
dec dword [ebp - 0x10]
jns 0x1001d467
mov dword [ebp - 0x10], 0xffffffe9
jmp 0x1001d6b2
mov dword [ebp - 0x14], 0x35cb5140
mov dword [ebp - 0x14], ebx
jmp 0x1001d69d
push 2
lea ecx, [ebp - 0x48]
call fcn.10018d3c
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 3
push eax
push 0x5d13
push ebx
lea eax, [ebp - 0xdc]
mov dword [ebp - 0x20], 0xfffffff9
push eax
push 0x71a
call fcn.100206ba
mov eax, dword [ebp - 0x48]
add esp, 0x14
mov dword [eax], 0xfffffff2
jmp 0x1001d615
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1001d610
push 0x2561
push 0x1023
push ebx
push 0x20dc
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, dword [ebp - 0x48]
inc dword [eax]
mov eax, dword [ebp - 0x48]
cmp dword [eax], 0x12
jge 0x1001d5f0
mov eax, dword [ebp - 0x20]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
add edx, 0xee52
cmp eax, edx
mov eax, dword [ebp - 0x18]
setl cl
add eax, 0xfffffffb
add eax, ecx
je 0x1001d649
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
cmp dword [eax], 1
jne 0x1001d65b
cmp dword [ebp - 0x18], ebx
je 0x1001d65b
xor eax, eax
inc eax
jmp 0x1001d65d
mov eax, ebx
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov eax, dword [ebp - 0x48]
cmp ecx, dword [eax]
jle 0x1001d674
mov eax, dword [ebp - 0x58]
cmp dword [eax], ebx
jne 0x1001d674
mov eax, ebx
jmp 0x1001d677
xor eax, eax
inc eax
xor edx, edx
cmp eax, 1
mov eax, dword [ebp - 0x14]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x48]
mov byte [ebp - 4], 1
setle cl
mov dword [eax], ecx
lea ecx, [ebp - 0x48]
call fcn.10018dbe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jg 0x1001d5b2
mov eax, dword [ebp - 0x58]
mov dword [eax], 1
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffef
je 0x1001d5a3
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.10018dbe
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jle 0x1001d415
cmp dword [edi + 0x14], 0x10
jb 0x1001d6df
mov ecx, dword [edi]
jmp 0x1001d6e1
mov ecx, edi
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x34], ecx
jb 0x1001d6ee
mov edx, dword [edi]
jmp 0x1001d6f0
mov edx, edi
mov eax, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
je 0x1001d96d
mov dword [ebp - 0x10], 0x571177e8
mov dword [ebp - 0x14], ebx
jmp 0x1001d717
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0x1dbe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1001d709
mov dword [ebp - 0x10], 0xffffffff
jmp 0x1001d746
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x1001d743
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x5c], ebx
jne 0x1001d743
dec dword [ebp - 0x14]
jns 0x1001d735
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x19
jne 0x1001d726
mov eax, dword [ebp - 0x34]
mov al, byte [eax]
cmp al, 0x30
jl 0x1001d7f6
cmp al, 0x39
jg 0x1001d7f6
mov dword [ebp - 0x10], 0xfffffff9
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], ebx
jmp 0x1001d785
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x30], 0xfffffff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x1001d777
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x1001d7a7
push ebx
push 0x10ad
push 0x6abf
call fcn.1001fe7d
add esp, 0xc
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
push 0xe83
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x20], ebx
push eax
lea eax, [ebp - 0x34]
push ebx
push eax
call fcn.1001fb9c
mov ecx, dword [ebp - 0x34]
add esp, 0x10
inc ecx
jmp 0x1001d6e1
mov dword [ebp - 0x4c], ebx
lea ecx, [ebp - 0xd8]
push 3
call fcn.10018d3c
push 4
pop ecx
mov dword [ebp - 4], ecx
push 3
mov dword [ebp - 0x20], 0x185a1fa1
mov dword [ebp - 0x10], ebx
pop edx
jmp 0x1001d825
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x68], ecx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001d81b
mov dword [ebp - 0x10], ebx
jmp 0x1001d842
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xd8]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001d82f
mov dword [ebp - 0x68], ebx
jmp 0x1001d85c
mov dword [ebp - 0x20], 0x5e00
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x4c], eax
dec dword [ebp - 0x68]
cmp dword [ebp - 0x68], 0xffffffee
jle 0x1001d84c
push 0x464b
push 0xb90
push 0x4d89
push ebx
push 0x15b5
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.10027523
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xd8]
add esp, 0x1c
call fcn.10018dbe
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0xb4]
push 2
mov dword [eax], ebx
call fcn.10018d3c
push 0x2ccd
lea eax, [ebp - 0xb4]
mov dword [ebp - 4], 5
push eax
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x10], 0xaabecba2
push eax
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x20], 0x5b36
push ebx
call fcn.1002775a
mov dword [ebp - 0x10], 1
add esp, 0x10
cmp dword [ebp - 0x10], ebx
jl 0x1001d95b
mov dword [ebp - 0x20], 0x40ca7005
mov dword [ebp - 0x14], ebx
jmp 0x1001d909
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1001d8fb
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax + ecx*4]
sub ecx, dword [eax + edx*4]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [ebp - 0x18]
jle 0x1001d943
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xb4]
cmp dword [eax + ecx*4], ebx
jne 0x1001d943
mov eax, ebx
jmp 0x1001d946
xor eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x70], 1
dec dword [ebp - 0x10]
jns 0x1001d8ef
lea ecx, [ebp - 0xb4]
call fcn.10018dbe
xor al, al
jmp 0x1001db11
xor eax, eax
mov dword [ebp - 0x10], 0xffff
inc eax
mov dword [ebp - 0x38], 0xfffffff8
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0xcc]
push eax
call fcn.10018d3c
push 2
lea ecx, [ebp - 0xa8]
mov dword [ebp - 4], 6
call fcn.10018d3c
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x20], 0xfffffff6
push 1
call fcn.10018d3c
push 0x664f
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 8
push eax
push ebx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], 0xfffffffb
push 0x331d
mov dword [ebp - 0x20], 0x36511f0b
push eax
call fcn.10020370
add esp, 0x14
mov dword [ebp - 0x24], ebx
jmp 0x1001da08
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xa8]
mov dword [eax + ecx*4], 0x7392
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 2
jl 0x1001d9f5
xor edx, edx
mov dword [ebp - 0x24], ebx
inc edx
jmp 0x1001da25
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x9c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jl 0x1001da16
mov dword [ebp - 0x24], ebx
jmp 0x1001da39
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x6c], edx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edx
jl 0x1001da2f
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xcc]
sub edx, 0x4fffb
neg edx
push 0
sbb edx, edx
xor ecx, ecx
mov dword [eax], 5
inc edx
mov eax, dword [ebp - 0x38]
cmp edx, eax
mov eax, dword [ebp - 0x14]
setne cl
xor ebx, ebx
test ecx, ecx
sets bl
xor edx, edx
cmp ebx, eax
mov eax, dword [ebp - 0x14]
sete dl
xor ecx, ecx
cmp eax, edx
setne cl
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0xa8]
inc dword [eax]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], 0xa75e
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x9c]
mov dword [eax], ecx
lea ecx, [ebp - 0x9c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x38]
push eax
push ecx
call fcn.1002026c
add esp, 0xc
lea ecx, [ebp - 0x9c]
call fcn.10018dbe
lea ecx, [ebp - 0xa8]
call fcn.10018dbe
lea ecx, [ebp - 0xcc]
call fcn.10018dbe
mov al, 1
pop esi
mov ecx, dword [ebp - 0xc]
pop edi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret