Function at 0x411ea0
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x43edb8
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x454654]
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 0x411fb3
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + edi*4 - 4]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x411fa9
mov eax, dword [ebx + edi*4]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x411f26
test dx, dx
je 0x411f22
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x411f26
add eax, 4
add ecx, 4
test dx, dx
jne 0x411f00
xor eax, eax
jmp 0x411f2b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
je 0x411f35
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 0x411f91
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x411f82
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x411f82
call fcn.00401750
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x411f76
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 0x411f8d
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, ebp
call fcn.004016b0
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 0x411ee3
jmp 0x411fb7
push 0x80004005
call fcn.00401960
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
cmp edi, eax
jne 0x412024
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 0x41201b
cmp dword [esi + 0xc], 0
lea ebp, [esi + 0xc]
jl 0x41200c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x41200c
call fcn.00401750
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x412001
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 0x41201b
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, edi
call fcn.004016b0
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 0x412056
cmp eax, dword [esi]
jne 0x412056
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x412092
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 0x41206f
call fcn.00403d90
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.004279ef
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.004121f0
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x40]
mov esi, dword [eax - 0x10]
lea edx, [eax - 0x10]
add esp, 0xc
cmp dword [edx + 4], 0
je 0x412117
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4120f1
cmp dword [eax - 8], 0
jge 0x4120db
push 0x80070057
call fcn.00401960
mov dword [eax - 0xc], 0
mov eax, dword [esp + 0x34]
xor edx, edx
mov word [eax], dx
mov eax, dword [esp + 0x34]
jmp 0x412117
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x412107
mov ecx, dword [edx]
mov eax, dword [ecx]
push edx
mov edx, dword [eax + 4]
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
mov ecx, esi
call edx
add eax, 0x10
mov dword [esp + 0x34], eax
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x412133
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