Function at 0x1000fc1d
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov esi, esp
mov dword [esi + 0xc0], ebp
lea eax, [esi + 0xc8]
mov edx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x14]
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x100370c0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
mov dword [esi + 8], edi
mov dword [eax + 8], 1
mov dword [esi + 0xc], edx
mov byte [esi], 0
mov byte [esi + 1], 1
push dword [ebp + 0x10]
call fcn.1004276c
pop ecx
mov byte [esi], 0
mov byte [esi + 1], 1
lea ecx, [esi + 0x70]
push edx
push eax
push ecx
call fcn.100dbfb0
add esp, 0xc
lea ecx, [esi + 0x70]
mov byte [esi], 0
mov byte [esi + 1], 1
lea eax, [esi + 0x60]
push ecx
push eax
call fcn.100bf714
pop eax
pop ecx
mov eax, dword [ebp + 0xc]
movsd xmm0, qword [esi + 0x60]
movsd xmm1, qword [esi + 0x68]
mov byte [esi + 0x58], 2
mov byte [esi + 0x38], 0
mov edi, dword [eax]
mov cl, byte [eax + 8]
movsd qword [esi + 0x30], xmm1
movsd qword [esi + 0x28], xmm0
test edi, edi
mov byte [esi + 3], cl
je 0x1000fcd8
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
jmp 0x1000fd27
lea eax, [esi + 0x10]
mov dword [esi + 0xd0], 4
push eax
call fcn.100c33ac
pop eax
mov dword [esi + 0xd0], 5
push 0x18
pop ecx
push 4
pop edx
call fcn.1000dee4
movsd xmm0, qword [esi + 0x20]
mov edi, eax
mov dword [esi + 4], 0x1010e3dc
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esi + 0x10]
movsd xmm1, qword [esi + 0x18]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
lea eax, [esi + 0x38]
lea ebx, [esi + 0x80]
push 0x28
push eax
push ebx
call fcn.100f9c00
add esp, 0xc
movsd xmm0, qword [esi + 0x28]
movsd xmm1, qword [esi + 0x30]
mov al, byte [esi + 3]
mov dword [esi + 0xd0], 2
movsd qword [ebx - 0x10], xmm0
movsd qword [ebx - 8], xmm1
mov byte [ebx + 0x38], al
mov eax, dword [esi + 4]
mov dword [ebx + 0x28], edi
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp + 0x18]
mov dword [ebx + 0x34], eax
lea eax, [esi + 0x70]
push eax
call fcn.1004276c
pop ecx
push edx
push eax
call fcn.100dc190
pop ecx
pop edi
test eax, eax
je 0x1000fdab
push edx
push eax
lea eax, [esi + 0x38]
push eax
call fcn.100b6ffe
add esp, 0xc
cmp byte [esi + 0x38], 4
je 0x1000fdab
mov eax, dword [esi + 0x38]
cmp al, 4
jne 0x1000fe6b
mov cl, 1
xor eax, eax
lock cmpxchg byte [esi + 0x80], cl
je 0x1000fdd5
sub esp, 0x10
lea eax, [esi + 0x80]
mov dword [esp + 0xc], 0x3b9aca00
mov dword [esp], eax
call fcn.1010ae0c
add esp, 0x10
lea eax, [esi + 0x80]
mov dword [esi + 0xd0], 3
mov dword [esi + 0x10], eax
lea eax, [esi + 0x88]
push eax
lea eax, [esi + 0x70]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.100bf413
add esp, 0xc
cmp byte [esi + 0x38], 4
je 0x1000fe0c
mov eax, dword [esi + 0x38]
cmp al, 4
jne 0x1000fe48
lea ecx, [esi + 0x10]
mov dword [esi + 0xd0], 2
call fcn.10009986
push 0x50
lea eax, [esi + 0x70]
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.100f9c00
add esp, 0xc
mov ecx, dword [ebp + 0x10]
and dword [esi + 0xd0], 0
mov byte [esi + 2], 0
call fcn.10009d76
mov eax, dword [ebp + 8]
jmp 0x1000feab
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 0x3c]
mov dword [esi + 0xd0], 2
mov dword [edx + 4], ecx
lea ecx, [esi + 0x10]
mov dword [edx], eax
mov byte [edx + 0xc], 2
call fcn.10009986
jmp 0x1000fe7a
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov byte [edx + 0xc], 2
lea eax, [esi + 0x70]
mov byte [esi], 1
mov byte [esi + 1], 0
mov dword [esi + 0xd0], 1
push eax
call fcn.1000b5ba
pop eax
mov ecx, dword [ebp + 0x10]
and dword [esi + 0xd0], 0
mov byte [esi + 2], 0
call fcn.10009d76
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0xc8]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret