Created
May 23, 2017 16:34
-
-
Save p0pr0ck5/abec548d3cb56710a58bb44f000264b5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ luajit ./t.lua > /dev/null | |
---- TRACE 1 start t.lua:10 | |
0014 GGET 7 5 ; "math" | |
0015 TGETS 7 7 6 ; "random" | |
0016 KSHORT 8 1 | |
0017 KSHORT 9 10 | |
0018 CALL 7 2 3 | |
0000 . FUNCC ; math.random | |
0019 ISGE 0 7 | |
0020 JMP 7 => 0024 | |
0021 MOV 7 1 | |
0022 KSTR 8 7 ; "foo" | |
0023 CALL 7 1 2 | |
0000 . FUNCF 4 ; t.lua:3 | |
0001 . GGET 1 0 ; "io" | |
0002 . TGETS 1 1 1 ; "stdout" | |
0003 . MOV 2 1 | |
0004 . TGETS 1 1 2 ; "write" | |
0005 . MOV 3 0 | |
0006 . CALL 1 1 3 | |
0000 . . FUNCC ; io.method.write | |
0007 . RET0 0 1 | |
0024 FORL 3 => 0014 | |
---- TRACE 1 IR | |
0001 int SLOAD #4 CI | |
0002 fun SLOAD #0 R | |
0003 tab FLOAD 0002 func.env | |
0004 int FLOAD 0003 tab.hmask | |
0005 > int EQ 0004 +63 | |
0006 p32 FLOAD 0003 tab.node | |
0007 > p32 HREFK 0006 "math" @54 | |
0008 > tab HLOAD 0007 | |
0009 int FLOAD 0008 tab.hmask | |
0010 > int EQ 0009 +31 | |
0011 p32 FLOAD 0008 tab.node | |
0012 > p32 HREFK 0011 "random" @8 | |
0013 > fun HLOAD 0012 | |
0014 > fun EQ 0013 math.random | |
0015 num CALLS lj_math_random_step ([0x409a9dc0]) | |
0016 num SUB 0015 +1 | |
0017 num MUL 0016 +10 | |
0018 num FPMATH 0017 floor | |
0019 num ADD 0018 +1 | |
0020 > num SLOAD #1 T | |
0021 > num LT 0020 0019 | |
0022 > fun SLOAD #2 T | |
0023 > fun EQ 0022 t.lua:3 | |
0024 tab FLOAD t.lua:3 func.env | |
0025 int FLOAD 0024 tab.hmask | |
0026 > int EQ 0025 +63 | |
0027 p32 FLOAD 0024 tab.node | |
0028 > p32 HREFK 0027 "io" @9 | |
0029 > tab HLOAD 0028 | |
0030 int FLOAD 0029 tab.hmask | |
0031 > int EQ 0030 +15 | |
0032 p32 FLOAD 0029 tab.node | |
0033 > p32 HREFK 0032 "stdout" @14 | |
0034 > udt HLOAD 0033 | |
0035 u8 FLOAD 0034 udata.udtype | |
0036 > int EQ 0035 +1 | |
0037 int FLOAD {0x409a88b8} tab.hmask | |
0038 > int EQ 0037 +15 | |
0039 p32 FLOAD {0x409a88b8} tab.node | |
0040 > p32 HREFK 0039 "write" @2 | |
0041 > fun HLOAD 0040 | |
0042 > fun EQ 0041 io.method.write | |
0043 p64 FLOAD 0034 udata.file | |
0044 > p64 NE 0043 [NULL] | |
0048 int CALLS fwrite ([0x409abeb0] +1 +3 0043) | |
0049 + int ADD 0001 +1 | |
0050 > int LE 0049 +10000 | |
0051 ------ LOOP ------------ | |
0052 num CALLS lj_math_random_step ([0x409a9dc0]) | |
0053 num SUB 0052 +1 | |
0054 num MUL 0053 +10 | |
0055 num FPMATH 0054 floor | |
0056 num ADD 0055 +1 | |
0057 > num GT 0056 0020 | |
0058 int CALLS fwrite ([0x409abeb0] +1 +3 0043) | |
0059 + int ADD 0049 +1 | |
0060 > int LE 0059 +10000 | |
0061 int PHI 0049 0059 | |
---- TRACE 1 mcode 619 | |
0bcbfd8e add rsp, -0x10 | |
0bcbfd92 mov dword [0x409a4410], 0x1 | |
0bcbfd9d cvttsd2si ebp, [rdx+0x18] | |
0bcbfda2 mov eax, [rdx-0x8] | |
0bcbfda5 mov eax, [rax+0x8] | |
0bcbfda8 cmp dword [rax+0x1c], +0x3f | |
0bcbfdac jnz 0x0bcb0010 ->0 | |
0bcbfdb2 mov eax, [rax+0x14] | |
0bcbfdb5 mov rdi, 0xfffffffb409a9d88 | |
0bcbfdbf cmp rdi, [rax+0x518] | |
0bcbfdc6 jnz 0x0bcb0010 ->0 | |
0bcbfdcc cmp dword [rax+0x514], -0x0c | |
0bcbfdd3 jnz 0x0bcb0010 ->0 | |
0bcbfdd9 mov eax, [rax+0x510] | |
0bcbfddf cmp dword [rax+0x1c], +0x1f | |
0bcbfde3 jnz 0x0bcb0010 ->0 | |
0bcbfde9 mov eax, [rax+0x14] | |
0bcbfdec mov rdi, 0xfffffffb409aa990 | |
0bcbfdf6 cmp rdi, [rax+0xc8] | |
0bcbfdfd jnz 0x0bcb0010 ->0 | |
0bcbfe03 cmp dword [rax+0xc4], -0x09 | |
0bcbfe0a jnz 0x0bcb0010 ->0 | |
0bcbfe10 cmp dword [rax+0xc0], 0x409aa960 | |
0bcbfe1a jnz 0x0bcb0010 ->0 | |
0bcbfe20 mov edi, 0x409a9dc0 | |
0bcbfe25 call 0x0044d750 ->lj_math_random_step | |
0bcbfe2a movq xmm0, rax | |
0bcbfe2f mov edx, [0x409a44b4] | |
0bcbfe36 subsd xmm0, [0x409be328] | |
0bcbfe3f mulsd xmm0, [0x409be330] | |
0bcbfe48 roundsd xmm0, xmm0, 0x09 | |
0bcbfe4e addsd xmm0, [0x409be328] | |
0bcbfe57 cmp dword [rdx+0x4], 0xfffeffff | |
0bcbfe5e jnb 0x0bcb0014 ->1 | |
0bcbfe64 movsd xmm7, [rdx] | |
0bcbfe68 movsd [rsp+0x10], xmm7 | |
0bcbfe6e ucomisd xmm0, [rdx] | |
0bcbfe72 jbe 0x0bcb0018 ->2 | |
0bcbfe78 cmp dword [rdx+0xc], -0x09 | |
0bcbfe7c jnz 0x0bcb001c ->3 | |
0bcbfe82 cmp dword [rdx+0x8], 0x409abf08 | |
0bcbfe89 jnz 0x0bcb001c ->3 | |
0bcbfe8f mov eax, [0x409abf10] | |
0bcbfe96 cmp dword [rax+0x1c], +0x3f | |
0bcbfe9a jnz 0x0bcb001c ->3 | |
0bcbfea0 mov r15d, [rax+0x14] | |
0bcbfea4 mov rdi, 0xfffffffb409a8898 | |
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, 0xfffffffb409a9158 | |
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 [0x409a88d4], +0x0f | |
0bcbff1d jnz 0x0bcb001c ->3 | |
0bcbff23 mov r12d, [0x409a88cc] | |
0bcbff2b mov rdi, 0xfffffffb409a8b20 | |
0bcbff35 cmp rdi, [r12+0x38] | |
0bcbff3a jnz 0x0bcb001c ->3 | |
0bcbff40 cmp dword [r12+0x34], -0x09 | |
0bcbff46 jnz 0x0bcb001c ->3 | |
0bcbff4c cmp dword [r12+0x30], 0x409a8af8 | |
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, 0x409abeb0 | |
0bcbff7c call 0x00403b00 ->fwrite | |
0bcbff81 add ebp, +0x01 | |
0bcbff84 cmp ebp, 0x2710 | |
0bcbff8a jg 0x0bcb0020 ->4 | |
->LOOP: | |
0bcbff90 movsd xmm0, [rsp+0x10] | |
0bcbff96 mov edi, 0x409a9dc0 | |
0bcbff9b call 0x0044d750 ->lj_math_random_step | |
0bcbffa0 movq xmm7, rax | |
0bcbffa5 mov rcx, [rsp+0x8] | |
0bcbffaa subsd xmm7, [0x409be328] | |
0bcbffb3 mulsd xmm7, [0x409be330] | |
0bcbffbc roundsd xmm7, xmm7, 0x09 | |
0bcbffc2 addsd xmm7, [0x409be328] | |
0bcbffcb ucomisd xmm7, xmm0 | |
0bcbffcf jbe 0x0bcb0028 ->6 | |
0bcbffd5 mov edx, 0x3 | |
0bcbffda mov esi, 0x1 | |
0bcbffdf mov edi, 0x409abeb0 | |
0bcbffe4 call 0x00403b00 ->fwrite | |
0bcbffe9 add ebp, +0x01 | |
0bcbffec cmp ebp, 0x2710 | |
0bcbfff2 jle 0x0bcbff90 ->LOOP | |
0bcbfff4 jmp 0x0bcb002c ->7 | |
---- TRACE 1 stop -> loop | |
---- TRACE 2 start 1/6 t.lua:10 | |
0024 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 | |
0bcbfd50 mov dword [0x409a4410], 0x2 | |
0bcbfd5b mov edx, [0x409a44b4] | |
0bcbfd62 add ebp, +0x01 | |
0bcbfd65 cmp ebp, 0x2710 | |
0bcbfd6b jg 0x0bcb0014 ->1 | |
0bcbfd71 xorps xmm7, xmm7 | |
0bcbfd74 cvtsi2sd xmm7, ebp | |
0bcbfd78 movsd [rdx+0x30], xmm7 | |
0bcbfd7d movsd [rdx+0x18], xmm7 | |
0bcbfd82 add rsp, +0x10 | |
0bcbfd86 jmp 0x0bcbfd8e | |
---- TRACE 2 stop -> 1 | |
---- TRACE 3 start 1/2 t.lua:10 | |
0024 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 | |
0bcbfd12 mov dword [0x409a4410], 0x3 | |
0bcbfd1d mov edx, [0x409a44b4] | |
0bcbfd24 add ebp, +0x01 | |
0bcbfd27 cmp ebp, 0x2710 | |
0bcbfd2d jg 0x0bcb0014 ->1 | |
0bcbfd33 xorps xmm7, xmm7 | |
0bcbfd36 cvtsi2sd xmm7, ebp | |
0bcbfd3a movsd [rdx+0x30], xmm7 | |
0bcbfd3f movsd [rdx+0x18], xmm7 | |
0bcbfd44 add rsp, +0x10 | |
0bcbfd48 jmp 0x0bcbfd8e | |
---- TRACE 3 stop -> 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment