Skip to content

Instantly share code, notes, and snippets.

@dbonel
Created April 25, 2023 01:35
Show Gist options
  • Save dbonel/6ffa16ef44c63349af1c9b0b0addffa2 to your computer and use it in GitHub Desktop.
Save dbonel/6ffa16ef44c63349af1c9b0b0addffa2 to your computer and use it in GitHub Desktop.
Taps::process disassembly
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