Function at 0x1000f940
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x10029008
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1003b030]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, dword [esp + 0x2c]
lea edi, [esi + esi + 2]
cmp edi, dword [esp + 0x30]
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], esi
jge 0x1000fa53
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + edi*4 - 4]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x1000fa49
mov eax, dword [ebx + edi*4]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1000f9c6
test dx, dx
je 0x1000f9c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1000f9c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x1000f9a0
xor eax, eax
jmp 0x1000f9cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
je 0x1000f9d5
dec edi
mov ecx, dword [ebx + edi*4]
lea ebp, [ebx + esi*4]
mov esi, dword [ebp]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x1000fa31
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x1000fa22
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x1000fa22
call fcn.100014f0
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x1000fa16
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x2c]
add ecx, 0x10
mov dword [ebp], ecx
jmp 0x1000fa2d
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, ebp
call fcn.10001450
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], edi
mov esi, dword [esp + 0x2c]
lea edi, [edi + edi + 2]
cmp edi, dword [esp + 0x30]
jl 0x1000f983
jmp 0x1000fa57
push 0x80004005
call fcn.10001770
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
cmp edi, eax
jne 0x1000fac4
mov ecx, dword [ebx + eax*4 - 4]
lea edi, [ebx + esi*4]
mov esi, dword [edi]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x1000fabb
cmp dword [esi + 0xc], 0
lea ebp, [esi + 0xc]
jl 0x1000faac
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x1000faac
call fcn.100014f0
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x1000faa1
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x2c]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x1000fabb
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, edi
call fcn.10001450
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
dec edx
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0x34]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x34], esp
mov ebp, esp
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x1000faf6
cmp eax, dword [esi]
jne 0x1000faf6
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x1000fb32
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x1000fb0f
call fcn.100015c0
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.10018a75
add esp, 0x10
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x34]
add edi, 0x10
push ebx
mov dword [ebp], edi
call fcn.1000fca0
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000fb72
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret