Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
210
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text:0070F4E0
  2. .text:0070F4E0 ; =============== S U B R O U T I N E =======================================
  3. .text:0070F4E0
  4. .text:0070F4E0 ; Attributes: bp-based frame
  5. .text:0070F4E0
  6. .text:0070F4E0 ; void __thiscall TryOpenPipboy(InterfaceManager *this, void (*a2)(void), signed int a3)
  7. .text:0070F4E0 TryOpenPipboy proc near ; CODE XREF: MainUILoop+2473↑p
  8. .text:0070F4E0 ; MainUILoop+2594↑p
  9. .text:0070F4E0
  10. .text:0070F4E0 var_4 = dword ptr -4
  11. .text:0070F4E0 arg_0 = dword ptr 8
  12. .text:0070F4E0 a3 = dword ptr 0Ch
  13. .text:0070F4E0
  14. .text:0070F4E0 000 55 push ebp
  15. .text:0070F4E1 004 8B EC mov ebp, esp
  16. .text:0070F4E3 004 51 push ecx
  17. .text:0070F4E4 008 56 push esi
  18. .text:0070F4E5 00C 89 4D FC mov [ebp+var_4], ecx
  19. .text:0070F4E8 00C 6A 04 push 4
  20. .text:0070F4EA 010 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  21. .text:0070F4F0 010 E8 FB 0E E9 FF call PlayerCharacter__CheckPCControlFlags ; Call Procedure
  22. .text:0070F4F5 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
  23. .text:0070F4F8 00C 85 C0 test eax, eax ; Logical Compare
  24. .text:0070F4FA 00C 0F 85 69 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  25. .text:0070F500 00C 6A 00 push 0
  26. .text:0070F502 010 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  27. .text:0070F508 010 8B 11 mov edx, [ecx]
  28. .text:0070F50A 010 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  29. .text:0070F510 010 8B 82 2C 02 00 00 mov eax, [edx+22Ch]
  30. .text:0070F516 010 FF D0 call eax ; Indirect Call Near Procedure
  31. .text:0070F518 00C 0F B6 C8 movzx ecx, al ; Move with Zero-Extend
  32. .text:0070F51B 00C 85 C9 test ecx, ecx ; Logical Compare
  33. .text:0070F51D 00C 0F 85 46 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  34. .text:0070F523 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  35. .text:0070F529 00C E8 B2 42 E6 FF call Player__GetIs3rdPersonView ; Call Procedure
  36. .text:0070F52E 00C 0F B6 F0 movzx esi, al ; Move with Zero-Extend
  37. .text:0070F531 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer ; this
  38. .text:0070F537 00C E8 24 BA DD FF call PlayerCharacter__IsNotFirstPerson ; Call Procedure
  39. .text:0070F53C 00C 0F B6 D0 movzx edx, al ; Move with Zero-Extend
  40. .text:0070F53F 00C 3B F2 cmp esi, edx ; Compare Two Operands
  41. .text:0070F541 00C 0F 85 22 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  42. .text:0070F547 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  43. .text:0070F54D 00C E8 EE B1 22 00 call sub_93A740 ; Call Procedure
  44. .text:0070F552 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
  45. .text:0070F555 00C 85 C0 test eax, eax ; Logical Compare
  46. .text:0070F557 00C 0F 85 0C 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  47. .text:0070F55D 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  48. .text:0070F563 00C E8 78 2C E6 FF call PlayerCharacter__IsUsingScopeOrbyte64D ; Call Procedure
  49. .text:0070F568 00C 0F B6 C8 movzx ecx, al ; Move with Zero-Extend
  50. .text:0070F56B 00C 85 C9 test ecx, ecx ; Logical Compare
  51. .text:0070F56D 00C 0F 85 F6 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  52. .text:0070F573 00C 83 3D C0 96 1D 01 00 cmp g_HUDMainMenu, 0 ; Compare Two Operands
  53. .text:0070F57A 00C 74 16 jz short loc_70F592 ; Jump if Zero (ZF=1)
  54. .text:0070F57C 00C 8B 0D C0 96 1D 01 mov ecx, g_HUDMainMenu ; this
  55. .text:0070F582 00C E8 E9 00 00 00 call HUDMainMenu__IsHotkeySelectorVisible ; Call Procedure
  56. .text:0070F587 00C 0F B6 D0 movzx edx, al ; Move with Zero-Extend
  57. .text:0070F58A 00C 85 D2 test edx, edx ; Logical Compare
  58. .text:0070F58C 00C 0F 85 D7 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  59. .text:0070F592
  60. .text:0070F592 loc_70F592: ; CODE XREF: TryOpenPipboy+9A↑j
  61. .text:0070F592 00C 6A 00 push 0
  62. .text:0070F594 010 8B 4D FC mov ecx, [ebp+var_4]
  63. .text:0070F597 010 E8 74 73 00 00 call sub_716910 ; Call Procedure
  64. .text:0070F59C 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
  65. .text:0070F59F 00C 85 C0 test eax, eax ; Logical Compare
  66. .text:0070F5A1 00C 0F 84 C2 00 00 00 jz loc_70F669 ; Jump if Zero (ZF=1)
  67. .text:0070F5A7 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  68. .text:0070F5AD 00C 8B 11 mov edx, [ecx]
  69. .text:0070F5AF 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
  70. .text:0070F5B5 00C 8B 82 30 02 00 00 mov eax, [edx+230h]
  71. .text:0070F5BB 00C FF D0 call eax ; Indirect Call Near Procedure
  72. .text:0070F5BD 00C 0F B6 C8 movzx ecx, al ; Move with Zero-Extend
  73. .text:0070F5C0 00C 85 C9 test ecx, ecx ; Logical Compare
  74. .text:0070F5C2 00C 0F 85 A1 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  75. .text:0070F5C8 00C B9 50 22 1F 01 mov ecx, offset g_VATSCameraData
  76. .text:0070F5CD 00C E8 EE E7 D3 FF call TESForm__GetFlags ; Microsoft VisualC 2-14/net runtime
  77. .text:0070F5D2 00C 85 C0 test eax, eax ; Logical Compare
  78. .text:0070F5D4 00C 0F 85 8F 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  79. .text:0070F5DA 00C 0F B6 15 80 07 1E 01 movzx edx, byte_11E0780 ; Move with Zero-Extend
  80. .text:0070F5E1 00C 85 D2 test edx, edx ; Logical Compare
  81. .text:0070F5E3 00C 0F 85 80 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
  82. .text:0070F5E9 00C E8 02 27 1C 00 call Get_CameraShakeMultMin ; Call Procedure
  83. .text:0070F5EE 00C DC 1D 60 20 01 01 fcomp ds:dlb_zero ; Compare Real and Pop
  84. .text:0070F5F4 00C DF E0 fnstsw ax ; Store Status Word (no wait)
  85. .text:0070F5F6 00C F6 C4 44 test ah, 44h ; Logical Compare
  86. .text:0070F5F9 00C 7A 6E jp short loc_70F669 ; Jump if Parity (PF=1)
  87. .text:0070F5FB 00C 6A 01 push 1
  88. .text:0070F5FD 010 8B 0D 04 88 1D 01 mov ecx, dword_11D8804
  89. .text:0070F603 010 E8 48 1E FF FF call sub_701450 ; Call Procedure
  90. .text:0070F608 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
  91. .text:0070F60B 00C 85 C0 test eax, eax ; Logical Compare
  92. .text:0070F60D 00C 75 5A jnz short loc_70F669 ; Jump if Not Zero (ZF=0)
  93. .text:0070F60F 00C 83 7D 0C 00 cmp [ebp+a3], 0 ; Compare Two Operands
  94. .text:0070F613 00C 74 18 jz short loc_70F62D ; Jump if Zero (ZF=1)
  95. .text:0070F615 00C 8B 4D 0C mov ecx, [ebp+a3]
  96. .text:0070F618 00C 51 push ecx ; a3
  97. .text:0070F619 010 68 71 17 00 00 push 1771h ; a2
  98. .text:0070F61E 014 8B 4D FC mov ecx, [ebp+var_4] ; this
  99. .text:0070F621 014 E8 2A 6B E7 FF call TESWorldspace__GetMusic_InterfaceManager__GetRootMenu_GetUnk09C ; Call Procedure
  100. .text:0070F626 014 8B C8 mov ecx, eax ; this
  101. .text:0070F628 014 E8 F3 0C FF FF call Tile__PropagateFloatValue ; Call Procedure
  102. .text:0070F62D
  103. .text:0070F62D loc_70F62D: ; CODE XREF: TryOpenPipboy+133↑j
  104. .text:0070F62D 00C 8B 55 FC mov edx, [ebp+var_4]
  105. .text:0070F630 00C 83 BA BC 04 00 00 03 cmp dword ptr [edx+4BCh], 3 ; Compare Two Operands
  106. .text:0070F637 00C 75 0B jnz short loc_70F644 ; Jump if Not Zero (ZF=0)
  107. .text:0070F639 00C 83 7D 08 00 cmp [ebp+arg_0], 0 ; Compare Two Operands
  108. .text:0070F63D 00C 74 05 jz short loc_70F644 ; Jump if Zero (ZF=1)
  109. .text:0070F63F 00C FF 55 08 call [ebp+arg_0] ; Indirect Call Near Procedure
  110. .text:0070F642 00C EB 25 jmp short loc_70F669 ; Jump
  111. .text:0070F644 ; ---------------------------------------------------------------------------
  112. .text:0070F644
  113. .text:0070F644 loc_70F644: ; CODE XREF: TryOpenPipboy+157↑j
  114. .text:0070F644 ; TryOpenPipboy+15D↑j
  115. .text:0070F644 00C 8B 45 FC mov eax, [ebp+var_4]
  116. .text:0070F647 00C 83 B8 BC 04 00 00 00 cmp dword ptr [eax+4BCh], 0 ; Compare Two Operands
  117. .text:0070F64E 00C 75 19 jnz short loc_70F669 ; Jump if Not Zero (ZF=0)
  118. .text:0070F650 00C 8B 4D FC mov ecx, [ebp+var_4]
  119. .text:0070F653 00C C7 81 BC 04 00 00 01+ mov dword ptr [ecx+4BCh], 1
  120. .text:0070F65D 00C 8B 55 FC mov edx, [ebp+var_4]
  121. .text:0070F660 00C 8B 45 08 mov eax, [ebp+arg_0]
  122. .text:0070F663 00C 89 82 C0 04 00 00 mov [edx+4C0h], eax
  123. .text:0070F669
  124. .text:0070F669 loc_70F669: ; CODE XREF: TryOpenPipboy+1A↑j
  125. .text:0070F669 ; TryOpenPipboy+3D↑j ...
  126. .text:0070F669 00C 5E pop esi
  127. .text:0070F66A 008 8B E5 mov esp, ebp
  128. .text:0070F66C 004 5D pop ebp
  129. .text:0070F66D 000 C2 08 00 retn 8 ; Return Near from Procedure
  130. .text:0070F66D TryOpenPipboy endp
  131. .text:0070F66D
  132. .text:0070F670
  133. .text:0070F670 ; =============== S U B R O U T I N E =======================================
  134. .text:0070F670
  135. .text:0070F670 ; Attributes: bp-based frame
  136. .text:0070F670
  137. .text:0070F670 ; void __thiscall HUDMainMenu__IsHotkeySelectorVisible(HUDMainMenu *this)
  138. .text:0070F670 HUDMainMenu__IsHotkeySelectorVisible proc near
  139. .text:0070F670 ; CODE XREF: TryOpenPipboy+A2↑p
  140. .text:0070F670
  141. .text:0070F670 var_4 = dword ptr -4
  142. .text:0070F670
  143. .text:0070F670 000 55 push ebp
  144. .text:0070F671 004 8B EC mov ebp, esp
  145. .text:0070F673 004 51 push ecx
  146. .text:0070F674 008 89 4D FC mov [ebp+var_4], ecx
  147. .text:0070F677 008 8B 4D FC mov ecx, [ebp+var_4]
  148. .text:0070F67A 008 81 C1 C8 01 00 00 add ecx, 1C8h ; Add
  149. .text:0070F680 008 E8 BB 20 FF FF call TileRect__IsVisible ; Call Procedure
  150. .text:0070F685 008 8B E5 mov esp, ebp
  151. .text:0070F687 004 5D pop ebp
  152. .text:0070F688 000 C3 retn ; Return Near from Procedure
  153. .text:0070F688 HUDMainMenu__IsHotkeySelectorVisible endp
  154. .text:0070F688
  155. .text:0070F688 ; ---------------------------------------------------------------------------
  156. .text:0070F689 CC CC CC CC CC CC CC align 10h
  157. .text:0070F690
  158. .text:0070F690 ; =============== S U B R O U T I N E =======================================
  159. .text:0070F690
  160. .text:0070F690 ; Attributes: bp-based frame
  161. .text:0070F690
  162. .text:0070F690 ; int __thiscall sub_70F690(InterfaceManager *this, int (*a2)(void))
  163. .text:0070F690 sub_70F690 proc near ; CODE XREF: MainUILoop+24FA↑p
  164. .text:0070F690 ; MainUILoop+263E↑p ...
  165. .text:0070F690
  166. .text:0070F690 var_4 = dword ptr -4
  167. .text:0070F690 arg_0 = dword ptr 8
  168. .text:0070F690
  169. .text:0070F690 000 55 push ebp
  170. .text:0070F691 004 8B EC mov ebp, esp
  171. .text:0070F693 004 51 push ecx
  172. .text:0070F694 008 89 4D FC mov [ebp+var_4], ecx
  173. .text:0070F697 008 8B 45 FC mov eax, [ebp+var_4]
  174. .text:0070F69A 008 83 B8 BC 04 00 00 00 cmp dword ptr [eax+4BCh], 0 ; Compare Two Operands
  175. .text:0070F6A1 008 75 0B jnz short loc_70F6AE ; Jump if Not Zero (ZF=0)
  176. .text:0070F6A3 008 83 7D 08 00 cmp [ebp+arg_0], 0 ; Compare Two Operands
  177. .text:0070F6A7 008 74 05 jz short loc_70F6AE ; Jump if Zero (ZF=1)
  178. .text:0070F6A9 008 FF 55 08 call [ebp+arg_0] ; Indirect Call Near Procedure
  179. .text:0070F6AC 008 EB 25 jmp short loc_70F6D3 ; Jump
  180. .text:0070F6AE ; ---------------------------------------------------------------------------
  181. .text:0070F6AE
  182. .text:0070F6AE loc_70F6AE: ; CODE XREF: sub_70F690+11↑j
  183. .text:0070F6AE ; sub_70F690+17↑j
  184. .text:0070F6AE 008 8B 4D FC mov ecx, [ebp+var_4]
  185. .text:0070F6B1 008 83 B9 BC 04 00 00 03 cmp dword ptr [ecx+4BCh], 3 ; Compare Two Operands
  186. .text:0070F6B8 008 75 19 jnz short loc_70F6D3 ; Jump if Not Zero (ZF=0)
  187. .text:0070F6BA 008 8B 55 FC mov edx, [ebp+var_4]
  188. .text:0070F6BD 008 C7 82 BC 04 00 00 04+ mov dword ptr [edx+4BCh], 4
  189. .text:0070F6C7 008 8B 45 FC mov eax, [ebp+var_4]
  190. .text:0070F6CA 008 8B 4D 08 mov ecx, [ebp+arg_0]
  191. .text:0070F6CD 008 89 88 C0 04 00 00 mov [eax+4C0h], ecx
  192. .text:0070F6D3
  193. .text:0070F6D3 loc_70F6D3: ; CODE XREF: sub_70F690+1C↑j
  194. .text:0070F6D3 ; sub_70F690+28↑j
  195. .text:0070F6D3 008 8B E5
Advertisement
RAW Paste Data Copied
Advertisement