Function at 0x812530
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x812538
push ecx
push ebx
push esi
push edi
mov ebx, eax
mov esi, dword [0x98a548]
xor eax, eax
push ebp
push 0x812986
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x81294c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x514]
call fcn.00624ac0
mov byte [eax + 0x30], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x514]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
lea edi, [eax + eax*2]
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x514]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 8]
shl eax, 2
cmp edi, eax
jle 0x8125f5
push 0xffffffffffffffff
push 0xd
mov eax, dword [ebx + 0x2f4]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x514]
call fcn.00624ac0
mov edx, dword [ebx + 0x2f4]
mov ecx, dword [edx + 0x48]
pop edx
call fcn.005d4598
jmp 0x81262c
mov eax, dword [ebx + 0x2f4]
mov eax, dword [eax + 0x4c]
push eax
push 0xd
mov eax, dword [ebx + 0x2f4]
mov edx, dword [eax]
call dword [edx + 0xd0]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x514]
call fcn.00624ac0
or ecx, 0xffffffff
pop edx
call fcn.005d4598
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x514]
call fcn.00624ac0
mov byte [eax + 0x30], 1
mov eax, dword [ebx + 0x2f4]
mov edx, dword [eax]
call dword [edx + 0x88]
lea edx, [ebp - 4]
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0xe44]
call fcn.00485110
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x328]
call fcn.004b1da8
lea edx, [ebp - 8]
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x778]
call fcn.00458cac
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0x32c]
call fcn.00458cdc
lea edx, [ebp - 0xc]
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x764]
call fcn.00458cac
mov edx, dword [ebp - 0xc]
mov eax, dword [ebx + 0x330]
call fcn.00458cdc
lea edx, [ebp - 0x10]
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x774]
call fcn.00458cac
mov edx, dword [ebp - 0x10]
mov eax, dword [ebx + 0x334]
call fcn.00458cdc
lea eax, [ebp - 0x14]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x79c]
mov ecx, 3
mov edx, 1
call fcn.006fb3a0
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x338]
call fcn.00458cdc
lea edx, [ebp - 0x1c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x748]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.0040b254
mov edx, dword [ebp - 0x18]
lea eax, [ebx + 0x350]
call fcn.00404cd0
cmp dword [ebx + 0x350], 0
jne 0x812761
mov edx, dword [ebx + 0x354]
mov eax, dword [ebx + 0x348]
call fcn.00458cdc
jmp 0x812772
mov edx, dword [ebx + 0x350]
mov eax, dword [ebx + 0x348]
call fcn.00458cdc
lea eax, [ebp - 0x24]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x79c]
mov ecx, 3
mov edx, 1
call fcn.006fb3a0
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x20]
call fcn.0040b254
cmp dword [ebp - 0x20], 0
je 0x8127b3
mov eax, dword [ebx + 0x320]
mov dl, 1
call fcn.00458bcc
jmp 0x8127c0
mov eax, dword [ebx + 0x320]
xor edx, edx
call fcn.00458bcc
lea eax, [ebp - 0x28]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x79c]
mov ecx, 1
mov edx, 1
call fcn.006fb3a0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x33c]
call fcn.00458cdc
lea eax, [ebp - 0x30]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0x79c]
mov ecx, 1
mov edx, 1
call fcn.006fb3a0
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x2c]
call fcn.0040b254
cmp dword [ebp - 0x2c], 0
je 0x812830
mov eax, dword [ebx + 0x324]
mov dl, 1
call fcn.00458bcc
jmp 0x81283d
mov eax, dword [ebx + 0x324]
xor edx, edx
call fcn.00458bcc
mov eax, dword [esi]
mov edi, dword [eax + 0x7d8]
cmp dword [edi + 0xeb2], 3
jne 0x81286c
mov eax, dword [edi + 0xe44]
xor edx, edx
call fcn.00405738
je 0x81286c
mov eax, dword [edi + 0xe44]
call fcn.008b4aa0
test al, al
jne 0x81288f
mov eax, dword [ebx + 0x348]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebx + 0x30c]
mov edx, dword [eax + 0x30]
mov eax, dword [ebx + 0x348]
call fcn.00458cdc
jmp 0x81289c
mov eax, dword [ebx + 0x348]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [esi]
mov edi, dword [eax + 0x7d8]
cmp dword [edi + 0xe94], 0
jl 0x812935
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0xe94]
inc eax
sub eax, dword [edi + 0xbc8]
cmp eax, dword [edi + 0xbd0]
jg 0x812935
push dword [ebx + 0x34c]
push 0x81299c
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0xe94]
inc eax
sub eax, dword [edi + 0xbc8]
lea edx, [ebp - 0x38]
call fcn.0040b818
push dword [ebp - 0x38]
push 0x8129a8
lea edx, [ebp - 0x3c]
mov eax, dword [esi]
mov eax, dword [eax + 0x7d8]
mov eax, dword [eax + 0xbd0]
call fcn.0040b818
push dword [ebp - 0x3c]
push 0x8129b4
lea eax, [ebp - 0x34]
mov edx, 6
call fcn.00405004
mov edx, dword [ebp - 0x34]
mov eax, ebx
call fcn.00458cdc
jmp 0x812942
mov edx, dword [ebx + 0x34c]
mov eax, ebx
call fcn.00458cdc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x812956
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x81298d
lea eax, [ebp - 0x3c]
mov edx, 0xb
call fcn.00404ca0
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404ca0
lea eax, [ebp - 4]
call fcn.004053b0
ret