Function at 0x739604
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
push edi
mov ebx, eax
mov dword [ebp - 8], 4
mov eax, 0x739c38
call fcn.00739164
shr eax, 0x10
and eax, 0xff
cmp eax, 5
setg byte [ebp - 0xd]
call fcn.00739020
test al, al
je 0x739654
cmp byte [ebx + 0x2f1], 0
je 0x739654
mov eax, dword [0x9f2070]
mov eax, dword [eax]
call eax
test eax, eax
je 0x739654
cmp byte [ebp - 0xd], 0
jne 0x739658
xor eax, eax
jmp 0x73965a
mov al, 1
mov byte [ebp - 0xe], al
cmp byte [ebp - 0xe], 0
je 0x7399df
fld dword [0x739c54]
fmul dword [ebx + 0x2f4]
call fcn.00405668
mov edi, eax
fld dword [ebx + 0x2f4]
fcomp dword [0x739c58]
wait
fnstsw ax
sahf
jb 0x739691
mov edi, 0x14
fld dword [ebx + 0x2f4]
fcomp dword [0x739c58]
wait
fnstsw ax
sahf
ja 0x7396a8
mov edi, 0x10
movzx eax, byte [ebx + 0x2c8]
sub al, 1
jb 0x7396bb
je 0x7396dc
dec al
je 0x73970d
jmp 0x73971f
mov eax, dword [ebx + 0x290]
mov edx, 0x739c68
call fcn.004e9e50
sub eax, edi
sar eax, 1
jns 0x7396d4
adc eax, 0
add eax, 4
mov dword [ebp - 8], eax
jmp 0x73971f
lea edx, [ebp - 0x30]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x40]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
sub esi, dword [ebp - 0x3c]
sar esi, 1
jns 0x7396fd
adc esi, 0
mov eax, edi
sar eax, 1
jns 0x739706
adc eax, 0
sub esi, eax
mov dword [ebp - 8], esi
jmp 0x73971f
lea edx, [ebp - 0x30]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov eax, dword [ebp - 0x24]
sub eax, edi
mov dword [ebp - 8], eax
cmp byte [ebx + 0x2c9], 1
je 0x739737
mov eax, ebx
mov si, 0xffc6
call fcn.00406ca4
test al, al
je 0x739749
lea edx, [ebp - 0x30]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov esi, dword [ebp - 0x28]
sub esi, edi
dec esi
jmp 0x73974b
xor esi, esi
push 0x739c70
mov eax, ebx
call fcn.0051a434
push eax
mov eax, dword [0x9f1c98]
mov eax, dword [eax]
call eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
add eax, edi
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [edi + esi]
mov edx, dword [ebp - 8]
mov eax, esi
call fcn.0040e324
cmp dword [ebp - 0xc], 0
je 0x7399db
movzx eax, byte [ebx + 0x29a]
sub al, 1
jb 0x739860
je 0x7397a3
dec al
je 0x73991d
jmp 0x7399cc
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x68]
test al, al
jne 0x7397d6
push 0
lea eax, [ebp - 0x20]
push eax
push 8
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
cmp byte [ebx + 0x299], 0
je 0x739807
push 0
lea eax, [ebp - 0x20]
push eax
push 7
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
cmp byte [ebx + 0x2de], 0
je 0x739838
push 0
lea eax, [ebp - 0x20]
push eax
push 6
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
push 0
lea eax, [ebp - 0x20]
push eax
push 5
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x68]
test al, al
jne 0x739893
push 0
lea eax, [ebp - 0x20]
push eax
push 4
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
cmp byte [ebx + 0x299], 0
je 0x7398c4
push 0
lea eax, [ebp - 0x20]
push eax
push 3
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
cmp byte [ebx + 0x2de], 0
je 0x7398f5
push 0
lea eax, [ebp - 0x20]
push eax
push 2
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
push 0
lea eax, [ebp - 0x20]
push eax
push 1
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x68]
test al, al
jne 0x73994d
push 0
lea eax, [ebp - 0x20]
push eax
push 0xc
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
cmp byte [ebx + 0x299], 0
je 0x73997b
push 0
lea eax, [ebp - 0x20]
push eax
push 0xb
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
cmp byte [ebx + 0x2de], 0
je 0x7399a9
push 0
lea eax, [ebp - 0x20]
push eax
push 0xa
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
jmp 0x7399cc
push 0
lea eax, [ebp - 0x20]
push eax
push 9
push 3
mov eax, dword [ebx + 0x290]
call fcn.004eadd0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1eec]
mov eax, dword [eax]
call eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x9f1f28]
mov eax, dword [eax]
call eax
jmp 0x7399df
mov byte [ebp - 0xe], 0
cmp byte [ebp - 0xe], 0
jne 0x739c24
fld dword [0x739c80]
fmul dword [ebx + 0x2f4]
call fcn.00405668
mov edi, eax
mov dl, 1
mov eax, dword [0x4e6d30]
call fcn.004efc38
mov dword [ebp - 4], eax
xor edx, edx
push ebp
push 0x739c1d
push dword fs:[edx]
mov dword fs:[edx], esp
movzx eax, byte [ebx + 0x29a]
cmp al, 2
jne 0x739a7e
cmp byte [ebx + 0x299], 0
je 0x739a45
mov ecx, 0x739c90
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
cmp byte [ebx + 0x2de], 0
je 0x739a66
mov ecx, 0x739cb4
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
mov ecx, 0x739cd8
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
cmp al, 1
jne 0x739ad6
cmp byte [ebx + 0x299], 0
je 0x739aa3
mov ecx, 0x739cf8
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
cmp byte [ebx + 0x2de], 0
je 0x739ac1
mov ecx, 0x739d1c
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
mov ecx, 0x739d40
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
cmp byte [ebx + 0x299], 0
je 0x739af4
mov ecx, 0x739d60
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
cmp byte [ebx + 0x2de], 0
je 0x739b12
mov ecx, 0x739d84
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
jmp 0x739b25
mov ecx, 0x739da8
mov edx, dword [0x9f5c54]
mov eax, dword [ebp - 4]
call fcn.004f0d10
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x40]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004f1a28
movzx eax, byte [ebx + 0x2c8]
sub al, 1
jb 0x739b4c
je 0x739b6d
dec al
je 0x739b9e
jmp 0x739bb0
mov eax, dword [ebx + 0x290]
mov edx, 0x739dc8
call fcn.004e9e50
sub eax, edi
sar eax, 1
jns 0x739b65
adc eax, 0
add eax, 4
mov dword [ebp - 8], eax
jmp 0x739bb0
lea edx, [ebp - 0x30]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x40]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
sub esi, dword [ebp - 0x3c]
sar esi, 1
jns 0x739b8e
adc esi, 0
mov eax, edi
sar eax, 1
jns 0x739b97
adc eax, 0
sub esi, eax
mov dword [ebp - 8], esi
jmp 0x739bb0
lea edx, [ebp - 0x30]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov eax, dword [ebp - 0x24]
sub eax, edi
mov dword [ebp - 8], eax
cmp byte [ebx + 0x2c9], 1
je 0x739bc8
mov eax, ebx
mov si, 0xffc6
call fcn.00406ca4
test al, al
je 0x739bda
lea edx, [ebp - 0x30]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x60]
mov esi, dword [ebp - 0x28]
sub esi, edi
dec esi
jmp 0x739bdc
xor esi, esi
mov eax, dword [ebp - 8]
add eax, edi
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [edi + esi]
mov edx, dword [ebp - 8]
mov eax, esi
call fcn.0040e324
lea edx, [ebp - 0x20]
mov eax, dword [ebx + 0x290]
mov ecx, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x88]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x739c24
mov eax, dword [ebp - 4]
call fcn.004069e4
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret