Function at 0x425620
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 0x42579d
mov ebx, dword [esp + 0x28]
mov edi, dword [ebx + ebp*8 - 8]
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x425793
mov esi, dword [ebx + ebp*8]
mov ecx, edi
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4256a9
test dx, dx
je 0x4256a5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4256a9
add eax, 4
add ecx, 4
test dx, dx
jne 0x425683
xor eax, eax
jmp 0x4256ae
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
jne 0x42570e
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x425793
mov ecx, esi
mov eax, edi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4256f6
test dx, dx
je 0x4256f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4256f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4256d0
xor eax, eax
jmp 0x4256fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
jne 0x425711
mov eax, dword [ebx + ebp*8 + 4]
cmp eax, dword [ebx + ebp*8 - 4]
jge 0x425711
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 0x425770
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x425761
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x425761
call fcn.0040a210
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x425756
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 0x42576c
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 0x425665
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
jmp 0x4257a1
push 0x80004005
call fcn.00403650
mov ebx, dword [esp + 0x28]
cmp ebp, eax
jne 0x4257c4
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.00425b20
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 0x42581f
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