Function at 0x1011b085
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10154309
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x101fe1c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x14], edx
mov ebx, dword [ebp + 0xc]
xor cl, cl
mov byte [ebp - 0xd], cl
mov byte [ebp - 0xe], cl
test ebx, ebx
jne 0x1011b0c9
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0xf], cl
jmp 0x1011b0d4
mov eax, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
mov al, byte [ebx]
mov byte [ebp - 0xf], al
mov edi, dword [edx + 0x10]
lea eax, [edx + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov ebx, eax
mov dword [ebp - 0x24], eax
cmp byte [ebp - 0xe], 0
mov ecx, edi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x28], edi
jne 0x1011b104
cmp byte [ebp - 0xd], 0
jne 0x1011b104
lea eax, [edx + 0x24]
mov dword [ebp - 0x20], eax
jmp 0x1011b120
lea esi, [edx + 0x24]
mov ecx, esi
mov dword [ebp - 0x20], esi
call fcn.100c63b2
mov esi, dword [ebp + 8]
xor cl, cl
mov byte [ebp - 0xd], cl
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0xe], 0
mov edx, edi
cmp esi, 0xffffffff
jne 0x1011b14b
mov eax, edi
and edi, 0xf0000000
and eax, 0x3fff
shl eax, 0xe
sub edx, eax
and edx, 0xfffc000
or edx, edi
or edx, 0x40000000
mov edi, edx
jmp 0x1011b15c
mov eax, esi
shl eax, 0xe
sub edx, eax
xor edx, edi
and edx, 0xfffc000
xor edi, edx
mov eax, edi
and eax, 0x7fffffff
cmp byte [ebp - 0xf], 0
cmove eax, edi
xor dl, dl
mov byte [ebp - 0x10], dl
mov esi, eax
test eax, 0xfffc000
jne 0x1011b1a6
test eax, 0x20000000
je 0x1011b197
mov ecx, dword [ebp - 0x20]
sub esp, 8
mov byte [ebp - 0xe], 1
and esi, 0xdfffffff
call fcn.100c6143
mov ecx, dword [ebp - 0x18]
test dword [ebp - 0x28], 0xfffc000
setne dl
mov byte [ebp - 0x10], dl
jmp 0x1011b1c4
test ebx, ebx
je 0x1011b1c4
mov ecx, dword [ebp - 0x20]
sub esp, 8
mov esi, eax
mov byte [ebp - 0xd], 1
or esi, 0x20000000
call fcn.100c6143
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x2c]
mov edx, esi
mov eax, ecx
lock cmpxchg dword [edi], edx
mov edx, dword [ebp - 0x14]
mov edi, eax
cmp edi, ecx
jne 0x1011b0e5
mov al, byte [ebp - 0x10]
mov ebx, dword [ebp + 0xc]
test al, al
je 0x1011b20f
test byte [edx + 0x20], 4
je 0x1011b20f
cmp dword [edx + 0x4c], 0
je 0x1011b20f
lea edi, [ebx + 1]
test ebx, ebx
je 0x1011b1fe
cmp byte [edi], 0
je 0x1011b214
mov ecx, dword [edx + 0x4c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
jmp 0x1011b212
lea edi, [ebx + 1]
xor al, al
test ebx, ebx
je 0x1011b230
and esi, 0xfffc000
mov byte [edi], al
neg esi
mov dword [ebx + 8], ecx
sbb esi, esi
and esi, 0x102
mov dword [ebx + 0xc], esi
mov al, byte [ebp - 0xd]
mov esi, dword [ebp - 0x24]
test al, al
jne 0x1011b260
test esi, esi
je 0x1011b260
mov ecx, esi
call fcn.1011af8b
push esi
mov dword [ebp - 4], 0
call fcn.1003bf94
mov edx, dword [ebp - 0x14]
add esp, 4
mov al, byte [ebp - 0xd]
xor esi, esi
mov dword [ebp - 0x1c], esi
mov ah, byte [ebp - 0xe]
test ah, ah
jne 0x1011b26b
test al, al
je 0x1011b2c8
lea ecx, [edx + 0x24]
test ah, ah
je 0x1011b29c
mov edi, dword [edx + 0x44]
mov dword [edx + 0x44], 0
call fcn.100c63b2
test edi, edi
je 0x1011b2c8
mov esi, dword [edi]
mov ecx, edi
mov dword [edi], 0
call fcn.1011c101
mov edi, esi
test esi, esi
jne 0x1011b285
jmp 0x1011b2c8
mov dword [esi + 0x18], 2
mov eax, dword [edx + 0x44]
mov dword [esi], eax
mov dword [edx + 0x44], esi
call fcn.100c63b2
mov ecx, esi
call fcn.1011c3c9
lea ecx, [ebp - 0x1c]
mov esi, eax
call fcn.1011ad4b
test ebx, ebx
je 0x1011b2c8
mov dword [ebx + 0xc], 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