Function at 0x54882e
Capabilities:
Check os version

Disassembly:
mov edi, eax
test edi, edi
jb 0x5571f6
mov eax, eax
je 0x5634ab
jne 0x529ed3
nop
cpuid
ret
lea edx, [ebp - 0x10]
lea eax, [ebp - 4]
jne 0x563431
shl edx, 0x20
je 0x5614e2
jne 0x52a438
mov ebx, 0x8bc4aa65
dec ebp
or byte [ebp + 0x77820fc9], al
add byte [ecx], 0
mov ecx, dword [ebp + 8]
test ecx, ecx
jb 0x5426ba
jmp 0x5524f0
mov edi, 0x16
mov ecx, dword [esi]
push ecx
call fcn.0056595e
cmp dl, dl
and eax, 0xffff
jb 0x5429a8
add esp, 4
shl eax, 3
cmp edi, eax
jbe 0x52e16e
ja 0x52e13b
dec esi
idiv byte [ecx + ebp*4 + 0x5fa89]
add byte [eax], al
add byte [eax - 0x7df0f81e], al
test dword [eax + 1], ecx
add dh, dh
fisub dword [esi - 0x79]
mul dword [esi - 0x79]
invalid
mov edx, edi
add eax, 0
and dl, 7
jb 0x5429d0
neg dl
xchg di, si
xchg si, di
sbb edx, edx
neg edx
shr edi, 3
add edx, edi
xchg dh, bh
xchg bh, dh
shl di, 0x20
jmp 0x52e165
push edx
jmp 0x5545dd
push 0x56247d
ret
fmul dword [edi + ecx]
xchg dword [edi + ebx*4 - 0x17400000], edx
inc eax
sahf
pushfd
lea ecx, [ecx]
call fcn.0054d163
xor al, 0xcc
lea esp, [esp + 4]
mov ax, word [edi + 4]
shl di, 0x20
push ebx
mov word [ebp - 8], ax
shr ch, 0x40
mov cx, word [edi + 6]
mov edi, edi
lea edx, [ebp - 0x134]
xchg edi, ebp
xchg ebp, edi
push 0x11
push edx
mov word [ebp - 6], cx
call fcn.00547b8f
lea eax, [ebp - 0x134]
push 7
push eax
call fcn.00538293
lea ecx, [ebp - 0x34]
lea edx, [ebp - 0x134]
shl edi, 0x20
push ecx
ja 0x54376a
jbe 0x52fb97
jnp 0x52fb79
jbe 0x54376a
fnstenv [ebx]
jmp 0x530a0c
push ebp
mov ebp, esp
sub esp, 0x140
shl esi, 0x20
mov eax, dword [ebp + 0x18]
push ebx
shl dh, 0x20
jmp 0x530a22
push esi
shl edi, 0x20
mov esi, dword [ebp + 0x1c]
push edi
mov edi, dword [ebp + 0x14]
push esi
jne 0x545f62
pop esi
mov esp, ebp
pop ebp
ret
call fcn.005515d4
invalid
mov eax, dword [ebp - 0x10]
sub eax, 0
je 0x52e10a
jne 0x53388f
nop
cpuid
ret 0xf48
dec eax
je 0x537ada
jne 0x53389c
cpuid
aam 0xc3
call 0x5435b3
and eax, 0xd6ff574c
jmp 0x529ebb
cmp dword [ebp + ebx], eax
jmp dword [esi]
mov bl, bl
mov ebx, dword [esi + 8]
mov ax, word [eax]
mov cx, cx
lea esi, [esi + 0xc]
or word [ebp + ebx], ax
jb 0x55b690
xchg ebx, ecx
xchg ecx, ebx
jmp dword [esi]
call fcn.00573d40
add bl, 0x9a
sub bl, 0x9a
add esp, 0x14
mov ax, ax
shl si, 0x20
mov dword [ebp - 8], eax
test eax, eax
jb 0x5426a3
mov bx, bx
jne 0x52a429
je 0x536168
leave
test byte [ebp + 0x62], dl
je 0x52a429
fimul dword [0xffc4458d]
invalid
mov eax, dword [esi]
xor edx, edx
jb 0x52ed98
shr ch, 0x40
jmp 0x537ae8
push esi
push 0
shl dh, 0x20
mov ecx, dword [eax + 0x76]
mov dx, word [eax + 0x7c]
push ecx
mov ecx, dword [ebp + 8]
push edx
mov edx, dword [ebp - 4]
push 0x562889
ret
and eax, 0xb60f521d
adc eax, 0x52e4b3
pop edx
mov dl, byte [ebp + 0xb]
mov ebp, ebp
jmp 0x53950d
push esi
jno 0x556c4d
shr cx, 0x40
jo 0x53951d
xor dword [edi + ecx + 0x1d72a80], edx
add byte [0x40edc08f], al
jo 0x556c4d
add eax, 0x40edc08f
mov ebx, dword [ebp + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
mov eax, dword [ebp + eax]
jne 0x53cd4f
xchg dh, ch
xchg ch, dh
je 0x539545
lodsd eax, dword gs:[esi]
nop
int3
je 0x53cd4f
xor eax, 0x9a26ff79
inc edi
shl cx, 0x20
lea ecx, [ecx]
mov eax, dword [esi + 4]
lea esi, [esi + 8]
shl al, 0x20
shr edi, 0x40
seta byte [ebp + eax]
jmp dword [esi]
mov cl, byte [ebp + 0xc]
js 0x54109a
jns 0x53a734
clc
cpuid
ret
jns 0x54109a
push 0x5325ab
ret
lea esi, [esi + 0xc]
xor dword [ebx + edx], eax
jb 0x54cd5e
jmp dword [esi]
push ecx
push edx
call fcn.00560013
mov eax, dword [esi]
push eax
jno 0x545292
jo 0x53e1ff
pop eax
mov dh, 0x4e
jo 0x545292
fisubr dword [edi]
mov eax, dword [esi + 4]
push word [ebp + eax]
mov dl, dl
lea esi, [esi + 8]
mov dword [ebp + 0x40], esp
xchg bl, ch
xchg ch, bl
jmp dword [esi]
shr cx, 0x40
shl bx, 0x20
mov byte [esi + 0xbb], 0
jmp fcn.00529558
call 0x566ff2
fidivr dword [ecx - 1]
invalid
jno 0x564062
pop ebp
shr bp, 0x40
ret
push 0x55459f
ret
mov dx, word [ebp + 0x10]
push eax
push esi
shl bx, 0x20
mov byte [esi + 0xba], cl
js 0x549155
jns 0x5410b5
inc ebx
stosb byte es:[edi], al
in al, 0xf
mov dword [edx - 0x25ffff80], ebx
push es
jns 0x549155
fiadd dword [esi]
lea eax, [ebp - 8]
jno 0x5570d6
jo 0x54186d
cpuid
or ebx, eax
jo 0x5570d6
out 0xb, al
push ebp
add byte [eax], dh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
xchg ebx, eax
call dword [eax + eax - 1]
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
les ebx, [ebx + edx*2 + 0x553e5200]
add dh, ah
or edx, dword [ebp]
dec esp
add byte [eax], al
add byte [eax + eax], cl
add byte [ebx + 0x54f1], bl
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
dec esi
add byte [eax], al
add byte [eax], bl
jb 0x541917
add ch, bl
dec ecx
push ebx
add byte [eax + eax], al
add byte [ecx*4 + 0x2d000053], dh
int1
mov ch, 0x53
add byte [ecx], bl
add eax, dword [eax]
add byte [eax], dh
add byte [eax], al
add ch, bl
dec ecx
push ebx
add byte [eax], cl
add byte [eax], al
wait
int1
push esp
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 [ecx], ah
add byte [eax], al
dec esi
add byte [eax], al
add byte [eax], bl
jb 0x54195d
add byte [ebx + 0x40], ah
push esp
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
fisttp qword [ecx + 0x53]
push ebx
add byte [eax + eax], al
add byte [ecx*4 - 0x702fffad], dh
lea esp, [esp - 0x64]
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 0x541957
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
dec ecx
jne 0x54194e
mov dword [ebp + 0x40], esp
mov dword [esp], 0x54196c
mov esi, 0x54198a
jmp dword [esi]
add byte [eax], al
add byte [eax], al
insb byte es:[edi], dx
sbb dword [eax + eax - 0x42], edx
mov bl, byte [ecx]
push esp
add bh, bh
mov eax, dword es:[ebp + 0x30]
mov ebx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x48]
mov edi, dword [ebp + 0x4c]
mov ebp, dword [ebp + 0x44]
pop edx
lea esp, [esp + 0x60]
mov ecx, dword [esp]
lea esp, [esp + edx]
mov dword [esp], ecx
ret
add eax, 0x24648d7b
add al, 0x8b
pop ebp
inc esp
lea ebx, [ebx]
mov edx, dword [esi + 8]
mov ecx, ecx
push esi
pop esi
mov eax, dword [esi + 4]
lea esi, [esi + 0xc]
mov word [ebx + edx], ax
jne 0x550dc2
je 0x541a18
xor eax, 0xf3a4840f
add byte [eax], al
je 0x550dc2
xor eax, 0x54f19b49
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
sbb byte [edx + 0x55], dh
add byte [esi + 0x15], bh
push ebp
add byte [eax + eax], bh
add byte [eax], al
dec eax
add byte [eax], al
add byte [esi + 0x15], bh
push ebp
add byte [eax], cl
add byte [eax], al
cmp al, 0
add byte [eax], al
out 0xb, al
push ebp
add byte [eax], dh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
xchg ebx, eax
call dword [eax + eax - 1]
inc dword [eax]
add byte [eax], dh
add byte [eax], al
add ah, al
pushfd
push ebx
add byte [esi], ch
movsd dword es:[edi], dword [esi]
push ebx
add byte [edx + ecx*8], ah
push ebx
add byte [edi], cl
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
or byte [ecx + 0x54], dh
add byte [eax], al
dec eax
add byte [eax], al
add byte [ebx - 0xffab01], dl
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
les ebx, [ebx + edx*2 + 0x53924300]
add al, ah
push edx
push ebp
add byte [ecx], al
add byte [eax], al
add byte [eax], dh
add byte [eax], al
add byte [ebp + 0x300054a0], bh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
les ebx, [ebx + edx*2 + 0x5554dd00]
add byte [ebp - 4], dl
push esp
add byte [eax + eax], cl
add byte [eax], al
xor byte [eax], al
add byte [eax], al
xchg ebx, eax
push edi
push ebx
add byte [esi - 0x5f], bl
push ebp
add byte [ebp + 0x61], bh
push esp
add al, ch
sbb dl, byte [eax + eax + 0xf]
mov byte [0x617d47c3], al
push esp
add byte [esi - 0x5f], bl
push ebp
add dl, bl
invalid
cmpsb byte [esi], byte es:[edi]
int1
jns 0x5350ee
add eax, 0xf0ffebe1
shr ch, 0x40
shl cx, 0x20
shr dh, 0x40
jmp 0x54259a
push esi
xchg bl, al
xchg al, bl
push 0
mov byte [esi + 0xba], cl
shr cl, 0x40
jmp 0x53e6b3
retf
and eax, 0x8768dad
mov dword [ebp + 0x40], esp
jmp dword [esi]
push 3
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov bl, bl
mov esi, eax
cmp esi, 0xffffffff
je 0x55817e
jne 0x543216
ror ebp, 1
lea ecx, [ebp - 8]
lea eax, [eax]
push 0
push ecx
push 0x2000
push edi
jmp 0x548b34
shr bl, 0x40
jmp 0x54376e
push edx
mov ebp, ebp
call fcn.00561ac3
lea eax, [ebp - 0x134]
shl bx, 0x20
push eax
call fcn.0053ec6f
mov ecx, dword [esi]
jno 0x54ab07
jo 0x543796
mov eax, 0xf82e97f
sub byte [ebx + 0x73], 0
add byte [edx + 0x24448fac], al
pop dword [esp - 4]
jo 0x54ab07
sub byte [edi + ecx*4 + 0x66fc2444], 0xc1
ljmp 0x870f
shr dx, 0x40
mov si, si
ja 0x53e7ae
jbe 0x5437b3
mov edx, 0xf5860f8d
scasd eax, dword es:[edi]
invalid
jbe 0x53e7ae
or byte [eax - 0x4b5018], 0xff
mov edi, eax
add esp, 0x24
stc
test di, di
jb 0x54b0d3
je 0x543803
call fcn.00553140
test si, 0xd927
add esp, 0x20
test al, 1
jb 0x54b6c5
je 0x53387b
jne 0x5452b6
pop esp
inc edx
invalid
mov eax, dword [ebp - 8]
test eax, eax
jb 0x565cfa
je 0x54009e
jne 0x5452cd
nop
cpuid
ret
shl di, 0x20
mov ecx, dword [esi]
shr dl, 0x40
push 0x17
push ecx
xchg bx, ax
xchg bx, ax
call fcn.005486e5
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
jno 0x540096
jo 0x5452fa
cpuid
ret
jo 0x540096
invalid
push edi
ja 0x536136
jbe 0x546247
mov ecx, 0xf69a14f
xchg cl, ch
invalid
jbe 0x536136
adc byte [edi + ecx*4 - 0x1603dbbc], 0x1b
mov ebx, 0x3beafffe
shr eax, 3
xchg si, dx
xchg dx, si
inc eax
push eax
push esi
call fcn.00538293
mov al, byte [edi + 0x3c]
shl al, 1
and eax, 7
jb 0x5394fc
mov ecx, 8
sub ecx, eax
push ecx
push esi
mov cx, cx
call fcn.005662b8
jmp fcn.00531d73
mov dword [ebp + esi - 0x36c], ecx
mov ecx, dword [ebp - 0x10]
add eax, 4
mov dword [ebp - 0x34], 1
mov edx, dword [ecx]
add ecx, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 4]
mov eax, 0x1c
add ecx, eax
mov dword [ebp + esi - 0x368], edx
mov edi, edi
mov edx, dword [ebp - 0x20]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
add edx, 4
add ecx, eax
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp + esi - 0x360], 1
sub cx, 0
add esi, eax
add edi, eax
or ebp, ebp
add edx, eax
add ecx, eax
js 0x540a47
test eax, 0x930ce8fb
invalid
sub ch, 0x68
add eax, 0x52000001
mov bx, bx
call fcn.00547b8f
lea eax, [ebp - 0x10c]
push 0
push eax
mov edx, edx
call fcn.005503b2
lea ecx, [ebp - 0x10c]
shl eax, 0x20
push 0
jmp 0x546838
push ecx
call fcn.005662b8
lea edx, [ebp - 0x10c]
push edx
call fcn.0053ec6f
ja 0x5672ba
jbe 0x546858
jp 0x5468d1
mov ecx, 0x5c860fe3
or al, byte [edx]
add byte [ebx - 0x77f0fbba], cl
inc ebx
pop ds
invalid
jbe 0x5672ba
shl edx, 2
cmp edi, edx
mov dword [ebp + 0x14], edx
jae 0x547710
mov edx, edx
jb 0x5476e2
dec ebp
das
mov eax, dword [ebp + 0x18]
clc
test eax, eax
jb 0x53510d
mov edi, dword [ebp + 0x10]
mov eax, dword [esi + 8]
mov dword [edi], eax
mov ah, ah
mov bp, bp
mov dx, word [esi + 6]
mov word [edi + 8], dx
mov dword [edi + 4], ebx
jmp dword [ecx*4 + 0x52d499]
or dh, al
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
mov eax, dword [ebp + eax]
lea esi, [esi + 0xc]
and dword [ebx], eax
jb 0x5419f2
push eax
pop eax
jmp dword [esi]
cmp byte [ebp + 0xf], 0x81
sub esp, dword [eax]
add byte [eax + 4], dh
nop
cpuid
ret 0x800f
invalid
pop dword [esp - 4]
ja 0x52a8ee
mov cl, cl
jbe 0x548840
cpuid
nop
ret
test dx, 0xa6ed
stc
shr bp, 0x40
jb 0x54884f
xchg ebx, eax
daa
jb 0x55b3bc
jb 0x55b3bc
xor al, 0x76
jle 0x54884c
push ebx
add byte [eax], al
popal
add byte [eax + 0x40], al
add byte [ecx], ah
add byte [eax], al
cld
invalid
push 0x2000
jmp 0x548b3a
push edi
push 0x9c4024a8
jmp 0x548b42
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
jmp 0x548b4b
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edx, edx
test ebx, ebx
jb 0x53d455
jno 0x5599de
jo 0x548b6a
stc
jmp 0x548bdd
jo 0x5599de
fcom dword [eax + 0x468b1b8d]
add al, 0x89
in eax, dx
mov ebx, dword [esi + 8]
mov eax, dword [ebp + eax]
mov dh, dh
lea esi, [esi + 0xc]
adc dword [ebx], eax
jno 0x551404
jo 0x548b93
inc esp
adc eax, 0x6b800f69
mov byte [eax], al
add byte [ebx + 0x568b445d], cl
add al, 0x8d
jbe 0x548baa
jo 0x551404
mov ebx, dword [ebp + 0x44]
mov edx, dword [esi + 4]
lea esi, [esi + 8]
dec byte [ebx + edx]
mov ah, ah
jmp dword [esi]
enter 0x5d8b, 0x44
mov edx, dword [esi + 4]
lea esi, [esi + 8]
mov dl, dl
dec word [ebx + edx]
js 0x552cea
jns 0x548bc5
daa
dec edi
mov dword [edi], ecx
mov dword [edi], ebx
mov eax, dword [0x40820000]
jns 0x552cea
add byte [eax - 0x18], 0xd2
sub dh, bh
jmp dword [esi - 0x77]
call fcn.0052b4a4
mov bp, bp
mov cl, byte [ebp + 0xc]
shr ch, 0x40
mov esi, esi
shl ah, 0x20
mov dx, word [ebp + 0x10]
push eax
shl bh, 0x20
push esi
mov si, si
ja 0x566af3
jbe 0x548bf9
lcall 0xdef4, 0x860f4800
add dword [eax], eax
jbe 0x566af3
sub ch, 0xe6
or edx, dword [ebp]
xor byte [eax], al
add byte [eax], al
xor al, 0
add byte [eax], al
xchg ebx, eax
call dword [eax + eax - 1]
inc dword [eax]
add byte [eax + eax], dh
add byte [eax], al
les ebx, [ebx + edx*2 + 0x54387500]
add byte [ebx + 0x54f1], bl
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
sbb byte [eax], al
add byte [eax], al
sbb byte [edx + 0x55], dh
add ah, al
retf
mov byte [esi + 0xbb], 0
test edi, edi
jb 0x548164
mov esi, esi
je 0x55dfa6
jne 0x549c6f
sbb ecx, dword [ebx + 0x558dce5d]
or byte [ebp - 0x267807bb], cl
lea edx, [ebp + 8]
lea eax, [ebp - 8]
xchg ecx, ebx
xchg ebx, ecx
jmp 0x549c7a
push edx
lea ecx, [ebp - 0xc]
push eax
push ecx
call fcn.0054fd91
mov eax, dword [ebp + 8]
stc
add esp, 0xc
cmp eax, 0x7cf
jge 0x549cb1
jl 0x549ca2
scasb al, byte es:[edi]
xor al, 0x28
adc eax, 0x820fc031
sti
inc esp
add byte [eax], al
xor eax, eax
jb 0x54e1a5
jmp 0x5321d1
mov edx, dword [ebp - 8]
jmp 0x549cb5
push eax
mov eax, dword [ebp - 0xc]
jmp 0x549cbb
push edx
push eax
js 0x5321c1
jns 0x549cca
fisubr dword [ebp - 0xe76f0e2]
test dh, bh
inc dword [edx + 0xc768de3]
jns 0x5321c1
and bl, 0x8d
jbe 0x549ce1
or edi, edi
jno 0x549cdb
outsd dx, dword [esi]
stosb byte es:[edi], al
jno 0x533fc7
fincstp
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], esi
xchg cx, bp
xchg bp, cx
mov byte [ebp + ebx - 0x6c], bl
mov dword [ebp + esi - 0x51c], edi
call fcn.005326ff
mov eax, dword [ebp - 8]
mov dword [edi], 0x51
lea ecx, [ebp - 0x15]
shl dh, 0x20
push 0x1c
mov dword [ebp + esi - 0x44c], 1
push 0
mov dword [ebp + esi - 0x448], ecx
push eax
xchg dh, cl
xchg cl, dh
mov dword [ebp + esi - 0x438], eax
call fcn.005326ff
mov edx, dword [ebp - 8]
lea eax, [ebp + ebx - 0x6c]
push 0x1c
push 0
mov dword [edx], 0x52
mov dword [ebp + esi - 0x1ac], 1
mov dword [ebp + esi - 0x1a8], eax
mov eax, dword [ebp - 0x1c]
push eax
mov dword [ebp + esi - 0x198], eax
call fcn.005326ff
mov eax, dword [ebp - 0x1c]
shl bx, 0x20
lea ecx, [ebp - 0x38]
push 0x1c
push 0
mov dword [eax], 0x54
mov eax, dword [ebp - 0xc]
mov dword [ebp + esi - 0x28c], 4
js 0x54a2d0
jns 0x549d97
adc esp, dword [edx + 0x33890fe6]
add eax, 0xfc350000
jns 0x54a2d0
cmc
sub ecx, 0x3c
push ecx
jmp fcn.00549dc2
mov eax, dword [esi + 4]
call fcn.00560819
invalid
invalid