{
'_14
class c2
'_15
========
'_16
float a
'_17
string s
'_18
'c1 *ca
'_19
'c1 *cb
'_20
method constructor()
'_21
end method
'_22
method act(string ps="man")
'_23
print ps " g"
'_24
end method
'_25
method destructor (string ps="x")
'_26
print ps " d"
'_27
act
'_28
end method
'_29
'
'_30
end class
'_31
}

>>>>

'_14
|va c2_table sys [rbx+8200]

(
|yp 

jmp fwd _over_
|al 10
.constructor
(
|va this c2 [rbp+16]
|va param sys [rbp+24]
push rbp
mov rbp,rsp
and rsp,-16
|sp -32 
  
|si 20         

._end_proc
._return_
mov rsp,rbp
pop rbp
ret

)
._over_
|xp 
|yp 

jmp fwd _over_
|al 10
.act#string
(
|va this c2 [rbp+16]
|va param sys [rbp+24]
|va ps string [rbp+24]
push rbp
mov rbp,rsp
and rsp,-16
|sp -32 
  
|si 20         
|sp -32
|qu ""
'""
|op 1 C1 rax
'ps
|op 2B C1 [rbp+24]
|qu " g"
'" g"
|op 2B C1 rax
'" g"
|op 60 C1 rax
|go 0 [rbx+2224]
mov [rsp],rax
mov rcx,[rsp]

|ch 1
|go 0 [rbx+2496]
|sp 32
|go 0 [rbx+2104]
'_24

._end_proc
._return_
'end
|op 4 8 rax
'end
|op 4 8 rdx
|go 0 [rbx+2112]
mov rcx,[rbp-16]
|go 0 [rbx+16]
mov rcx,[rbp-24]
|go 0 [rbx+16]
'end
|op 6 8 rdx
'end
|op 6 8 rax
mov rsp,rbp
pop rbp
ret

)
._over_
|xp 
|yp 

jmp fwd _over_
|al 10
.destructor#string
(
|va this c2 [rbp+16]
|va param sys [rbp+24]
|va ps string [rbp+24]
push rbp
mov rbp,rsp
and rsp,-16
|sp -32 
  
|si 20         
|sp -32
|qu ""
'""
|op 1 C1 rax
'ps
|op 2B C1 [rbp+24]
|qu " d"
'" d"
|op 2B C1 rax
'" d"
|op 60 C1 rax
|go 0 [rbx+2224]
mov [rsp],rax
mov rcx,[rsp]

|ch 1
|go 0 [rbx+2496]
|sp 32
|go 0 [rbx+2104]
'_27
|sp -32
|qu "man"
mov [rsp+8],rax
mov rdi,[rbp+16]
lea rcx,[rdi]
mov [rsp],rcx
|go 4 ,c2.act#string [rbx+8208] 0 0
|sp 32
'_28

._end_proc
._return_
'end
|op 4 8 rax
'end
|op 4 8 rdx
|go 0 [rbx+2112]
mov rcx,[rbp-24]
|go 0 [rbx+16]
'end
|op 6 8 rdx
'end
|op 6 8 rax
mov rsp,rbp
pop rbp
ret

)
._over_
|xp 
._mt_
lea rcx , [rbx+8200]
|te constructor 0
|te act#string 8
|te destructor#string 10

)
|xc c2
'_31

>>>>

'_14

(

jmp fwd _over_
o2 !10
.constructor
(
push rbp
mov rbp,rsp
and rsp,-16
add rsp,-32
  
mov rcx,-32
._z_
mov [rbp+rcx],0
add rcx,8
jl _z_

._end_proc
._return_
mov rsp,rbp
pop rbp
ret

)
._over_

jmp fwd _over_
o2 !10
.act#string
(
push rbp
mov rbp,rsp
and rsp,-16
add rsp,-32
  
mov rcx,-32
._z_
mov [rbp+rcx],0
add rcx,8
jl _z_
add rsp,-32
o2 48 8D 83 gc 1
'""
mov rax,rax
'clear string lists
call [rbx+2152]
mov r10,1
'add byval bstr to list
call [rbx+2168]
'ps
mov rax,[rbp+24]
mov r10,1
'add byval bstr to list
call [rbx+2168]
o2 48 8D 83 gc 2
'" g"
mov rax,rax
mov r10,1
'add byval bstr to list
call [rbx+2168]
'" g"
'join strings: copy into one
mov r10,1
xor rax,rax
call [rbx+2184]
call [rbx+2224]
mov [rsp],rax
mov rcx,[rsp]

mov r10,1
call [rbx+2496]
add rsp,32
call [rbx+2104]
'_24

._end_proc
._return_
'end
push rax
'end
push rdx
call [rbx+2112]
mov rcx,[rbp-16]
call [rbx+16]
mov rcx,[rbp-24]
call [rbx+16]
'end
pop rdx
'end
pop rax
mov rsp,rbp
pop rbp
ret

)
._over_

jmp fwd _over_
o2 !10
.destructor#string
(
push rbp
mov rbp,rsp
and rsp,-16
add rsp,-32
  
mov rcx,-32
._z_
mov [rbp+rcx],0
add rcx,8
jl _z_
add rsp,-32
o2 48 8D 83 gc 3
'""
mov rax,rax
'clear string lists
call [rbx+2152]
mov r10,1
'add byval bstr to list
call [rbx+2168]
'ps
mov rax,[rbp+24]
mov r10,1
'add byval bstr to list
call [rbx+2168]
o2 48 8D 83 gc 4
'" d"
mov rax,rax
mov r10,1
'add byval bstr to list
call [rbx+2168]
'" d"
'join strings: copy into one
mov r10,1
xor rax,rax
call [rbx+2184]
call [rbx+2224]
mov [rsp],rax
mov rcx,[rsp]

mov r10,1
call [rbx+2496]
add rsp,32
call [rbx+2104]
'_27
add rsp,-32
o2 48 8D 83 gc 5
mov [rsp+8],rax
mov rdi,[rbp+16]
lea rcx,[rdi]
mov [rsp],rcx
call [rbx+8208]

add rsp,32
'_28

._end_proc
._return_
'end
push rax
'end
push rdx
call [rbx+2112]
mov rcx,[rbp-24]
call [rbx+16]
'end
pop rdx
'end
pop rax
mov rsp,rbp
pop rbp
ret

)
._over_
._mt_
lea rcx , [rbx+8200]
lea rip rax,constructor
mov [rcx+0],rax
lea rip rax,act#string
mov [rcx+8],rax
lea rip rax,destructor#string
mov [rcx+16],rax

)
'_31

