Function at 0x4df4f7
Capabilities:
Check os version

Disassembly:
mov eax, dword [ebp + 0x10]
je 0x4cf1d2
jne 0x4b662e
cpuid
inc ebp
ret
mov edi, dword [eax]
mov word [ecx + edi*4], 0xfffc
mov edi, dword [eax]
mov word [ecx + edi*4 + 2], dx
jmp 0x4b11c1
invalid
mov eax, 0x890f4cc2
shl byte [esi - 0x6a250001], 0xff
invalid
ficom dword [ebp - 0x922d901]
js 0x4aee0a
shl ch, 0x20
jns 0x4bbfb4
and al, 0xf
mov dword [eax + 0x2e], edx
invalid
jns 0x4aee0a
invalid
pop esi
pop ebp
ret
je 0x4c8f19
shl ch, 0x20
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax]
mov ebx, dword [esi + 8]
mov ax, word [eax]
lea esi, [esi + 0xc]
and word [ebp + ebx], ax
jb 0x4c3675
jmp dword [esi]
jno 0x4c8f55
shr di, 0x40
xchg bh, ah
xchg ah, bh
xchg cx, di
xchg di, cx
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax]
mov ebx, dword [esi + 8]
mov eax, dword [eax]
mov dl, dl
lea esi, [esi + 0xc]
cmp ah, ah
and dword [ebp + ebx], eax
jb 0x4b11a9
jmp dword [esi]
imul edi, dword [ecx + 0x4b899b68], 0x1b05c300
sbb eax, 0x48004b39
add byte [eax], al
add bl, dh
fisttp word [edx]
wait
mov dword [ebx], ecx
ret
add eax, 0x4b391d1b
add byte [eax], cl
add byte [eax], al
fisttp word [edx]
cmp dword [eax], eax
add byte [eax], al
cmp al, 0
add byte [eax], al
fisttp word [edx]
cmp al, 0
add byte [eax], al
cmp dword [eax], eax
add byte [eax], al
feni8087_nop
dec esp
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [eax], 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
or byte [eax], al
add byte [eax], al
pop eax
popal
add byte [eax], al
add byte [eax], al
and dword [eax], eax
add byte [eax], cl
add byte [eax], al
add byte [eax + 0x61], bl
dec ebp
add byte [0x44004b39], bl
add byte [eax], al
add byte [esp + edi*2 + 0x4b], dh
add byte [edi], dl
push cs
mov ecx, 0x20004b
add byte [eax], al
xor byte [eax], al
add byte [eax], al
les edi, [ebp + 0x4b]
add byte [ecx + 0x1e], ch
dec esp
add dl, cl
mov cl, 0x4c
add byte [eax - 0x4bffb371], dl
scasb al, byte es:[edi]
retf 0x4cb1
xchg si, di
xchg di, si
jmp 0x4cc1bd
push ebp
mov ebp, esp
push esi
shr al, 0x40
mov ebp, ebp
mov esi, dword [ebp + 8]
push edi
test byte [esi + 0x1c], 2
jb 0x4bbf98
je 0x4cc254
jne 0x4cc1e0
pop ebx
mov ax, word [esi + 0x42]
mov ax, word [esi + 0x42]
test ax, ax
jb 0x4bbfa1
jne 0x4d902d
je 0x4cc1f8
invalid
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
call fcn.004d8ff1
xor al, 0x4d
jmp 0x4cc206
push eax
mov dx, dx
call fcn.004d1acf
mov ecx, dword [esi]
push 0
jmp 0x4cc215
push ecx
mov edi, eax
ja 0x4e3ef5
jbe 0x4cc224
fistp qword [ecx - 0x3479f0ae]
jl 0x4cc22a
jbe 0x4e3ef5
add bh, bh
dec edi
popal
shl ebp, 0x20
jmp 0x4cfa75
jmp dword [esi]
pop edi
jmp 0x4c4b04
cmp bl, byte [esi + 0x5ff6e9]
shr ebx, 0x40
je 0x4ae96c
shl dh, 0x20
jne 0x4cc884
mov ch, 0x96
add byte [eax - 0x1b], ch
neg byte [edi]
push 0x5ff6e5
inc esi
call fcn.004b5f7b
ja 0x4dd501
jbe 0x4cc89a
cwde
jo 0x4cc89a
jbe 0x4dd501
xor eax, 0x4b7dc611
add byte [edx + ecx*8 + 0x4c], cl
add byte [edx + 0x39004b08], cl
add byte [eax], al
add byte [ecx], bh
add byte [eax], al
add dl, cl
mov cl, 0x4c
add dl, al
enter 0x4c, 0xf
mov byte [0xe0dbc390], al
dec esp
add byte [eax], al
popal
add byte [eax + 0x38], 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
xor byte [eax], al
add byte [eax], al
pop eax
popal
dec ebp
add byte [esi], ah
sti
dec esp
add byte [eax], dh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
shr esi, cl
dec esp
add bh, bh
inc dword [eax]
add byte [eax], dh
add byte [eax], al
add byte [esp + ecx*4], al
dec ebx
add ch, bl
mov cl, 0x4c
add byte [ecx + edi*4 + 0x4b], ah
add byte [0x34000000], cl
add byte [eax], al
add bl, dl
out dx, al
dec esp
add bh, bh
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
add al, 0x8c
dec ebx
add byte [edi], bh
sbb cl, byte [ebx]
and byte [edx + 0x4d], al
add byte [ebx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [eax - 0x5effb525], dh
das
add byte [eax], al
xor al, 0
add byte [eax], al
std
invalid
test byte [esi + 0x42], 1
jb 0x4e5c48
je 0x4a8862
jne 0x4cf1e7
sub dword [0x66810f80], eax
jno 0x4b6d53
jnp 0x4cf1ea
push dword [eax + 4]
jo 0x4cf1f3
jnp 0x4cf224
push 0x7b
jo 0x4b6d53
fmul dword [edx]
jnp 0x4cf191
dec edx
add byte [eax], dh
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [esp + ecx*4], al
dec ebx
add byte [esi - 0x39ffb39f], ch
jge 0x4cf25d
add byte [eax - 0x35ffb30e], ah
mov cl, 0x4c
add byte [edx], ah
dec esp
add byte [esi + 0x53], cl
mov byte [esi], ah
sti
dec esp
add byte [eax + eax], dh
add byte [eax], al
xor al, 0
add byte [eax], al
xchg ebp, eax
jmp 0x4cf27d
add bh, bh
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
add al, 0x8c
dec ebx
add bl, al
popal
dec esp
add bl, bl
loopne 0x4cf2bd
add byte [eax], al
inc eax
add byte [eax], al
xor al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
push ss
add byte [eax], al
add byte [eax + 0x61], bl
dec ebp
add byte [0x44004b39], bl
add byte [eax], al
add byte [esp + edi*2 + 0x4b], dh
add dh, dl
and dword [ecx], esi
movsd dword es:[edi], dword [esi]
dec ebx
add byte [edi], cl
daa
add byte [eax], al
xor byte [eax], al
add byte [eax], al
sbb eax, 0x48004b39
add byte [eax], al
add bl, bl
loopne 0x4cf303
add byte [eax], al
inc eax
add byte [eax], al
xor byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
cmp byte [eax], 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
popal
add byte [eax + 0x38], al
add byte [ecx], ah
add byte [eax], al
push ss
add byte [eax], al
add byte [eax + 0x61], bl
dec ebp
add byte [ebx + 0xc004c2f], ah
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [0x44004b39], bl
add byte [eax], al
add byte [esp + edi*2 + 0x4b], dh
add byte [ebx - 0x61], dl
jge 0x4cf351
pop dword [ebp + 0x44]
lea esi, [esp + 0x6c]
lea edi, [esp + 4]
mov ecx, 8
or ecx, ecx
je 0x4cf326
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
dec ecx
jne 0x4cf31d
mov dword [ebp + 0x40], esp
mov dword [esp], 0x4cf33b
mov esi, 0x4cf359
jmp dword [esi]
and al, 0x8d
and al, 0x14
mov dword [esp], ecx
ret
mov al, al
call fcn.004ab3dc
fcom dword [esi]
mov si, si
mov byte [esi + 0xbb], 0
mov word [esi + 0xbc], dx
jne 0x4dd4ef
push eax
pop eax
je 0x4cfa9c
iretd
je 0x4dd4ef
xor eax, 0x24448f6d
cld
mov byte [esi + 0xbb], al
shr si, 0x40
shl dx, 0x20
push esi
jmp 0x4b8c9f
mov eax, 0x81
call fcn.004e3218
xor al, 0x10
inc eax
add ebx, 0xc
cmp eax, ecx
mov dx, dx
jb 0x4ab8bd
jae 0x4d4985
mov dword [ecx + ebp*8 + 9], edx
xchg esi, eax
outsb dx, byte [esi]
mov dword [ebp - 8], 1
jmp 0x4d4993
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jb 0x4c8f16
je 0x4aef18
jne 0x4d7a56
cpuid
inc esi
ret
test ax, ax
jb 0x4c8f1e
push edi
pop edi
je 0x4d7a79
jne 0x4d7a6b
sub dword [edi], edi
xchg di, bx
xchg bx, di
mov cx, word [ebp - 0x14]
mov word [ebp - 0xc], cx
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp + 8]
cmp eax, 0x10000
jle 0x4d7a95
jg 0x4d7a90
nop
cpuid
ret
mov eax, 0xffff
lea edx, [ebp - 0x20]
push esi
push edx
jmp 0x4d7a9c
push eax
push 0x4bc795
ret
mov ecx, dword [ebp + 0xc]
mov edx, 0x8000
test al, 8
jb 0x4b6676
jne 0x4b661f
je 0x4d9049
cpuid
add bl, al
je 0x4b661f
mov esi, dword [esi + 4]
mov esi, dword [ebp + esi]
mov esi, dword [esi]
jmp dword [esi]
pop esp
sbb al, 0xf
sub dword [ebx + 0x70fffd06], 0xfc55302
push ebx
lds ecx, [edi]
and byte [ecx - 0x7f0002fa], 0xe9
add dh, byte [eax]
retf 0x820f
test eax, eax
jb 0x4af9c4
je 0x4db7c0
jne 0x4db7ad
or dword [ecx + 0x35948bc6], esi
insb byte es:[edi], dx
invalid
mov edx, dword [ebp + esi - 0x94]
push edx
call fcn.004cecbe
add esp, 4
add esi, 4
cmp esi, 0x1c
jle 0x4dd54b
jg 0x4db7d8
pop edx
ret 0x93cd
mov eax, dword [edi]
push 0x18
push eax
call fcn.004c7625
sub esi, 0
add esp, 8
ja 0x4b170f
jbe 0x4db7fb
imul ebx, ecx, 0xffffffe2
jbe 0x4b170f
add eax, 0xff8966f1
push edx
push eax
call fcn.004d50db
add esp, 0x10
mov cl, cl
mov dword [ebp - 8], 0
test edi, edi
jb 0x4daf30
je 0x4db899
jne 0x4db831
pop esp
das
mov dword [0x851b8bf0], eax
fisttp dword [edi]
cmp bh, 0xf6
invalid
mov ebx, dword [ebx]
test ebx, ebx
jb 0x4daf3a
je 0x4db88e
jne 0x4db845
les cx, [ebx - 0x770fb3]
mov ecx, dword [ebp - 0x10]
mov bh, bh
lea eax, [ecx + edi]
cmp eax, ebx
ja 0x4db88e
mov al, al
jbe 0x4db85b
sub dword [0x4589168b], esp
invalid
mov edx, dword [esi]
mov dword [ebp - 0x10], eax
push eax
pop eax
push edx
call fcn.004d7416
add eax, edi
shr bx, 0x40
push eax
mov eax, dword [esi]
jmp 0x4db873
push eax
call fcn.004d50db
add esp, 0xc
mov dword [ebp - 0x18], 1
jmp 0x4db899
xchg edi, edx
xchg edx, edi
mov dword [ebp - 8], 0x1d
mov eax, dword [ebp - 0x34]
and eax, 1
jb 0x4c8ec5
clc
test ax, ax
jb 0x4c8ee7
jne 0x4d7a71
je 0x4db8bb
pop edi
enter 0xffffffffffff850f, 0x7e
sar edi, 0xff
jne 0x4d7a3f
je 0x4db8c7
nop
cpuid
ret
je 0x4d7a3f
fidivr dword [esi - 0x77bf173f]
sahf
mov edx, 0x66000000
shr edi, 0x40
ja 0x4df4e3
jbe 0x4dd4fb
add al, 0x67
retf 0x50c6
retf 0x50c6
jbe 0x4df4e3
add esp, 4
add dx, 0
cmp esi, eax
jl 0x4cc86d
jge 0x4dd519
jno 0x4dd4f6
lea esp, [esi - 0x77]
shr cl, cl
cmp eax, 0x82fffd14
inc ebp
shl cx, 0x20
inc eax
shr di, 0x40
mov di, di
mov ecx, dword [edi]
push eax
xchg bl, ch
xchg ch, bl
push ecx
call fcn.004e51f8
add esp, 8
xor esi, esi
jb 0x4af9b2
mov dx, dx
jmp 0x4ae95e
mov eax, dword [ebp + esi - 0x5c]
js 0x4db799
xchg di, cx
xchg cx, di
jns 0x4dd561
nop
cpuid
ret 0x890f
jns 0x4db799
fcom dword [eax]
mov dword [ebp + 0x40], esp
mov esi, dword [esi]
jmp dword [esi]
mov ah, ah
jmp 0x4d4963
xchg esi, eax
scasb al, byte es:[edi]
std
inc edi
cmpsb byte [esi], byte es:[edi]
js 0x4b4de4
jns 0x4df4ef
call 0xff811b6
mov edi, ebp
pop eax
std
push dword [eax + ebx]
jns 0x4b4de4
xor al, 0x18
pop dword [esp - 4]
xchg di, cx
xchg cx, di
lea ebx, [ebx]
jne 0x4de5b4
je 0x4df50e
dec ebp
rcr dword [edi], 0xc0
out 0x20, al
shl dh, 0x20
xchg ah, dh
xchg dh, ah
ja 0x4bbb88
jbe 0x4df521
mov al, byte [0xf004afe]
xchg byte [ecx - 0x3a], ah
std
push dword [0x4adff3eb]
jbe 0x4bbb88
xor eax, 0x4adff3eb
add byte [0x38000000], bh
add byte [eax], al
add bl, dh
fisttp word [edx]
cmp byte [eax], al
add byte [eax], al
cmp eax, 0x1d000000
cmp dword [ebx], ecx
inc esp
add byte [eax], al
add byte [esp + edi*2 + 0x4b], dh
add byte [esi], dh
jp 0x4df4dd
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 0x4df583
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
dec ecx
jne 0x4df57a
mov dword [ebp + 0x40], esp
mov dword [esp], 0x4df598
mov esi, 0x4df5b6
jmp dword [esi]
call fcn.004b71d3
mov edx, dword [esi]
shl ebx, 0x20
push 0
push edx
call fcn.004e0a03
mov eax, dword [esi]
push 0x103
push eax
shl ecx, 0x20
call fcn.004c6acf
mov ecx, dword [esi]
push 0
mov ch, ch
push ecx
call fcn.004cf2f2
mov edx, dword [esi]
push 0
push edx
call fcn.004e51f8
mov eax, dword [esi]
jmp 0x4e3f31
push eax
shr bp, 0x40
call fcn.004bdbaf
mov di, di
mov ecx, dword [esi]
push edi
push ecx
call fcn.004c6acf
add esp, 0x38
pop edi
shr ch, 0x40
shl ch, 0x20
pop esi
push 0x4dcd7c
ret
invalid