Function at 0x1000ffa0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10018bc0
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x10020008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x10023093], 0
je 0x10010312
mov ecx, str._dbg:raknet:free__:_module_releasing...
call fcn.10006bf0
mov al, byte [0x10023482]
test al, al
je 0x10010148
mov ecx, dword [0x10024444]
mov edx, dword [0x10024434]
mov ebx, dword [ecx]
test edx, edx
je 0x1001004c
mov byte [ebp - 0xd], 0x19
mov dword [ebp - 4], 0
mov esi, dword [0x10024458]
test esi, esi
je 0x1001002a
lea eax, [ebp - 0xd]
push eax
call esi
mov al, byte [0x10023482]
mov ecx, dword [0x10024444]
mov edx, dword [0x10024434]
mov dword [ebp - 4], 1
test al, al
je 0x10010045
mov eax, dword [0x10024454]
test eax, eax
je 0x10010045
push edx
lea edx, [ebp - 0xd]
push edx
call eax
mov dword [ebp - 4], 0xffffffff
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 0x1c]
push eax
push 0x40
lea esi, [ebx + 0x74]
mov dword [0x10024434], 0
push 4
push esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 4
mov byte [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call edi
mov ecx, dword [0x10024450]
test eax, eax
mov dword [esi], ecx
setne byte [ebp - 0x20]
test eax, eax
je 0x100100a0
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call edi
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], 4
push eax
push 0x40
lea esi, [ebx + 0x28]
mov byte [ebp - 0x20], 0
push 4
push esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x1c], 0
call edi
mov ecx, dword [0x10024440]
test eax, eax
mov dword [esi], ecx
setne byte [ebp - 0x20]
test eax, eax
je 0x100100e4
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call edi
mov dword [0x10024438], 0
mov dword [0x10024440], 0
mov dword [0x1002444c], 0
mov dword [0x10024448], 0
mov dword [0x10024454], 0
mov dword [0x10024458], 0
mov dword [0x10024450], 0
mov dword [0x10024430], 0
mov dword [0x1002443c], 0
mov dword [0x10024444], 0
mov eax, 0x10024460
mov byte [0x10023482], 0
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov ecx, 0x3e8
nop
cmp byte [eax], 0
je 0x1001019a
mov esi, dword [0x100258c4]
mov edi, dword [0x100258c8]
cmp esi, edi
je 0x1001019a
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x1001018b
movzx eax, bx
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx]
push edx
call dword [eax + 8]
add esi, 0x28
cmp esi, edi
jne 0x10010175
mov eax, dword [ebp - 0x14]
mov ecx, 0x3e8
mov byte [eax], 0
inc ebx
inc eax
mov dword [ebp - 0x14], eax
cmp bx, cx
jb 0x10010160
mov edi, dword [0x100258bc]
mov esi, dword [0x100258b8]
cmp esi, edi
je 0x100101df
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x100101d2
mov eax, dword [ecx]
cmp ecx, esi
mov edx, dword [eax + 0x10]
setne al
push eax
call edx
mov dword [esi + 0x24], 0
add esi, 0x28
cmp esi, edi
jne 0x100101b7
mov esi, dword [0x100258b8]
mov edi, dword [0x100258b0]
mov dword [0x100258bc], esi
mov esi, dword [0x100258ac]
cmp esi, edi
je 0x1001021d
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x10010210
mov eax, dword [ecx]
cmp ecx, esi
mov edx, dword [eax + 0x10]
setne al
push eax
call edx
mov dword [esi + 0x24], 0
add esi, 0x28
cmp esi, edi
jne 0x100101f5
mov esi, dword [0x100258ac]
mov edi, dword [0x100258c8]
mov dword [0x100258b0], esi
mov esi, dword [0x100258c4]
cmp esi, edi
je 0x10010255
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x1001024e
mov eax, dword [ecx]
cmp ecx, esi
mov edx, dword [eax + 0x10]
setne al
push eax
call edx
mov dword [esi + 0x24], 0
add esi, 0x28
cmp esi, edi
jne 0x10010233
mov esi, dword [0x10027830]
mov eax, dword [0x100258c4]
mov dword [0x100258c8], eax
mov dword [0x10027830], 0
test esi, esi
je 0x10010285
mov ecx, esi
call fcn.1000fbb0
push 0x24
push esi
call fcn.10016e20
add esp, 8
mov esi, dword [0x10027834]
mov dword [0x10027834], 0
test esi, esi
je 0x100102ab
mov ecx, esi
call fcn.1000fbb0
push 0x24
push esi
call fcn.10016e20
add esp, 8
mov ecx, str._dbg:raknet:free__:_module_released
call fcn.10007b10
push 0x10025840
mov dword [ebp - 4], 2
call dword [sym.imp.MSVCP140.dll__Mtx_lock]
add esp, 4
test eax, eax
je 0x100102d5
push eax
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
mov eax, dword [0x10024428]
test eax, eax
jne 0x100102fb
mov byte [ebp - 4], 3
push 0x10025840
call dword [sym.imp.MSVCP140.dll__Mtx_unlock]
add esp, 4
test eax, eax
je 0x1001030b
push eax
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_]
push str._dbg:raknet:free__:_module_released
call eax
add esp, 4
mov byte [ebp - 4], 4
jmp 0x100102e2
mov byte [0x10023093], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret