Function at 0x10015d10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008ad81
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x100c3074]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [esi + 4], 0x100a5748
mov dword [esi], 0x100a5770
mov dword [esi + 4], 0x100a57c8
mov dword [esi + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], eax
mov dword [ebp + 8], 0
mov dword [ebp + 0xc], 0
mov byte [ebp - 4], 1
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov byte [ebp - 4], 2
xor eax, eax
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 7
mov word [esi + 0x18], ax
mov byte [ebp - 4], 3
mov dword [esi + 0x30], eax
lea eax, [esi + 0x38]
push eax
mov dword [esi + 0x34], 0x100a5cac
call dword [0x100931c4]
mov byte [ebp - 4], 4
lea ebx, [esi + 0x50]
mov dword [ebp - 0x18], ebx
lea edi, [ebx + 4]
push 0
mov dword [ebx], 0
mov dword [ebp - 0x14], edi
push 0
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.100048a0
mov dword [edi], eax
mov byte [ebp - 4], 7
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov byte [ebp - 4], 8
mov dword [ebx], 0x3f800000
mov eax, dword [ebx + 0x14]
sub eax, dword [ebx + 0xc]
sar eax, 2
cmp eax, 0x10
jae 0x10015e1d
push 0x10
lea ecx, [ebx + 0xc]
call fcn.10003810
mov eax, dword [ebx + 4]
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push 0x10
call fcn.10003680
mov dword [ebx + 0x18], 7
mov dword [ebx + 0x1c], 8
mov byte [ebp - 4], 0xa
lea eax, [esi + 0x7c]
mov byte [esi + 0x70], 0
mov dword [esi + 0x74], 0
push eax
mov dword [esi + 0x78], 0x100a5cac
call dword [0x100931c4]
mov byte [ebp - 4], 0xb
lea ebx, [esi + 0x94]
mov dword [ebp - 0x18], ebx
lea edi, [ebx + 4]
push 0
mov dword [ebx], 0
mov dword [ebp - 0x14], edi
push 0
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.1001a730
mov dword [edi], eax
mov byte [ebp - 4], 0xe
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov byte [ebp - 4], 0xf
mov dword [ebx], 0x3f800000
mov eax, dword [ebx + 0x14]
sub eax, dword [ebx + 0xc]
sar eax, 2
cmp eax, 0x10
jae 0x10015ecb
push 0x10
lea ecx, [ebx + 0xc]
call fcn.10003810
mov eax, dword [ebx + 4]
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push 0x10
call fcn.10003680
mov dword [ebx + 0x18], 7
mov dword [ebx + 0x1c], 8
mov byte [ebp - 4], 0x11
mov byte [esi + 0xb4], 0
mov dword [esi + 0xb8], 0
mov dword [esi + 0xbc], 0
mov byte [ebp - 4], 0x12
mov dword [esi + 0xc0], 0
mov dword [esi + 0xc4], 0
mov byte [ebp - 4], 0x13
mov dword [esi + 0xc8], 0
mov byte [ebp - 4], 0x14
lea eax, [esi + 0xcc]
mov dword [ebp - 0x18], eax
lea ebx, [eax + 4]
mov dword [ebp - 0x10], ebx
lea edi, [ebx + 4]
mov dword [eax], 0x100a57a4
push 0
mov dword [ebx], 0
mov dword [ebp - 0x14], edi
push 0
mov dword [edi], 0
mov dword [edi + 4], 0
call fcn.1001a7c0
mov dword [edi], eax
mov byte [ebp - 4], 0x17
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov byte [ebp - 4], 0x18
mov dword [ebx], 0x3f800000
mov eax, dword [ebx + 0x14]
sub eax, dword [ebx + 0xc]
sar eax, 2
cmp eax, 0x10
jae 0x10015faa
push 0x10
lea ecx, [ebx + 0xc]
call fcn.10003810
mov eax, dword [ebx + 4]
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push 0x10
call fcn.10003680
mov dword [ebx + 0x18], 7
mov dword [ebx + 0x1c], 8
mov byte [ebp - 4], 0x1a
lea eax, [esi + 0xf4]
push eax
mov dword [esi + 0xf0], 0x100a5cac
call dword [0x100931c4]
mov byte [ebp - 4], 0x1c
push 0x34
call fcn.1005687b
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x1d
mov ecx, eax
push esi
call fcn.100104b0
mov byte [ebp - 4], 0x1c
lea ecx, [esi + 0x10]
push eax
call fcn.10013f50
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x24]
mov edi, dword [0x10093028]
test eax, eax
je 0x10016037
push eax
call edi
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x24]
push eax
push 0x20019
push 0
push 0x100a4d8c
push 0x80000001
call dword [0x10093014]
test eax, eax
je 0x100160a5
lea eax, [ebp - 0x14]
mov dword [ebp - 0x10], 4
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 4
push eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], 0
push eax
push 0
push 0x100a1604
push dword [ebp - 0x24]
call dword [0x10093010]
test eax, eax
jne 0x1001609e
mov eax, dword [ebp - 0x10]
cmp eax, 4
je 0x10016098
cmp eax, 3
jne 0x1001609e
cmp dword [ebp - 0x14], 4
je 0x100160a5
mov byte [esi + 0xb4], 0
mov byte [ebp - 4], 0x1c
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x100160be
push eax
call dword [0x10093088]
mov dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x100160cf
push eax
call edi
mov dword [ebp - 0x24], 0
push 0xc
call fcn.1005687b
add esp, 4
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x1f
lea ecx, [esi + 4]
mov dword [eax], 0x100a753c
mov dword [eax + 4], ecx
mov dword [eax + 8], 0
mov byte [ebp - 4], 0x1c
mov ecx, dword [esi + 0xc8]
mov dword [esi + 0xc8], eax
test ecx, ecx
je 0x1001610e
mov eax, dword [ecx]
push 1
call dword [eax + 0x14]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x1001613d
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [edi + 4], eax
jne 0x1001613d
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], ebx
dec ebx
jne 0x1001613d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8