diff --git a/asm/dword_A4C84.txt b/asm/dword_A4C84.txt new file mode 100644 index 0000000..fdec2a2 --- /dev/null +++ b/asm/dword_A4C84.txt @@ -0,0 +1,41 @@ +.text:00000000000133FC movss xmm1, cs:dword_A4C84 +.text:0000000000013404 comiss xmm1, xmm0 +.text:0000000000013407 jb short loc_13450 +.text:0000000000013409 comiss xmm0, cs:dword_A4C88 +.text:0000000000013410 jb short loc_13450 +.text:0000000000013412 cmp [rdi+3DAh], esi +-- +.text:0000000000016C03 movss xmm1, cs:dword_A4C84 +.text:0000000000016C0B comiss xmm1, xmm0 +.text:0000000000016C0E jnb short loc_16C20 +.text:0000000000016C10 +.text:0000000000016C10 loc_16C10: ; CODE XREF: sub_16BD0+57j +.text:0000000000016C10 ; sub_16BD0+6Dj ... +-- +.text:0000000000016CD9 movss xmm1, cs:dword_A4C84 +.text:0000000000016CE1 comiss xmm1, xmm0 +.text:0000000000016CE4 jb short loc_16D20 +.text:0000000000016CE6 +.text:0000000000016CE6 loc_16CE6: ; CODE XREF: sub_16BD0+154j +.text:0000000000016CE6 movsx r12d, r12w +-- +.text:0000000000022F43 movss xmm0, cs:dword_A4C84 +.text:0000000000022F4B xor ecx, ecx +.text:0000000000022F4D mov qword ptr [r9+0Fh], 0 +.text:0000000000022F55 mov r9d, 1 +.text:0000000000022F5B mov qword ptr [r12+1D7h], 0 +.text:0000000000022F67 push 1 +-- +.text:000000000002D3A0 movss xmm1, cs:dword_A4C84 +.text:000000000002D3A8 comiss xmm1, xmm0 +.text:000000000002D3AB jb short loc_2D400 +.text:000000000002D3AD comiss xmm0, cs:dword_A4C88 +.text:000000000002D3B4 jb short loc_2D400 +.text:000000000002D3B6 cmp esi, 3FFFFFh +-- +.rodata:00000000000A4C84 dword_A4C84 dd 42C80000h ; DATA XREF: sub_133D0:loc_133FCr +.rodata:00000000000A4C84 ; sub_16BD0+33r ... +.rodata:00000000000A4C88 dword_A4C88 dd 0C2C80000h ; DATA XREF: sub_133D0+39r +.rodata:00000000000A4C88 ; sub_16BD0:loc_16C20r ... +.rodata:00000000000A4C8C align 10h +.rodata:00000000000A4C90 xmmword_A4C90 xmmword 8000000000000000h diff --git a/asm/dword_A4C88.txt b/asm/dword_A4C88.txt new file mode 100644 index 0000000..be2821c --- /dev/null +++ b/asm/dword_A4C88.txt @@ -0,0 +1,41 @@ +.text:0000000000013409 comiss xmm0, cs:dword_A4C88 +.text:0000000000013410 jb short loc_13450 +.text:0000000000013412 cmp [rdi+3DAh], esi +.text:0000000000013418 mov ecx, 0 +.text:000000000001341D mov [rdi+3DAh], esi +.text:0000000000013423 setz al +-- +.text:0000000000016C20 comiss xmm0, cs:dword_A4C88 +.text:0000000000016C27 jb short loc_16C10 +.text:0000000000016C29 cmp r14w, 8000h +.text:0000000000016C2F setnz dl +.text:0000000000016C32 cmp cx, 1 +.text:0000000000016C36 setbe cl +-- +.text:0000000000016CC9 comiss xmm0, cs:dword_A4C88 +.text:0000000000016CD0 mov [rbx+100h], r13d +.text:0000000000016CD7 jb short loc_16D20 +.text:0000000000016CD9 +.text:0000000000016CD9 loc_16CD9: ; CODE XREF: sub_16BD0+1B6j +.text:0000000000016CD9 movss xmm1, cs:dword_A4C84 +-- +.text:0000000000016D75 comiss xmm0, cs:dword_A4C88 +.text:0000000000016D7C mov dword ptr [rbx+100h], 0 +.text:0000000000016D86 jnb loc_16CD9 +.text:0000000000016D8C mov dword ptr [rbx+0F0h], 0 +.text:0000000000016D96 xor r12d, r12d +.text:0000000000016D99 jmp loc_16D00 +-- +.text:000000000002D3AD comiss xmm0, cs:dword_A4C88 +.text:000000000002D3B4 jb short loc_2D400 +.text:000000000002D3B6 cmp esi, 3FFFFFh +.text:000000000002D3BC ja short loc_2D400 +.text:000000000002D3BE ucomiss xmm0, dword ptr [rdi+0F0h] +.text:000000000002D3C5 mov edx, 0 +-- +.rodata:00000000000A4C88 dword_A4C88 dd 0C2C80000h ; DATA XREF: sub_133D0+39r +.rodata:00000000000A4C88 ; sub_16BD0:loc_16C20r ... +.rodata:00000000000A4C8C align 10h +.rodata:00000000000A4C90 xmmword_A4C90 xmmword 8000000000000000h +.rodata:00000000000A4C90 ; DATA XREF: sub_12260+197r +.rodata:00000000000A4C90 ; sub_178D0+126r ... diff --git a/asm/qword_A4C38.txt b/asm/qword_A4C38.txt new file mode 100644 index 0000000..73bf18b --- /dev/null +++ b/asm/qword_A4C38.txt @@ -0,0 +1,34 @@ +.text:0000000000010016 movsd xmm2, cs:qword_A4C38 +.text:000000000001001E mov [rsp+78h+var_5C], r11d +.text:0000000000010023 cvtsi2sd xmm0, ecx +.text:0000000000010027 add edi, eax +.text:0000000000010029 add esi, eax +.text:000000000001002B cvtsi2sd xmm1, edi +-- +.text:0000000000010151 movsd xmm0, cs:qword_A4C38 +.text:0000000000010159 movsx esi, word ptr [rsi+rcx*2-4] +.text:000000000001015E movsx ecx, word ptr [rdi+rcx*2-4] +.text:0000000000010163 mov edi, r10d +.text:0000000000010166 cvtsi2sd xmm1, ecx +.text:000000000001016A add edx, esi +-- +.text:0000000000010488 movsd xmm2, cs:qword_A4C38 +.text:0000000000010490 mov [rsp+88h+var_54], r8d +.text:0000000000010495 cvtsi2sd xmm0, edx +.text:0000000000010499 mov [rsp+88h+var_60], r11 +.text:000000000001049E movsx eax, word ptr [rbp+r15*2+24Bh] +.text:00000000000104A7 lea edx, [rcx+rax] +-- +.text:00000000000105F4 movsd xmm1, cs:qword_A4C38 +.text:00000000000105FC movzx r8d, [rsp+88h+var_69] +.text:0000000000010602 cvtsi2sd xmm0, edx +.text:0000000000010606 mov edx, [rsp+88h+var_70] +.text:000000000001060A add edx, edi +.text:000000000001060C divsd xmm1, xmm0 +-- +.rodata:00000000000A4C38 qword_A4C38 dq 40D0000000000000h ; DATA XREF: sub_FF10+106r +.rodata:00000000000A4C38 ; sub_FF10+241r ... +.rodata:00000000000A4C40 qword_A4C40 dq 3FE0000000000000h ; DATA XREF: sub_10BF0+76r +.rodata:00000000000A4C40 ; sub_10BF0+9Fr ... +.rodata:00000000000A4C48 qword_A4C48 dq 41CDCD6500000000h ; DATA XREF: sub_10BF0+11Fr +.rodata:00000000000A4C48 ; sub_10DF0+1A1r ... diff --git a/asm/sub_2A850.txt b/asm/sub_2A850.txt new file mode 100644 index 0000000..ff4196a --- /dev/null +++ b/asm/sub_2A850.txt @@ -0,0 +1,331 @@ +.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 ... diff --git a/asm/sub_2CEF0.txt b/asm/sub_2CEF0.txt new file mode 100644 index 0000000..629cca1 --- /dev/null +++ b/asm/sub_2CEF0.txt @@ -0,0 +1,360 @@ +.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:0000000000023AEF mov [rdi+41Ch], rax +.text:0000000000023AF6 lea rax, sub_110B0 +.text:0000000000023AFD mov [rdi+424h], rax +.text:0000000000023B04 lea rax, sub_189B0 +.text:0000000000023B0B mov [rdi+42Ch], rax +.text:0000000000023B12 lea rax, sub_11110 +.text:0000000000023B19 mov [rdi+434h], rax +.text:0000000000023B20 lea rax, sub_12260 +.text:0000000000023B27 mov [rdi+43Ch], rax +.text:0000000000023B2E lea rax, sub_11B40 +.text:0000000000023B35 mov [rdi+444h], rax +.text:0000000000023B3C lea rax, sub_127B0 +.text:0000000000023B43 mov [rdi+44Ch], rax +.text:0000000000023B4A lea rax, sub_12980 +.text:0000000000023B51 mov [rdi+454h], rax +.text:0000000000023B58 lea rax, sub_12B00 +.text:0000000000023B5F mov [rdi+45Ch], rax +.text:0000000000023B66 lea rax, sub_182C0 +.text:0000000000023B6D mov [rdi+464h], rax +.text:0000000000023B74 lea rax, sub_26EF0 +.text:0000000000023B7B mov [rdi+474h], rax +.text:0000000000023B82 mov [rdi+47Ch], rax +.text:0000000000023B89 mov [rdi+48Ch], rax +.text:0000000000023B90 lea rax, sub_12B10 +.text:0000000000023B97 mov [rdi+46Ch], rax +.text:0000000000023B9E lea rax, sub_18310 +.text:0000000000023BA5 mov [rdi+4A4h], rax +.text:0000000000023BAC lea rax, sub_182E0 +.text:0000000000023BB3 mov [rdi+4ACh], rax +.text:0000000000023BBA lea rax, sub_18930 +.text:0000000000023BC1 mov [rdi+494h], rax +.text:0000000000023BC8 lea rax, sub_18710 +.text:0000000000023BCF mov [rdi+49Ch], rax +.text:0000000000023BD6 lea rax, sub_136C0 +.text:0000000000023BDD mov [rdi+52Ch], rax +.text:0000000000023BE4 lea rax, sub_136B0 +-- +.text:000000000002CEF0 sub_2CEF0 proc near ; DATA XREF: sub_237C0+18Do +.text:000000000002CEF0 mov r8d, ecx +.text:000000000002CEF3 test dx, dx +.text:000000000002CEF6 jnz short loc_2CF28 +.text:000000000002CEF8 cmp word ptr [rdi+392h], 0 +.text:000000000002CF00 mov dword ptr [rdi+104h], 0 +.text:000000000002CF0A setz al +.text:000000000002CF0D and [rdi+0BCh], al +.text:000000000002CF13 xor eax, eax +.text:000000000002CF15 mov [rdi+392h], ax +.text:000000000002CF1C mov eax, 1 +.text:000000000002CF21 retn +.text:000000000002CF21 ; --------------------------------------------------------------------------- +.text:000000000002CF22 align 8 +.text:000000000002CF28 +.text:000000000002CF28 loc_2CF28: ; CODE XREF: sub_2CEF0+6j +.text:000000000002CF28 cmp dx, 1 +.text:000000000002CF2C movzx ecx, word ptr [rsi+6] +.text:000000000002CF30 setbe al +.text:000000000002CF33 setbe r10b +.text:000000000002CF37 movzx eax, al +.text:000000000002CF3A cmp cx, 5 +.text:000000000002CF3E jz short loc_2CF90 +.text:000000000002CF40 cmp byte ptr [rdi+235h], 10h +.text:000000000002CF47 jz loc_2D0B8 +.text:000000000002CF4D xor eax, eax +.text:000000000002CF4F cmp cx, 3 +.text:000000000002CF53 setbe al +.text:000000000002CF56 and eax, r10d +.text:000000000002CF59 mov ecx, eax +.text:000000000002CF5B +.text:000000000002CF5B loc_2CF5B: ; CODE XREF: sub_2CEF0+1D5j +.text:000000000002CF5B cmp dword ptr [rsi+8], 1 +.text:000000000002CF5F setbe al +.text:000000000002CF62 cmp word ptr [rsi], 8000h +.text:000000000002CF67 setnz r9b +.text:000000000002CF6B and eax, r9d +.text:000000000002CF6E cmp word ptr [rsi+2], 8000h +.text:000000000002CF74 setnz r9b +.text:000000000002CF78 and eax, r9d +.text:000000000002CF7B movzx r9d, word ptr [rsi+4] +.text:000000000002CF80 not r9d +.text:000000000002CF83 shr r9w, 0Fh +.text:000000000002CF88 and eax, r9d +.text:000000000002CF8B and eax, r10d +.text:000000000002CF8E and eax, ecx +.text:000000000002CF90 +.text:000000000002CF90 loc_2CF90: ; CODE XREF: sub_2CEF0+4Ej +.text:000000000002CF90 test eax, eax +.text:000000000002CF92 jz locret_2D030 +.text:000000000002CF98 movzx ecx, word ptr [rdi+392h] +.text:000000000002CF9F mov rax, [rdi+38Ah] +.text:000000000002CFA6 cmp dx, cx +.text:000000000002CFA9 setz dl +.text:000000000002CFAC and dl, [rdi+0BCh] +.text:000000000002CFB2 mov [rdi+0BCh], dl +.text:000000000002CFB8 test cx, cx +.text:000000000002CFBB jnz short loc_2D038 +.text:000000000002CFBD mov dword ptr [rdi+104h], 0 +.text:000000000002CFC7 +.text:000000000002CFC7 loc_2CFC7: ; CODE XREF: sub_2CEF0+1BFj +.text:000000000002CFC7 movzx edx, word ptr [rsi+6] +.text:000000000002CFCB cmp dx, 5 +.text:000000000002CFCF jz short loc_2CFF4 +.text:000000000002CFD1 movzx ecx, word ptr [rsi] +.text:000000000002CFD4 mov [rdi+104h], r8d +.text:000000000002CFDB mov [rax], cx +.text:000000000002CFDE movzx ecx, word ptr [rsi+2] +.text:000000000002CFE2 mov [rax+2], cx +.text:000000000002CFE6 movzx ecx, word ptr [rsi+4] +.text:000000000002CFEA mov [rax+4], cx +.text:000000000002CFEE mov ecx, [rsi+8] +.text:000000000002CFF1 mov [rax+8], ecx +.text:000000000002CFF4 +.text:000000000002CFF4 loc_2CFF4: ; CODE XREF: sub_2CEF0+DFj +.text:000000000002CFF4 cmp byte ptr [rdi+235h], 10h +.text:000000000002CFFB jz loc_2D0D0 +.text:000000000002D001 mov [rax+6], dx +.text:000000000002D005 +.text:000000000002D005 loc_2D005: ; CODE XREF: sub_2CEF0+1E7j +.text:000000000002D005 xor edx, edx +.text:000000000002D007 cmp word ptr [rsi+6], 5 +.text:000000000002D00C setnz dl +.text:000000000002D00F mov [rdi+392h], dx +.text:000000000002D016 movsx eax, word ptr [rax+6] +.text:000000000002D01A mov [rdi+0F8h], eax +.text:000000000002D020 mov eax, 1 +.text:000000000002D025 retn +.text:000000000002D025 ; --------------------------------------------------------------------------- +.text:000000000002D026 align 10h +.text:000000000002D030 +.text:000000000002D030 locret_2D030: ; CODE XREF: sub_2CEF0+A2j +.text:000000000002D030 retn +.text:000000000002D030 ; --------------------------------------------------------------------------- +.text:000000000002D031 align 8 +.text:000000000002D038 +.text:000000000002D038 loc_2D038: ; CODE XREF: sub_2CEF0+CBj +.text:000000000002D038 movzx ecx, word ptr [rsi] +.text:000000000002D03B cmp [rax], cx +.text:000000000002D03E setz cl +.text:000000000002D041 and ecx, edx +.text:000000000002D043 mov [rdi+0BCh], cl +.text:000000000002D049 movzx edx, word ptr [rsi+2] +.text:000000000002D04D cmp [rax+2], dx +.text:000000000002D051 setz dl +.text:000000000002D054 and ecx, edx +.text:000000000002D056 mov [rdi+0BCh], cl +.text:000000000002D05C movzx edx, word ptr [rsi+4] +.text:000000000002D060 cmp [rax+4], dx +.text:000000000002D064 setz dl +.text:000000000002D067 and edx, ecx +.text:000000000002D069 cmp byte ptr [rdi+235h], 10h +.text:000000000002D070 mov [rdi+0BCh], dl +.text:000000000002D076 jz short loc_2D0E0 +.text:000000000002D078 movzx ecx, word ptr [rsi+6] +.text:000000000002D07C cmp [rax+6], cx +.text:000000000002D080 setz cl +.text:000000000002D083 and edx, ecx +.text:000000000002D085 +.text:000000000002D085 loc_2D085: ; CODE XREF: sub_2CEF0+204j +.text:000000000002D085 mov [rdi+0BCh], dl +.text:000000000002D08B mov ecx, [rsi+8] +.text:000000000002D08E cmp [rax+8], ecx +.text:000000000002D091 mov dword ptr [rdi+104h], 0 +.text:000000000002D09B setz cl +.text:000000000002D09E and edx, ecx +.text:000000000002D0A0 mov [rdi+0BCh], dl +.text:000000000002D0A6 xor edx, edx +.text:000000000002D0A8 mov [rdi+392h], dx +.text:000000000002D0AF jmp loc_2CFC7 +.text:000000000002D0AF ; --------------------------------------------------------------------------- +.text:000000000002D0B4 align 8 +.text:000000000002D0B8 +.text:000000000002D0B8 loc_2D0B8: ; CODE XREF: sub_2CEF0+57j +.text:000000000002D0B8 cmp cx, 1 +.text:000000000002D0BC setbe cl +.text:000000000002D0BF movzx ecx, cl +.text:000000000002D0C2 and ecx, r10d +.text:000000000002D0C5 jmp loc_2CF5B +.text:000000000002D0C5 ; --------------------------------------------------------------------------- +.text:000000000002D0CA align 10h +.text:000000000002D0D0 +.text:000000000002D0D0 loc_2D0D0: ; CODE XREF: sub_2CEF0+10Bj +.text:000000000002D0D0 add edx, 1 +.text:000000000002D0D3 mov [rax+6], dx +.text:000000000002D0D7 jmp loc_2D005 +.text:000000000002D0D7 ; --------------------------------------------------------------------------- +.text:000000000002D0DC align 20h +.text:000000000002D0E0 +.text:000000000002D0E0 loc_2D0E0: ; CODE XREF: sub_2CEF0+186j +.text:000000000002D0E0 movsx ecx, word ptr [rsi+6] +.text:000000000002D0E4 movsx r9d, word ptr [rax+6] +.text:000000000002D0E9 add ecx, 1 +.text:000000000002D0EC cmp ecx, r9d +.text:000000000002D0EF setz cl +.text:000000000002D0F2 and edx, ecx +.text:000000000002D0F4 jmp short loc_2D085 +.text:000000000002D0F4 sub_2CEF0 endp +.text:000000000002D0F4 +.text:000000000002D0F4 ; --------------------------------------------------------------------------- +.text:000000000002D0F6 align 20h +.text:000000000002D100 +.text:000000000002D100 ; =============== S U B R O U T I N E ======================================= +.text:000000000002D100 +.text:000000000002D100 +.text:000000000002D100 sub_2D100 proc near ; DATA XREF: sub_237C0+19Bo +.text:000000000002D100 cmp dx, 1 +.text:000000000002D104 mov r8, rdi +.text:000000000002D107 setbe cl +.text:000000000002D10A movzx eax, cl +.text:000000000002D10D test dx, dx +.text:000000000002D110 jz short loc_2D14C +.text:000000000002D112 cmp dword ptr [rsi], 2 +.text:000000000002D115 setbe al +.text:000000000002D118 cmp dword ptr [rsi+4], 2 +.text:000000000002D11C setbe dil +.text:000000000002D120 and eax, edi +.text:000000000002D122 and eax, ecx +.text:000000000002D124 cmp byte ptr [r8+235h], 10h +.text:000000000002D12C jz short loc_2D141 +.text:000000000002D12E cmp dword ptr [rsi+8], 2 +.text:000000000002D132 setbe cl +.text:000000000002D135 cmp dword ptr [rsi+0Ch], 2 +.text:000000000002D139 setbe dil +.text:000000000002D13D and ecx, edi +.text:000000000002D13F and eax, ecx +.text:000000000002D141 +.text:000000000002D141 loc_2D141: ; CODE XREF: sub_2D100+2Cj +.text:000000000002D141 xor ecx, ecx +.text:000000000002D143 cmp dword ptr [rsi+14h], 2 +.text:000000000002D147 setbe cl +.text:000000000002D14A and eax, ecx +.text:000000000002D14C +.text:000000000002D14C loc_2D14C: ; CODE XREF: sub_2D100+10j +.text:000000000002D14C test eax, eax +.text:000000000002D14E jz locret_2D21A +.text:000000000002D154 movzx edi, word ptr [r8+39Eh] +.text:000000000002D15C cmp di, dx +.text:000000000002D15F setz cl +.text:000000000002D162 and cl, [r8+0BCh] +.text:000000000002D169 mov [r8+0BCh], cl +.text:000000000002D170 test di, di +.text:000000000002D173 jz loc_2D220 +.text:000000000002D179 test dx, dx +.text:000000000002D17C jz loc_2D210 +.text:000000000002D182 movzx r9d, byte ptr [r8+235h] +.text:000000000002D18A mov rdi, [r8+396h] +.text:000000000002D191 mov r10d, [rsi] +.text:000000000002D194 cmp r9b, 10h +.text:000000000002D198 jz loc_2D288 +.text:000000000002D19E cmp [rdi], r10d +.text:000000000002D1A1 setz r10b +.text:000000000002D1A5 and ecx, r10d +.text:000000000002D1A8 mov [r8+0BCh], cl +.text:000000000002D1AF mov r11d, [rsi+4] +.text:000000000002D1B3 cmp [rdi+4], r11d +.text:000000000002D1B7 setz r10b +.text:000000000002D1BB and r10d, ecx +.text:000000000002D1BE mov [r8+0BCh], r10b +.text:000000000002D1C5 mov ecx, [rsi+8] +.text:000000000002D1C8 cmp [rdi+8], ecx +.text:000000000002D1CB setz cl +.text:000000000002D1CE and r10d, ecx +.text:000000000002D1D1 mov [r8+0BCh], r10b +.text:000000000002D1D8 mov ecx, [rsi+0Ch] +.text:000000000002D1DB cmp [rdi+0Ch], ecx +.text:000000000002D1DE setz cl +.text:000000000002D1E1 and ecx, r10d +.text:000000000002D1E4 mov [r8+0BCh], cl +.text:000000000002D1EB +.text:000000000002D1EB loc_2D1EB: ; CODE XREF: sub_2D100+1ADj +.text:000000000002D1EB mov r11d, [rsi+14h] +.text:000000000002D1EF cmp [rdi+14h], r11d +.text:000000000002D1F3 mov [r8+39Eh], dx +.text:000000000002D1FB setz r10b +.text:000000000002D1FF and ecx, r10d +.text:000000000002D202 mov [r8+0BCh], cl +.text:000000000002D209 jmp short loc_2D241 +.text:000000000002D209 ; --------------------------------------------------------------------------- +.text:000000000002D20B align 10h +.text:000000000002D210 +.text:000000000002D210 loc_2D210: ; CODE XREF: sub_2D100+7Cj +.text:000000000002D210 xor edx, edx +.text:000000000002D212 mov [r8+39Eh], dx +.text:000000000002D21A +.text:000000000002D21A locret_2D21A: ; CODE XREF: sub_2D100+4Ej +.text:000000000002D21A ; sub_2D100+12Bj ... +.text:000000000002D21A retn +.text:000000000002D21A ; --------------------------------------------------------------------------- +.text:000000000002D21B align 20h +.text:000000000002D220 +.text:000000000002D220 loc_2D220: ; CODE XREF: sub_2D100+73j +.text:000000000002D220 mov [r8+39Eh], dx +.text:000000000002D228 test rsi, rsi +.text:000000000002D22B jz short locret_2D21A +.text:000000000002D22D test dx, dx +.text:000000000002D230 jz short locret_2D21A +.text:000000000002D232 movzx r9d, byte ptr [r8+235h]