Kann jemand diese assembly funktion erklären?

[ Ich hab keine „bessere“ Kategorie gefunden… ]

abc.exe+24D574 - push rbx
abc.exe+24D576 - sub rsp,30 { 48 }
abc.exe+24D57A - mov [rsp+20],FFFFFFFE { [0] }
abc.exe+24D583 - mov rbx,rcx
abc.exe+24D586 - movss xmm0,[rcx+0000014C]
abc.exe+24D58E - ucomiss xmm0,xmm1
abc.exe+24D591 - jp abc.exe+24D595
abc.exe+24D593 - je abc.exe+24D5E1
abc.exe+24D595 - movss [rcx+0000014C],xmm1
abc.exe+24D59D - lea rax,[rsp+40]
abc.exe+24D5A2 - mov [rsp+58],rax
abc.exe+24D5A7 - and qword ptr [rsp+40],00 { 0 }
abc.exe+24D5AD - mov r8l,01 { 1 }
abc.exe+24D5B0 - lea rdx,[abc.exe+1200348] { ["SkillXP"] }
abc.exe+24D5B7 - lea rcx,[rsp+50]
abc.exe+24D5BC - call abc.exe+D0C08
abc.exe+24D5C1 - nop 

[rcx+0000014C] ist eine float variable.
Das in { } sind Kommentare, nicht weiter dran stören.

Folgendes passiert: [rcx+0000014C] wird erhöht um einen wert.

Folgendes sollte passieren: Der Wert, um den [rcx+0000014C] erhöht wird, sollte zuvor mit 10 multipliziert werden. Wie stelle ich das an?

Noch ein Hinweis: [rcx+0000014C] wird wohl an dieser Stelle (nach jp und je) gesetzt:
abc.exe+24D595 - movss [rcx+0000014C],xmm1

Edit: Schon gelöst. :slight_smile: