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

Disassembly:
push ecx
cmp byte [0x100a961c], 0
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push esi
push edi
je 0x1000961d
mov esi, dword [0x100a9608]
lea eax, [esp + 0xc]
mov edi, dword [0x100a95fc]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a960c
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a961c], 0
cmp byte [0x100a9568], 0
je 0x10009660
mov esi, dword [0x100a9554]
lea eax, [esp + 0xc]
mov edi, dword [0x100a9548]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a9558
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a9568], 0
cmp byte [0x100a958c], 0
je 0x100096a3
mov esi, dword [0x100a9578]
lea eax, [esp + 0xc]
mov edi, dword [0x100a956c]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a957c
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a958c], 0
cmp byte [0x100a9664], 0
je 0x100096e6
mov esi, dword [0x100a9650]
lea eax, [esp + 0xc]
mov edi, dword [0x100a9644]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a9654
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a9664], 0
cmp byte [0x100a9640], 0
je 0x10009729
mov esi, dword [0x100a962c]
lea eax, [esp + 0xc]
mov edi, dword [0x100a9620]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a9630
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a9640], 0
cmp byte [0x100a95f8], 0
je 0x1000976c
mov esi, dword [0x100a95e4]
lea eax, [esp + 0xc]
mov edi, dword [0x100a95d8]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a95e8
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a95f8], 0
cmp byte [0x100a95d4], 0
je 0x100097af
mov esi, dword [0x100a95c0]
lea eax, [esp + 0xc]
mov edi, dword [0x100a95b4]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a95c4
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a95d4], 0
cmp byte [0x100a95b0], 0
je 0x100097f2
mov esi, dword [0x100a959c]
lea eax, [esp + 0xc]
mov edi, dword [0x100a9590]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a95a0
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a95b0], 0
cmp byte [0x100a94fc], 0
je 0x10009835
mov esi, dword [0x100a94e8]
lea eax, [esp + 0xc]
mov edi, dword [0x100a94dc]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a94ec
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a94fc], 0
cmp byte [0x100a9544], 0
je 0x10009878
mov esi, dword [0x100a9530]
lea eax, [esp + 0xc]
mov edi, dword [0x100a9524]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a9534
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a9544], 0
call fcn.1000e9b0
call fcn.100094a0
mov ecx, dword [0x100a93d4]
test ecx, ecx
je 0x10009893
mov al, byte [0x100a78d6]
mov byte [ecx], al
mov ecx, dword [0x100a93d0]
test ecx, ecx
je 0x100098a4
mov al, byte [0x100a78d5]
mov byte [ecx], al
mov eax, dword [0x100a9038]
test eax, eax
je 0x100098c8
mov eax, dword [eax]
test eax, eax
je 0x100098c8
mov eax, dword [eax + 0x68]
test eax, eax
je 0x100098c8
mov eax, dword [eax + 0x54]
test eax, eax
je 0x100098c8
mov dword [eax + 0x28], 0x3f800000
cmp byte [0x100a96f8], 0
je 0x1000990b
mov esi, dword [0x100a96e4]
lea eax, [esp + 0xc]
mov edi, dword [0x100a96d8]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a96e8
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a96f8], 0
cmp byte [0x100a9688], 0
je 0x1000994e
mov esi, dword [0x100a9674]
lea eax, [esp + 0xc]
mov edi, dword [0x100a9668]
push eax
push 0x40
push esi
push edi
call ebx
push esi
push 0x100a9678
push edi
call fcn.1004cf20
add esp, 0xc
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push esi
push edi
call ebx
mov byte [0x100a9688], 0
call fcn.1000ebc0
call fcn.1000e180
mov eax, dword [0x100a90ec]
test eax, eax
je 0x10009995
cmp dword [0x100a90ac], 0
je 0x10009995
lea ecx, [esp + 0xc]
push ecx
push 0x40
push 5
push eax
call ebx
mov ecx, dword [0x100a90ec]
mov eax, dword [0x100a90ac]
mov byte [ecx], 0xe9
mov dword [ecx + 1], eax
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x10]
push 5
push ecx
call ebx
pop edi
pop esi
pop ebx
pop ecx
ret