Created
May 23, 2017 16:33
-
-
Save p0pr0ck5/db65da1008974715862827e84c115056 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: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