Bonjour,

je cherche quelqu'un (sur paris de préférence), pour déchiffrer un peu d'asm x86 32 bit.
J'ai quelques portions de code asm à retranscrire dans un autre langage (comme le C) mais j'ai de faibles notions en asm, je galère depuis 2 semaines déjà

Je suis prêt à lâcher un billet

Par exemple, faudrait que je comprenne ce que fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
; CinFrameDeviceInterface::MakeCommandPacket(unsigned char *, unsigned char, int)
var_1C = byte ptr -1Ch
var_C  = dword ptr -0Ch
arg_4  = dword ptr  0Ch
arg_8  = dword ptr  10h
arg_C  = dword ptr  14h
push    ebp
mov     ebp, esp
push    ebx
sub     esp, 34h
mov     eax, [ebp+arg_8]
mov     [ebp+var_1C], al
call    _Z16GetTickCountv
mov     [esp], eax
call    srandom
mov     [ebp+var_C], 0
jmp     short loc_80ADE80
loc_80ADE43:
mov     eax, [ebp+var_C]
mov     ebx, eax
add     ebx, [ebp+arg_4]
call    rand
mov     edx, [ebp+arg_C]
lea     ecx, [edx-1]
mov     edx, eax
sar     edx, 1Fh
idiv    ecx
mov     eax, edx
mov     [ebx], al
mov     eax, [ebp+var_C]
add     eax, [ebp+arg_4]
movzx   eax, byte ptr [eax]
test    al, al
jnz     short loc_80ADE7C
mov     eax, [ebp+var_C]
add     eax, [ebp+arg_4]
movzx   edx, byte ptr [eax]
add     edx, 1
mov     [eax], dl
loc_80ADE7C:
add     [ebp+var_C], 1
loc_80ADE80:
cmp     [ebp+var_C], 3Fh
setle   al
test    al, al
jnz     short loc_80ADE43
mov     eax, [ebp+arg_4]
movzx   eax, byte ptr [eax]
movzx   eax, al
add     eax, [ebp+arg_4]
movzx   edx, [ebp+var_1C]
mov     [eax], dl
add     esp, 34h
pop     ebx
pop     ebp
retn
Je comprend plus ou moins qu'il y a un while, avec un if à l'intérieur...
Enfin bref, si y'en a un qui veut bien me filer un coup de main, je suis preneur merci