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

Disassembly:
mov eax, dword [0x101273c0]
sub esp, 0x10
push ebx
mov ebx, dword [eax]
push ebp
push esi
mov esi, dword [0x2967da0]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea ecx, [esp + 0x10]
push ecx
push 0x40
push 4
push 0x2967da0
sub esi, 0x14
sub ebx, 2
call edi
test eax, eax
je 0x100144ca
mov edx, 0x2967da0
lea eax, [esp + 0x18]
push eax
mov dword [edx], esi
mov ecx, dword [esp + 0x14]
push ecx
push 4
push edx
call edi
mov esi, dword [0x101273c0]
lea edx, [esp + 0x14]
push edx
push 0x40
push 4
push esi
mov ebp, esi
call edi
test eax, eax
je 0x100144f4
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push ecx
push 4
push esi
mov dword [ebp], ebx
call edi
cmp byte [0x10123863], 0
fld dword [0x1021da90]
fld dword [0x1021da94]
fld dword [0x1021da98]
je 0x100145cc
fld st(2)
fld qword [0x1010a198]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x1001454f
fstp st(0)
fstp st(1)
fstp st(0)
fadd qword [0x1010a190]
fstp dword [0x1021da90]
fld dword [0x1021da90]
fld dword [0x1021da94]
fld dword [0x1021da98]
jmp 0x1001461a
fld st(3)
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x100146e9
fld st(2)
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x1001458a
fstp st(0)
fstp st(0)
fadd qword [0x1010a190]
fstp dword [0x1021da94]
fld dword [0x1021da94]
fld dword [0x1021da98]
jmp 0x1001461a
fld st(2)
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x100146e9
fld st(1)
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x100145ba
fstp st(0)
fadd qword [0x1010a190]
fstp dword [0x1021da98]
fld dword [0x1021da98]
jmp 0x1001461a
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x1001461a
mov byte [0x10123863], 0
fldz
fld st(0)
fucomp st(4)
fnstsw ax
test ah, 0x44
jnp 0x100145f3
fstp st(0)
fxch st(2)
fsub qword [0x1010a190]
fstp dword [0x1021da90]
fld dword [0x1021da90]
fxch st(2)
jmp 0x1001461a
fld st(0)
fucomp st(3)
fnstsw ax
test ah, 0x44
jnp 0x100146bd
fstp st(0)
fxch st(1)
fsub qword [0x1010a190]
fstp dword [0x1021da94]
fld dword [0x1021da94]
fxch st(1)
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
fxch st(1)
mov dword [esp + 0x18], eax
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
movzx edx, byte [esp + 0x18]
movzx ecx, dl
fldcw word [esp + 0x10]
shl ecx, 8
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x18], eax
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
movzx edx, byte [esp + 0x18]
movzx eax, dl
fldcw word [esp + 0x10]
or ecx, eax
shl ecx, 8
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x18], eax
fldcw word [esp + 0x18]
fistp dword [esp + 0x18]
movzx edx, byte [esp + 0x18]
movzx eax, dl
fldcw word [esp + 0x10]
or ecx, eax
sub ecx, 0x1000000
push ecx
call dword [0x1017fd1c]
mov edi, dword [esp + 0x24]
mov ecx, 0x19
mov esi, str._SIZE_16_BOLD_1_OUT_1_Infinity_Patch
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x100146dd
fsub qword [0x1010a190]
fstp dword [0x1021da98]
fld dword [0x1021da98]
jmp 0x1001461a
mov byte [0x10123863], 1
jmp 0x1001461a
fstp st(0)
jmp 0x1001461a