Function at 0x87bb8c
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x87bfd8
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
je 0x87be53
cmp dword [ebp - 8], 1
jne 0x87bc00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e5c]
mov edx, dword [eax]
call dword [edx + 0xc]
dec eax
jle 0x87bc00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3e5c]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e5c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x3e64], eax
jmp 0x87be96
cmp dword [ebp - 8], 2
jne 0x87bc4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e60]
mov edx, dword [eax]
call dword [edx + 0xc]
dec eax
jle 0x87bc4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x3e60]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3e60]
mov edx, dword [ebp - 4]
mov dword [edx + 0x3e64], eax
jmp 0x87be96
xor eax, eax
push ebp
push 0x87bdd8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
call fcn.00624ac0
mov byte [eax + 0x30], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2f8]
cmp eax, dword [edx + 0x48]
jg 0x87bce3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2f8]
cmp eax, dword [edx + 0x4c]
jg 0x87bce3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x28]
jmp 0x87bdb8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
imul ebx, dword [eax + 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2f8]
imul dword [edx + 0x48]
cmp ebx, eax
jle 0x87bd73
push 0xffffffffffffffff
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov dl, 9
call fcn.00796860
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
call fcn.00624ac0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2f8]
mov ecx, dword [edx + 0x48]
pop edx
call fcn.005d4598
jmp 0x87bdb8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov eax, dword [eax + 0x4c]
push eax
mov eax, dword [0x98a548]
mov eax, dword [eax]
mov dl, 9
call fcn.00796860
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
call fcn.00624ac0
or ecx, 0xffffffff
pop edx
call fcn.005d4598
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x87bddf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
call fcn.00624ac0
mov byte [eax + 0x30], 1
ret
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov dword [edx + 0x3e64], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3e4c], 0xffffffff
jne 0x87bed3
mov eax, dword [ebp - 4]
add eax, 0x3e54
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
lea ecx, [edx + 0x3e50]
mov edx, dword [ebp - 4]
add edx, 0x3e4c
call fcn.005d4988
push 0x40590000
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
call fcn.00618bac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0x88]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov byte [eax + 0x4a0], 1
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x300]
cmp byte [ebx + 0x57], 0
je 0x87bf7d
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp ebx, eax
je 0x87bf7d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
mov edx, dword [eax]
call dword [edx + 0xd0]
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
mov edx, dword [eax]
call dword [edx + 0x88]
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x2f8]
mov eax, ebx
call fcn.0061a350
fadd dword [0x87bfec]
fcomp qword [ebx + 0x3f0]
fnstsw ax
sahf
jb 0x87bfb0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.00628c20
jmp 0x87bfc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov dx, 0x4c9
call fcn.00628c20
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0087c448
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x87bfe2
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret