Function at 0x1007e910
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
cmp byte [0x1012eb82], 0
push ebx
push esi
mov ebx, ecx
jne case.default.0x1007eb48
movss xmm0, dword [0x1012d6f8]
comiss xmm0, dword [0x1012df7c]
ja case.default.0x1007eb48
cmp byte [0x1012d6dd], 0
je 0x1007eab1
cmp dword [ebx], 0
mov ecx, dword [0x1010f1bc]
mov dword [ebp - 4], ecx
jbe 0x1007e9f7
movss xmm0, dword [0x1012d6ec]
comiss xmm0, dword [0x1012df84]
jb 0x1007e9f7
movss xmm1, dword [0x1012d6e8]
movsd xmm0, qword [0x1010da70]
cvtps2pd xmm1, xmm1
ucomisd xmm0, xmm1
movsd qword [ebp - 0x10], xmm1
lahf
test ah, 0x44
jnp 0x1007e9f7
push 0x10128c20
push 0x40
push 8
push dword [0x1010f354]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
movsd xmm0, qword [ebp - 0x10]
mulsd xmm0, qword [0x100f90d0]
mov eax, dword [0x1010f354]
push 0x10128c20
movsd qword [eax], xmm0
push dword [0x10128c20]
mov esi, dword [0x1010f354]
push 8
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
push 8
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
movsd xmm0, qword [ebp - 0x10]
mov ecx, dword [ebp - 4]
movsd qword [0x1010da70], xmm0
cmp dword [0x1012d6fc], 0
jne 0x1007ea30
mov eax, dword [ebx]
test eax, eax
je 0x1007ea27
cmp eax, dword [ebx + 4]
jb 0x1007ea27
cmp byte [0x1012df74], 0
jne 0x1007ea27
mov al, byte [0x10133432]
shr al, 2
test al, 1
jne 0x1007ea27
or word [ecx + 0x1e], 4
jmp 0x1007ea30
mov eax, 0xfffb
and word [ecx + 0x1e], ax
cmp byte [0x1012d700], 0
je 0x1007ea50
mov eax, dword [ebx + 4]
inc eax
cmp byte [0x1012d6e4], 0
je 0x1007ea47
inc eax
cmp dword [ebx], eax
jne 0x1007ea50
or word [ecx + 0x1e], 2
cmp byte [0x1012d6e4], 0
je 0x1007eab1
movss xmm0, dword [0x1012df84]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1007ea6e
xorps xmm2, xmm2
jmp 0x1007ea76
movss xmm2, dword [0x100f917c]
movss xmm0, dword [0x1012df84]
comiss xmm0, xmm1
jbe 0x1007ea8d
movss xmm0, dword [0x100f9228]
jmp 0x1007ea95
movss xmm0, dword [0x100f91b8]
mov eax, dword [0x1010f068]
movss xmm1, dword [eax + 0x9c]
comiss xmm1, xmm2
jbe 0x1007eab1
comiss xmm0, xmm1
jbe 0x1007eab1
or word [ecx + 0x1e], 4
mov eax, dword [0x1010f068]
cmp dword [eax + 0xe0], 0xffffffff
je 0x1007eb9c
mov ecx, dword [0x10186a08]
inc ecx
mov dword [0x10186a08], ecx
cmp ecx, 0x32
jb 0x1007eae4
mov dword [0x10186a08], 0x32
mov ecx, 0x32
test ecx, ecx
je case.default.0x1007eb48
mov eax, dword [0x1010f1bc]
movzx eax, word [eax + 0x1e]
not eax
test al, 4
jne case.default.0x1007eb48
mov al, byte [0x10133432]
shr al, 2
test al, 1
jne case.default.0x1007eb48
cmp ecx, 5
ja case.default.0x1007eb48
inc dword [ebx + 0xc]
lea edx, [ebx + 0x10]
cmp dword [ebx + 0xc], 0x64
jbe 0x1007eb3d
mov dword [ebx + 0xc], 0
mov ecx, 0xc
mov eax, edx
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x1007eb32
mov eax, dword [0x10186a08]
dec eax
cmp eax, 4
ja case.default.0x1007eb48
jmp dword [eax*4 + 0x1007ebac]
inc dword [ebx + 0x1c]
inc dword [edx]
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc dword [ebx + 0x20]
inc dword [ebx + 0x14]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x24], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc dword [ebx + 0x24]
inc dword [ebx + 0x18]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x10186a08], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret