Advertisement
NWPlayer123

UhsSubmitBulkRequest

Apr 13th, 2015
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.00 KB | None | 0 0
  1. int UhsSubmitBulkRequest(IOS_Ioctlv, memset)
  2. {
  3.     asm(
  4.         "stwu       %r1, -0x4F0(%r1) ;"
  5.         "stmw       %r23, 0x4CC(%r1) ;"
  6.         "mfspr      %r0, LR ;"
  7.         "mr.        %r25, %r3 ;"
  8.         "mr         %r26, %r4 ;"
  9.         "mr         %r27, %r5 ;"
  10.         "mr         %r28, %r6 ;"
  11.         "mr         %r30, %r8 ;"
  12.         "mr         %r31, %r9 ;"
  13.         "stw        r0, 0x4F4(%r1) ;"
  14.         "mr         %r29, %r7 ;"
  15.         "beq        label4 ;"
  16.         "cmpwi      %r29, 0 ;"
  17.         "beq        label4 ;"
  18.         "lwz        %r12, 0(%r25) ;"
  19.         "cmpwi      %r12, 2 ;"
  20.         "bne        label3 ;"
  21.         "addi       %r0, %r1, 0x47 ;"
  22.         "li         %r4, 0 ;"
  23.         "clrrwi     %r23, %r0, 6 ;"
  24.         "li         %r5, 0x454 ;"
  25.         "mr         %r3, %r23 ;"
  26.         "addi       %r24, %r23, 0x80 ;"
  27.         "bl         *%r22 ;"
  28.         "stw        %r30, 0x91(%r23) ;"
  29.         "li         %r0, 0xA1 ;"
  30.         "stw        %r31, 0x85(%r23) ;"
  31.         "li         %r8, 0xE ;"
  32.         "stw        %r28, 0x8D(%r23) ;"
  33.         "addi       %r12, %r23, 0xC ;"
  34.         "stw        %r8, 0x440(%r23) ;"
  35.         "cmpwi      %r28, 1 ;"
  36.         "stw        %r0, 4(%r23) ;"
  37.         "stw        %r26, 0x80(%r23) ;"
  38.         "li         %r9, 3 ;"
  39.         "stw        %r24, 0(%r23) ;"
  40.         "stw        %r9, 0x89(%r23) ;"
  41.         "stb        %r27, 0x84(%r23) ;"
  42.         "bne        label1 ;"
  43.         "stw        %r29, 0(%r12) ;"
  44.         "stw        %r30, 4(%r12) ;"
  45.         "addi       %r12, %r12, 0xC"
  46.         "jmp        label1 ;"
  47.     "label1:"
  48.         "cmpwi      %r28, 2 ;"
  49.         "mr         %r11, %r12 ;"
  50.         "bne        label2 ;"
  51.         "stw        %r29, 0(%r11) ;"
  52.         "stw        %r30, 4(%r11) ;"
  53.         "addi       %r11, %r11, 0xC"
  54.         "jmp        label2 ;"
  55.     "label2:"
  56.         "lis        %r8, 0x2AAB ;"
  57.         "subf       %r0, %r12, %r11 ;"
  58.         "addi       %r8, %r8, -0x5555 ;"
  59.         "mulhw      %r6, %r8, %r0 ;"
  60.         "subf       %r9, %r23, %r12 ;"
  61.         "srawi      %r7, %r0, 0x1F ;"
  62.         "mulhw      %r10, %r8, %r9 ;"
  63.         "srawi      %r6, %r6, 1 ;"
  64.         "subf       %r5, %r7, %r6 ;"
  65.         "srawi      %r0, %r9, 0x1F ;"
  66.         "lwz        %r3, 0xC(%r25) ;"
  67.         "srawi      %r10, %r10, 1 ;"
  68.         "mr         %r7, %r23 ;"
  69.         "li         %r4, 0xE ;"
  70.         "subf       %r6, %r0, %r10 ;"
  71.         "bl         *%r21 ;"
  72.         "jmp        ret ;"
  73.     "label3:"
  74.         "lis        %r3, -0x21 ;"
  75.         "addi       %r3, %r3, -4 ;"
  76.         "jmp        ret ;"
  77.     "label4:"
  78.         "lis        %r3, -0x21 ;"
  79.         "addi       %r3, %r3, -3 ;"
  80.         "jmp        ret ;"
  81.     "ret:"
  82.         "lmw        %r23, 0x4CC(%r1) ;"
  83.         "lwz        %r0, 0x4F4(%r1) ;"
  84.         "mtspr      LR, %r0 ;"
  85.         "addi       %r1, %r1, 0x4F0 ;"
  86.     :
  87.     : "r21" (IOS_Ioctlv), "r22" (memset)
  88.     );
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement