Function at 0x13159724
Capabilities:
Check for software breakpoints
Get os information via kuser_shared_data

Disassembly:
mov eax, 0x1315c3f4
cld
cmp byte [eax], 0
je 0x13159735
mov edx, 0x1315da34
ret
cmp byte [eax + 1], 0
je 0x13159742
cmp byte [eax], 0
je 0x1315973b
jmp 0x1315972f
inc byte [eax + 1]
push ebx
push esi
push edi
push eax
mov edx, ds
mov ecx, dword fs:[0x30]
test dl, 4
mov esi, 0x13159944
mov edi, 0x1315da34
jne 0x131597d4
mov edx, 0x7ffe026c
mov ah, byte [edx]
cmp ah, 4
mov al, byte [edx + 4]
jb 0x13159775
cmp ah, 5
jbe 0x13159779
mov ax, 0x333
shl eax, 0x10
mov ax, pe_nt_image_headers32
stosd dword es:[edi], eax
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0x1c]
mov ebx, dword [eax + 8]
mov eax, 0x131599c9
call esi
stosd dword es:[edi], eax
mov eax, 0x131599df
call esi
test eax, eax
stosd dword es:[edi], eax
je 0x131597a3
mov eax, 0x13159aa1
stosd dword es:[edi], eax
mov eax, 0x131599f7
call esi
test eax, eax
stosd dword es:[edi], eax
je 0x131597b5
mov eax, 0x13159b6d
stosd dword es:[edi], eax
mov eax, 0x13159a0b
call esi
test eax, eax
stosd dword es:[edi], eax
je 0x131597c7
mov eax, 0x13159cb0
stosd dword es:[edi], eax
mov eax, 0x13145b88
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jmp 0x13159918
mov ax, 0x840a
mov ebx, 0xbff70000
cmp dl, 0x60
jae 0x131597e4
mov al, 3
mov edx, 0x5058454b
cmp dword [ebx + 0x1000], edx
jne 0x131597fa
cmp dword [ecx], 5
jne 0x1315980c
mov al, bl
jmp 0x1315980c
mov al, 0x5a
sub ebx, 0x10000
cmp dword [ebx + 0x1000], edx
je 0x1315980c
sub ebx, ebx
shl eax, 0x10
mov ax, pe_nt_image_headers32
push ecx
stosd dword es:[edi], eax
call sub.kernel32.dll_GetCurrentProcessId
pop ecx
xor eax, ecx
stosd dword es:[edi], eax
test ebx, ebx
jne 0x1315982f
push 0xb
pop ecx
mov eax, ebx
rep stosd dword es:[edi], eax
jmp 0x13159918
mov eax, 0x13159a5e
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, 0x13159b28
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, fcn.13159c1e
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebp
mov eax, 0x13159a18
call esi
mov dword [edi + 8], eax
cmp eax, ebx
lea ebp, [ebx + 0x30000]
jb 0x1315986e
cmp eax, ebp
jae 0x1315986e
sub eax, 0xf1
push 0x5f
pop ecx
call fcn.13159923
test ecx, ecx
jne 0x131598d4
mov eax, 0x13159a2a
call esi
cmp eax, ebx
jb 0x131598aa
cmp eax, ebp
jae 0x131598aa
push 0x48
pop ecx
add eax, 0x55
cmp dword [eax], ecx
je 0x13159895
add eax, 0xe
cmp dword [eax], ecx
je 0x13159895
add eax, 0x58
cmp dword [eax], ecx
jne 0x131598aa
add eax, 0x19
mov cl, byte [eax - 5]
cmp cl, 0xe8
je 0x131598a5
cmp cl, 0xcc
jne 0x131598aa
add eax, dword [eax - 4]
jmp 0x131598d4
lea eax, [ebx + 0x24f00]
mov ecx, 0x2800
call fcn.13159923
test ecx, ecx
jne 0x131598d4
lea eax, [ebx + 0x2bd00]
mov ecx, 0x1000
call fcn.13159923
test ecx, ecx
jne 0x131598d4
sub eax, eax
pop ebp
test eax, eax
stosd dword es:[edi], eax
je 0x131598df
mov eax, 0x13159d0a
stosd dword es:[edi], eax
scasd eax, dword es:[edi]
push 0x47
pop eax
call esi
mov dword [edi - 0x24], eax
mov eax, dword [edx + 0x68]
add eax, ebx
mov dword [edi - 0x1c], eax
mov eax, dword [edx + 0x6c]
add eax, ebx
mov dword [edi - 0x14], eax
mov eax, dword [edx + 0x58]
add eax, ebx
push ecx
push esp
call eax
pop eax
stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x1008]
add ecx, 0x30
cmp byte [edi - 0x2e], bl
jne 0x13159915
sub ecx, 8
mov eax, dword [ecx]
stosd dword es:[edi], eax
pop eax
pop edi
pop esi
pop ebx
inc byte [eax]
jmp 0x1315972f