Skip to content

Instantly share code, notes, and snippets.

@bitshifter
Created February 19, 2022 22:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bitshifter/b53df0274bd16c15f7722501afdbc10b to your computer and use it in GitHub Desktop.
Save bitshifter/b53df0274bd16c15f7722501afdbc10b to your computer and use it in GitHub Desktop.
msvc software fmaf
; id = {0xffffffff}, range = [0x000000018008f810-0x000000018008fab0), name="fmaf"
; Source location: unknown
7FFF8B1DF810: 48 8B C4 movq %rsp, %rax
7FFF8B1DF813: 55 pushq %rbp
7FFF8B1DF814: 53 pushq %rbx
7FFF8B1DF815: 56 pushq %rsi
7FFF8B1DF816: 57 pushq %rdi
7FFF8B1DF817: 41 56 pushq %r14
7FFF8B1DF819: 48 8D 68 A1 leaq -0x5f(%rax), %rbp
7FFF8B1DF81D: 48 81 EC B0 00 00 00 subq $0xb0, %rsp
7FFF8B1DF824: 0F 29 70 C8 movaps %xmm6, -0x38(%rax)
7FFF8B1DF828: 0F 29 78 B8 movaps %xmm7, -0x48(%rax)
7FFF8B1DF82C: 44 0F 29 40 A8 movaps %xmm8, -0x58(%rax)
7FFF8B1DF831: 48 8B 05 18 FC 05 00 movq 0x5fc18(%rip), %rax
7FFF8B1DF838: 48 33 C4 xorq %rsp, %rax
7FFF8B1DF83B: 48 89 45 F7 movq %rax, -0x9(%rbp)
7FFF8B1DF83F: 33 F6 xorl %esi, %esi
7FFF8B1DF841: 44 0F 28 C2 movaps %xmm2, %xmm8
7FFF8B1DF845: 39 35 29 11 06 00 cmpl %esi, 0x61129(%rip)
7FFF8B1DF84B: 0F 28 F1 movaps %xmm1, %xmm6
7FFF8B1DF84E: 0F 28 F8 movaps %xmm0, %xmm7
7FFF8B1DF851: F3 0F 11 75 C7 movss %xmm6, -0x39(%rbp)
7FFF8B1DF856: F3 0F 11 7D AF movss %xmm7, -0x51(%rbp)
7FFF8B1DF85B: F3 44 0F 11 45 D7 movss %xmm8, -0x29(%rbp)
7FFF8B1DF861: 74 29 je 0x7fff8b1df88c ; <+124>
7FFF8B1DF863: F3 44 0F 11 45 D7 movss %xmm8, -0x29(%rbp)
7FFF8B1DF869: F3 0F 10 5D D7 movss -0x29(%rbp), %xmm3 ; xmm3 = mem[0],zero,zero,zero
7FFF8B1DF86E: F3 0F 11 75 C7 movss %xmm6, -0x39(%rbp)
7FFF8B1DF873: F3 0F 10 4D C7 movss -0x39(%rbp), %xmm1 ; xmm1 = mem[0],zero,zero,zero
7FFF8B1DF878: F3 0F 11 7D AF movss %xmm7, -0x51(%rbp)
7FFF8B1DF87D: F3 0F 10 45 AF movss -0x51(%rbp), %xmm0 ; xmm0 = mem[0],zero,zero,zero
7FFF8B1DF882: C4 E2 71 A9 C3 vfmadd213ss %xmm3, %xmm1, %xmm0 ; xmm0 = (xmm1 * xmm0) + xmm3
7FFF8B1DF887: E9 EF 01 00 00 jmp 0x7fff8b1dfa7b ; <+619>
7FFF8B1DF88C: 48 8D 55 C3 leaq -0x3d(%rbp), %rdx
7FFF8B1DF890: F3 0F 11 7D C3 movss %xmm7, -0x3d(%rbp)
7FFF8B1DF895: 48 8D 4D BB leaq -0x45(%rbp), %rcx
7FFF8B1DF899: F3 0F 11 75 CF movss %xmm6, -0x31(%rbp)
7FFF8B1DF89E: F3 44 0F 11 45 A7 movss %xmm8, -0x59(%rbp)
7FFF8B1DF8A4: E8 77 69 00 00 callq 0x7fff8b1e6220 ; _fdunscale
7FFF8B1DF8A9: 41 BE 02 00 00 00 movl $0x2, %r14d
7FFF8B1DF8AF: 0F B7 F8 movzwl %ax, %edi
7FFF8B1DF8B2: 66 41 3B C6 cmpw %r14w, %ax
7FFF8B1DF8B6: 75 08 jne 0x7fff8b1df8c0 ; <+176>
7FFF8B1DF8B8: 0F 28 C7 movaps %xmm7, %xmm0
7FFF8B1DF8BB: E9 BB 01 00 00 jmp 0x7fff8b1dfa7b ; <+619>
7FFF8B1DF8C0: 48 8D 55 CF leaq -0x31(%rbp), %rdx
7FFF8B1DF8C4: 48 8D 4D B7 leaq -0x49(%rbp), %rcx
7FFF8B1DF8C8: E8 53 69 00 00 callq 0x7fff8b1e6220 ; _fdunscale
7FFF8B1DF8CD: 0F B7 D8 movzwl %ax, %ebx
7FFF8B1DF8D0: 66 41 3B C6 cmpw %r14w, %ax
7FFF8B1DF8D4: 75 08 jne 0x7fff8b1df8de ; <+206>
7FFF8B1DF8D6: 0F 28 C6 movaps %xmm6, %xmm0
7FFF8B1DF8D9: E9 9D 01 00 00 jmp 0x7fff8b1dfa7b ; <+619>
7FFF8B1DF8DE: 48 8D 55 A7 leaq -0x59(%rbp), %rdx
7FFF8B1DF8E2: 48 8D 4D BF leaq -0x41(%rbp), %rcx
7FFF8B1DF8E6: E8 35 69 00 00 callq 0x7fff8b1e6220 ; _fdunscale
7FFF8B1DF8EB: 66 41 3B C6 cmpw %r14w, %ax
7FFF8B1DF8EF: 0F 84 82 01 00 00 je 0x7fff8b1dfa77 ; <+615>
7FFF8B1DF8F5: BA 01 00 00 00 movl $0x1, %edx
7FFF8B1DF8FA: 66 3B FA cmpw %dx, %di
7FFF8B1DF8FD: 0F 84 30 01 00 00 je 0x7fff8b1dfa33 ; <+547>
7FFF8B1DF903: 66 3B DA cmpw %dx, %bx
7FFF8B1DF906: 0F 84 27 01 00 00 je 0x7fff8b1dfa33 ; <+547>
7FFF8B1DF90C: 66 3B C2 cmpw %dx, %ax
7FFF8B1DF90F: 0F 84 62 01 00 00 je 0x7fff8b1dfa77 ; <+615>
7FFF8B1DF915: 66 85 FF testw %di, %di
7FFF8B1DF918: 0F 84 07 01 00 00 je 0x7fff8b1dfa25 ; <+533>
7FFF8B1DF91E: 66 85 DB testw %bx, %bx
7FFF8B1DF921: 0F 84 FE 00 00 00 je 0x7fff8b1dfa25 ; <+533>
7FFF8B1DF927: 66 85 C0 testw %ax, %ax
7FFF8B1DF92A: 0F 84 F5 00 00 00 je 0x7fff8b1dfa25 ; <+533>
7FFF8B1DF930: 0F BF 45 BB movswl -0x45(%rbp), %eax
7FFF8B1DF934: 0F BF 5D B7 movswl -0x49(%rbp), %ebx
7FFF8B1DF938: 0F B7 4D BF movzwl -0x41(%rbp), %ecx
7FFF8B1DF93C: 03 D8 addl %eax, %ebx
7FFF8B1DF93E: 0F B7 45 B1 movzwl -0x4f(%rbp), %eax
7FFF8B1DF942: 66 2B CB subw %bx, %cx
7FFF8B1DF945: 66 33 45 C9 xorw -0x37(%rbp), %ax
7FFF8B1DF949: 66 33 45 D9 xorw -0x27(%rbp), %ax
7FFF8B1DF94D: 0F 8D D2 00 00 00 jge 0x7fff8b1dfa25 ; <+533>
7FFF8B1DF953: 41 8D 04 0E leal (%r14,%rcx), %eax
7FFF8B1DF957: 8D 7A 03 leal 0x3(%rdx), %edi
7FFF8B1DF95A: 66 3B C7 cmpw %di, %ax
7FFF8B1DF95D: 0F 87 C2 00 00 00 ja 0x7fff8b1dfa25 ; <+533>
7FFF8B1DF963: 0F BF D1 movswl %cx, %edx
7FFF8B1DF966: 48 8D 4D A7 leaq -0x59(%rbp), %rcx
7FFF8B1DF96A: E8 41 65 00 00 callq 0x7fff8b1e5eb0 ; _fdscale
7FFF8B1DF96F: F3 0F 10 55 C3 movss -0x3d(%rbp), %xmm2 ; xmm2 = mem[0],zero,zero,zero
7FFF8B1DF974: 48 8D 4D E7 leaq -0x19(%rbp), %rcx
7FFF8B1DF978: 8B D7 movl %edi, %edx
7FFF8B1DF97A: E8 E1 FD FF FF callq 0x7fff8b1df760 ; _set_FMA3_enable + 1584
7FFF8B1DF97F: F3 0F 10 55 CF movss -0x31(%rbp), %xmm2 ; xmm2 = mem[0],zero,zero,zero
7FFF8B1DF984: 48 8D 4D D7 leaq -0x29(%rbp), %rcx
7FFF8B1DF988: 41 8B D6 movl %r14d, %edx
7FFF8B1DF98B: E8 D0 FD FF FF callq 0x7fff8b1df760 ; _set_FMA3_enable + 1584
7FFF8B1DF990: F3 0F 10 55 A7 movss -0x59(%rbp), %xmm2 ; xmm2 = mem[0],zero,zero,zero
7FFF8B1DF995: 48 8D 4D C7 leaq -0x39(%rbp), %rcx
7FFF8B1DF999: 41 8B D6 movl %r14d, %edx
7FFF8B1DF99C: E8 BF FD FF FF callq 0x7fff8b1df760 ; _set_FMA3_enable + 1584
7FFF8B1DF9A1: F3 0F 10 55 D7 movss -0x29(%rbp), %xmm2 ; xmm2 = mem[0],zero,zero,zero
7FFF8B1DF9A6: 48 8D 4D E7 leaq -0x19(%rbp), %rcx
7FFF8B1DF9AA: 8B D7 movl %edi, %edx
7FFF8B1DF9AC: E8 AF FB FF FF callq 0x7fff8b1df560 ; _set_FMA3_enable + 1072
7FFF8B1DF9B1: F3 0F 10 75 DB movss -0x25(%rbp), %xmm6 ; xmm6 = mem[0],zero,zero,zero
7FFF8B1DF9B6: 0F 2E 35 83 A4 03 00 ucomiss 0x3a483(%rip), %xmm6 ; _wctype + 54176
7FFF8B1DF9BD: 7A 02 jp 0x7fff8b1df9c1 ; <+433>
7FFF8B1DF9BF: 74 30 je 0x7fff8b1df9f1 ; <+481>
7FFF8B1DF9C1: F3 0F 10 55 C3 movss -0x3d(%rbp), %xmm2 ; xmm2 = mem[0],zero,zero,zero
7FFF8B1DF9C6: 48 8D 4D D7 leaq -0x29(%rbp), %rcx
7FFF8B1DF9CA: 8B D7 movl %edi, %edx
7FFF8B1DF9CC: E8 8F FD FF FF callq 0x7fff8b1df760 ; _set_FMA3_enable + 1584
7FFF8B1DF9D1: 0F 28 D6 movaps %xmm6, %xmm2
7FFF8B1DF9D4: 48 8D 4D D7 leaq -0x29(%rbp), %rcx
7FFF8B1DF9D8: 8B D7 movl %edi, %edx
7FFF8B1DF9DA: E8 81 FB FF FF callq 0x7fff8b1df560 ; _set_FMA3_enable + 1072
7FFF8B1DF9DF: 44 8B CF movl %edi, %r9d
7FFF8B1DF9E2: 4C 8D 45 D7 leaq -0x29(%rbp), %r8
7FFF8B1DF9E6: 8B D7 movl %edi, %edx
7FFF8B1DF9E8: 48 8D 4D E7 leaq -0x19(%rbp), %rcx
7FFF8B1DF9EC: E8 A7 FA FF FF callq 0x7fff8b1df498 ; _set_FMA3_enable + 872
7FFF8B1DF9F1: 45 8B CE movl %r14d, %r9d
7FFF8B1DF9F4: 4C 8D 45 C7 leaq -0x39(%rbp), %r8
7FFF8B1DF9F8: 8B D7 movl %edi, %edx
7FFF8B1DF9FA: 48 8D 4D E7 leaq -0x19(%rbp), %rcx
7FFF8B1DF9FE: E8 95 FA FF FF callq 0x7fff8b1df498 ; _set_FMA3_enable + 872
7FFF8B1DFA03: 8B D7 movl %edi, %edx
7FFF8B1DFA05: 48 8D 4D E7 leaq -0x19(%rbp), %rcx
7FFF8B1DFA09: E8 FE FA FF FF callq 0x7fff8b1df50c ; _set_FMA3_enable + 988
7FFF8B1DFA0E: 8B D3 movl %ebx, %edx
7FFF8B1DFA10: F3 0F 11 45 A7 movss %xmm0, -0x59(%rbp)
7FFF8B1DFA15: 48 8D 4D A7 leaq -0x59(%rbp), %rcx
7FFF8B1DFA19: E8 92 64 00 00 callq 0x7fff8b1e5eb0 ; _fdscale
7FFF8B1DFA1E: F3 0F 10 45 A7 movss -0x59(%rbp), %xmm0 ; xmm0 = mem[0],zero,zero,zero
7FFF8B1DFA23: EB 56 jmp 0x7fff8b1dfa7b ; <+619>
7FFF8B1DFA25: F3 0F 59 F7 mulss %xmm7, %xmm6
7FFF8B1DFA29: F3 41 0F 58 F0 addss %xmm8, %xmm6
7FFF8B1DFA2E: E9 A3 FE FF FF jmp 0x7fff8b1df8d6 ; <+198>
7FFF8B1DFA33: 66 85 FF testw %di, %di
7FFF8B1DFA36: 74 2E je 0x7fff8b1dfa66 ; <+598>
7FFF8B1DFA38: 66 85 DB testw %bx, %bx
7FFF8B1DFA3B: 74 29 je 0x7fff8b1dfa66 ; <+598>
7FFF8B1DFA3D: 66 3B C2 cmpw %dx, %ax
7FFF8B1DFA40: 75 16 jne 0x7fff8b1dfa58 ; <+584>
7FFF8B1DFA42: 0F B7 45 B1 movzwl -0x4f(%rbp), %eax
7FFF8B1DFA46: B9 00 80 00 00 movl $0x8000, %ecx ; imm = 0x8000
7FFF8B1DFA4B: 66 33 45 C9 xorw -0x37(%rbp), %ax
7FFF8B1DFA4F: 66 33 45 D9 xorw -0x27(%rbp), %ax
7FFF8B1DFA53: 66 85 C1 testw %ax, %cx
7FFF8B1DFA56: 75 0E jne 0x7fff8b1dfa66 ; <+598>
7FFF8B1DFA58: F3 0F 59 FE mulss %xmm6, %xmm7
7FFF8B1DFA5C: F3 41 0F 58 F8 addss %xmm8, %xmm7
7FFF8B1DFA61: E9 52 FE FF FF jmp 0x7fff8b1df8b8 ; <+168>
7FFF8B1DFA66: 8B CA movl %edx, %ecx
7FFF8B1DFA68: E8 BB 66 00 00 callq 0x7fff8b1e6128 ; _ldscale + 168
7FFF8B1DFA6D: F3 0F 10 05 A3 0E 04 00 movss 0x40ea3(%rip), %xmm0 ; _wctype + 81528, xmm0 = mem[0],zero,zero,zero
7FFF8B1DFA75: EB 04 jmp 0x7fff8b1dfa7b ; <+619>
7FFF8B1DFA77: 41 0F 28 C0 movaps %xmm8, %xmm0
7FFF8B1DFA7B: 48 8B 4D F7 movq -0x9(%rbp), %rcx
7FFF8B1DFA7F: 48 33 CC xorq %rsp, %rcx
7FFF8B1DFA82: E8 F9 A9 FB FF callq 0x7fff8b19a480 ; __report_gsfailure + 656
7FFF8B1DFA87: 4C 8D 9C 24 B0 00 00 00 leaq 0xb0(%rsp), %r11
7FFF8B1DFA8F: 41 0F 28 73 F0 movaps -0x10(%r11), %xmm6
7FFF8B1DFA94: 41 0F 28 7B E0 movaps -0x20(%r11), %xmm7
7FFF8B1DFA99: 45 0F 28 43 D0 movaps -0x30(%r11), %xmm8
7FFF8B1DFA9E: 49 8B E3 movq %r11, %rsp
7FFF8B1DFAA1: 41 5E popq %r14
7FFF8B1DFAA3: 5F popq %rdi
7FFF8B1DFAA4: 5E popq %rsi
7FFF8B1DFAA5: 5B popq %rbx
7FFF8B1DFAA6: 5D popq %rbp
7FFF8B1DFAA7: C3 retq
7FFF8B1DFAA8: CC int3
7FFF8B1DFAA9: CC int3
7FFF8B1DFAAA: CC int3
7FFF8B1DFAAB: CC int3
7FFF8B1DFAAC: CC int3
7FFF8B1DFAAD: CC int3
7FFF8B1DFAAE: CC int3
7FFF8B1DFAAF: CC int3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment