Function at 0x4bb687
Capabilities:
Check os version

Disassembly:
push esi
push ebp
pop ebp
mov byte [esi + 0xba], bl
push ebp
pop ebp
mov byte [esi + 0xbb], al
shr dx, 0x40
mov word [esi + 0xbc], di
jne 0x4baa81
je 0x483849
mov ebp, 0x32840f50
jb 0x483851
je 0x4baa81
add byte [0x4468b62], al
add eax, 0x4468b62
mov eax, dword [esi + 4]
pop esi
lea esp, [esp + eax]
mov dword [ebp + 0x40], esp
jmp dword [esi]
cmp word [ebx], 0
jne 0x4b0b1c
xchg esi, ebx
xchg ebx, esi
je 0x487a62
xchg ebx, eax
xchg ebx, eax
clc
test dword [eax - 1], ebp
or cl, byte [ebx]
push 0x4b0aff
ret
jg 0x487e8c
push esi
pop esi
xchg al, dl
xchg dl, al
ja 0x48db6e
jbe 0x487e1f
jbe 0x48db6e
jne 0x4a18de
je 0x487e98
push cs
xchg ebp, eax
or dword ds:[edi], ecx
test byte [eax - 0x66], al
add dword [eax], eax
je 0x4a18de
fidivr dword [edx - 0x7f]
les ecx, [eax]
add byte [eax], al
add byte [edi + 0x5e], bl
pop ebx
jne 0x4a512a
je 0x487eb4
aam 0x97
mov bh, 0xf
test byte [eax - 0x2e], dh
add dword [eax], eax
je 0x4a512a
xor al, 0x9d
mov edi, dword [ebp + 0x10]
xchg edi, esi
xchg esi, edi
jmp 0x4899db
push edi
call fcn.004c0a2e
add esp, 4
test ax, ax
jb 0x4a7c78
jne 0x4ad8c5
jno 0x48f0ee
jo 0x48a13c
or ecx, dword [ebx - 0x7ff09d2f]
lodsb al, byte [esi]
dec edi
add byte [eax], al
jo 0x48f0ee
add eax, 0x74820f61
mov eax, 0x473ffff
and ebp, esp
cmp al, 0x61
jb 0x48a170
mov edx, edx
jae 0x48a160
adc esi, dword [ecx + 0x3e]
cmc
stc
cmp al, 0x66
ja 0x48a170
jbe 0x48a16e
salc
add eax, 0xfe0042d
xchg ecx, edi
out 0, al
add byte [esi + 3], dh
add al, 0xe0
ja 0x49886f
jbe 0x48a17b
insb byte es:[edi], dx
fild dword [esi + 0xf]
xchg dh, ch
out 0, al
add cl, bl
outsd dx, dword [esi]
jmp 0x4a83ec
jbe 0x49886f
fldcw word [edi - 0x17]
loop 0x48a188
add byte [ebx], dh
xor al, 0x63
push 0x4935e1
ret
push esi
mov ah, ah
shl ch, 0x20
lea ecx, [ecx]
call fcn.00488c9d
mov al, byte [ebp + 0xb]
shl cx, 0x20
jno 0x483823
jo 0x490f91
cpuid
nop
ret
jo 0x483823
fmul st(5)
arpl word [eax + 0xff004a], si
add byte [eax], al
xor al, 0
add byte [eax], al
xchg esp, eax
dec ebp
dec ecx
add byte [edi - 0x79], al
dec eax
add byte [ebx - 0x5e], ch
dec edx
add byte [eax], al
inc edx
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [ecx], ah
add byte [eax], al
push edx
add byte [eax], al
add byte [esp + esi*4 - 0x552ffb8], al
dec eax
add byte [eax + eax], al
add byte [esi + edi], al
dec ecx
add byte [0x497af49a], bl
add byte [eax], ah
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
sbb cl, dl
dec eax
add byte [eax + eax], bh
add byte [eax], al
cmp al, 0
add byte [eax], al
shl dword [esi + 0x49], 0
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [edi + edi + 0x49], dl
add byte [ebx + 0xb], bl
dec ecx
add byte [edx + 0x73], bl
dec edx
add byte [edi], dl
adc byte [ecx], cl
cpuid
nop
ret
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax]
add esi, 8
shl eax, cl
add edi, eax
jmp 0x4bbc65
xor eax, 0x3d668cb
dec esp
add bl, al
xor eax, 0x24448fc7
cld
mov dword [ebp + 0x4c], edi
jmp dword [esi]
mov eax, dword [ebp - 8]
test eax, eax
jb 0x4a5dc5
je 0x4b7886
shl bp, 0x20
jne 0x4970f5
mov esi, 0xfb151b1
xchg dword [ebx + 0x76000085], edi
add ch, byte [ebx + esi*8 + 0xf]
xchg byte [ecx + 0x5000085], dh
inc ecx
ja 0x49f6b6
jbe 0x4970ff
insb byte es:[edi], dx
jbe 0x49f6b6
jbe 0x49f6b6
add eax, 0x1b85e41
add byte [eax], al
add byte [ebx + 0x5d], bl
pop esi
mov eax, 1
pop ebx
pop ebp
ret
jne 0x4a29f1
je 0x497d22
pop eax
pop ebx
je 0x4a29f1
add eax, 0xcc48162
add byte [eax], al
add byte [ecx], dh
ror byte [edi], 0x82
jmp 0x67497c89
mov edx, dword [ebp + 0x20]
jmp 0x497e83
cmp al, 0x46
call fcn.004a38fe
mov dword [eax + 0x40e9c05e], 0x18b866
mov si, si
pop ebx
call fcn.004b2120
xor eax, 0x24648d77
lea esp, [esp + 4]
mov eax, dword [ebp + 0xc]
cmp eax, 0x9c40244c
je 0x4899d3
jne 0x4988a1
aam 0x9b
mov ecx, dword [ebp + 0x24]
ja 0x497e7f
jbe 0x4988b0
mov ax, word [ebp + eax]
mov ax, ax
mov eax, eax
lea esi, [esi + 0xc]
adc word [ebp + ebx], ax
jmp dword [esi]
popfd
xchg esi, eax
xchg esi, eax
jmp dword [esi - 4]
cmp edx, edx
add esi, 4
test cx, 0xe2a1
or ecx, ecx
jno 0x4aa7e0
mov al, bh
jno 0x4aa25c
xor eax, 0x24648d54
add al, 0x81
loope 0x4aa7ee
invalid
inc dword [eax]
add byte [edi], cl
sub bh, 7
invalid
fld dword [edx + 0x66]
or edi, edi
xor eax, ecx
jb 0x489ed6
clc
push edx
sub dx, 0x973f
pop edx
xor eax, 0x8436
jb 0x487e0d
mov dh, dh
js 0x48a130
jns 0x4af736
pop ebx
mov ebp, 0xa9f4890f
std
jmp dword [0x4468bad]
jns 0x48a130
and eax, 0x4468bad
shr dh, 0x40
mov ebx, dword [esi + 8]
ja 0x4a0cc6
jbe 0x4af752
insb byte es:[edi], dx
mov bh, 0xcf
jbe 0x4a0cc6
fsqrt
mov eax, 0x81
call fcn.004bf3a8
xor al, 0x10
inc eax
add ebx, 0xc
cmp eax, ecx
mov dx, dx
jb 0x487a4d
jae 0x4b0b15
mov dword [ecx + ebp*8 + 9], edx
xchg esi, eax
outsb dx, byte [esi]
jmp 0x4b0b23
mov dword [ebp - 8], 1
shr bx, 0x40
lea edx, [ebp - 4]
push esi
push edx
push 0
lea eax, [ebp - 0x2c]
push 6
mov cl, cl
lea ecx, [ebp - 0x130]
shl edi, 0x20
push eax
push ecx
call fcn.004b73fd
mov ch, ch
mov edi, eax
add esp, 0x18
test di, di
jb 0x49c585
je 0x4970da
jne 0x4b0b67
fstp dword [edx]
and al, 0xe3
mov edx, dword [ebp + 8]
push edx
call fcn.004aae4e
mov eax, dword [esi]
jmp 0x4b0b74
push edi
jne 0x4970bf
je 0x4b0b81
stosb byte es:[edi], al
cmp dword [ebx + 0xf], ecx
test byte [eax], bh
invalid
je 0x4970bf
xor eax, 0x48faadfa
add byte [eax + eax], al
add byte [eax + 0x40004b03], dh
add byte [eax], al
add byte [eax + eax], cl
add byte [esi + edi], al
dec ecx
add byte [eax + 0x4bfd8ed3], ch
add byte [ebx + 0x25004ab3], cl
jg 0x4b0bad
jmp dword [esi - 4]
cld
pop gs
push ecx
pop ecx
shr ax, 0x40
clc
test ecx, 0x100
jb 0x4af70a
jne 0x492086
je 0x4b0bcf
invalid
and dx, dx
test ecx, 0x200
jb 0x495553
jne 0x4bbc9b
shr edx, 0x40
je 0x4b0beb
mov cl, 0xd6
shr si, 0x40
mov eax, dword [esi + 4]
movzx eax, word [ebp + eax]
add esi, 8
mov bp, bp
shl eax, cl
add edi, eax
push 0x49205c
ret
mov ah, ah
jmp 0x4b0af3
xchg esi, eax
scasb al, byte es:[edi]
std
inc edi
cmpsb byte [esi], byte es:[edi]
js 0x490f74
jns 0x4bb67f
call 0xff5d346
mov edi, ebp
pop eax
std
push dword [eax + ebx]
jns 0x490f74
xor al, 0x18
pop dword [esp - 4]
xchg di, cx
xchg cx, di
lea ebx, [ebx]
jne 0x4ba744
je 0x4bb69e
dec ebp
rcr dword [edi], 0xc0
out 0x20, al
shl dh, 0x20
xchg ah, dh
xchg dh, ah
ja 0x497d18
jbe 0x4bb6b1
mov al, byte [0xf004afe]
xchg byte [ecx - 0x3a], ah
std
push dword [0x48a183eb]
jbe 0x497d18
xor eax, 0x48a183eb
add byte [0x38000000], bh
add byte [eax], al
add byte [ebx + 0x380048a1], al
add byte [eax], al
add byte [0xad000000], bh
cli
dec eax
add byte [eax + eax], al
add byte [esi + edi], al
dec ecx
add byte [esi], dh
jp 0x4bb66d
invalid
and al, 0x9c
push ebp
lea ebp, [esp + 8]
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x4c], edi
pop dword [ebp + 0x44]
lea esi, [esp + 0x68]
lea edi, [esp + 4]
mov ecx, 4
or ecx, ecx
je 0x4bb713
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
dec ecx
jne 0x4bb70a
mov dword [ebp + 0x40], esp
mov dword [esp], 0x4bb728
mov esi, 0x4bb746
jmp dword [esi]
mov eax, dword [esi + 4]
movzx eax, byte [ebp + eax]
add esi, 8
shl eax, cl
add edi, eax
test ecx, 0x80000000
jb 0x4c03e7
jne 0x4a8445
push ecx
pop ecx
je 0x4bbcc6
lodsd eax, dword [esi]
mov dword [0x20e3c02d], eax
shl bl, 0x20
ja 0x4aa7cd
jbe 0x4bbcd4
jbe 0x4aa7cd
ficom dword [ebx + 0x6b]
mov byte [0x6100004a], al
add byte [eax + 0x34], al
add byte [ecx], ah
add byte [eax], al
mov esp, 0
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
call 0x6b4c0823
mov byte [0x4100004a], al
add byte [eax + 0x30], al
add byte [ecx], al
add byte [eax], al
popfd
add byte [eax], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
inc ecx
add byte [eax], al
dec eax
add byte [eax], al
add byte [edi], bh
pop edi
dec ecx
add byte [ebx], bh
sbb cl, byte [ebx]
dec eax
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [ebp + ecx*2 - 0x579ffb7], dl
dec ebx
add byte [ebp + 0x480048fa], ch
add byte [eax], al
add byte [ebx - 0x5e], ch
dec edx
add byte [eax], al
inc ecx
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], ah
xor byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [esi], al
add byte [eax], al
aas
pop edi
dec ecx
add byte [ebp + 0x440048fa], ch
add byte [eax], al
add byte [esi + edi], al
dec ecx
add byte [edx], bl
mov dh, 0xb9
xor ecx, dword [edx]
add al, byte [eax]
add byte [eax], al
xor byte [eax], al
add byte [eax], al
push esi
aas
dec ecx
add byte [edx - 0x11], al
dec ebx
add byte [edx + 0x73], bl
dec edx
add byte [edx + 0xf004bbd], dl
mov byte [0xad25c390], al
dec edx
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
cmp ebx, dword [edx]
dec ebx
add byte [eax], bh
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [ebp + ecx*2 - 0x565ffb7], dl
dec ebx
add byte [ebx - 0x5e], ch
dec edx
add byte [eax], al
popal
add byte [eax + 0x34], al
add byte [ecx], ah
add byte [eax], al
mov esp, 0
adc byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
call 0xec4c08f9
sub eax, 0x400049
add byte [eax], al
xor al, 0
add byte [eax], al
imul esp, dword [edx + 0x4100004a], 0
xor byte [eax], 0
add byte [eax], al
add byte [ecx], al
add byte [eax], al
jecxz 0x4bbdf4
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], cl
add byte [eax], al
aas
pop edi
dec ecx
add byte [ebx], bh
sbb cl, byte [ebx]
dec eax
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [ebp + ecx*2 - 0x3b29ffb7], dl
dec edx
add byte [ebp + 0x480048fa], ch
add byte [eax], al
add byte [ebx - 0x5e], ch
dec edx
add byte [eax], al
inc ecx
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], ah
xor byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [esi], al
add byte [eax], al
aas
pop edi
dec ecx
add bl, bl
in eax, 0x4b
add byte [eax], ch
out dx, eax
dec ebx
add byte [edx - 0x56], bl
dec ebx
add byte [eax - 0x42], bl
dec ebx
add byte [edi], al
cmp ebx, dword [edx - 0x56]
dec ebx
add byte [eax], ch
out dx, eax
dec ebx
add al, bl
pop ecx
pop ebp
ret
invalid
invalid