2011年9月8日木曜日

RagAddress.ini 搜尋更新(2011-08-23aRagexe)

//2011-08-23aRagexe
//CharName=
//Search:esi, [ecx+12E8h]

sub_703680 proc near
push esi
lea esi, [ecx+12E8h]
push edi
mov ecx, 10h
mov edi, offset byte_87BEE0 //CharName=
rep movsd
mov ecx, off_7D64DC
mov esi, ecx
xor eax, eax
sub esi, offset byte_87BEE0 //CharName=
jmp short loc_7036B0
align 10h

loc_7036B0:
movzx edx, byte_87BEE0[esi+eax] //CharName=
xor byte_87BEE0[eax], dl
movzx edx, byte ptr [ecx+eax+1]
xor byte_87BEE1[eax], dl
movzx edx, byte ptr [ecx+eax+2]
xor byte_87BEE2[eax], dl
movzx edx, byte ptr [ecx+eax+3]
xor byte_87BEE3[eax], dl
add eax, 4
cmp eax, 40h
jb short loc_7036B0
pop edi
mov eax, offset byte_87BEE0
pop esi
retn
sub_703680 endp

align 10h

//Zeny=
//BaseExp=
//BaseExpNext=
//JobExp=
//JobExpNext=
//Search:mov ecx, [esp+58h+var_10]

loc_689B95:
mov [esp+6Ch+var_4], 0FFFFFFFFh
lea ecx, [esp+6Ch+var_2C]
call //此行有點問題 貼不上來
mov ecx, [esp+6Ch+var_C]
mov large fs:0, ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, [esp+58h+var_10]
xor ecx, esp
call sub_722AB8
add esp, 58h
retn 4
sub_6891C0 endp

off_689BC8 dd offset loc_68922F
dd offset loc_689253
dd offset loc_68926B
dd offset loc_689344
dd offset loc_68941D
dd offset loc_689459
dd offset loc_68946C
dd offset loc_68947F
dd offset loc_6894BA
dd offset loc_6896A2
dd offset loc_6896C3
dd offset loc_6896DB
dd offset loc_6896F3
dd offset loc_68970A
dd offset loc_689722
dd offset loc_68973A
dd offset loc_689751
dd offset loc_6898CE
dd offset loc_6899D0
dd offset loc_6899E8
dd offset loc_689A00
dd offset loc_689A17
dd offset loc_689A2F
dd offset loc_689A47
dd offset loc_689A5E
dd offset loc_689A76
dd offset loc_689A8E
dd offset loc_689AA5
dd offset loc_689ABD
dd offset loc_689AD5
dd offset loc_689AEC
dd offset loc_689B04
dd offset loc_689B19
dd offset loc_689327
dd offset loc_689B95
byte_689C54 db 0
db 2 dup(22h), 1
dd 5040302h, 8220706h, 0C0B0A09h, 220F0E0Dh
dd 22222222h, 22221110h, 3 dup(22222222h)
dd 14131222h, 18171615h, 1C1B1A19h, 201F1E1Dh
dd 22222222h, 498D21h
off_689C94 dd offset loc_689570
dd offset loc_6895AB
byte_689C9C db 0
align 10h
dword_689CA0 dd 0CC010101h, 3 dup(0CCCCCCCCh), 104EC81h
dd 0C0A10000h, 33007DCCh, 248489C4h, 100h
dd 24BC8B57h, 10Ch, 247B70Fh, 16F88348h
dd 0D5870Fh, 0B60F0000h, 689DE080h, 8524FF00h
dd 689DC8h, 18B9026Ah, 0E80087DDh, 55FFCh
dd 5D74C085h, 5304478Bh, 0FCAC1D8Bh, 8B560087h
dd 85F32BF0h, 854874C0h, 554474F6h, 0FCB82D8Bh
dd 0C88B0087h, 0C32BC58Bh, 50FEF799h, 0CB2B5155h
dd 244C8D51h, 6C886820h, 0FF510078h, 75637815h
dd 18C48300h, 6A006Ah, 0F51EF568h, 24548D00h
dd 16A521Ch, 819078B9h, 5EDEE800h, 5E5DFFE9h
dd 4478B5Bh, 87FCACA3h, 8B46EB00h, 0D89044Fh //BaseExp=87F***
dd 87FD68h, 0B9833BEBh, 11Ch, 0C7147400h //JobExp=87F***
dd 11C81h, 0
add byte ptr dword_87DD18[ecx], bh
call sub_6F1A70
mov edx, [edi+4]
mov dword_87FD54, edx //Zeny=
jmp short loc_689DA5

loc_689D92:
mov eax, [edi+4]
mov dword_87FCB8, eax //BaseExpNext=
jmp short loc_689DA5

loc_689D9C:
mov ecx, [edi+4]
mov dword_87FD64, ecx //JobExpNext=


//Weight=
//WeightMax=
//Search:; "Weight : %3d / %3d"

loc_494BB4:  ; "Weight : %3d / %3d"
push offset aWeight3d3d

loc_494BB9:  ; char *
push edx
call ebx ; sprintf
mov eax, dword_8797C0 //WeightMax=
add esp, 10h
xor edi, edi
cmp eax, 1
mov ecx, eax
jg short loc_494BD2
mov ecx, 1

loc_494BD2:
mov eax, dword_8797CC //Weight=
imul eax, 64h
cdq
idiv ecx
cmp eax, 32h
jl short loc_494BE7
mov edi, 0FFh

//BaseLv=
//JobLv=
//Search:; "Base Lv. %d"
//Search:; "Job Lv. %d"

loc_494A8B:
mov eax, dword_879710 //BaseLv=
push eax
push offset aBaseLv_D ; "Base Lv. %d"
lea ecx, [esp+2Ch]
push ecx  ; char *

loc_494ADB:
mov eax, dword_87971C //JobLv=
push eax
push offset aJobLv_D ; "Job Lv. %d"
lea ecx, [esp+2Ch]
push ecx  ; char *

//HPIndex=
//MaxHPTable=
//Search:
HPIndex & MaxHPTable 似乎是無解
使用 WinHex 和之前版本比較 似乎整個被拿掉了
不過 這 2 個並不影響 Exp 效率的計算
只是不能自動喝水了