Reconstructing C code – Part 1
•mov dword ptr [PointersAsVariables!pa (004284e4)],0x4284ec   ; [pa]  := address of a
•mov dword ptr [PointersAsVariables!pb (004284e0)],0x4284e8   ; [pb]  := address of b
•mov eax,[PointersAsVariables!pa (004284e4)]                  ; eax   := [pa]
•mov dword ptr [eax],0x1                                      ; [eax] := 1
•mov eax,[PointersAsVariables!pb (004284e0)]                  ; eax   := [pb]  
•mov dword ptr [eax],0x1 ; [eax] := 1
•mov eax,[PointersAsVariables!pb (004284e0)]                  ; eax   := [pb]
•mov ecx,[eax]                                                ; ecx   := [eax]
•mov edx,[PointersAsVariables!pa (004284e4)]                  ; edx   := [pa]
•add ecx,[edx]                                                ; ecx   := ecx + [edx]
•mov eax,[PointersAsVariables!pb (004284e0)]                  ; eax   := [pb]
•mov [eax],ecx                                                ; [eax] := ecx   
•mov eax,[PointersAsVariables!pb (004284e0)]                  ; eax   := [pb]
•mov ecx,[eax]                                                ; ecx   := [eax]
•shl ecx,1                                                    ; ecx   := ecx * 2
•mov edx,[PointersAsVariables!pb (004284e0)]                  ; edx   := [pb]
•mov [edx],ecx                                                ; [edx] := ecx
•xor eax,eax                                                  ; eax   := 0 
•