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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
mov eax, dword [0x1010d024]
xor eax, esp
mov dword [esp + 0xc], eax
cmp byte [0x1012df73], 0
push esi
push edi
je 0x1008811c
movzx eax, byte [0x1012d738]
xor ecx, ecx
cmp byte [0x1012d739], cl
mov byte [0x1012d69e], 0
cmove eax, ecx
mov byte [0x1012d6dd], 0
cmp byte [0x1012d755], cl
mov byte [0x1012d738], al
movzx eax, byte [0x1012d754]
cmove eax, ecx
mov byte [0x1012d710], 0
cmp byte [0x1012c485], cl
mov byte [0x1012d754], al
movzx eax, byte [0x1012c484]
cmove eax, ecx
mov byte [0x1012d71e], 0
cmp byte [0x1012d7ed], cl
mov byte [0x1012c484], al
movzx eax, byte [0x1012d7ec]
cmove eax, ecx
cmp byte [0x1012d7d9], cl
mov byte [0x1012d7ec], al
movzx eax, byte [0x1012d7d8]
cmove eax, ecx
cmp byte [0x1012d77d], cl
mov byte [0x1012d7d8], al
movzx eax, byte [0x1012d77c]
cmove eax, ecx
cmp byte [0x1012d7f5], cl
mov byte [0x1012d77c], al
movzx eax, byte [0x1012d7f4]
cmove eax, ecx
cmp byte [0x1012c425], cl
mov byte [0x1012d7f4], al
movzx eax, byte [0x1012c424]
cmove eax, ecx
mov byte [0x1012c424], al
cmp byte [0x1012d605], cl
jne 0x1008832d
mov byte [0x1012d604], cl
pop edi
pop esi
mov ecx, dword [esp + 0xc]
xor ecx, esp
call fcn.100bceb5
mov esp, ebp
pop ebp
ret
cmp byte [0x1012d7f8], 0
je 0x10088207
mov ecx, 0x1012d800
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10088131
sub ecx, edx
je 0x10088207
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1010e744]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10186a34]
cmp eax, dword [ecx + 4]
jle 0x100881b5
push 0x10186a34
call fcn.100bd4a7
add esp, 4
cmp dword [0x10186a34], 0xffffffff
jne 0x100881b5
mov eax, dword [0x1010eb94]
test eax, eax
je 0x10088191
movsd xmm0, qword [eax + 0x2af98]
cvtpd2ps xmm0, xmm0
movss dword [0x10186a38], xmm0
jmp 0x1008819b
mov dword [0x10186a38], 0
push 0x100d0030
call fcn.100bd1c8
add esp, 4
push 0x10186a34
call fcn.100bd45d
add esp, 4
mov eax, dword [0x1010eb94]
test eax, eax
je 0x10088207
movsd xmm0, qword [eax + 0x2af98]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [0x10186a38]
call fcn.100361a0
comiss xmm0, dword [0x1012d7fc]
jb 0x10088207
push 0x1012d800
call dword [0x1010ee00]
mov eax, dword [0x1010eb94]
add esp, 4
movsd xmm0, qword [eax + 0x2af98]
cvtpd2ps xmm0, xmm0
movss dword [0x10186a38], xmm0
mov ecx, 0x1010d52c
call fcn.10080a20
cmp byte [0x1012d16c], 0
je 0x10088273
cmp byte [0x1017df20], 0
jne 0x100882c6
mov edi, dword [0x1010f364]
lea eax, [esp + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push eax
push 0x40
push 2
push edi
mov dword [esp + 0x1c], 0
call esi
push 0
push dword [esp + 0x10]
mov eax, 0x1beb
push 2
push edi
mov word [edi], ax
call esi
push 2
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov byte [0x1017df20], 1
jmp 0x100882c6
cmp byte [0x1017df20], 0
je 0x100882c6
mov edi, dword [0x1010f364]
lea eax, [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push eax
push 0x40
push 2
push edi
mov dword [esp + 0x20], 0
call esi
push 0
push dword [esp + 0x14]
mov eax, 0xf883
push 2
push edi
mov word [edi], ax
call esi
push 2
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov byte [0x1017df20], 0
cmp byte [0x1012d908], 0
je 0x1008830b
mov eax, dword [0x1010eed0]
push str.cl_righthand
call eax
movss xmm0, dword [eax + 0xc]
add esp, 4
ucomiss xmm0, dword [0x100f8e18]
lea ecx, [eax + 0xc]
lahf
test ah, 0x44
jnp 0x100882f8
xorps xmm0, xmm0
jmp 0x10088300
movss xmm0, dword [0x100f8ef4]
movss dword [ecx], xmm0
mov byte [0x1012d908], 0
cmp byte [0x1012d7a9], 0
je 0x1008832d
mov ecx, dword [0x1010f074]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
jne 0x1008832d
sub esp, 8
call fcn.10088430
mov ecx, dword [esp + 0x14]
pop edi
pop esi
xor ecx, esp
call fcn.100bceb5
mov esp, ebp
pop ebp
ret