Created
April 25, 2023 01:35
-
-
Save dbonel/6ffa16ef44c63349af1c9b0b0addffa2 to your computer and use it in GitHub Desktop.
Taps::process disassembly
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
plugins/Yokai_Holiday/plugin.dylib: file format mach-o 64-bit x86-64 | |
Disassembly of section __TEXT,__text: | |
0000000000002250 <Taps::process(rack::engine::Module::ProcessArgs const&)>: | |
2250: 55 push rbp | |
2251: 48 89 e5 mov rbp, rsp | |
2254: 41 56 push r14 | |
2256: 53 push rbx | |
2257: 48 89 fb mov rbx, rdi | |
225a: 80 bf 2c e9 4c 00 00 cmp byte ptr [rdi + 5040428], 0 | |
2261: 74 2f je 0x2292 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x42> | |
2263: f3 0f 10 06 movss xmm0, dword ptr [rsi] ## xmm0 = mem[0],zero,zero,zero | |
2267: 48 89 df mov rdi, rbx | |
226a: e8 31 04 00 00 call 0x26a0 <Taps::check_params(float)> | |
226f: 48 8b 43 38 mov rax, qword ptr [rbx + 56] | |
2273: 0f b6 50 40 movzx edx, byte ptr [rax + 64] | |
2277: 85 d2 test edx, edx | |
2279: 74 47 je 0x22c2 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x72> | |
227b: b9 01 00 00 00 mov ecx, 1 | |
2280: 0f 45 ca cmovne ecx, edx | |
2283: 83 f9 08 cmp ecx, 8 | |
2286: 73 42 jae 0x22ca <Taps::process(rack::engine::Module::ProcessArgs const&)+0x7a> | |
2288: 0f 57 c0 xorps xmm0, xmm0 | |
228b: 31 d2 xor edx, edx | |
228d: e9 1e 01 00 00 jmp 0x23b0 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x160> | |
2292: 8b 83 28 e9 4c 00 mov eax, dword ptr [rbx + 5040424] | |
2298: ff c0 inc eax | |
229a: 89 83 28 e9 4c 00 mov dword ptr [rbx + 5040424], eax | |
22a0: f3 48 0f 2a c0 cvtsi2ss xmm0, rax | |
22a5: f3 0f 10 0e movss xmm1, dword ptr [rsi] ## xmm1 = mem[0],zero,zero,zero | |
22a9: f3 0f 59 0d 4f 4a 00 00 mulss xmm1, dword ptr [rip + 19023] ## 0x6d00 <dyld_stub_binder+0x6d00> | |
22b1: 0f 2e c1 ucomiss xmm0, xmm1 | |
22b4: 76 07 jbe 0x22bd <Taps::process(rack::engine::Module::ProcessArgs const&)+0x6d> | |
22b6: c6 83 2c e9 4c 00 01 mov byte ptr [rbx + 5040428], 1 | |
22bd: 5b pop rbx | |
22be: 41 5e pop r14 | |
22c0: 5d pop rbp | |
22c1: c3 ret | |
22c2: 0f 57 c0 xorps xmm0, xmm0 | |
22c5: e9 f3 00 00 00 jmp 0x23bd <Taps::process(rack::engine::Module::ProcessArgs const&)+0x16d> | |
22ca: 89 ca mov edx, ecx | |
22cc: 83 e2 f8 and edx, -8 | |
22cf: 48 8d 7a f8 lea rdi, [rdx - 8] | |
22d3: 48 89 fe mov rsi, rdi | |
22d6: 48 c1 ee 03 shr rsi, 3 | |
22da: 48 ff c6 inc rsi | |
22dd: 41 89 f0 mov r8d, esi | |
22e0: 41 83 e0 03 and r8d, 3 | |
22e4: 48 83 ff 18 cmp rdi, 24 | |
22e8: 73 0a jae 0x22f4 <Taps::process(rack::engine::Module::ProcessArgs const&)+0xa4> | |
22ea: 0f 57 c0 xorps xmm0, xmm0 | |
22ed: 31 ff xor edi, edi | |
22ef: 0f 57 c9 xorps xmm1, xmm1 | |
22f2: eb 65 jmp 0x2359 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x109> | |
22f4: 48 83 e6 fc and rsi, -4 | |
22f8: 48 f7 de neg rsi | |
22fb: 0f 57 c0 xorps xmm0, xmm0 | |
22fe: 31 ff xor edi, edi | |
2300: 0f 57 c9 xorps xmm1, xmm1 | |
2303: 66 2e 0f 1f 84 00 00 00 00 00 nop word ptr cs:[rax + rax] | |
230d: 0f 1f 00 nop dword ptr [rax] | |
2310: 0f 10 14 b8 movups xmm2, xmmword ptr [rax + 4*rdi] | |
2314: 0f 58 d0 addps xmm2, xmm0 | |
2317: 0f 10 44 b8 10 movups xmm0, xmmword ptr [rax + 4*rdi + 16] | |
231c: 0f 58 c1 addps xmm0, xmm1 | |
231f: 0f 10 4c b8 20 movups xmm1, xmmword ptr [rax + 4*rdi + 32] | |
2324: 0f 10 5c b8 30 movups xmm3, xmmword ptr [rax + 4*rdi + 48] | |
2329: 0f 10 64 b8 40 movups xmm4, xmmword ptr [rax + 4*rdi + 64] | |
232e: 0f 58 e1 addps xmm4, xmm1 | |
2331: 0f 58 e2 addps xmm4, xmm2 | |
2334: 0f 10 54 b8 50 movups xmm2, xmmword ptr [rax + 4*rdi + 80] | |
2339: 0f 58 d3 addps xmm2, xmm3 | |
233c: 0f 58 d0 addps xmm2, xmm0 | |
233f: 0f 10 44 b8 60 movups xmm0, xmmword ptr [rax + 4*rdi + 96] | |
2344: 0f 58 c4 addps xmm0, xmm4 | |
2347: 0f 10 4c b8 70 movups xmm1, xmmword ptr [rax + 4*rdi + 112] | |
234c: 0f 58 ca addps xmm1, xmm2 | |
234f: 48 83 c7 20 add rdi, 32 | |
2353: 48 83 c6 04 add rsi, 4 | |
2357: 75 b7 jne 0x2310 <Taps::process(rack::engine::Module::ProcessArgs const&)+0xc0> | |
2359: 4d 85 c0 test r8, r8 | |
235c: 74 2a je 0x2388 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x138> | |
235e: 48 8d 74 b8 10 lea rsi, [rax + 4*rdi + 16] | |
2363: 49 c1 e0 05 shl r8, 5 | |
2367: 31 ff xor edi, edi | |
2369: 0f 1f 80 00 00 00 00 nop dword ptr [rax] | |
2370: 0f 10 54 3e f0 movups xmm2, xmmword ptr [rsi + rdi - 16] | |
2375: 0f 58 c2 addps xmm0, xmm2 | |
2378: 0f 10 14 3e movups xmm2, xmmword ptr [rsi + rdi] | |
237c: 0f 58 ca addps xmm1, xmm2 | |
237f: 48 83 c7 20 add rdi, 32 | |
2383: 49 39 f8 cmp r8, rdi | |
2386: 75 e8 jne 0x2370 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x120> | |
2388: 0f 58 c1 addps xmm0, xmm1 | |
238b: 0f 28 c8 movaps xmm1, xmm0 | |
238e: 66 0f 15 c8 unpckhpd xmm1, xmm0 ## xmm1 = xmm1[1],xmm0[1] | |
2392: 0f 58 c8 addps xmm1, xmm0 | |
2395: f3 0f 16 c1 movshdup xmm0, xmm1 ## xmm0 = xmm1[1,1,3,3] | |
2399: f3 0f 58 c1 addss xmm0, xmm1 | |
239d: 48 39 ca cmp rdx, rcx | |
23a0: 74 1b je 0x23bd <Taps::process(rack::engine::Module::ProcessArgs const&)+0x16d> | |
23a2: 66 2e 0f 1f 84 00 00 00 00 00 nop word ptr cs:[rax + rax] | |
23ac: 0f 1f 40 00 nop dword ptr [rax] | |
23b0: f3 0f 58 04 90 addss xmm0, dword ptr [rax + 4*rdx] | |
23b5: 48 ff c2 inc rdx | |
23b8: 48 39 d1 cmp rcx, rdx | |
23bb: 75 f3 jne 0x23b0 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x160> | |
23bd: f3 0f 10 8b c8 e8 4c 00 movss xmm1, dword ptr [rbx + 5040328] ## xmm1 = mem[0],zero,zero,zero | |
23c5: f3 0f 59 8b f0 e8 4c 00 mulss xmm1, dword ptr [rbx + 5040368] | |
23cd: f3 0f 58 c8 addss xmm1, xmm0 | |
23d1: 4c 63 93 cc e8 4c 00 movsxd r10, dword ptr [rbx + 5040332] | |
23d8: 44 8b 83 0c e9 4c 00 mov r8d, dword ptr [rbx + 5040396] | |
23df: 43 8d 04 10 lea eax, [r8 + r10] | |
23e3: 8b 8b dc e8 4c 00 mov ecx, dword ptr [rbx + 5040348] | |
23e9: 31 d2 xor edx, edx | |
23eb: f7 f1 div ecx | |
23ed: 48 63 c2 movsxd rax, edx | |
23f0: f3 0f 10 84 83 48 01 00 00 movss xmm0, dword ptr [rbx + 4*rax + 328] ## xmm0 = mem[0],zero,zero,zero | |
23f9: 48 63 93 d8 e8 4c 00 movsxd rdx, dword ptr [rbx + 5040344] | |
2400: f3 0f 11 84 93 48 99 3a 00 movss dword ptr [rbx + 4*rdx + 3840328], xmm0 | |
2409: f3 42 0f 11 8c 93 48 01 00 00 movss dword ptr [rbx + 4*r10 + 328], xmm1 | |
2413: 4c 63 8b d4 e8 4c 00 movsxd r9, dword ptr [rbx + 5040340] | |
241a: f3 42 0f 10 84 8b 48 01 00 00 movss xmm0, dword ptr [rbx + 4*r9 + 328] ## xmm0 = mem[0],zero,zero,zero | |
2424: 44 8b b3 04 e9 4c 00 mov r14d, dword ptr [rbx + 5040388] | |
242b: 41 83 fe 01 cmp r14d, 1 | |
242f: 0f 85 81 00 00 00 jne 0x24b6 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x266> | |
2435: 8b bb fc e8 4c 00 mov edi, dword ptr [rbx + 5040380] | |
243b: 89 d0 mov eax, edx | |
243d: 29 f8 sub eax, edi | |
243f: 8d 70 fe lea esi, [rax - 2] | |
2442: 05 de 93 04 00 add eax, 299998 | |
2447: 85 f6 test esi, esi | |
2449: 0f 49 c6 cmovns eax, esi | |
244c: 89 83 08 e9 4c 00 mov dword ptr [rbx + 5040392], eax | |
2452: 48 98 cdqe | |
2454: f3 0f 10 8c 83 48 99 3a 00 movss xmm1, dword ptr [rbx + 4*rax + 3840328] ## xmm1 = mem[0],zero,zero,zero | |
245d: 48 63 83 d0 e8 4c 00 movsxd rax, dword ptr [rbx + 5040336] | |
2464: 41 8d 70 0a lea esi, [r8 + 10] | |
2468: 39 f7 cmp edi, esi | |
246a: 76 66 jbe 0x24d2 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x282> | |
246c: 44 8b 9b 00 e9 4c 00 mov r11d, dword ptr [rbx + 5040384] | |
2473: 0f 57 e4 xorps xmm4, xmm4 | |
2476: f3 49 0f 2a e3 cvtsi2ss xmm4, r11 | |
247b: f3 0f 10 94 83 48 01 00 00 movss xmm2, dword ptr [rbx + 4*rax + 328] ## xmm2 = mem[0],zero,zero,zero | |
2484: f3 0f 10 ab 14 e9 4c 00 movss xmm5, dword ptr [rbx + 5040404] ## xmm5 = mem[0],zero,zero,zero | |
248c: 0f 28 dd movaps xmm3, xmm5 | |
248f: f3 0f 5c dc subss xmm3, xmm4 | |
2493: f3 0f 5e dd divss xmm3, xmm5 | |
2497: f3 0f 11 9b 10 e9 4c 00 movss dword ptr [rbx + 5040400], xmm3 | |
249f: 0f 57 e4 xorps xmm4, xmm4 | |
24a2: 0f 2e e3 ucomiss xmm4, xmm3 | |
24a5: 76 47 jbe 0x24ee <Taps::process(rack::engine::Module::ProcessArgs const&)+0x29e> | |
24a7: c7 83 04 e9 4c 00 00 00 00 00 mov dword ptr [rbx + 5040388], 0 | |
24b1: 45 31 f6 xor r14d, r14d | |
24b4: eb 4a jmp 0x2500 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x2b0> | |
24b6: c7 83 fc e8 4c 00 00 00 00 00 mov dword ptr [rbx + 5040380], 0 | |
24c0: 48 63 83 d0 e8 4c 00 movsxd rax, dword ptr [rbx + 5040336] | |
24c7: f3 0f 10 8c 83 48 01 00 00 movss xmm1, dword ptr [rbx + 4*rax + 328] ## xmm1 = mem[0],zero,zero,zero | |
24d0: eb 44 jmp 0x2516 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x2c6> | |
24d2: c7 83 00 e9 4c 00 00 00 00 00 mov dword ptr [rbx + 5040384], 0 | |
24dc: c7 83 10 e9 4c 00 00 00 00 00 mov dword ptr [rbx + 5040400], 0 | |
24e6: 41 be 01 00 00 00 mov r14d, 1 | |
24ec: eb 1f jmp 0x250d <Taps::process(rack::engine::Module::ProcessArgs const&)+0x2bd> | |
24ee: f3 0f 5c ca subss xmm1, xmm2 | |
24f2: f3 0f 59 cb mulss xmm1, xmm3 | |
24f6: f3 0f 58 d1 addss xmm2, xmm1 | |
24fa: 41 be 01 00 00 00 mov r14d, 1 | |
2500: 41 8d 73 02 lea esi, [r11 + 2] | |
2504: 89 b3 00 e9 4c 00 mov dword ptr [rbx + 5040384], esi | |
250a: 0f 28 ca movaps xmm1, xmm2 | |
250d: 83 c7 02 add edi, 2 | |
2510: 89 bb fc e8 4c 00 mov dword ptr [rbx + 5040380], edi | |
2516: 8d 72 01 lea esi, [rdx + 1] | |
2519: 89 b3 d8 e8 4c 00 mov dword ptr [rbx + 5040344], esi | |
251f: 41 8d 7a 01 lea edi, [r10 + 1] | |
2523: 89 bb cc e8 4c 00 mov dword ptr [rbx + 5040332], edi | |
2529: 41 8d 71 01 lea esi, [r9 + 1] | |
252d: 89 b3 d4 e8 4c 00 mov dword ptr [rbx + 5040340], esi | |
2533: 81 fa df 93 04 00 cmp edx, 299999 | |
2539: 0f 8d d9 00 00 00 jge 0x2618 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x3c8> | |
253f: 39 cf cmp edi, ecx | |
2541: 0f 8d e3 00 00 00 jge 0x262a <Taps::process(rack::engine::Module::ProcessArgs const&)+0x3da> | |
2547: 39 ce cmp esi, ecx | |
2549: 7c 0a jl 0x2555 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x305> | |
254b: c7 83 d4 e8 4c 00 00 00 00 00 mov dword ptr [rbx + 5040340], 0 | |
2555: 31 f6 xor esi, esi | |
2557: 89 c2 mov edx, eax | |
2559: 29 fa sub edx, edi | |
255b: 0f 4c f1 cmovl esi, ecx | |
255e: 45 85 f6 test r14d, r14d | |
2561: 75 2b jne 0x258e <Taps::process(rack::engine::Module::ProcessArgs const&)+0x33e> | |
2563: 01 f2 add edx, esi | |
2565: 44 39 c2 cmp edx, r8d | |
2568: 7d 24 jge 0x258e <Taps::process(rack::engine::Module::ProcessArgs const&)+0x33e> | |
256a: c7 83 04 e9 4c 00 01 00 00 00 mov dword ptr [rbx + 5040388], 1 | |
2574: c7 83 fc e8 4c 00 00 00 00 00 mov dword ptr [rbx + 5040380], 0 | |
257e: f3 0f 10 93 4c e9 4c 00 movss xmm2, dword ptr [rbx + 5040460] ## xmm2 = mem[0],zero,zero,zero | |
2586: f3 0f 11 93 60 e9 4c 00 movss dword ptr [rbx + 5040480], xmm2 | |
258e: 39 c8 cmp eax, ecx | |
2590: 89 c2 mov edx, eax | |
2592: 0f 4f d1 cmovg edx, ecx | |
2595: 85 c0 test eax, eax | |
2597: 0f 4e d1 cmovle edx, ecx | |
259a: ff ca dec edx | |
259c: 89 93 d0 e8 4c 00 mov dword ptr [rbx + 5040336], edx | |
25a2: 48 8b 43 50 mov rax, qword ptr [rbx + 80] | |
25a6: f3 0f 11 08 movss dword ptr [rax], xmm1 | |
25aa: 48 8b 43 50 mov rax, qword ptr [rbx + 80] | |
25ae: f3 0f 11 40 50 movss dword ptr [rax + 80], xmm0 | |
25b3: f3 0f 11 8b c8 e8 4c 00 movss dword ptr [rbx + 5040328], xmm1 | |
25bb: f3 0f 10 05 41 47 00 00 movss xmm0, dword ptr [rip + 18241] ## xmm0 = mem[0],zero,zero,zero | |
## 0x6d04 <dyld_stub_binder+0x6d04> | |
25c3: f3 0f 10 8b 64 e9 4c 00 movss xmm1, dword ptr [rbx + 5040484] ## xmm1 = mem[0],zero,zero,zero | |
25cb: f3 0f 58 c8 addss xmm1, xmm0 | |
25cf: 0f 57 d2 xorps xmm2, xmm2 | |
25d2: f3 0f 5f d1 maxss xmm2, xmm1 | |
25d6: f3 0f 11 93 64 e9 4c 00 movss dword ptr [rbx + 5040484], xmm2 | |
25de: f3 0f 10 0d 12 47 00 00 movss xmm1, dword ptr [rip + 18194] ## xmm1 = mem[0],zero,zero,zero | |
## 0x6cf8 <dyld_stub_binder+0x6cf8> | |
25e6: f3 0f 5e 8b 4c e9 4c 00 divss xmm1, dword ptr [rbx + 5040460] | |
25ee: f3 0f 59 d1 mulss xmm2, xmm1 | |
25f2: 48 8b 43 68 mov rax, qword ptr [rbx + 104] | |
25f6: f3 0f 11 10 movss dword ptr [rax], xmm2 | |
25fa: f3 0f 58 83 60 e9 4c 00 addss xmm0, dword ptr [rbx + 5040480] | |
2602: f3 0f 11 83 60 e9 4c 00 movss dword ptr [rbx + 5040480], xmm0 | |
260a: f3 0f 59 c1 mulss xmm0, xmm1 | |
260e: f3 0f 11 40 04 movss dword ptr [rax + 4], xmm0 | |
2613: 5b pop rbx | |
2614: 41 5e pop r14 | |
2616: 5d pop rbp | |
2617: c3 ret | |
2618: c7 83 d8 e8 4c 00 00 00 00 00 mov dword ptr [rbx + 5040344], 0 | |
2622: 39 cf cmp edi, ecx | |
2624: 0f 8c 1d ff ff ff jl 0x2547 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x2f7> | |
262a: c7 83 cc e8 4c 00 00 00 00 00 mov dword ptr [rbx + 5040332], 0 | |
2634: f3 0f 10 93 4c e9 4c 00 movss xmm2, dword ptr [rbx + 5040460] ## xmm2 = mem[0],zero,zero,zero | |
263c: f3 0f 11 93 64 e9 4c 00 movss dword ptr [rbx + 5040484], xmm2 | |
2644: 31 ff xor edi, edi | |
2646: 39 ce cmp esi, ecx | |
2648: 0f 8d fd fe ff ff jge 0x254b <Taps::process(rack::engine::Module::ProcessArgs const&)+0x2fb> | |
264e: e9 02 ff ff ff jmp 0x2555 <Taps::process(rack::engine::Module::ProcessArgs const&)+0x305> | |
2653: 66 2e 0f 1f 84 00 00 00 00 00 nop word ptr cs:[rax + rax] | |
265d: 0f 1f 00 nop dword ptr [rax] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment