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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp byte [0x1019e00e], 0
push ebx
push esi
mov ebx, ecx
push edi
mov dword [ebp - 8], ebx
jne 0x10085a6b
mov edi, dword [0x1019e03c]
cmp dword [0x1035f804], edi
je 0x10085a6b
mov eax, dword [0x10326984]
test eax, eax
je 0x10085a33
lea ebx, [eax + 1]
jmp 0x10085a35
xor ebx, ebx
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [ebp - 4]
push eax
push 0x40
push 4
push ebx
add edi, 3
mov dword [ebp - 4], 0
call esi
lea eax, [ebp - 4]
mov dword [ebx], edi
push eax
push dword [ebp - 4]
push 4
push ebx
call esi
mov eax, dword [0x1019e03c]
mov ebx, dword [ebp - 8]
mov dword [0x1035f804], eax
mov eax, dword [0x10325f2c]
test eax, eax
je 0x10085a7f
mov al, byte [eax + 0x20]
test al, al
jne 0x10085c79
mov eax, dword [0x103260e4]
test al, 1
jne 0x10085a9e
mov ecx, dword [0x103260c0]
or eax, 1
mov dword [0x103260e4], eax
mov dword [0x103260e0], ecx
jmp 0x10085aa4
mov ecx, dword [0x103260e0]
mov eax, dword [0x1019e080]
test byte [ecx + eax], 0x40
jne 0x10085c79
mov eax, dword [0x1035f9fc]
cmp byte [eax + 0x2c], 0
je 0x10085ac8
cmp byte [eax + 0x2d], 0
jne 0x10085bfd
mov ecx, dword [0x1035fa00]
call fcn.1007f170
test al, al
jne 0x10085bfd
mov eax, dword [0x1035f9fc]
cmp byte [eax + 0x18], 0
jne 0x10085af6
cmp byte [eax + 0x19], 0
je 0x10085af6
cmp dword [eax + 0x1c], 0
jle 0x10085bfd
cmp byte [0x103170fc], 0
je 0x10085bfd
mov ecx, ebx
call fcn.100856c0
mov ecx, dword [0x1035c764]
mov edi, eax
movzx esi, byte [0x103170c8]
mov eax, dword [0x10326bf4]
test cl, 1
jne 0x10085b36
or ecx, 1
mov edx, eax
mov dword [0x1035c764], ecx
mov dword [0x1035c760], edx
jmp 0x10085b3c
mov edx, dword [0x1035c760]
test cl, 1
jne 0x10085b52
or ecx, 1
mov edx, eax
mov dword [0x1035c764], ecx
mov dword [0x1035c760], edx
mov eax, dword [0x1019e080]
movss xmm0, dword [edx + eax]
movss xmm1, dword [edx + eax + 4]
mov eax, dword [0x10317104]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [0x10172564]
comiss xmm0, xmm1
seta cl
test al, 1
je 0x10085b89
test cl, cl
jne 0x10085bb8
test al, 2
je 0x10085ba5
test cl, cl
jne 0x10085ba5
mov ecx, dword [0x1035f9e4]
call fcn.100a3250
test al, al
jne 0x10085bb8
mov eax, dword [0x10317104]
test al, 4
je 0x10085bba
mov ecx, dword [0x1035f9e4]
call fcn.100a3250
test al, al
jne 0x10085bba
mov esi, edi
mov ecx, dword [0x1035f9e4]
call fcn.100a3250
test al, al
jne 0x10085c06
cmp byte [0x103170fd], al
je 0x10085c06
mov eax, dword [0x10325eb4]
lea ecx, [edi + 1]
mov ebx, dword [eax + 0x1c]
mov eax, dword [0x1035f800]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x10085bf9
mov esi, 1
mov dword [0x1035f800], ebx
jmp 0x10085c06
mov esi, edi
jmp 0x10085c06
mov ecx, ebx
call fcn.100856c0
mov esi, eax
mov ecx, dword [0x1035f9fc]
cmp byte [ecx + 0x2c], 0
je 0x10085c21
cmp byte [ecx + 0x2d], 0
je 0x10085c21
mov al, byte [0x1019e014]
mov bl, 1
jmp 0x10085c34
mov ecx, dword [0x1035f9e4]
xor bl, bl
call fcn.100a2ed0
mov ecx, dword [0x1035f9fc]
cmp byte [ecx + 0x18], 0
jne 0x10085c79
test esi, esi
je 0x10085c79
test bl, bl
jne 0x10085c55
test al, al
je 0x10085c55
mov ecx, dword [0x1035fa00]
call fcn.1007f170
test al, al
je 0x10085c79
mov eax, dword [0x1019e090]
mov byte [eax], 0
mov eax, dword [0x10325f0c]
cmp dword [eax + 0x4d30], esi
jl 0x10085c86
mov eax, dword [0x1019e090]
pop edi
pop esi
pop ebx
mov byte [eax], 1
mov esp, ebp
pop ebp
ret
mov eax, dword [0x1019e090]
cmp byte [eax], 0
jne 0x10085c86
mov byte [eax], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret