Hello friends.
I got an win obj file, reverse engineering it with IDA and now I am trying to convert it to Linux so file using NASM programming. So basically I am converting from MASM to NASM.
I am no expert in assembler programming but I did make some progress. However, there are a piece of code tha is taking my sleep hours. Can some one help me with that?
What I want is that some one could explain me the following code, so I understand what is going on, besides teaching me who to translate it to NASM.
The code piece:
_MyProc:
...
loc_77C:
xor eax, eax
mov al, cl
and eax, 1Fh
cmp eax, ebx
jg loc_8B8
and ecx, 0E0h
add ecx, 0FFFFFF80h
cmp ecx, 60h ; '`'
ja short $L2520
movzx ecx, ds:$L2973[ecx] ;;HERE!!!!! (Note the "ds:$L2973[ecx] ")
jmp ds:$L2979[ecx*4] ;;AND HERE!!!!! (The movzx instruction is clear to me. The operands are my problem. I dont understand the syntax..)
_MyProc endp
....
Little further I have:
...
align 10h
$L2979 dd offset $L2501 ;; (THE SAME $L2979)
dd offset $L2506
dd offset $L2498
dd offset $L2495
dd offset $L2520
$L2973 db 0
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 1
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 2
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 4
add al, 3
_text ends
Thanks in advance.
Bruno