Function at 0x1000b170
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b8cfb
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x100fe39c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x78], eax
mov ecx, dword [0x101037c8]
test ecx, ecx
jne 0x1000b219
push 0x100fe048
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x101037c8], 0
jne 0x1000b208
push 4
call fcn.1004f16d
mov esi, eax
add esp, 4
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x1000b1f1
mov ecx, esi
mov dword [esi], 0
call fcn.1005aa90
mov byte [ebp - 4], 0
jmp 0x1000b1f3
xor esi, esi
mov dword [ebp - 4], 0xffffffff
xor ecx, ecx
lea eax, [ebp - 0x14]
lock or dword [eax], ecx
mov dword [0x101037c8], esi
push 0x100fe048
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x101037c8]
push 0
lea eax, [ebp - 0x5c]
push eax
call fcn.1005b960
mov dword [ebp - 4], 2
lea eax, [ebp - 0x5c]
cmp dword [ebp - 0x48], 8
cmovae eax, dword [ebp - 0x5c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1000b77b
cmp dword [ebp - 0x48], 8
lea esi, [ebp - 0x5c]
cmovae esi, dword [ebp - 0x5c]
call fcn.1000b000
mov ecx, eax
test ecx, ecx
je 0x1000b7aa
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x6c]
push esi
call fcn.1000ae40
test al, al
jne 0x1000b2a9
test esi, esi
jne 0x1000b283
xor ecx, ecx
jmp 0x1000b29f
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000b290
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x6c]
call fcn.1000bca0
mov byte [ebp - 4], 4
call fcn.1000b000
mov ecx, eax
test ecx, ecx
je 0x1000b7b4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x68]
push 0x100c877c
call fcn.1000ae40
test al, al
jne 0x1000b2eb
push 0
push 0x100c877c
lea ecx, [ebp - 0x68]
call fcn.1000bca0
mov byte [ebp - 4], 6
call fcn.1000b000
mov ecx, eax
test ecx, ecx
je 0x1000b7be
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x64]
push 0x100c8780
call fcn.1000ae40
test al, al
jne 0x1000b32d
push 2
push 0x100c8780
lea ecx, [ebp - 0x64]
call fcn.1000bca0
mov byte [ebp - 4], 8
call fcn.1000b000
mov ecx, eax
test ecx, ecx
je 0x1000b7c8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x60], eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x60]
push 0x100c8788
call fcn.1000ae40
test al, al
jne 0x1000b36f
push 0xc
push 0x100c8788
lea ecx, [ebp - 0x60]
call fcn.1000bca0
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.10066b50
add esp, 0x14
mov byte [ebp - 4], 0xb
mov edx, dword [eax]
mov ecx, edx
xor eax, eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
lea esi, [ecx + 2]
mov word [ebp - 0x2c], ax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000b3c0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.10008f70
mov byte [ebp - 4], 0xd
or esi, 0xffffffff
mov edx, dword [ebp - 0x7c]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000b3fa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xf
mov eax, esi
mov edx, dword [ebp - 0x60]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000b418
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
mov eax, esi
mov edx, dword [ebp - 0x64]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000b436
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x13
mov eax, esi
mov edx, dword [ebp - 0x68]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000b454
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov eax, esi
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000b472
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.1000b000
mov ecx, eax
test ecx, ecx
je 0x1000b7d2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x74], eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x74]
push 0x100c8ab8
call fcn.1000ae40
test al, al
jne 0x1000b4cd
mov ecx, 0x100c8ab8
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000b4b0
sub ecx, edx
sar ecx, 1
push ecx
push 0x100c8ab8
lea ecx, [ebp - 0x74]
call fcn.1000bca0
mov byte [ebp - 4], 0x18
lea edi, [ebp - 0x2c]
cmp dword [ebp - 0x18], 8
cmovae edi, dword [ebp - 0x2c]
call fcn.1000b000
mov ecx, eax
test ecx, ecx
je 0x1000b7dc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x70], eax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x70]
push edi
call fcn.1000ae40
test al, al
jne 0x1000b52d
test edi, edi
jne 0x1000b50f
xor ecx, ecx
jmp 0x1000b523
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000b514
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x70]
call fcn.1000bca0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10051340
add esp, 0xc
mov byte [ebp - 4], 0x1b
mov edx, dword [eax]
mov ecx, edx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1000b550
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.10008f70
mov byte [ebp - 4], 0x1a
mov eax, esi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000b587
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x18
mov eax, esi
mov edx, dword [ebp - 0x70]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000b5a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x74]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x1000b5c1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
push 0xfde9
cmovae eax, dword [ebp - 0x2c]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.10031900
add esp, 0xc
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x1c], 0
je 0x1000b659
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
mov dword [ebp - 0x84], 0
cmovae edx, dword [ebp - 0x44]
mov ecx, edx
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1000b621
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x94]
call fcn.10008e70
mov byte [ebp - 4], 0x20
mov eax, 1
mov dword [ebp - 0x78], eax
mov ecx, ebx
lea eax, [ebp - 0x94]
push eax
call fcn.10059d10
test al, al
je 0x1000b659
xor bl, bl
jmp 0x1000b65b
mov bl, 1
mov dword [ebp - 4], 0x1f
mov eax, dword [ebp - 0x78]
test al, 1
je 0x1000b6be
and eax, 0xfffffffe
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x80]
cmp edx, 0x10
jb 0x1000b6a6
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000b69c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000b7e6
push edx
push ecx
call fcn.1004f19d
add esp, 8
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
test bl, bl
je 0x1000b6df
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x44]
call fcn.100053b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2c]
call fcn.10005430
jmp 0x1000b77b
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x1000b717
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000b70d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000b7eb
push edx
push ecx
call fcn.1004f19d
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x18]
cmp edx, 8
jb 0x1000b767
mov ecx, dword [ebp - 0x2c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x1000b75d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000b7f0
push edx
push ecx
call fcn.1004f19d
add esp, 8
xor eax, eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.10005430
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1004f51c
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.1000ae20
push 0x80004005
call fcn.1000ae20
push 0x80004005
call fcn.1000ae20
push 0x80004005
call fcn.1000ae20
push 0x80004005
call fcn.1000ae20
push 0x80004005
call fcn.1000ae20
call fcn.1008b33c
call fcn.1008b33c
call fcn.1008b33c
int3