Function at 0x506b80
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x586fe8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0x30]
call fcn.0046dc50
mov dword [esp + 0x28], 0x58a728
mov eax, dword [esp + 0x4c]
xor edi, edi
mov dword [esp + 0x44], 0
mov dword [esp + 0x18], edi
mov eax, dword [eax + 0xc]
cmp dword [eax + 4], 0xffffffff
je 0x506be2
test eax, eax
je 0x506be2
mov ecx, eax
inc edi
call fcn.00406800
test eax, eax
jne 0x506bd2
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x50]
xor edi, edi
mov dword [esp + 0x14], edi
call fcn.00406800
test eax, eax
je 0x506c05
mov ecx, eax
inc edi
call fcn.00406800
test eax, eax
jne 0x506bf5
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x54]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
call fcn.00406800
test eax, eax
je 0x506c28
mov ecx, eax
inc ebx
call fcn.00406800
test eax, eax
jne 0x506c18
mov dword [esp + 0x1c], ebx
add esi, 0x30
mov dword [esp + 0x24], 0x14
mov dword [esp + 0x20], 0x14
jmp 0x506c4f
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], 0x14
jmp 0x506c4f
mov edi, dword [esp + 0x14]
mov ecx, dword [0xb084b8]
mov dword [esp + 0x10], 0
test ecx, ecx
jne 0x506c8f
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov ecx, dword [0xb084b8]
add esp, 0xc
test ecx, ecx
jne 0x506c8f
call fcn.0052ff20
mov ecx, dword [0xb084b8]
mov eax, dword [ecx + 0xd0]
push eax
call fcn.00533cd0
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0xc]
mov edx, dword [eax + 4]
inc edx
neg edx
sbb edx, edx
and edx, eax
test edi, edi
jbe 0x506d75
mov ebp, edi
mov ebx, dword [edx + 4]
mov ecx, dword [ebx + 0xc]
fld dword [ecx + 0x10]
fcomp dword [esi + 0x10]
fnstsw ax
and eax, 0x4100
je 0x506d61
fld dword [esi]
fcomp dword [ecx + 0x20]
fnstsw ax
and eax, 0x4100
je 0x506d61
fld dword [ecx + 0x18]
fcomp dword [esi + 0x18]
fnstsw ax
and eax, 0x4100
je 0x506d61
fld dword [esi + 8]
fcomp dword [ecx + 0x28]
fnstsw ax
and eax, 0x4100
je 0x506d61
fld dword [ecx + 0x14]
fcomp dword [esi + 0x14]
fnstsw ax
and eax, 0x4100
je 0x506d61
fld dword [esi + 4]
fcomp dword [ecx + 0x24]
fnstsw ax
and eax, 0x4100
je 0x506d61
mov ecx, dword [esi + 0x24]
xor eax, eax
test ecx, ecx
jle 0x506d5d
mov edi, dword [esi + 0x2c]
inc eax
cmp dword [edi], ebx
je 0x506d37
add edi, 4
cmp eax, ecx
jl 0x506d29
jmp 0x506d5d
cmp eax, ecx
jge 0x506d4f
mov ecx, dword [esi + 0x2c]
mov edi, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
inc eax
mov dword [ecx - 4], edi
mov ecx, dword [esi + 0x24]
cmp eax, ecx
jl 0x506d3b
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x2c]
mov dword [ecx + eax*4 - 4], 0
dec dword [esp + 0x10]
mov edx, dword [edx + 0xc]
mov eax, dword [edx + 4]
inc eax
neg eax
sbb eax, eax
and edx, eax
dec ebp
jne 0x506cb6
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov edi, dword [eax + 4]
inc edi
neg edi
sbb edi, edi
and edi, eax
test ebp, ebp
jbe 0x506e7a
mov ebx, dword [edi + 4]
mov ecx, dword [ebx + 0xc]
fld dword [ecx + 0x10]
fcomp dword [esi + 0x10]
fnstsw ax
and eax, 0x4100
je 0x506e66
fld dword [esi]
fcomp dword [ecx + 0x20]
fnstsw ax
and eax, 0x4100
je 0x506e66
fld dword [ecx + 0x18]
fcomp dword [esi + 0x18]
fnstsw ax
and eax, 0x4100
je 0x506e66
fld dword [esi + 8]
fcomp dword [ecx + 0x28]
fnstsw ax
and eax, 0x4100
je 0x506e66
fld dword [ecx + 0x14]
fcomp dword [esi + 0x14]
fnstsw ax
and eax, 0x4100
je 0x506e66
fld dword [esi + 4]
fcomp dword [ecx + 0x24]
fnstsw ax
and eax, 0x4100
je 0x506e66
mov ecx, dword [esp + 0x10]
test ecx, ecx
jge 0x506e16
mov eax, dword [esi + 0x24]
mov edx, dword [esi + 0x2c]
add eax, ecx
mov dword [edx + eax*4], ebx
jmp 0x506e62
push 0x14
call fcn.00401290
add esp, 4
test eax, eax
je 0x506e3e
mov dword [eax + 4], ebx
mov dword [eax + 8], 0
mov dword [eax], 0x58a724
mov dword [eax + 0xc], eax
mov dword [eax + 0x10], eax
mov ebx, eax
jmp 0x506e58
mov eax, dword [str.Null_Pointer]
xor ebx, ebx
push eax
push 0x157
push str..core_list_head.h
call fcn.00401090
add esp, 0xc
push ebx
lea ecx, [esp + 0x2c]
call fcn.00430c80
inc dword [esp + 0x10]
mov edi, dword [edi + 0xc]
mov ecx, dword [edi + 4]
inc ecx
neg ecx
sbb ecx, ecx
and edi, ecx
dec ebp
jne 0x506d92
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [edx + 0xc]
mov eax, dword [ecx + 4]
inc eax
neg eax
sbb eax, eax
and eax, ecx
test ebx, ebx
jbe 0x506eb1
mov eax, dword [eax + 4]
mov edi, dword [esi + 0x24]
xor ecx, ecx
test edi, edi
jle 0x506eae
mov edx, dword [esi + 0x2c]
cmp dword [edx], eax
je 0x506eae
inc ecx
add edx, 4
cmp ecx, edi
jl 0x506ea2
dec ebx
jne 0x506e99
mov eax, dword [0xb084b8]
test eax, eax
jne 0x506ee0
mov eax, dword [str.Null_Pointer]
push eax
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x506ee0
call fcn.0052ff20
mov ecx, dword [0xb084b8]
call fcn.00533d40
mov ebx, dword [esi + 0x24]
mov eax, dword [esp + 0x10]
add ebx, eax
test eax, eax
mov dword [esp + 0x10], ebx
jge 0x506f6d
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x506f54
mov eax, dword [0xb084b8]
test eax, eax
jne 0x506f33
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x506f33
call fcn.0052ff20
mov edx, dword [esi + 0x2c]
mov ecx, dword [0xb084b8]
push 0
lea eax, [ebx*4]
push edx
push eax
call fcn.00533c40
test eax, eax
jne 0x506fe4
mov edx, dword [esi + 0x2c]
lea ecx, [ebx*4]
push ecx
push edx
call fcn.00534ec0
add esp, 8
mov dword [esi + 0x2c], eax
jmp 0x506fe4
jle 0x506fe4
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x506f91
push 0
push eax
lea eax, [ebx*4]
push eax
call fcn.00401180
mov ecx, eax
call fcn.00533be0
test eax, eax
jne 0x506fa8
mov edx, dword [esi + 0x2c]
lea ecx, [ebx*4]
push ecx
push edx
call fcn.00534ec0
add esp, 8
mov dword [esi + 0x2c], eax
mov ebp, dword [esi + 0x24]
lea ecx, [esp + 0x28]
call fcn.00406800
mov edi, eax
test edi, edi
je 0x506fe4
shl ebp, 2
mov ecx, edi
call fcn.00406800
mov ecx, dword [esi + 0x2c]
mov ebx, eax
mov eax, dword [edi + 4]
push 1
mov dword [ecx + ebp], eax
mov edx, dword [edi]
mov ecx, edi
call dword [edx]
add ebp, 4
mov edi, ebx
test ebx, ebx
jne 0x506fbd
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov dword [esi + 0x24], ebx
add esi, 0x30
dec eax
mov dword [esp + 0x20], eax
jne 0x506c4b
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jne 0x506c3d
lea ecx, [esp + 0x28]
mov dword [esp + 0x44], 0xffffffff
call fcn.0046dc70
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x38
ret 0xc