Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text:0070F4E0
- .text:0070F4E0 ; =============== S U B R O U T I N E =======================================
- .text:0070F4E0
- .text:0070F4E0 ; Attributes: bp-based frame
- .text:0070F4E0
- .text:0070F4E0 ; void __thiscall TryOpenPipboy(InterfaceManager *this, void (*a2)(void), signed int a3)
- .text:0070F4E0 TryOpenPipboy proc near ; CODE XREF: MainUILoop+2473↑p
- .text:0070F4E0 ; MainUILoop+2594↑p
- .text:0070F4E0
- .text:0070F4E0 var_4 = dword ptr -4
- .text:0070F4E0 arg_0 = dword ptr 8
- .text:0070F4E0 a3 = dword ptr 0Ch
- .text:0070F4E0
- .text:0070F4E0 000 55 push ebp
- .text:0070F4E1 004 8B EC mov ebp, esp
- .text:0070F4E3 004 51 push ecx
- .text:0070F4E4 008 56 push esi
- .text:0070F4E5 00C 89 4D FC mov [ebp+var_4], ecx
- .text:0070F4E8 00C 6A 04 push 4
- .text:0070F4EA 010 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F4F0 010 E8 FB 0E E9 FF call PlayerCharacter__CheckPCControlFlags ; Call Procedure
- .text:0070F4F5 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
- .text:0070F4F8 00C 85 C0 test eax, eax ; Logical Compare
- .text:0070F4FA 00C 0F 85 69 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F500 00C 6A 00 push 0
- .text:0070F502 010 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F508 010 8B 11 mov edx, [ecx]
- .text:0070F50A 010 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F510 010 8B 82 2C 02 00 00 mov eax, [edx+22Ch]
- .text:0070F516 010 FF D0 call eax ; Indirect Call Near Procedure
- .text:0070F518 00C 0F B6 C8 movzx ecx, al ; Move with Zero-Extend
- .text:0070F51B 00C 85 C9 test ecx, ecx ; Logical Compare
- .text:0070F51D 00C 0F 85 46 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F523 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F529 00C E8 B2 42 E6 FF call Player__GetIs3rdPersonView ; Call Procedure
- .text:0070F52E 00C 0F B6 F0 movzx esi, al ; Move with Zero-Extend
- .text:0070F531 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer ; this
- .text:0070F537 00C E8 24 BA DD FF call PlayerCharacter__IsNotFirstPerson ; Call Procedure
- .text:0070F53C 00C 0F B6 D0 movzx edx, al ; Move with Zero-Extend
- .text:0070F53F 00C 3B F2 cmp esi, edx ; Compare Two Operands
- .text:0070F541 00C 0F 85 22 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F547 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F54D 00C E8 EE B1 22 00 call sub_93A740 ; Call Procedure
- .text:0070F552 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
- .text:0070F555 00C 85 C0 test eax, eax ; Logical Compare
- .text:0070F557 00C 0F 85 0C 01 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F55D 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F563 00C E8 78 2C E6 FF call PlayerCharacter__IsUsingScopeOrbyte64D ; Call Procedure
- .text:0070F568 00C 0F B6 C8 movzx ecx, al ; Move with Zero-Extend
- .text:0070F56B 00C 85 C9 test ecx, ecx ; Logical Compare
- .text:0070F56D 00C 0F 85 F6 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F573 00C 83 3D C0 96 1D 01 00 cmp g_HUDMainMenu, 0 ; Compare Two Operands
- .text:0070F57A 00C 74 16 jz short loc_70F592 ; Jump if Zero (ZF=1)
- .text:0070F57C 00C 8B 0D C0 96 1D 01 mov ecx, g_HUDMainMenu ; this
- .text:0070F582 00C E8 E9 00 00 00 call HUDMainMenu__IsHotkeySelectorVisible ; Call Procedure
- .text:0070F587 00C 0F B6 D0 movzx edx, al ; Move with Zero-Extend
- .text:0070F58A 00C 85 D2 test edx, edx ; Logical Compare
- .text:0070F58C 00C 0F 85 D7 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F592
- .text:0070F592 loc_70F592: ; CODE XREF: TryOpenPipboy+9A↑j
- .text:0070F592 00C 6A 00 push 0
- .text:0070F594 010 8B 4D FC mov ecx, [ebp+var_4]
- .text:0070F597 010 E8 74 73 00 00 call sub_716910 ; Call Procedure
- .text:0070F59C 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
- .text:0070F59F 00C 85 C0 test eax, eax ; Logical Compare
- .text:0070F5A1 00C 0F 84 C2 00 00 00 jz loc_70F669 ; Jump if Zero (ZF=1)
- .text:0070F5A7 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F5AD 00C 8B 11 mov edx, [ecx]
- .text:0070F5AF 00C 8B 0D 3C EA 1D 01 mov ecx, g_thePlayer
- .text:0070F5B5 00C 8B 82 30 02 00 00 mov eax, [edx+230h]
- .text:0070F5BB 00C FF D0 call eax ; Indirect Call Near Procedure
- .text:0070F5BD 00C 0F B6 C8 movzx ecx, al ; Move with Zero-Extend
- .text:0070F5C0 00C 85 C9 test ecx, ecx ; Logical Compare
- .text:0070F5C2 00C 0F 85 A1 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F5C8 00C B9 50 22 1F 01 mov ecx, offset g_VATSCameraData
- .text:0070F5CD 00C E8 EE E7 D3 FF call TESForm__GetFlags ; Microsoft VisualC 2-14/net runtime
- .text:0070F5D2 00C 85 C0 test eax, eax ; Logical Compare
- .text:0070F5D4 00C 0F 85 8F 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F5DA 00C 0F B6 15 80 07 1E 01 movzx edx, byte_11E0780 ; Move with Zero-Extend
- .text:0070F5E1 00C 85 D2 test edx, edx ; Logical Compare
- .text:0070F5E3 00C 0F 85 80 00 00 00 jnz loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F5E9 00C E8 02 27 1C 00 call Get_CameraShakeMultMin ; Call Procedure
- .text:0070F5EE 00C DC 1D 60 20 01 01 fcomp ds:dlb_zero ; Compare Real and Pop
- .text:0070F5F4 00C DF E0 fnstsw ax ; Store Status Word (no wait)
- .text:0070F5F6 00C F6 C4 44 test ah, 44h ; Logical Compare
- .text:0070F5F9 00C 7A 6E jp short loc_70F669 ; Jump if Parity (PF=1)
- .text:0070F5FB 00C 6A 01 push 1
- .text:0070F5FD 010 8B 0D 04 88 1D 01 mov ecx, dword_11D8804
- .text:0070F603 010 E8 48 1E FF FF call sub_701450 ; Call Procedure
- .text:0070F608 00C 0F B6 C0 movzx eax, al ; Move with Zero-Extend
- .text:0070F60B 00C 85 C0 test eax, eax ; Logical Compare
- .text:0070F60D 00C 75 5A jnz short loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F60F 00C 83 7D 0C 00 cmp [ebp+a3], 0 ; Compare Two Operands
- .text:0070F613 00C 74 18 jz short loc_70F62D ; Jump if Zero (ZF=1)
- .text:0070F615 00C 8B 4D 0C mov ecx, [ebp+a3]
- .text:0070F618 00C 51 push ecx ; a3
- .text:0070F619 010 68 71 17 00 00 push 1771h ; a2
- .text:0070F61E 014 8B 4D FC mov ecx, [ebp+var_4] ; this
- .text:0070F621 014 E8 2A 6B E7 FF call TESWorldspace__GetMusic_InterfaceManager__GetRootMenu_GetUnk09C ; Call Procedure
- .text:0070F626 014 8B C8 mov ecx, eax ; this
- .text:0070F628 014 E8 F3 0C FF FF call Tile__PropagateFloatValue ; Call Procedure
- .text:0070F62D
- .text:0070F62D loc_70F62D: ; CODE XREF: TryOpenPipboy+133↑j
- .text:0070F62D 00C 8B 55 FC mov edx, [ebp+var_4]
- .text:0070F630 00C 83 BA BC 04 00 00 03 cmp dword ptr [edx+4BCh], 3 ; Compare Two Operands
- .text:0070F637 00C 75 0B jnz short loc_70F644 ; Jump if Not Zero (ZF=0)
- .text:0070F639 00C 83 7D 08 00 cmp [ebp+arg_0], 0 ; Compare Two Operands
- .text:0070F63D 00C 74 05 jz short loc_70F644 ; Jump if Zero (ZF=1)
- .text:0070F63F 00C FF 55 08 call [ebp+arg_0] ; Indirect Call Near Procedure
- .text:0070F642 00C EB 25 jmp short loc_70F669 ; Jump
- .text:0070F644 ; ---------------------------------------------------------------------------
- .text:0070F644
- .text:0070F644 loc_70F644: ; CODE XREF: TryOpenPipboy+157↑j
- .text:0070F644 ; TryOpenPipboy+15D↑j
- .text:0070F644 00C 8B 45 FC mov eax, [ebp+var_4]
- .text:0070F647 00C 83 B8 BC 04 00 00 00 cmp dword ptr [eax+4BCh], 0 ; Compare Two Operands
- .text:0070F64E 00C 75 19 jnz short loc_70F669 ; Jump if Not Zero (ZF=0)
- .text:0070F650 00C 8B 4D FC mov ecx, [ebp+var_4]
- .text:0070F653 00C C7 81 BC 04 00 00 01+ mov dword ptr [ecx+4BCh], 1
- .text:0070F65D 00C 8B 55 FC mov edx, [ebp+var_4]
- .text:0070F660 00C 8B 45 08 mov eax, [ebp+arg_0]
- .text:0070F663 00C 89 82 C0 04 00 00 mov [edx+4C0h], eax
- .text:0070F669
- .text:0070F669 loc_70F669: ; CODE XREF: TryOpenPipboy+1A↑j
- .text:0070F669 ; TryOpenPipboy+3D↑j ...
- .text:0070F669 00C 5E pop esi
- .text:0070F66A 008 8B E5 mov esp, ebp
- .text:0070F66C 004 5D pop ebp
- .text:0070F66D 000 C2 08 00 retn 8 ; Return Near from Procedure
- .text:0070F66D TryOpenPipboy endp
- .text:0070F66D
- .text:0070F670
- .text:0070F670 ; =============== S U B R O U T I N E =======================================
- .text:0070F670
- .text:0070F670 ; Attributes: bp-based frame
- .text:0070F670
- .text:0070F670 ; void __thiscall HUDMainMenu__IsHotkeySelectorVisible(HUDMainMenu *this)
- .text:0070F670 HUDMainMenu__IsHotkeySelectorVisible proc near
- .text:0070F670 ; CODE XREF: TryOpenPipboy+A2↑p
- .text:0070F670
- .text:0070F670 var_4 = dword ptr -4
- .text:0070F670
- .text:0070F670 000 55 push ebp
- .text:0070F671 004 8B EC mov ebp, esp
- .text:0070F673 004 51 push ecx
- .text:0070F674 008 89 4D FC mov [ebp+var_4], ecx
- .text:0070F677 008 8B 4D FC mov ecx, [ebp+var_4]
- .text:0070F67A 008 81 C1 C8 01 00 00 add ecx, 1C8h ; Add
- .text:0070F680 008 E8 BB 20 FF FF call TileRect__IsVisible ; Call Procedure
- .text:0070F685 008 8B E5 mov esp, ebp
- .text:0070F687 004 5D pop ebp
- .text:0070F688 000 C3 retn ; Return Near from Procedure
- .text:0070F688 HUDMainMenu__IsHotkeySelectorVisible endp
- .text:0070F688
- .text:0070F688 ; ---------------------------------------------------------------------------
- .text:0070F689 CC CC CC CC CC CC CC align 10h
- .text:0070F690
- .text:0070F690 ; =============== S U B R O U T I N E =======================================
- .text:0070F690
- .text:0070F690 ; Attributes: bp-based frame
- .text:0070F690
- .text:0070F690 ; int __thiscall sub_70F690(InterfaceManager *this, int (*a2)(void))
- .text:0070F690 sub_70F690 proc near ; CODE XREF: MainUILoop+24FA↑p
- .text:0070F690 ; MainUILoop+263E↑p ...
- .text:0070F690
- .text:0070F690 var_4 = dword ptr -4
- .text:0070F690 arg_0 = dword ptr 8
- .text:0070F690
- .text:0070F690 000 55 push ebp
- .text:0070F691 004 8B EC mov ebp, esp
- .text:0070F693 004 51 push ecx
- .text:0070F694 008 89 4D FC mov [ebp+var_4], ecx
- .text:0070F697 008 8B 45 FC mov eax, [ebp+var_4]
- .text:0070F69A 008 83 B8 BC 04 00 00 00 cmp dword ptr [eax+4BCh], 0 ; Compare Two Operands
- .text:0070F6A1 008 75 0B jnz short loc_70F6AE ; Jump if Not Zero (ZF=0)
- .text:0070F6A3 008 83 7D 08 00 cmp [ebp+arg_0], 0 ; Compare Two Operands
- .text:0070F6A7 008 74 05 jz short loc_70F6AE ; Jump if Zero (ZF=1)
- .text:0070F6A9 008 FF 55 08 call [ebp+arg_0] ; Indirect Call Near Procedure
- .text:0070F6AC 008 EB 25 jmp short loc_70F6D3 ; Jump
- .text:0070F6AE ; ---------------------------------------------------------------------------
- .text:0070F6AE
- .text:0070F6AE loc_70F6AE: ; CODE XREF: sub_70F690+11↑j
- .text:0070F6AE ; sub_70F690+17↑j
- .text:0070F6AE 008 8B 4D FC mov ecx, [ebp+var_4]
- .text:0070F6B1 008 83 B9 BC 04 00 00 03 cmp dword ptr [ecx+4BCh], 3 ; Compare Two Operands
- .text:0070F6B8 008 75 19 jnz short loc_70F6D3 ; Jump if Not Zero (ZF=0)
- .text:0070F6BA 008 8B 55 FC mov edx, [ebp+var_4]
- .text:0070F6BD 008 C7 82 BC 04 00 00 04+ mov dword ptr [edx+4BCh], 4
- .text:0070F6C7 008 8B 45 FC mov eax, [ebp+var_4]
- .text:0070F6CA 008 8B 4D 08 mov ecx, [ebp+arg_0]
- .text:0070F6CD 008 89 88 C0 04 00 00 mov [eax+4C0h], ecx
- .text:0070F6D3
- .text:0070F6D3 loc_70F6D3: ; CODE XREF: sub_70F690+1C↑j
- .text:0070F6D3 ; sub_70F690+28↑j
- .text:0070F6D3 008 8B E5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement