Function at 0x47dc50
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x501da0
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5364d0]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x30]
lea ebp, [eax + eax + 2]
mov dword [esp + 0x24], 0
cmp ebp, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebp
jge 0x47de38
lea esp, [esp]
mov ebx, dword [esp + 0x2c]
mov edi, dword [ebx + ebp*8 - 8]
xor eax, eax
test edi, edi
setne al
test eax, eax
je 0x47de2e
mov esi, dword [ebx + ebp*8]
mov ecx, edi
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47dce6
test dx, dx
je 0x47dce2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47dce6
add eax, 4
add ecx, 4
test dx, dx
jne 0x47dcc0
xor eax, eax
jmp 0x47dceb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
jne 0x47dd50
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x47de2e
mov ecx, esi
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47dd2d
test dx, dx
je 0x47dd29
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47dd2d
add eax, 4
add ecx, 4
test dx, dx
jne 0x47dd07
xor eax, eax
jmp 0x47dd32
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setl al
test al, al
jne 0x47dd55
lea ecx, [ebx + ebp*8 + 4]
lea eax, [ebx + ebp*8 - 4]
push ecx
call fcn.004043c0
add esp, 4
test al, al
je 0x47dd55
dec ebp
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + ebp*8]
mov esi, dword [ebx + edx*8]
lea edi, [ebx + edx*8]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x47ddb4
cmp dword [esi + 0xc], 0
lea ebp, [esi + 0xc]
jl 0x47dda4
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x47dda4
call fcn.004048c0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x47dd99
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [edi], ebx
mov ebx, dword [esp + 0x2c]
jmp 0x47ddb0
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov eax, edi
call fcn.00401560
mov ebp, dword [esp + 0x14]
mov ecx, dword [ebx + ebp*8 + 4]
mov esi, dword [edi + 4]
add edi, 4
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x47de10
cmp dword [esi + 0xc], 0
lea ebp, [esi + 0xc]
jl 0x47de00
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x47de00
call fcn.004048c0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x47ddf5
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [edi], ebx
mov ebx, dword [esp + 0x2c]
jmp 0x47de0c
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov eax, edi
call fcn.00401560
mov ebp, dword [esp + 0x14]
lea eax, [ebp + ebp + 2]
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x14], eax
mov ebp, eax
jl 0x47dca0
mov eax, dword [esp + 0x30]
jmp 0x47de3c
push 0x80004005
call fcn.00401540
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
cmp ebp, ecx
jne 0x47df07
mov ecx, dword [ebx + ecx*8 - 8]
mov esi, dword [ebx + eax*8]
lea edi, [ebx + eax*8]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x47dea0
cmp dword [esi + 0xc], 0
lea ebp, [esi + 0xc]
jl 0x47de94
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x47de94
call fcn.004048c0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x47de89
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [edi], ebx
mov ebx, dword [esp + 0x2c]
jmp 0x47dea0
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov eax, edi
call fcn.00401560
mov ecx, dword [esp + 0x34]
mov esi, dword [edi + 4]
lea eax, [ebx + ecx*8 - 4]
mov ecx, dword [eax]
add edi, 4
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x47defe
cmp dword [esi + 0xc], 0
lea ebp, [esi + 0xc]
jl 0x47def2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x47def2
call fcn.004048c0
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [ebp], eax
dec eax
test eax, eax
jg 0x47dee7
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [edi], ebx
mov ebx, dword [esp + 0x2c]
jmp 0x47defe
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov eax, edi
call fcn.00401560
mov ecx, dword [esp + 0x34]
dec ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x38]
sub esp, 8
mov esi, esp
mov dword [esp + 0x3c], esp
add eax, 0xfffffff0
mov dword [esp + 0x3c], esi
call fcn.004048c0
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x2c], 1
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
call fcn.004048c0
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
push edx
add eax, 0x10
push ebx
mov dword [esi + 4], eax
mov byte [esp + 0x34], 0
call fcn.0047e220
mov dword [esp + 0x34], 0xffffffff
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47df7b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47df9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret