Skip to content

Instantly share code, notes, and snippets.

@p0pr0ck5
Created May 23, 2017 16:33
Show Gist options
  • Save p0pr0ck5/db65da1008974715862827e84c115056 to your computer and use it in GitHub Desktop.
Save p0pr0ck5/db65da1008974715862827e84c115056 to your computer and use it in GitHub Desktop.
$ luajit ./t.lua > /dev/null
---- TRACE 1 start t.lua:12
0014 MOV 7 1
0015 KSTR 8 5 ; "foo"
0016 GGET 9 6 ; "math"
0017 TGETS 9 9 7 ; "random"
0018 KSHORT 10 1
0019 KSHORT 11 10
0020 CALL 9 0 3
0000 . FUNCC ; math.random
0021 CALLM 7 1 1
0000 . FUNCF 5 ; t.lua:3
0001 . UGET 2 0 ; loglevel
0002 . ISGE 2 1
0003 . JMP 2 => 0010
0004 . GGET 2 0 ; "io"
0005 . TGETS 2 2 1 ; "stdout"
0006 . MOV 3 2
0007 . TGETS 2 2 2 ; "write"
0008 . MOV 4 0
0009 . CALL 2 1 3
0000 . . FUNCC ; io.method.write
0010 . RET0 0 1
0022 FORL 3 => 0014
---- TRACE 1 IR
0001 int SLOAD #4 CI
0002 > fun SLOAD #2 T
0003 fun SLOAD #0 R
0004 tab FLOAD 0003 func.env
0005 int FLOAD 0004 tab.hmask
0006 > int EQ 0005 +63
0007 p32 FLOAD 0004 tab.node
0008 > p32 HREFK 0007 "math" @54
0009 > tab HLOAD 0008
0010 int FLOAD 0009 tab.hmask
0011 > int EQ 0010 +31
0012 p32 FLOAD 0009 tab.node
0013 > p32 HREFK 0012 "random" @8
0014 > fun HLOAD 0013
0015 > fun EQ 0014 math.random
0016 num CALLS lj_math_random_step ([0x414c1dc0])
0017 num SUB 0016 +1
0018 num MUL 0017 +10
0019 num FPMATH 0018 floor
0020 num ADD 0019 +1
0021 > fun EQ 0002 t.lua:3
0022 > num GT 0020 +3
0023 tab FLOAD t.lua:3 func.env
0024 int FLOAD 0023 tab.hmask
0025 > int EQ 0024 +63
0026 p32 FLOAD 0023 tab.node
0027 > p32 HREFK 0026 "io" @9
0028 > tab HLOAD 0027
0029 int FLOAD 0028 tab.hmask
0030 > int EQ 0029 +15
0031 p32 FLOAD 0028 tab.node
0032 > p32 HREFK 0031 "stdout" @14
0033 > udt HLOAD 0032
0034 u8 FLOAD 0033 udata.udtype
0035 > int EQ 0034 +1
0036 int FLOAD {0x414c08b8} tab.hmask
0037 > int EQ 0036 +15
0038 p32 FLOAD {0x414c08b8} tab.node
0039 > p32 HREFK 0038 "write" @2
0040 > fun HLOAD 0039
0041 > fun EQ 0040 io.method.write
0042 p64 FLOAD 0033 udata.file
0043 > p64 NE 0042 [NULL]
0047 int CALLS fwrite ([0x414c3d10] +1 +3 0042)
0048 + int ADD 0001 +1
0049 > int LE 0048 +10000
0050 ------ LOOP ------------
0051 num CALLS lj_math_random_step ([0x414c1dc0])
0052 num SUB 0051 +1
0053 num MUL 0052 +10
0054 num FPMATH 0053 floor
0055 num ADD 0054 +1
0056 > num GT 0055 +3
0057 int CALLS fwrite ([0x414c3d10] +1 +3 0042)
0058 + int ADD 0048 +1
0059 > int LE 0058 +10000
0060 int PHI 0048 0058
---- TRACE 1 mcode 603
0bcbfd9d add rsp, -0x10
0bcbfda1 mov dword [0x414bc410], 0x1
0bcbfdac cvttsd2si ebp, [rdx+0x18]
0bcbfdb1 cmp dword [rdx+0xc], -0x09
0bcbfdb5 jnz 0x0bcb0010 ->0
0bcbfdbb mov eax, [rdx+0x8]
0bcbfdbe mov [rsp+0x10], eax
0bcbfdc2 mov eax, [rdx-0x8]
0bcbfdc5 mov eax, [rax+0x8]
0bcbfdc8 cmp dword [rax+0x1c], +0x3f
0bcbfdcc jnz 0x0bcb0010 ->0
0bcbfdd2 mov eax, [rax+0x14]
0bcbfdd5 mov rdi, 0xfffffffb414c1d88
0bcbfddf cmp rdi, [rax+0x518]
0bcbfde6 jnz 0x0bcb0010 ->0
0bcbfdec cmp dword [rax+0x514], -0x0c
0bcbfdf3 jnz 0x0bcb0010 ->0
0bcbfdf9 mov eax, [rax+0x510]
0bcbfdff cmp dword [rax+0x1c], +0x1f
0bcbfe03 jnz 0x0bcb0010 ->0
0bcbfe09 mov eax, [rax+0x14]
0bcbfe0c mov rdi, 0xfffffffb414c2990
0bcbfe16 cmp rdi, [rax+0xc8]
0bcbfe1d jnz 0x0bcb0010 ->0
0bcbfe23 cmp dword [rax+0xc4], -0x09
0bcbfe2a jnz 0x0bcb0010 ->0
0bcbfe30 cmp dword [rax+0xc0], 0x414c2960
0bcbfe3a jnz 0x0bcb0010 ->0
0bcbfe40 mov edi, 0x414c1dc0
0bcbfe45 call 0x0044d750 ->lj_math_random_step
0bcbfe4a movq xmm0, rax
0bcbfe4f mov eax, [rsp+0x10]
0bcbfe53 subsd xmm0, [0x414c4998]
0bcbfe5c mulsd xmm0, [0x414c49a0]
0bcbfe65 roundsd xmm0, xmm0, 0x09
0bcbfe6b addsd xmm0, [0x414c4998]
0bcbfe74 cmp eax, 0x414c3d48
0bcbfe7a jnz 0x0bcb0014 ->1
0bcbfe80 ucomisd xmm0, [0x414c49b0]
0bcbfe89 jbe 0x0bcb0018 ->2
0bcbfe8f mov eax, [0x414c3d50]
0bcbfe96 cmp dword [rax+0x1c], +0x3f
0bcbfe9a jnz 0x0bcb001c ->3
0bcbfea0 mov r15d, [rax+0x14]
0bcbfea4 mov rdi, 0xfffffffb414c0898
0bcbfeae cmp rdi, [r15+0xe0]
0bcbfeb5 jnz 0x0bcb001c ->3
0bcbfebb cmp dword [r15+0xdc], -0x0c
0bcbfec3 jnz 0x0bcb001c ->3
0bcbfec9 mov r14d, [r15+0xd8]
0bcbfed0 cmp dword [r14+0x1c], +0x0f
0bcbfed5 jnz 0x0bcb001c ->3
0bcbfedb mov r13d, [r14+0x14]
0bcbfedf mov rdi, 0xfffffffb414c1158
0bcbfee9 cmp rdi, [r13+0x158]
0bcbfef0 jnz 0x0bcb001c ->3
0bcbfef6 cmp dword [r13+0x154], -0x0d
0bcbfefe jnz 0x0bcb001c ->3
0bcbff04 mov ebx, [r13+0x150]
0bcbff0b cmp byte [rbx+0x6], 0x1
0bcbff0f jnz 0x0bcb001c ->3
0bcbff15 cmp dword [0x414c08d4], +0x0f
0bcbff1d jnz 0x0bcb001c ->3
0bcbff23 mov r12d, [0x414c08cc]
0bcbff2b mov rdi, 0xfffffffb414c0b20
0bcbff35 cmp rdi, [r12+0x38]
0bcbff3a jnz 0x0bcb001c ->3
0bcbff40 cmp dword [r12+0x34], -0x09
0bcbff46 jnz 0x0bcb001c ->3
0bcbff4c cmp dword [r12+0x30], 0x414c0af8
0bcbff55 jnz 0x0bcb001c ->3
0bcbff5b mov rcx, [rbx+0x18]
0bcbff5f mov [rsp+0x8], rcx
0bcbff64 test rcx, rcx
0bcbff67 jz 0x0bcb001c ->3
0bcbff6d mov edx, 0x3
0bcbff72 mov esi, 0x1
0bcbff77 mov edi, 0x414c3d10
0bcbff7c call 0x00403b00 ->fwrite
0bcbff81 add ebp, +0x01
0bcbff84 cmp ebp, 0x2710
0bcbff8a jg 0x0bcb0020 ->4
->LOOP:
0bcbff90 mov edi, 0x414c1dc0
0bcbff95 call 0x0044d750 ->lj_math_random_step
0bcbff9a movq xmm0, rax
0bcbff9f mov rcx, [rsp+0x8]
0bcbffa4 subsd xmm0, [0x414c4998]
0bcbffad mulsd xmm0, [0x414c49a0]
0bcbffb6 roundsd xmm7, xmm0, 0x09
0bcbffbc addsd xmm7, [0x414c4998]
0bcbffc5 ucomisd xmm7, [0x414c49b0]
0bcbffce jbe 0x0bcb0028 ->6
0bcbffd4 mov edx, 0x3
0bcbffd9 mov esi, 0x1
0bcbffde mov edi, 0x414c3d10
0bcbffe3 call 0x00403b00 ->fwrite
0bcbffe8 add ebp, +0x01
0bcbffeb cmp ebp, 0x2710
0bcbfff1 jle 0x0bcbff90 ->LOOP
0bcbfff3 jmp 0x0bcb002c ->7
---- TRACE 1 stop -> loop
---- TRACE 2 start 1/6 t.lua:7
0010 . RET0 0 1
0022 JFORL 3 1
---- TRACE 2 IR
0001 int SLOAD #4 PI
0002 int ADD 0001 +1
0003 > int LE 0002 +10000
0004 num CONV 0002 num.int
---- TRACE 2 mcode 59
0bcbfd5f mov dword [0x414bc410], 0x2
0bcbfd6a mov edx, [0x414bc4b4]
0bcbfd71 add ebp, +0x01
0bcbfd74 cmp ebp, 0x2710
0bcbfd7a jg 0x0bcb0014 ->1
0bcbfd80 xorps xmm7, xmm7
0bcbfd83 cvtsi2sd xmm7, ebp
0bcbfd87 movsd [rdx+0x30], xmm7
0bcbfd8c movsd [rdx+0x18], xmm7
0bcbfd91 add rsp, +0x10
0bcbfd95 jmp 0x0bcbfd9d
---- TRACE 2 stop -> 1
---- TRACE 3 start 1/2 t.lua:7
0010 . RET0 0 1
0022 JFORL 3 1
---- TRACE 3 IR
0001 int SLOAD #4 PI
0002 int ADD 0001 +1
0003 > int LE 0002 +10000
0004 num CONV 0002 num.int
---- TRACE 3 mcode 59
0bcbfd21 mov dword [0x414bc410], 0x3
0bcbfd2c mov edx, [0x414bc4b4]
0bcbfd33 add ebp, +0x01
0bcbfd36 cmp ebp, 0x2710
0bcbfd3c jg 0x0bcb0014 ->1
0bcbfd42 xorps xmm7, xmm7
0bcbfd45 cvtsi2sd xmm7, ebp
0bcbfd49 movsd [rdx+0x30], xmm7
0bcbfd4e movsd [rdx+0x18], xmm7
0bcbfd53 add rsp, +0x10
0bcbfd57 jmp 0x0bcbfd9d
---- TRACE 3 stop -> 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment