Function at 0x440870
Capabilities:
Get os information via kuser_shared_data

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov dword [esp + 4], 0x78a13529
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
xor esi, esi
inc esi
mov ebx, 0xffffff2f
mov eax, dword [esp + 4]
cmp eax, 0xedfbd3ce
jg 0x4408f3
cmp eax, 0xb2a1aad1
jg 0x440943
cmp eax, 0xa5ae260e
jg 0x4409f4
cmp eax, 0x96f251b9
jg 0x440adb
cmp eax, 0x81fa49ba
je 0x440cca
cmp eax, 0x8b71f59c
jne 0x44088f
mov eax, dword [esp + 8]
shl eax, 0xf
add eax, 0xffa500ba
shr eax, 0xd
add eax, 0xa0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x22eb69f6
mov edi, dword [esp + 0x2c]
jmp 0x44088f
cmp eax, 0x3e41e8cc
jg 0x44098e
cmp eax, 0x1f5e02cc
jg 0x440a1a
cmp eax, 0x12ec38b1
jg 0x440b17
cmp eax, 0xedfbd3cf
je 0x440dd6
cmp eax, 0x1249dc0b
jne 0x44088f
cmp dword [0x7ffe0264], 2
sete byte [esp + 3]
mov dword [esp + 4], 0xc275a18f
jmp 0x44088f
cmp eax, 0xc37141f2
jg 0x440a40
cmp eax, 0xbbaf56ef
jg 0x440b32
cmp eax, 0xb2a1aad2
je case.0x440c0b.1
cmp eax, 0xb8b656b8
jne 0x44088f
mov eax, dword [0x7ffe026c]
mov dword [esp + 0x10], eax
mov eax, dword [0x7ffe0270]
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xaeaab18d
jmp 0x44088f
cmp eax, 0x626988b7
jle 0x440a9a
cmp eax, 0x6a667c0e
jg 0x440b55
cmp eax, 0x626988b8
je 0x440bfc
cmp eax, 0x6753933f
jne 0x44088f
mov ecx, dword [esp + 8]
add ecx, ebx
imul eax, ecx, 0xad52
imul ecx, ecx
imul edx, ecx, 0x13bb
dec edx
add eax, 0xf6
mov dword [esp + 8], eax
mov eax, 0x1249dc0b
cmp edx, ecx
je 0x4409e7
mov eax, 0x22eb69f6
mov dword [esp + 4], eax
mov edi, dword [esp + 0x28]
jmp 0x44088f
cmp eax, 0xaeaab18c
jg 0x440b78
cmp eax, 0xa5ae260f
je case.0x440c0b.3
cmp eax, 0xaa3358b0
je 0x440ca1
jmp 0x44088f
cmp eax, 0x327a55ac
jg 0x440b93
cmp eax, 0x1f5e02cd
je 0x440de3
cmp eax, 0x22eb69f6
je case.default.0x440c0b
jmp 0x44088f
cmp eax, 0xd462280f
jg 0x440bbe
cmp eax, 0xc37141f3
je 0x440d03
cmp eax, 0xd2d87be9
jne 0x44088f
mov eax, dword [esp + 8]
imul ecx, eax, 0xa7
imul ecx, ecx
imul edx, ecx, 0x25cd
dec edx
imul eax, eax, 0x63cf00
mov dword [esp + 8], eax
mov eax, 0x81fa49ba
cmp ecx, edx
je 0x440a8d
mov eax, 0x22eb69f6
mov dword [esp + 4], eax
mov edi, dword [esp + 0x24]
jmp 0x44088f
cmp eax, 0x4131dced
jle 0x440cb0
cmp eax, 0x4131dcee
je 0x440e0a
cmp eax, 0x4d070cd3
jne 0x44088f
imul eax, dword [esp + 8], 0x27000
or eax, 0x12
mov dword [esp + 8], eax
mov dword [esp + 4], 0x22eb69f6
mov edi, dword [esp + 0x20]
jmp 0x44088f
cmp eax, 0x96f251ba
je 0x440d2b
cmp eax, 0x9978191a
jne 0x44088f
mov eax, dword [esp + 0x10]
cmp eax, 5
je 0x440c76
cmp eax, 6
je 0x440bfc
xor edi, edi
cmp eax, 0xa
je 0x440ba9
jmp case.default.0x440c0b
cmp eax, 0x12ec38b2
je 0x440e20
cmp eax, 0x1e35e006
je case.0x440c0b.2
jmp 0x44088f
cmp eax, 0xbbaf56f0
je 0x440d54
cmp eax, 0xc275a18f
jne 0x44088f
mov dword [esp + 4], 0x9978191a
jmp 0x44088f
cmp eax, 0x6a667c0f
je case.0x440c0b.0
cmp eax, 0x78a13529
jne 0x44088f
mov dword [esp + 4], 0xb8b656b8
jmp 0x44088f
cmp eax, 0xaeaab18d
je 0x440d7f
cmp eax, 0xb1bedde3
je 0x440c8c
jmp 0x44088f
cmp eax, 0x327a55ad
je 0x440c76
cmp eax, 0x3de22966
jne 0x44088f
movzx edi, byte [esp + 3]
add edi, 0xd
mov dword [esp + 4], 0x22eb69f6
jmp 0x44088f
cmp eax, 0xd4622810
je 0x440d95
cmp eax, 0xecb12a5f
jne 0x44088f
and ebp, 0xfffffff8
shl ebp, 9
mov eax, ebp
shl eax, 7
sub eax, ebp
mov ebp, eax
add ebp, 0xffffbc12
mov eax, 0x1e35e006
cmp ebp, 0x28
jl 0x440dc8
jmp 0x440dcd
xor edi, edi
mov eax, dword [esp + 0xc]
cmp eax, 3
ja case.default.0x440c0b
jmp dword [eax*4 + 0x468e14]
movzx eax, byte [esp + 3]
add eax, 5
mov dword [esp + 0x2c], eax
mov dword [esp + 4], 0x8b71f59c
jmp 0x44088f
movzx eax, byte [esp + 3]
add eax, 7
mov dword [esp + 0x28], eax
mov dword [esp + 4], 0x6753933f
jmp 0x44088f
movzx eax, byte [esp + 3]
add eax, 9
mov dword [esp + 0x24], eax
mov dword [esp + 4], 0xd2d87be9
jmp 0x44088f
movzx eax, byte [esp + 3]
add eax, 0xb
mov dword [esp + 0x20], eax
mov dword [esp + 4], 0x4d070cd3
jmp 0x44088f
mov eax, dword [esp + 0xc]
test eax, eax
je 0x440ca1
cmp eax, 1
je 0x440e4b
cmp eax, 2
jne 0x440cbb
movzx edi, byte [esp + 3]
add edi, 3
mov dword [esp + 4], 0x22eb69f6
jmp 0x44088f
mov dword [esp + 4], 0x22eb69f6
mov edi, esi
jmp 0x44088f
cmp eax, 0x4034fc6c
jne 0x440e61
mov dword [esp + 4], 0x22eb69f6
xor edi, edi
jmp 0x44088f
imul ebp, ebp, 0xcf
add ebp, 0xffffdfb5
push ebp
call fcn.00440870
add esp, 4
push ebp
call fcn.00440870
add esp, 4
mov eax, 0xc37141f3
cmp ebp, 0xa0
jl 0x440dcd
mov eax, 0x96f251ba
jmp 0x440dcd
shr ebp, 9
add ebp, 0x15c
push ebp
call fcn.00440870
add esp, 4
push ebp
call fcn.00440870
add esp, 4
mov dword [esp + 4], 0x1e35e006
jmp 0x44088f
imul ebp, ebp, 0x75
add ebp, 0xffffff7e
shr ebp, 0xa
add ebp, 0xfffffed6
mov eax, 0xbbaf56f0
cmp ebp, 0x3e80
jb 0x440d4f
mov eax, 0x1249dc0b
shr ebp, 7
jmp 0x440dcd
imul ebp, ebp, 0x74000000
add ebp, 0x915dc000
push ebp
call fcn.00440870
add esp, 4
push ebp
call fcn.00440870
add esp, 4
mov dword [esp + 4], 0xaeaab18d
jmp 0x44088f
mov eax, dword [0x7ffe0260]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], 0x1249dc0b
jmp 0x44088f
imul eax, ebp, 0x1e40
add eax, 0xe97e
shr eax, 0xa
imul ebp, eax, 0x68
add ebp, 0xffffff64
push ebp
call fcn.00440870
add esp, 4
push ebp
call fcn.00440870
add esp, 4
mov eax, 0x6a667c0f
cmp ebp, 0x23
jae 0x440dcd
mov eax, 0xaeaab18d
mov dword [esp + 4], eax
jmp 0x44088f
mov dword [esp + 4], 0x4131dcee
jmp 0x44088f
mov eax, ebp
shr eax, 7
mov ecx, 0x12ec38b2
cmp ebp, 0x9a00
jb 0x440dfa
mov ecx, 0x6a667c0f
add eax, 0xffffff4d
mov dword [esp + 4], ecx
mov ebp, eax
jmp 0x44088f
movzx eax, byte [esp + 3]
mov dword [esp + 0x30], eax
mov dword [esp + 4], 0x3e41e8cd
jmp 0x44088f
imul ebp, ebp, 0x1f80
add ebp, 0x76250
push ebp
call fcn.00440870
add esp, 4
push ebp
call fcn.00440870
add esp, 4
mov dword [esp + 4], 0xd4622810
jmp 0x44088f
mov edi, 2
mov dword [esp + 0x34], edi
mov dword [esp + 4], 0xedfbd3cf
jmp 0x44088f
cmp eax, 0x3e41e8cd
jne 0x44088f
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x34]
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret