Function at 0x100c8ef0
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x444
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x208
lea eax, [ebp - 0x20c]
mov edi, ecx
push 0
push eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x20c]
push eax
push 0x102
call fcn.100dbd90
add esp, 0x14
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x100c9029
push str.SogouPY.ime
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
call fcn.10003180
mov esi, dword [eax + 0x154]
test esi, esi
je 0x100c8f6c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0xe
call fcn.10003680
add esp, 4
test eax, eax
je 0x100c8f85
lea ecx, [ebp - 0x20c]
push ecx
call eax
jmp 0x100c8f92
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
test esi, esi
je 0x100c8f9f
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp ebx, 0xffffffff
je 0x100c9029
test bl, 0x10
jne 0x100c9029
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call sub.msvcrt.dll_memset
push 0x104
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.10174d60
add esp, 0x18
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x424]
mov dword [ebp - 0x424], eax
lea eax, [ebp - 0x414]
push eax
call fcn.10023e80
test al, al
jne 0x100c9064
lea ecx, [ebp - 0x414]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100c9010
sub ecx, edx
lea eax, [ebp - 0x414]
sar ecx, 1
push ecx
push eax
jmp 0x100c9059
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x424]
push 0x10202940
mov dword [ebp - 0x424], eax
call fcn.10023e80
test al, al
jne 0x100c9064
push 0
push 0x10202940
lea ecx, [ebp - 0x424]
call fcn.10003740
mov eax, dword [ebp - 0x424]
mov edx, 0x10202940
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x100c9097
test si, si
je 0x100c9093
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100c9097
add ecx, 4
add edx, 4
test si, si
jne 0x100c9071
xor ecx, ecx
jmp 0x100c909c
sbb ecx, ecx
or ecx, 1
or ebx, 0xffffffff
test ecx, ecx
jne 0x100c90aa
xor esi, esi
jmp 0x100c9794
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x43c], eax
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x438], eax
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push dword [ebp + 8]
add eax, 0x10
mov dword [ebp - 0x428], eax
lea eax, [ebp - 0x428]
push 0x10204700
push eax
call fcn.10002cb0
add esp, 0xc
mov ecx, edi
call fcn.100ca6e0
test eax, eax
je 0x100c9256
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x420]
push str.wit_
push eax
call fcn.10021a80
add esp, 0xc
lea ecx, [ebp - 0x428]
push eax
call fcn.10002790
mov edx, dword [ebp - 0x420]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c9153
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x424]
push eax
push 0x1020ff48
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.10007f40
add esp, 0xc
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.10007e90
add esp, 0xc
lea ecx, [ebp - 0x438]
push eax
call fcn.10002790
mov edx, dword [ebp - 0x420]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c91ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x41c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c91cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x42c]
mov ecx, edi
push eax
call fcn.100ca1b0
push eax
push 0x1020ff50
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.10007f40
add esp, 0xc
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.10007e90
add esp, 0xc
lea ecx, [ebp - 0x43c]
push eax
call fcn.10002790
mov edx, dword [ebp - 0x420]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c922e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x41c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c924b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x42c]
jmp 0x100c9354
lea eax, [ebp - 0x42c]
mov ecx, edi
push eax
call fcn.100c8c20
push eax
push 0x1020ff58
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.10007f40
add esp, 0xc
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.10007e90
add esp, 0xc
lea ecx, [ebp - 0x43c]
push eax
call fcn.10002790
mov edx, dword [ebp - 0x420]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c92b9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x41c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c92d6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x42c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c92f3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x424]
push eax
push 0x1020ff48
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.10007f40
add esp, 0xc
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.10007e90
add esp, 0xc
lea ecx, [ebp - 0x438]
push eax
call fcn.10002790
mov edx, dword [ebp - 0x420]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c934e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x41c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c936b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x42c]
push 0x10202940
mov dword [ebp - 0x42c], eax
call fcn.10023e80
test al, al
jne 0x100c93a6
push 0
push 0x10202940
lea ecx, [ebp - 0x42c]
call fcn.10003740
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x430]
push 0x10202940
mov dword [ebp - 0x430], eax
call fcn.10023e80
test al, al
jne 0x100c93e1
push 0
push 0x10202940
lea ecx, [ebp - 0x430]
call fcn.10003740
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x41c]
push 0x10202940
mov dword [ebp - 0x41c], eax
call fcn.10023e80
test al, al
jne 0x100c941c
push 0
push 0x10202940
lea ecx, [ebp - 0x41c]
call fcn.10003740
lea eax, [ebp - 0x434]
mov dword [ebp - 0x440], 0
push eax
mov ecx, edi
mov dword [ebp - 0x434], 0
call fcn.100c8560
test eax, eax
jne 0x100c9459
mov edi, dword [ebp - 0x430]
mov esi, dword [ebp - 0x42c]
mov dword [ebp - 0x418], eax
jmp 0x100c96d6
mov eax, dword [ebp - 0x434]
lea edx, [ebp - 0x440]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
xor edx, edx
mov dword [ebp - 0x420], edx
cmp dword [ebp - 0x440], edx
jle 0x100c95d8
mov edi, dword [ebp - 0x428]
jmp 0x100c9490
mov eax, dword [ebp - 0x434]
lea esi, [ebp - 0x418]
push esi
mov dword [ebp - 0x418], 0
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x418]
test eax, eax
je 0x100c955f
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
push eax
lea ecx, [ebp - 0x444]
call fcn.10002490
push dword [ebp - 0x438]
mov esi, dword [ebp - 0x444]
push esi
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
je 0x100c957a
push dword [ebp - 0x43c]
push esi
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
jne 0x100c9512
mov eax, dword [ebp - 0x418]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
lea ecx, [ebp - 0x430]
jmp 0x100c9532
push edi
push esi
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
jne 0x100c9538
mov eax, dword [ebp - 0x418]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
lea ecx, [ebp - 0x42c]
push eax
call fcn.10008170
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100c954f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x418]
test eax, eax
je 0x100c955f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebp - 0x420]
inc edx
mov dword [ebp - 0x420], edx
cmp edx, dword [ebp - 0x440]
jl 0x100c9490
jmp 0x100c95d8
mov eax, dword [ebp - 0x418]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov edx, eax
test edx, edx
jne 0x100c9590
xor ecx, ecx
jmp 0x100c95a4
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100c9595
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x41c]
call fcn.10003740
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100c95c8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x418]
test eax, eax
je 0x100c95d8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x41c]
mov edx, 0x10202940
mov ecx, eax
mov si, word [ecx]
cmp si, word [edx]
jne 0x100c960b
test si, si
je 0x100c9607
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x100c960b
add ecx, 4
add edx, 4
test si, si
jne 0x100c95e5
xor ecx, ecx
jmp 0x100c9610
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x100c9634
push eax
call sub.msvcrt.dll__wtoi
mov edi, dword [ebp - 0x430]
add esp, 4
mov esi, dword [ebp - 0x42c]
mov dword [ebp - 0x418], eax
jmp 0x100c96d6
mov edi, dword [ebp - 0x430]
mov ecx, 0x10202940
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100c9667
test dx, dx
je 0x100c9663
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100c9667
add eax, 4
add ecx, 4
test dx, dx
jne 0x100c9641
xor eax, eax
jmp 0x100c966c
sbb eax, eax
or eax, 1
test eax, eax
je 0x100c9687
push edi
call sub.msvcrt.dll__wtoi
mov esi, dword [ebp - 0x42c]
add esp, 4
mov dword [ebp - 0x418], eax
jmp 0x100c96d6
mov esi, dword [ebp - 0x42c]
mov ecx, 0x10202940
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100c96ba
test dx, dx
je 0x100c96b6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100c96ba
add eax, 4
add ecx, 4
test dx, dx
jne 0x100c9694
xor eax, eax
jmp 0x100c96bf
sbb eax, eax
or eax, 1
test eax, eax
je 0x100c96ce
push esi
call sub.msvcrt.dll__wtoi
add esp, 4
jmp 0x100c96d0
xor eax, eax
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x434]
test eax, eax
je 0x100c96e6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebp - 0x41c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c9703
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100c971a
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100c9731
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x428]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c974e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x438]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c976b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x43c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100c9788
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x418]
mov eax, dword [ebp - 0x424]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x100c97a9
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret 4