I'm trying to understand the following assembly code. I know the function takes 6 DWORDs as arguments.
sub rsp, 8
mov rdx, rsi :move first DWORD in rdx
lea rcx, [rsi + 4] ;load effective address in rcx using 2nd DWORD
lea rax, [rsi + 20] ;same as above using 6th DWORD
push rax ;push rax on stack
lea rax, [rsi + 16]
push rax
lea r9, [rsi + 12] ;load eff add using 4th DWORD
lea r8, [rsi + 8] ;same as above using 3rd DWORD
mov esi, "\0x25\0x64\0x20" ;move that stuff in esi
mov eax, 0 ;mov 0 in eax
call __isoc99_sscanf ;call sscanf
I basically tried to translate it already but I'm stuck on what exactly happens when sscanf is called. I've been at this for over three hours and it's driving me crazy. Needless to say I'm a relative assembly beginner which makes this even more difficult.
EDIT: thanks for your answers so far, as mentioned being a relative beginner means my comments might not be super useful. I didn't disassemble the file myself, I used IDA