Function at 0x425900
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x602b48
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x6687b8]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
lea ebp, [ecx + ecx + 2]
cmp ebp, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], ecx
jge 0x425a7d
mov ebx, dword [esp + 0x28]
mov edi, dword [ebx + ebp*8]
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x425a73
mov esi, dword [ebx + ebp*8 - 8]
mov ecx, edi
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x425989
test dx, dx
je 0x425985
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x425989
add eax, 4
add ecx, 4
test dx, dx
jne 0x425963
xor eax, eax
jmp 0x42598e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
jne 0x4259ee
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x425a73
mov ecx, esi
mov eax, edi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4259d6
test dx, dx
je 0x4259d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4259d6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4259b0
xor eax, eax
jmp 0x4259db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
jne 0x4259f1
mov eax, dword [ebx + ebp*8 - 4]
cmp eax, dword [ebx + ebp*8 + 4]
jge 0x4259f1
sub ebp, 1
mov ecx, dword [esp + 0x2c]
mov esi, dword [ebx + ecx*8]
lea edi, [ebx + ecx*8]
mov ecx, dword [ebx + ebp*8]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x425a50
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x425a41
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x425a41
call fcn.0040a210
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x425a36
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 0x425a4c
mov ebx, dword [ecx - 0xc]
push ecx
mov eax, edi
call fcn.004037a0
mov ebx, dword [esp + 0x28]
mov edx, dword [ebx + ebp*8 + 4]
mov dword [esp + 0x2c], ebp
lea ebp, [ebp + ebp + 2]
cmp ebp, dword [esp + 0x30]
mov dword [edi + 4], edx
jl 0x425945
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x425a81
push 0x80004005
call fcn.00403650
mov ebx, dword [esp + 0x28]
cmp ebp, eax
jne 0x425aa4
lea esi, [ebx + eax*8 - 8]
lea edi, [ebx + ecx*8]
mov eax, esi
call fcn.0040ab90
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 4]
add ecx, 0xffffffff
mov dword [edi + 4], eax
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
push edx
sub esp, 8
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x3c], esp
mov edi, esp
call fcn.0040a210
mov ecx, dword [esp + 0x20]
add eax, 0x10
push ecx
mov ecx, dword [esp + 0x3c]
mov dword [edi], eax
mov eax, dword [esp + 0x4c]
push ebx
mov dword [edi + 4], eax
call fcn.00425f00
add esp, 0x14
mov dword [esp + 0x20], 0xffffffff
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x425aff
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
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