Wan-Lin Hu

11 papers C 1Misc 1Journal 7Unranked 2
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Roussel Rahman, Aashwin Ananda Mishra, Wan-Lin Hu
2024 J jnl
CoRR
Jonathan Segal, Wan-Lin Hu, Paul Fuoss, Frank E. Ritter, Jeff Shrager
2024 J jnl
CoRR
Roussel Rahman, Jane Shtalenkova, Aashwin Ananda Mishra, Wan-Lin Hu
2024 J jnl
CoRR
Antonin Sulc, Alex Bien, Annika Eichler, Daniel Ratner, Florian Rehm, Frank Mayet, Gregor Hartmann, Hayden Hoschouer, Henrik Tünnermann, Jan Kaiser, Jason St. John, Jennefer Maldonado, Kyle J. Hazelwood, Raimund Kammering, Thorsten Hellert, Tim Wilksen, Verena Kain, Wan-Lin Hu
2019 J jnl
IEEE Trans. Hum. Mach. Syst.
Wan-Lin Hu, Kumar Akash, Tahira Reid, Neera Jain
2019 conf
HCI (6)
Wan-Lin Hu, Claudio Rivetta, Erin MacDonald, David P. Chassin
2019 conf
HICSS
Wan-Lin Hu, Claudio Rivetta, Erin MacDonald, David P. Chassin
2018 J jnl
CoRR
Kumar Akash, Wan-Lin Hu, Neera Jain, Tahira Reid
2018 J jnl
ACM Trans. Interact. Intell. Syst.
Kumar Akash, Wan-Lin Hu, Neera Jain, Tahira Reid
2017 C conf
ACC
Kumar Akash, Wan-Lin Hu, Tahira Reid, Neera Jain
2015 Misc conf
ICCS
Wan-Lin Hu, Janette J. Meyer, Zhaosen Wang, Tahira Reid, Douglas E. Adams, Sunil Prabnakar, Alok R. Chaturvedi
test1.txt
← Index test1.txt plaintext
Truncated preview: showing the first 16384 bytes out of 43286155 total.
{'decompiled': [{'decompiled_function_hash': '1f0dd5f0fe1f0f28d39c8f98bf5eb5b06a98405389873053efd1df2f3ca12179', 'decompiled_function': 'bool z\n\nif (arg3 == *arg2)\n    *arg2 = arg1\n    z = true\nelse\n    *arg2\n    z = false\n\nint64_t result\nresult.b = z\nreturn result', 'decompiled_function_name': 'sync/atomic.CompareAndSwapUintptr', 'decompiled_function_prototype': 'int64_t sync/atomic.CompareAndSwapUintptr(int64_t arg1, int64_t* arg2 @ rax, int64_t arg3 @ rbx)', 'decompiled_function_address': 4198528, 'function_type': 'USER', 'functions_caller': [], 'functions_call': [], 'flattened_score': 0.0, 'mba_score': 0.0, 'disassembled_function_hash': '09e03a03d3a93deea76172fc49c83d407cff050807a0e40d5b25b8848182f060'}, {'decompiled_function_hash': '02b054c1841b6532a667e3e61f8c3363dffbc0893dc9cee31e16e6438a6b32ee', 'decompiled_function': 'int64_t rcx = data_6531e8\nint64_t* internal/abi.kindNames_1 = internal/abi.kindNames\n\nif (arg1 s>= rcx)\n    if (rcx u> 0)\n        internal/abi.kindNames_1[1]\n        return *internal/abi.kindNames_1\n    \n    runtime.panicIndex(0)\nelse if (arg1 u< rcx)\n    internal/abi.kindNames_1[arg1 * 2 + 1]\n    return internal/abi.kindNames_1[arg1 * 2]\n\nruntime.panicIndexU()\nbreakpoint', 'decompiled_function_name': 'internal/abi.Kind.String', 'decompiled_function_prototype': 'int64_t internal/abi.Kind.String(int64_t arg1 @ rax)', 'decompiled_function_address': 4198720, 'function_type': 'USER', 'functions_caller': [], 'functions_call': ['runtime.panicIndex(0)', 'runtime.panicIndexU()'], 'flattened_score': 0.0, 'mba_score': 0.0, 'disassembled_function_hash': 'ba0c8a4a2a408f300d085876a7263294d4b54f4214bc693afe46b9e8378cbf31'}, {'decompiled_function_hash': '03a962adee69ce6e97437b8250ca1e912d9f55f0c17a29845e7e55e9544b5fa9', 'decompiled_function': 'if ((zx.q(*(arg1 + 0x17)) & 0x1f) != 0x11)\n    return 0\n\nreturn *(arg1 + 0x40)', 'decompiled_function_name': 'internal/abi.(*Type).Len', 'decompiled_function_prototype': 'int64_t internal/abi.(*Type).Len(void* arg1 @ rax)', 'decompiled_function_address': 4198816, 'function_type': 'USER', 'functions_caller': [], 'functions_call': [], 'flattened_score': 0.0, 'mba_score': 0.3333333333333333, 'disassembled_function_hash': 'a2843f9a81f7822d6b6b55e43df329ee31eed92dae8dc41ca991d56d7632c1b9'}, {'decompiled_function_hash': 'd782b427b58ad2cf84c6a7c609d1d872f14db0788919434f18e9c183125af6d3', 'decompiled_function': 'void* rsi_4\n\nif ((*(arg1 + 0x14) & 1) == 0)\n    rsi_4 = nullptr\nelse\n    int64_t rsi_3 = (zx.q(*(arg1 + 0x17)) & 0x1f) - 0x11\n    \n    if (rsi_3 u<= 8)\n        jump(internal/abi.(*Type).ExportedMethods.jump7[rsi_3])\n    \n    rsi_4 = arg1 + 0x30\n\nif (rsi_4 == 0)\n    return 0\n\nuint64_t rdx = zx.q(*(rsi_4 + 6))\n\nif (rdx.w == 0)\n    return nullptr\n\nif (rdx u<= 0x10000)\n    return rsi_4 + zx.q(*(rsi_4 + 8))\n\nruntime.panicSlice3Alen()\nbreakpoint', 'decompiled_function_name': 'internal/abi.(*Type).ExportedMethods', 'decompiled_function_prototype': 'void* internal/abi.(*Type).ExportedMethods(void* arg1 @ rax)', 'decompiled_function_address': 4198880, 'function_type': 'USER', 'functions_caller': [], 'functions_call': ['jump(internal/abi.(*Type).ExportedMethods.jump7[rsi_3])', 'runtime.panicSlice3Alen()'], 'flattened_score': 0.0, 'mba_score': 0.125, 'disassembled_function_hash': 'e2558c9cf3ebac3a28dff29dcc0b8918965ca5091e4d5e0361af301ebc9d7fba'}, {'decompiled_function_hash': '407d3d24d10ffe65a17c09aa88e6d7283d00fcdd9df10741af968c91841cc9b2', 'decompiled_function': 'while (&__return_addr u<= *(arg3 + 0x10))\n    runtime.morestack_noctxt.abi0()\n\nuint64_t rcx_1 = zx.q(*(arg1 + 0x17)) & 0x1f\n\nif (rcx_1 == 0x14)\n    return *(arg1 + 0x40)\n\ninternal/abi.(*Type).ExportedMethods(arg1, rcx_1)\nreturn arg2', 'decompiled_function_name': 'internal/abi.(*Type).NumMethod', 'decompiled_function_prototype': 'int64_t internal/abi.(*Type).NumMethod(void* arg1 @ rax, int64_t arg2 @ rbx, void* arg3 @ r14)', 'decompiled_function_address': 4199072, 'function_type': 'USER', 'functions_caller': [], 'functions_call': ['internal/abi.(*Type).ExportedMethods(arg1, rcx_1)', 'runtime.morestack_noctxt.abi0()'], 'flattened_score': 1.0, 'mba_score': 0.14285714285714285, 'disassembled_function_hash': '270037f0c8addf478f25bc075eb0dc05fc54dff87fba6dff63ab8d0555e4929a'}, {'decompiled_function_hash': '9f2a44ad4622a0e2d0e1b439b1d46754301fd5f7060b91e3766482b1383494da', 'decompiled_function': 'if (arg1 == 0)\n    return 0\n\nint64_t rcx = 0\nint64_t rdx = 0\n\nwhile (true)\n    int64_t rbx_2 = rcx * 7\n    *(arg1 + rcx + 1)\n    \n    if (rbx_2 s< 0)\n        runtime.panicshift()\n        breakpoint\n    \n    uint32_t rdi_3 = zx.d(*(arg1 + rcx + 1))\n    rdx += (zx.q(rdi_3) & 0x7f) << rbx_2.b & sbb.q(rbx_2, rbx_2, rbx_2 u< 0x40)\n    \n    if ((rdi_3.b & 0x80) == 0)\n        break\n    \n    rcx += 1\n\nint64_t rcx_1\n\nif (rdx != 1)\n    rcx_1 = 0\nelse\n    rcx_1.b = *(arg1 + 2) == 0x5f\n\nreturn zx.q(rcx_1.d)', 'decompiled_function_name': 'internal/abi.Name.IsBlank', 'decompiled_function_prototype': 'uint64_t internal/abi.Name.IsBlank(void* arg1 @ rax)', 'decompiled_function_address': 4199168, 'function_type': 'USER', 'functions_caller': [], 'functions_call': ['runtime.panicshift()'], 'flattened_score': 0.7692307692307693, 'mba_score': 0.05, 'disassembled_function_hash': '7a693574e5a54de381301402832a96b61c8f4d2a2671d8150e93fb29f8692e0f'}, {'decompiled_function_hash': 'aaadbfaff6f26ed203060269065749f25f44d295aadde2386ab73f8c4a5dd767', 'decompiled_function': 'while (true)\n    int64_t* rsp\n    \n    if (rsp u> *(arg3 + 0x10))\n        *(rsp - 8) = arg2\n        rsp -= 8\n        arg2 = rsp\n        \n        if (arg1 == 0)\n            *rsp\n            return 0\n        \n        void* rcx_1 = nullptr\n        int64_t rdx_1 = 0\n        \n        while (true)\n            void* rsi_2 = rcx_1 * 7\n            *(rcx_1 + arg1 + 1)\n            \n            if (rsi_2 s< 0)\n                break\n            \n            uint32_t r8_3 = zx.d(*(rcx_1 + arg1 + 1))\n            rdx_1 += (zx.q(r8_3) & 0x7f) << rsi_2.b & sbb.q(rsi_2, rsi_2, rsi_2 u< 0x40)\n            \n            if ((r8_3.b & 0x80) == 0)\n                if (rdx_1 s>= 0)\n                    int64_t rcx_4 = neg.q(rcx_1 + arg1 + 2)\n                    \n                    if (rcx_4 u>= rdx_1)\n                        *rsp\n                        return rcx_1 + arg1 + 2\n                    \n                    if (rcx_1 + arg1 != -2)\n                        runtime.panicunsafestringlen(rcx_4)\n                    \n                    runtime.panicunsafestringnilptr()\n                \n                runtime.panicunsafestringlen()\n                break\n            \n            rcx_1 += 1\n        \n        arg1 = runtime.panicshift()\n    \n    rsp[1] = arg1\n    runtime.morestack_noctxt.abi0()\n    arg1 = rsp[1]', 'decompiled_function_name': 'internal/abi.Name.Name', 'decompiled_function_prototype': 'void* internal/abi.Name.Name(int64_t arg1 @ rax, int64_t* arg2 @ rbp, void* arg3 @ r14)', 'decompiled_function_address': 4199296, 'function_type': 'USER', 'functions_caller': [], 'functions_call': ['runtime.panicunsafestringlen(rcx_4)', 'runtime.panicunsafestringnilptr()', 'runtime.panicunsafestringlen()', 'arg1 = runtime.panicshift()', 'runtime.morestack_noctxt.abi0()'], 'flattened_score': 1.0, 'mba_score': 0.029411764705882353, 'disassembled_function_hash': '21ad7fe65b5907f2e2bd82711c3d5cda50e2cda11dd6cb13e472a1879a0f5ee0'}, {'decompiled_function_hash': '6bc616921202fbee6edcbe36548ca6c0123ae51ecb86c0eea217f3889c581d25', 'decompiled_function': 'while (true)\n    int64_t* rsp\n    \n    if (rsp u> *(arg3 + 0x10))\n        *(rsp - 8) = arg2\n        rsp -= 8\n        arg2 = rsp\n        \n        if ((*arg1 & 2) == 0)\n            *rsp\n            return 0\n        \n        void* rcx_1 = nullptr\n        void* rdx_2 = nullptr\n        \n        while (true)\n            void* rsi_2 = rcx_1 * 7\n            *(rcx_1 + arg1 + 1)\n            \n            if (rsi_2 s< 0)\n                break\n            \n            uint32_t r8_3 = zx.d(*(rcx_1 + arg1 + 1))\n            rdx_2 += (zx.q(r8_3) & 0x7f) << rsi_2.b & sbb.q(rsi_2, rsi_2, rsi_2 u< 0x40)\n            \n            if ((r8_3.b & 0x80) == 0)\n                int64_t rcx_3 = 0\n                int64_t rbx_3 = 0\n                \n                while (true)\n                    void* rsi_4 = rdx_2 + rcx_1 + rcx_3\n                    int64_t rdi_3 = rcx_3 * 7\n                    *(arg1 + rsi_4 + 2)\n                    \n                    if (rdi_3 s< 0)\n                        break\n                    \n                    uint32_t r8_9 = zx.d(*(arg1 + rsi_4 + 2))\n                    rbx_3 += (zx.q(r8_9) & 0x7f) << rdi_3.b & sbb.q(rdi_3, rdi_3, rdi_3 u< 0x40)\n                    \n                    if ((r8_9.b & 0x80) == 0)\n                        if (rbx_3 s>= 0)\n                            int64_t rcx_6 = neg.q(arg1 + rsi_4 + 3)\n                            \n                            if (rcx_6 u>= rbx_3)\n                                *rsp\n                                return arg1 + rsi_4 + 3\n                            \n                            if (arg1 + rsi_4 != -3)\n                                runtime.panicunsafestringlen(rcx_6)\n                            \n                            runtime.panicunsafestringnilptr()\n                        \n                        runtime.panicunsafestringlen()\n                        break\n                    \n                    rcx_3 += 1\n                \n                runtime.panicshift()\n                break\n            \n            rcx_1 += 1\n        \n        arg1 = runtime.panicshift()\n    \n    rsp[1] = arg1\n    runtime.morestack_noctxt.abi0()\n    arg1 = rsp[1]', 'decompiled_function_name': 'internal/abi.Name.Tag', 'decompiled_function_prototype': 'void* internal/abi.Name.Tag(char* arg1 @ rax, int64_t* arg2 @ rbp, void* arg3 @ r14)', 'decompiled_function_address': 4199488, 'function_type': 'USER', 'functions_caller': [], 'functions_call': ['runtime.panicunsafestringlen(rcx_6)', 'runtime.panicunsafestringnilptr()', 'runtime.panicunsafestringlen()', 'runtime.panicshift()', 'arg1 = runtime.panicshift()', 'runtime.morestack_noctxt.abi0()'], 'flattened_score': 1.0, 'mba_score': 0.041666666666666664, 'disassembled_function_hash': '0621c0c17af04d429b48b7855fd82627f2e835ec864eaa49d0de3183fd3d9fbf'}, {'decompiled_function_hash': '917d57a1b59aad9ee7b1197909e67f4ee8d39a0d26f2390ceacbbc54bde37a43', 'decompiled_function': 'while (true)\n    void* rsp\n    \n    if (rsp - 0x30 u> *(arg9 + 0x10))\n        *(rsp - 8) = arg6\n        arg6 = rsp - 8\n        rsp -= 0xb0\n        *(rsp + 0xb8) = arg4\n        *(rsp + 0xc8) = arg1\n        \n        if (arg5 s< 0x20000000)\n            if (arg8 s< 0x20000000)\n                __builtin_memset(rsp + 0x84, 0, 0x14)\n                int64_t rdx = arg5\n                int64_t r9_1 = 0\n                \n                while (true)\n                    char r10_2 = arg5.b\n                    arg5 s>>= 7\n                    char r10_3 = r10_2 & 0x7f\n                    \n                    if (arg5 == 0)\n                        if (r9_1 u< 0xa)\n                            *(rsp + r9_1 + 0x8e) = r10_3\n                            int64_t rbx = arg8\n                            int64_t r10_4 = 0\n                            \n                            while (true)\n                                char r11_2 = arg8.b\n                                arg8 s>>= 7\n                                char r11_3 = r11_2 & 0x7f\n                                \n                                if (arg8 == 0)\n                                    if (r10_4 u< 0xa)\n                                        *(rsp + r10_4 + 0x84) = r11_3\n                                        int64_t r11_4 = rdx + r9_1\n                                        int64_t r12_3\n                                        \n                                        if (rbx == 0)\n                                            r12_3 = r9_1 + rdx + 2\n                                        else\n                                            r12_3 = rbx + r10_4 + r11_4 + 3\n                                            arg7 |= 2\n                                        \n                                        *(rsp + 0x78) = rdx\n                                        *(rsp + 0x48) = r9_1 + rdx + 2\n                                        *(rsp + 0x70) = rbx\n                                        *(rsp + 0xb8) = arg4\n                                        *(rsp + 0xc8) = arg1\n                                        *(rsp + 0x68) = r11_4\n                                        *(rsp + 0x50) = r10_4\n                                        *(rsp + 0x58) = r9_1\n                                        \n                                        if (arg3 != 0)\n                                            arg7 |= 8\n                                        \n                                        *(rsp + 0x3f) = arg7.b\n                                        *(rsp + 0x60) = r12_3\n                                        char* result = runtime.makeslice(r12_3)\n                                        void* rcx_1 = *(rsp + 0x60)\n                                        \n                                        if (rcx_1 u> 0)\n                                            *(rsp + 0xa0) = result\n                                            *result = *(rsp + 0x3f)\n                                            void* rsi = rcx_1 - 1\n                                            uint64_t rdx_6 = (zx.q((neg.q(rcx_1 - 1) s>> 0x3f).d) & 1) + result\n                                            void* rdi_2 = *(rsp + 0x58)\n                                            \n                                            if (rdi_2 + 1 s< rsi)\n                                                rsi = rdi_2 + 1\n                                            \n                                            if (rsp + 0x8e != rdx_6)\n                                                runtime.memmove(rsi, rdx_6, rsp + 0x8e)\n                                                result = *(rsp + 0xa0)\n                                                rcx_1 = *(rsp + 0x60)\n                                                rdi_2 = *(rsp + 0x58)\n                                            \n                                            if (rcx_1 u>= rdi_2 + 2)\n                                                void* rdi_3 = rcx_1 - rdi_2 - 2\n                                                void* rdx_9 = ((rdi_2 + 2) & neg.q(rcx_1 - rdi_2 - 2) s>> 0x3f) + result\n                                                void* rsi_6 = *(rsp + 0x78)\n                                                \n                                                if (rsi_6 s< rdi_3)\n                                                    rdi_3 = rsi_6\n                                                \n                                                int128_t* rbx_3 = *(rsp + 0xb8)\n                                                void* rdx_10\n                                                bool cond:0_1\n                                                \n                                                if (rbx_3 != rdx_9)\n                                                    runtime.memmove(rdi_3, rdx_9, rbx_3)\n                                                    rdx_10 = *(rsp + 0x70)\n                                                    cond:0_1 = rdx_10 == 0\n                                                    result = *(rsp + 0xa0)\n                                                    rcx_1 = *(rsp + 0x60)\n                                                else\n                                                    rdx_10 = *(rsp + 0x70)\n                                                    cond:0_1 = rdx_10 == 0\n                                                \n                                                if (cond:0_1)\n                                                    *(rsp + 0xa8)\n                                                    return result\n                                                \n                                                uint64_t rsi_7 = *(rsp + 0x48)\n