.text:0000000000023851 lea rax, sub_2A850 .text:0000000000023858 mov [rdi+44Ch], rax .text:000000000002385F lea rax, sub_2C8A0 .text:0000000000023866 mov [rdi+454h], rax .text:000000000002386D lea rax, sub_2CC10 .text:0000000000023874 mov [rdi+45Ch], rax .text:000000000002387B lea rax, nullsub_5 .text:0000000000023882 mov [rdi+464h], rax .text:0000000000023889 lea rax, sub_26EF0 .text:0000000000023890 mov [rdi+474h], rax .text:0000000000023897 mov [rdi+47Ch], rax .text:000000000002389E mov [rdi+48Ch], rax .text:00000000000238A5 lea rax, sub_2A180 .text:00000000000238AC mov [rdi+46Ch], rax .text:00000000000238B3 lea rax, sub_2D900 .text:00000000000238BA mov [rdi+4A4h], rax .text:00000000000238C1 lea rax, sub_2D8F0 .text:00000000000238C8 mov [rdi+4ACh], rax .text:00000000000238CF lea rax, sub_2D920 .text:00000000000238D6 mov [rdi+494h], rax .text:00000000000238DD lea rax, sub_2D910 .text:00000000000238E4 mov [rdi+49Ch], rax .text:00000000000238EB lea rax, sub_2CC30 .text:00000000000238F2 mov [rdi+55Ch], rax .text:00000000000238F9 lea rax, sub_32670 .text:0000000000023900 mov [rdi+4B4h], rax .text:0000000000023907 lea rax, sub_35E00 .text:000000000002390E mov [rdi+4C4h], rax .text:0000000000023915 lea rax, sub_35E40 .text:000000000002391C mov [rdi+4CCh], rax .text:0000000000023923 lea rax, sub_2CCF0 .text:000000000002392A mov [rdi+4BCh], rax .text:0000000000023931 lea rax, sub_326B0 .text:0000000000023938 mov [rdi+4D4h], rax .text:000000000002393F lea rax, sub_2CD10 .text:0000000000023946 mov [rdi+4DCh], rax .text:000000000002394D lea rax, sub_2CEF0 .text:0000000000023954 mov [rdi+4E4h], rax .text:000000000002395B lea rax, sub_2D100 .text:0000000000023962 mov [rdi+4ECh], rax .text:0000000000023969 lea rax, sub_2D2C0 .text:0000000000023970 mov [rdi+4F4h], rax .text:0000000000023977 lea rax, sub_2D410 .text:000000000002397E mov [rdi+4FCh], rax .text:0000000000023985 lea rax, sub_2D3A0 .text:000000000002398C mov [rdi+504h], rax .text:0000000000023993 lea rax, sub_2D670 .text:000000000002399A mov [rdi+50Ch], rax .text:00000000000239A1 lea rax, sub_2D7D0 .text:00000000000239A8 mov [rdi+514h], rax .text:00000000000239AF lea rax, sub_2A830 .text:00000000000239B6 mov [rdi+51Ch], rax .text:00000000000239BD lea rax, sub_22330 .text:00000000000239C4 mov [rdi+564h], rax .text:00000000000239CB lea rax, sub_22380 .text:00000000000239D2 mov [rdi+56Ch], rax .text:00000000000239D9 lea rax, sub_223D0 .text:00000000000239E0 mov [rdi+574h], rax .text:00000000000239E7 lea rax, sub_220B0 .text:00000000000239EE mov [rdi+57Ch], rax .text:00000000000239F5 lea rax, sub_22210 .text:00000000000239FC mov [rdi+584h], rax .text:0000000000023A03 lea rax, sub_224A0 .text:0000000000023A0A mov [rdi+58Ch], rax .text:0000000000023A11 lea rax, sub_225A0 .text:0000000000023A18 mov [rdi+594h], rax .text:0000000000023A1F lea rax, sub_22630 .text:0000000000023A26 mov [rdi+59Ch], rax .text:0000000000023A2D lea rax, sub_22750 .text:0000000000023A34 mov [rdi+5A4h], rax .text:0000000000023A3B lea rax, sub_21C70 .text:0000000000023A42 mov [rdi+5ACh], rax .text:0000000000023A49 lea rax, sub_21E00 .text:0000000000023A50 mov [rdi+5B4h], rax .text:0000000000023A57 lea rax, sub_220A0 .text:0000000000023A5E mov [rdi+5BCh], rax .text:0000000000023A65 lea rax, sub_22A10 .text:0000000000023A6C mov [rdi+524h], rax .text:0000000000023A73 lea rax, sub_22A00 .text:0000000000023A7A mov [rdi+554h], rax .text:0000000000023A81 lea rax, sub_2CEC0 .text:0000000000023A88 mov [rdi+53Ch], rax .text:0000000000023A8F lea rax, sub_2CEE0 .text:0000000000023A96 mov [rdi+52Ch], rax .text:0000000000023A9D lea rax, sub_2CED0 .text:0000000000023AA4 mov [rdi+534h], rax .text:0000000000023AAB lea rax, sub_229D0 .text:0000000000023AB2 mov [rdi+544h], rax .text:0000000000023AB9 retn .text:0000000000023AB9 ; --------------------------------------------------------------------------- .text:0000000000023ABA align 20h .text:0000000000023AC0 .text:0000000000023AC0 loc_23AC0: ; CODE XREF: sub_237C0+Fj .text:0000000000023AC0 sub eax, 5 .text:0000000000023AC3 cmp eax, 1 .text:0000000000023AC6 ja locret_23DC0 .text:0000000000023ACC lea rax, sub_10BF0 .text:0000000000023AD3 lea rdx, sub_26F00 .text:0000000000023ADA mov [rdi+414h], rax .text:0000000000023AE1 lea rax, sub_10DF0 .text:0000000000023AE8 mov [rdi+484h], rdx -- .text:000000000002A850 sub_2A850 proc near ; DATA XREF: sub_237C0+91o .text:000000000002A850 mov dword ptr [rdi+32Eh], 80000h .text:000000000002A85A xor eax, eax .text:000000000002A85C cmp byte ptr [rdi+235h], 10h .text:000000000002A863 jz short loc_2A870 .text:000000000002A865 retn .text:000000000002A865 ; --------------------------------------------------------------------------- .text:000000000002A866 align 10h .text:000000000002A870 .text:000000000002A870 loc_2A870: ; CODE XREF: sub_2A850+13j .text:000000000002A870 mov eax, 1 .text:000000000002A875 xor edx, edx .text:000000000002A877 xor ecx, ecx .text:000000000002A879 mov byte ptr [rdi+340h], 0 .text:000000000002A880 mov [rdi+336h], ax .text:000000000002A887 lea rax, unk_BF4D8 .text:000000000002A88E mov dword ptr [rdi+32Ah], 1312D00h .text:000000000002A898 cmp word ptr [rax], 0 .text:000000000002A89C mov [rdi+0CEh], dx .text:000000000002A8A3 setnz al .text:000000000002A8A6 mov [rdi+0E6h], cx .text:000000000002A8AD mov dword ptr [rdi+332h], 8000h .text:000000000002A8B7 movzx eax, al .text:000000000002A8BA mov dword ptr [rdi+33Ch], 32303232h .text:000000000002A8C4 mov dword ptr [rdi+1C1h], 7530h .text:000000000002A8CE retn .text:000000000002A8CE sub_2A850 endp .text:000000000002A8CE .text:000000000002A8CE ; --------------------------------------------------------------------------- .text:000000000002A8CF align 10h .text:000000000002A8D0 .text:000000000002A8D0 ; =============== S U B R O U T I N E ======================================= .text:000000000002A8D0 .text:000000000002A8D0 .text:000000000002A8D0 ; __int64 __fastcall ps2000_ps220x_get_timebase(ps2000_context_struc *a1, signed __int16 a2, signed int a3, _DWORD *a4, _WORD *a5, signed int a6, _DWORD *a7) .text:000000000002A8D0 ps2000_ps220x_get_timebase proc near ; DATA XREF: sub_237C0+21o .text:000000000002A8D0 .text:000000000002A8D0 var_50 = qword ptr -50h .text:000000000002A8D0 var_48 = qword ptr -48h .text:000000000002A8D0 var_40 = qword ptr -40h .text:000000000002A8D0 arg_0 = qword ptr 8 .text:000000000002A8D0 .text:000000000002A8D0 push r15 .text:000000000002A8D2 push r14 .text:000000000002A8D4 push r13 .text:000000000002A8D6 push r12 .text:000000000002A8D8 mov r12, rdi .text:000000000002A8DB push rbp .text:000000000002A8DC mov rbp, r8 .text:000000000002A8DF push rbx .text:000000000002A8E0 mov rbx, rcx .text:000000000002A8E3 sub rsp, 28h .text:000000000002A8E7 movzx eax, word ptr [rdi+0D6h] .text:000000000002A8EE add al, [rdi+0CEh] .text:000000000002A8F4 add al, [rdi+0DEh] .text:000000000002A8FA add al, [rdi+0E6h] .text:000000000002A900 cmp al, 2 .text:000000000002A902 jz loc_2AAF0 .text:000000000002A908 ja loc_2AAC8 .text:000000000002A90E xor ecx, ecx .text:000000000002A910 mov r13d, 1 .text:000000000002A916 cmp al, 1 .text:000000000002A918 jnz loc_2AAE8 .text:000000000002A91E .text:000000000002A91E loc_2A91E: ; CODE XREF: ps2000_ps220x_get_timebase+20Dj .text:000000000002A91E ; ps2000_ps220x_get_timebase+22Bj .text:000000000002A91E xor r8d, r8d .text:000000000002A921 cmp r9w, 100h .text:000000000002A927 ja loc_2AAB3 .text:000000000002A92D test r9w, r9w .text:000000000002A931 mov eax, 1 .text:000000000002A936 cmovle r9d, eax .text:000000000002A93A movsx r9d, r9w .text:000000000002A93E mov eax, r9d .text:000000000002A941 imul eax, edx .text:000000000002A944 imul eax, r13d .text:000000000002A948 cmp si, 13h .text:000000000002A94C setle dil .text:000000000002A950 cmp cx, si .text:000000000002A953 setle cl .text:000000000002A956 and edi, ecx .text:000000000002A958 mov ecx, eax .text:000000000002A95A not ecx .text:000000000002A95C shr ecx, 1Fh .text:000000000002A95F test dil, cl .text:000000000002A962 jz loc_2AAE8 .text:000000000002A968 mov edi, [r12+332h] .text:000000000002A970 lea ecx, [rdi-200h] .text:000000000002A976 cmp ecx, eax .text:000000000002A978 jle loc_2AAE8 .text:000000000002A97E movsd xmm0, cs:qword_A4C60 .text:000000000002A986 test si, si .text:000000000002A989 jnz loc_2AB00 .text:000000000002A98F .text:000000000002A98F loc_2A98F: ; CODE XREF: ps2000_ps220x_get_timebase+241j .text:000000000002A98F mov eax, [r12+32Ah] .text:000000000002A997 pxor xmm1, xmm1 .text:000000000002A99B pxor xmm5, xmm5 .text:000000000002A99F cvtsi2sd xmm5, r9d .text:000000000002A9A4 cvtsi2sd xmm1, rax .text:000000000002A9A9 movsd [rsp+58h+var_40], xmm5 .text:000000000002A9AF divsd xmm0, xmm1 .text:000000000002A9B3 mulsd xmm0, cs:qword_A4C48 .text:000000000002A9BB mulsd xmm0, xmm5 .text:000000000002A9BF movsd [rsp+58h+var_50], xmm0 .text:000000000002A9C5 test rbp, rbp .text:000000000002A9C8 jz short loc_2AA3F .text:000000000002A9CA pxor xmm0, xmm0 .text:000000000002A9CE movsd xmm1, cs:qword_A4C50 .text:000000000002A9D6 mov r15d, 0FFFFFFFAh .text:000000000002A9DC xor r14d, r14d .text:000000000002A9DF cvtsi2sd xmm0, edx .text:000000000002A9E3 divsd xmm1, xmm0 .text:000000000002A9E7 movsd [rsp+58h+var_48], xmm1 .text:000000000002A9ED .text:000000000002A9ED loc_2A9ED: ; CODE XREF: ps2000_ps220x_get_timebase+16Dj .text:000000000002A9ED pxor xmm1, xmm1 .text:000000000002A9F1 mov rax, cs:qword_A4C58 .text:000000000002A9F8 cvtsi2sd xmm1, r15d ; y .text:000000000002A9FD movq xmm0, rax ; x .text:000000000002AA02 call _pow .text:000000000002AA07 cvtsd2ss xmm0, xmm0 .text:000000000002AA0B cvtss2sd xmm0, xmm0 .text:000000000002AA0F mulsd xmm0, [rsp+58h+var_48] .text:000000000002AA15 cvttsd2si rax, xmm0 .text:000000000002AA1A pxor xmm0, xmm0 .text:000000000002AA1E mov eax, eax -- .data:00000000000BF4D8 unk_BF4D8 db 1 ; DATA XREF: sub_2A850+37o .data:00000000000BF4D9 db 0 .data:00000000000BF4DA db 1 .data:00000000000BF4DB db 0 .data:00000000000BF4DC word_BF4DC dw 1 ; DATA XREF: _ps2000_context_init+2Br .data:00000000000BF4DC ; ps2000_apply_fix+32w ... .data:00000000000BF4DE db 0 .data:00000000000BF4DF db 0 .data:00000000000BF4E0 byte_BF4E0 db 4 dup(0FFh), 55h, 99h, 0AAh, 66h, 0Ch, 0, 1, 80h, 3 dup(0) .data:00000000000BF4E0 ; DATA XREF: sub_27BD0+F7o .data:00000000000BF4E0 db 0E0h, 0Ch, 80h, 6, 80h, 3 dup(0), 2Ch, 0Ch, 80h, 4 .data:00000000000BF4E0 db 80h, 2, 0, 0FCh, 0A7h, 0Ch, 80h, 3, 2 dup(80h), 82h .data:00000000000BF4E0 db 4, 3 dup(0), 4, 3 dup(0), 0Ch, 0, 1, 80h, 3 dup(0) .data:00000000000BF4E0 db 0A0h, 0Ch, 0, 5, 80h, 4 dup(0), 0Ch, 2 dup(0), 80h .data:00000000000BF4E0 db 2 dup(0), 0FAh, 0EAh, 0Ch, 0, 1, 80h, 3 dup(0), 0B0h .data:00000000000BF4E0 db 4, 3 dup(0), 4, 3 dup(0), 4, 3 dup(0), 4, 1Bh dup(0) .data:00000000000DF480 .data:00000000000DF480 .data:00000000000DF480 .data:00000000000DF480 unk_DF480 db 31h ; 1 ; DATA XREF: sub_27BD0+122o .data:00000000000DF481 db 0, 65h, 2 dup(0), 0A4h, 70h, 4 dup(0FFh), 0AAh, 99h .data:00000000000DF481 db 55h, 66h, 30h, 0, 80h, 1, 3 dup(0), 7, 30h, 1, 60h .data:00000000000DF481 db 1, 3 dup(0), 8, 30h, 1, 20h, 1, 0, 80h, 3Fh, 2Dh, 30h .data:00000000000E9900 a0541 db '05:41',0 ; DATA XREF: sub_27BD0+10Eo .data:00000000000E9906 db 65h, 2 dup(0), 0A4h, 70h, 4 dup(0FFh), 0AAh, 99h, 55h .data:00000000000E9906 db 66h, 30h, 0, 80h, 1, 3 dup(0), 7, 30h, 1, 60h, 1, 3 dup(0) .data:00000000000E9906 db 8, 30h, 1, 20h, 1, 0, 80h, 3Fh, 2Dh, 30h, 0, 0C0h, 1 .data:00000000000E9906 db 4 dup(0), 30h, 0, 80h, 1, 3 dup(0), 9, 30h, 0, 20h .data:00000000000F3D80 byte_F3D80 db 3, 0, 43h, 2 dup(0), 2, 0Eh, 0Fh dup(0), 3, 0, 53h .data:00000000000F3D80 ; DATA XREF: sub_280C0+20Eo .data:00000000000F3D80 db 2 dup(0), 2, 0Eh, 0Fh dup(0), 10h, 2 dup(0), 0Eh, 0 .data:00000000000F3D80 db 2, 18h, 4Dh, 0, 2, 18h, 94h, 0, 2, 17h, 0EAh, 0, 2 .data:00000000000F67E0 byte_F67E0 db 3, 0, 43h, 2 dup(0), 2, 0Eh, 0Fh dup(0), 3, 0, 53h .data:00000000000F67E0 ; DATA XREF: sub_280C0+286o .data:00000000000F67E0 db 2 dup(0), 2, 0Eh, 0Fh dup(0), 10h, 2 dup(0), 0Eh, 0 .data:00000000000F8B80 byte_F8B80 db 3, 0, 43h, 2 dup(0), 2, 16h, 0Fh dup(0), 3, 0, 53h .data:00000000000F8B80 ; DATA XREF: sub_280C0+13Eo .data:00000000000F8B80 db 2 dup(0), 2, 16h, 0Fh dup(0), 10h, 2 dup(0), 16h, 0 .data:00000000000F8B80 db 2, 22h, 8, 0, 2, 22h, 4Eh, 0, 2, 22h, 38h, 0, 2, 22h .data:00000000000F8B80 db 0Bh dup(0), 10h, 0, 0DCh, 3, 0, 0A3h, 0F8h, 0E0h, 0C5h .data:00000000000F8B80 db 0F0h, 25h, 2 dup(0F0h), 0E5h, 82h, 15h, 82h, 70h, 2 .data:00000000000F8B80 db 15h, 83h, 0, 6, 0, 0ECh, 3, 0, 0E0h, 0C8h, 38h, 0F0h .data:00000000000F8B80 db 0E8h, 22h, 0Fh dup(0), 1, 11h dup(0) .data:00000000000FC2D8 ; pthread_key_t key .data:00000000000FC2D8 key dd 151h ; DATA XREF: .text:000000000000DC67r .data:00000000000FC2D8 ; destr_function+Br ... .data:00000000000FC2DC word_FC2DC dw 0FFFFh ; DATA XREF: sub_4B1A0+1E5r .data:00000000000FC2DE align 20h .data:00000000000FC2E0 dq offset off_BE4C0 .data:00000000000FC2E0 _data ends .data:00000000000FC2E0 .bss:00000000000FC300 ; =========================================================================== .bss:00000000000FC300 .bss:00000000000FC300 ; Segment type: Uninitialized .bss:00000000000FC300 ; Segment permissions: Read/Write .bss:00000000000FC300 ; Segment alignment '32byte' can not be represented in assembly .bss:00000000000FC300 _bss segment para public 'BSS' use64 .bss:00000000000FC300 assume cs:_bss .bss:00000000000FC300 ;org 0FC300h .bss:00000000000FC300 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing .bss:00000000000FC300 byte_FC300 db ? ; DATA XREF: sub_F7D0r .bss:00000000000FC300 ; sub_F7D0+28w .bss:00000000000FC301 align 8 .bss:00000000000FC308 word_FC308 dw ? ; DATA XREF: ps2000_apply_fix:loc_F990w .bss:00000000000FC308 ; sub_127B0:loc_127E8r .bss:00000000000FC30A align 10h .bss:00000000000FC310 qword_FC310 dq ? ; DATA XREF: sub_14230:loc_14400r .bss:00000000000FC310 ; sub_14230+1E8r ... .bss:00000000000FC318 qword_FC318 dq ? ; DATA XREF: sub_14230+1Er .bss:00000000000FC318 ; sub_14230+36r ... .bss:00000000000FC320 byte_FC320 db ? ; DATA XREF: sub_17200+63o .bss:00000000000FC320 ; sub_17200+F1r ... .bss:00000000000FC321 align 2 .bss:00000000000FC322 byte_FC322 db 3Eh dup(?) ; DATA XREF: sub_17200:loc_17300r .bss:00000000000FC360 unk_FC360 db ? ; ; DATA XREF: sub_16DB0+B9o .bss:00000000000FC361 db ? ; .bss:00000000000FC362 byte_FC362 db ? ; DATA XREF: sub_16DB0+DEr .bss:00000000000FC363 db 3Dh dup(?) .bss:00000000000FC3A0 dword_FC3A0 dd ? ; DATA XREF: sub_17400:loc_177F9r .bss:00000000000FC3A0 ; sub_17400+406w ...