#1 27-07-2011 05:53

VintProg_Pro
Registered: 17-06-2010
Posts: 153

Что делает эта конструкция?

Вот функция:

.text:005F9980     ; int __stdcall CAudio__PlaySound(__int16, float)
.text:005F9980     CAudio__PlaySound proc near             ; CODE XREF: sub_429B60+282p
.text:005F9980                                             ; sub_429DF0+4Bp ...
.text:005F9980
.text:005F9980     var_14          = dword ptr -14h
.text:005F9980     var_10          = qword ptr -10h
.text:005F9980     var_4           = dword ptr -4
.text:005F9980     arg_0           = word ptr  4
.text:005F9980     arg_4           = dword ptr  8
.text:005F9980
.text:005F9980 000                 sub     esp, 10h
.text:005F9983 010                 mov     eax, [esp+10h+arg_4]
.text:005F9987 010                 mov     dword ptr [esp+10h+var_10+4], 0
.text:005F998F 010                 mov     dword ptr [esp+10h+var_10], eax
.text:005F9992 010                 fild    [esp+10h+var_10]
.text:005F9995 010                 push    eax             ; float
.text:005F9996 014                 mov     [esp+14h+var_4], ecx ; void*
.text:005F999A 014                 mov     ecx, offset _sfxManager ; this
.text:005F999F 014                 fstp    [esp+14h+var_14]
.text:005F99A2 014                 mov     eax, ds:dword_7928B8
.text:005F99A7 014                 mov     edx, dword ptr [esp+14h+arg_0]
.text:005F99AB 014                 push    edx             ; __int16
.text:005F99AC 018                 push    eax             ; int
.text:005F99AD 01C                 call    sub_5F83D0
.text:005F99B2 010                 add     esp, 10h
.text:005F99B5 000                 retn    8
.text:005F99B5     CAudio__PlaySound endp

Что тут происходит?

.text:005F9987 010                 mov     dword ptr [esp+10h+var_10+4], 0
.text:005F998F 010                 mov     dword ptr [esp+10h+var_10], eax

Offline

#2 27-07-2011 08:11

listener
From: Vice City
Registered: 09-11-2006
Posts: 615
Website

Re: Что делает эта конструкция?

unsigned long long var_10 = static_cast<unsigned long long>(eax)

C5 - GTA IV/RDR/GTA V script compiler.
~ 60% done.

Offline

#3 27-07-2011 08:13

VintProg_Pro
Registered: 17-06-2010
Posts: 153

Re: Что делает эта конструкция?

.text:005F9987 010                 mov     dword ptr [esp+10h+var_10+4], 0
.text:005F998F 010                 mov     dword ptr [esp+10h+var_10], eax

Может это одна переменая, просто IDA тут за сомневалась в чем-то.

Offline

#4 27-07-2011 09:36

listener
From: Vice City
Registered: 09-11-2006
Posts: 615
Website

Re: Что делает эта конструкция?

Это одна переменная.
В этом нет никаких сомнений ни у кого.


C5 - GTA IV/RDR/GTA V script compiler.
~ 60% done.

Offline

#5 27-07-2011 10:08

VintProg_Pro
Registered: 17-06-2010
Posts: 153

Re: Что делает эта конструкция?

Значит последнии биты обнуляются...

Offline

Board footer

Powered by FluxBB