Textdoc
Zipdoc
Writeurl
ListPrompter
Loading…
.DATA finalfinal db 50 dup (0) table db 046h,041h,054h,033h,032h,000h,000h,000h finalserial db 50 dup (0) bufferserial db 250 dup (0) db 250 dup (0) stockchaine dd 50 dup (020h) checkit db 1 compteur dd 1 fake db 050h,04Fh,046h,053h,04Fh,046h,054h,031h,08Dh,040h,0 conversion db '%8lu',0 stockage dd 10 dup(020h) bufferdeb db 50 dup(020h) buffer db 25 dup (020h) cestbon db 50 dup (0) Stockserial db 050h,04fh,046h,031h,00,00,00,00,00,00,00,00,00,00,00 nomproggy db "EarthBrowser",0 NO_caract�res db "More chars !",0 ;052h,068h,0e2h,036h trop_caract�res db "Trop de caract�res !",0 manke_caract�res db "More chars !",0 manke_caract�res2 db "trop de caract�res !",0 initiate db 'fake1',0 initiate2 db "fake2",0 capwarning db "A LIRE !!",0 carry dd 0 intermediaire dd 50 dup(0) temp1 db 250 dup (0) temp2 db 250 dup (0) saveebp dd ? saveesi dd ? saveedi dd ? saveebp2 dd ? saveesi2 dd ? saveedi2 dd ? sedi dd ? sesi dd ? sedx dd ? secx dd ? sebx dd ? sedi3 dd ? sesi3 dd ? sedx3 dd ? secx3 dd ? sebx3 dd ? RsrcTab db "TABLE",0 RsrcData db "DATA",0 tableHandle dd ? Rsrcmem dd ? checkname db 0 checkaff db 0 tempo db "ARWana1",0 save dd 50 dup (0) lenght dd ? db 50 dup (0) fakeit db "user32.dll",0,0,0,0 db 50 dup (0) fakename db "capello",0 auteur db "capello",0 fakexor db 048h,0EEh,076h,01Dh,067h,069h,0A1h,01Bh,07Ah,08Ch,047h,0F8h,030h,031h,032h,033h,034h,035h,036h,037h,038h,039h,041h,042h,043h,044h,045h,046h,0D0h,0F6h,046h,000 fuckfuck db 250 dup (0) LOC_004BE89C db '��@',0 LOC_004BD0B8 dd 000401300h carry1 db 20 dup (0) carry2 db 20 dup (0) carry3 db 20 dup (0) carry4 db 20 dup (0) tempbuff db 50 dup (0) dword_479E30 dd ? unk_479DA0 dd 1000 dup (0) dword_479E1C dd 1000 dup (0) dword_479E28 dd 1000 dup (0) dword_479E24 dd 1000 dup (0) dword_479D9C dd 1000 dup (0) dword_479E20 dd 1000 dup (0) dword_479E2C dd 1000 dup (0) str__02x db '%02X',0 buffertest db "N5B3406A89572CDE",0 buffertest2 dd 50 dup (0) finalserial2 dd 50 dup (0) .CODE Generator: ;Uses eax,ebx,ecx,edx,esi,edi,ebp ;pushad ; call FindResource,AppHWnd,offset RsrcData ,offset RsrcTab ; mov tableHandle, eax ; call LoadResource,AppHWnd,eax ; mov memptr22, eax mov dword ptr [sedi],edi mov dword ptr [sesi],esi mov dword ptr [sedx],edx mov dword ptr [secx],ecx mov dword ptr [sebx],ebx push 050 ; size of buffer push offset bufferdeb ; buffer push IDD_champname ; what box to snatch the text from push hwnd ; our dialog handle call GetDlgItemTextA cmp eax,4 jle blanc xor edx,edx xor ecx,ecx mov ebx,offset bufferdeb seed: movzx ecx,byte ptr [ebx] add edx,ecx inc ebx dec eax jnz seed imul edx,066631337h mov ebx,edx call _wsprintfA, offset buffertest+2, offset conversion, ebx call _wsprintfA, offset buffertest+9, offset conversion, ebx mov eax,dword ptr [buffertest] mov ebx,dword ptr [buffertest+4] mov dword ptr [buffertest2],eax mov dword ptr [buffertest2+4],eax mov byte ptr [buffertest2+7],'0' mov byte ptr [buffertest2+6],'0' ; mov dword ptr [bufferdeb+4],0 ; mov ecx,4 mov esi,8 LEA ECX,finalserial PUSH ESI LEA EDX,buffertest2 PUSH ECX PUSH EDX CALL sub_43F640 ;N1B3406A89572CDE // N123-4567-890A-BCDE ; N1B3-406A-8957-2CDE ; N1B3-406A-5416-FF29 mov eax,dword ptr [offset finalserial+2] mov ebx,dword ptr [finalserial+12] ; 3eme char mov byte ptr [finalserial+2],bl mov byte ptr [finalserial+12],al mov eax,dword ptr [offset finalserial+5] mov ebx,dword ptr [finalserial+10] ; 6eme char mov byte ptr [finalserial+5],bl mov byte ptr [finalserial+10],al mov eax,dword ptr [offset finalserial+7] mov ebx,dword ptr [finalserial+11] ; 8eme char mov byte ptr [finalserial+7],bl mov byte ptr [finalserial+11],al mov eax,dword ptr [finalserial] mov ebx,dword ptr [finalserial+4] mov ecx,dword ptr [finalserial+8] mov edx,dword ptr [finalserial+12] mov dword ptr [finalserial2],eax mov dword ptr [finalserial2+4],02dh mov dword ptr [finalserial2+5],ebx mov dword ptr [finalserial2+9],02dh mov dword ptr [finalserial2+10],ecx mov dword ptr [finalserial2+14],02dh mov dword ptr [finalserial2+15],edx ; mov dword ptr [finalserial+8],0 mov dword ptr [buffertest+8],0 mov dword ptr [buffertest+12],0 retkey: push offset finalserial2 push 0 push WM_SETTEXT ; command push IDD_champserial ; what box? push hwnd ; dialog handle call SendDlgItemMessageA xxx: mov dword ptr [carry],0 mov dword ptr [carry1],0 mov dword ptr [carry4],0 mov edi ,dword ptr [sedi] mov esi ,dword ptr [sesi] mov edx ,dword ptr [sedx] mov ecx ,dword ptr [secx] mov ebx ,dword ptr [sebx] push offset retgene leave ret blanc: push offset NO_caract�res push 0 push WM_SETTEXT push IDD_champserial push hwnd call SendDlgItemMessageA ret ret blanc2: push offset manke_caract�res2 push 0 push WM_SETTEXT push IDD_champserial push hwnd call SendDlgItemMessageA ret sub_43F640 PROC var_90 = -90h var_88 = -88h var_80 = -80h arg_0 = 04h arg_4 = 08h arg_8 = 0ch sub esp, 90h push ebx push ebp push esi mov esi, [esp+9Ch+arg_0] test esi, esi push edi jz loc_43F744 cmp byte ptr [esi], 0 jz loc_43F744 mov ebp, [esp+0A0h+arg_4] test ebp, ebp jz loc_43F744 mov edi, esi or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx dec ecx cmp ecx, 8 jnz loc_43F744 mov ebx, [esp+0A0h+arg_8] cmp ebx, ecx jz short loc_43F69F cmp ebx, 0Ch jz short loc_43F69F cmp ebx, 10h jnz loc_43F744 loc_43F69F: lea eax, [esp+0A0h+var_88] push eax push esi call sub_43FF50 add esp, 8 lea ecx, [esp+0A0h+var_80] lea edx, [esp+0A0h+var_88] push ecx push edx call sub_43FC60 push 8 lea eax, [esp+0A4h+var_90] push esi push eax call ds:_strncpy add esp, 0Ch lea ecx, [esp+0A0h+var_80] lea edx, [esp+0A0h+var_90] lea eax, [esp+0A0h+var_90] push 1 push ecx push edx push eax call sub_43F760 mov edi, esi or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx sub edi, ecx mov eax, ebx mov edx, ecx mov esi, edi mov edi, ebp shr ecx, 2 repe movsd mov ecx, edx cdq and ecx, 3 sub eax, edx repe movsb mov edi, eax xor esi, esi sar edi, 1 test edi, edi jle short loc_43F734 lea ebx, [ebp+8] ;mov ebp, ds:_wsprintfA loc_43F71A: xor eax, eax mov al, [esp+esi+0A0h+var_90] push eax push offset str__02x ; "%02X" push ebx call _wsprintfA ;ebp ; wsprintfA add esp, 0Ch inc esi add ebx, 2 cmp esi, edi jl short loc_43F71A loc_43F734: pop edi pop esi pop ebp mov eax, 1 pop ebx add esp, 90h retn loc_43F744: pop edi pop esi pop ebp xor eax, eax pop ebx add esp, 90h unknown_libname_331: retn sub_43F640 ENDP ;------------------ SUBROUTINE ---------------------------------------------- sub_43FF50 PROC arg_0 = 08h arg_4 = 0ch push ebp mov ebp, [esp+arg_0] test ebp, ebp push edi jz loc_44000A cmp byte ptr [ebp+0], 0 jz loc_44000A mov eax, [esp+4+arg_4] test eax, eax jz loc_44000A mov edi, ebp or ecx, 0FFFFFFFFh xor eax, eax repne scasb not ecx dec ecx cmp ecx, 8 jnz loc_44000A mov eax, dword_479E30 test eax, eax jnz short loc_43FFB3 mov ecx, offset unk_479DA0 mov eax, 1 dec ecx loc_43FF9D: mov [ecx+eax], al inc eax lea edx, [eax-1] cmp edx, 7Ch jb short loc_43FF9D mov dword_479E30, 1 loc_43FFB3: mov al, [ebp+0] push ebx xor ebx, ebx push esi test al, al jz short loc_43FFCF mov cl, al mov edx, ebp loc_43FFC2: movsx ecx, cl add ebx, ecx mov cl, [edx+1] inc edx test cl, cl jnz short loc_43FFC2 loc_43FFCF: xor esi, esi test al, al jz short loc_440000 mov edi, [esp+0Ch+arg_4] mov ecx, ebp sub edi, ebp loc_43FFDD: movsx eax, al add eax, esi xor edx, edx imul eax, ebx mov ebp, 7Ch div ebp inc esi inc ecx mov dl, byte ptr unk_479DA0[edx] mov [edi+ecx-1], dl mov al, [ecx] test al, al jnz short loc_43FFDD loc_440000: pop esi pop ebx pop edi mov eax, 1 pop ebp retn loc_44000A: pop edi xor eax, eax pop ebp retn sub_43FF50 ENDP ;------------------ SUBROUTINE ---------------------------------------------- sub_43FC60 PROC arg_0 = 04h arg_4 = 08h mov eax, [esp+arg_4] mov ecx, [esp+arg_0] push eax push ecx call sub_43FC80 add esp, 8 retn 8 sub_43FC60 ENDP ;------------------ SUBROUTINE ---------------------------------------------- sub_43FC80 PROC var_10 = -10h var_F = -0fh var_E = -0eh var_D = -0dh var_C = -0ch var_B = -0bh var_A = -0ah var_9 = -09h var_8 = -08h var_7 = -07h var_6 = -06h var_5 = -05h var_4 = -04h var_3 = -03h var_2 = -02h var_1 = -01h arg_0 = 04h arg_4 = 08h sub esp, 10h push ebx push ebp mov al, 1 push esi mov esi, [esp+1Ch+arg_0] mov [esp+1Ch+var_E], al mov [esp+1Ch+var_D], al mov [esp+1Ch+var_C], al mov [esp+1Ch+var_B], al mov [esp+1Ch+var_A], al mov [esp+1Ch+var_9], al mov [esp+1Ch+var_7], al mov [esp+1Ch+var_6], al mov [esp+1Ch+var_5], al mov [esp+1Ch+var_4], al mov [esp+1Ch+var_3], al mov [esp+1Ch+var_2], al xor eax, eax mov al, [esi] xor ebx, ebx inc esi xor ecx, ecx xor edx, edx mov ebp, [esp+1Ch+arg_4] mov ch, [esi] mov dl, [esi+1] or eax, ecx inc esi shl edx, 10h or eax, edx inc esi xor ecx, ecx xor edx, edx mov cl, [esi] push edi shl ecx, 18h or eax, ecx inc esi xor ecx, ecx mov [esp+20h+var_10], bl mov cl, [esi] mov dh, [esi+1] inc esi or ecx, edx inc esi xor edx, edx mov [esp+20h+var_F], bl mov [esp+20h+var_8], bl mov dh, [esi+1] mov [esp+20h+var_1], bl mov dl, [esi] mov esi, eax shl edx, 10h or ecx, edx and esi, 0F0F0F0Fh mov edx, ecx shr edx, 4 and edx, 0F0F0F0Fh xor edx, esi xor eax, edx shl edx, 4 xor ecx, edx mov edx, eax and edx, 0FFFFF333h mov esi, eax shl edx, 12h and esi, 0CCCC0000h xor edx, esi mov esi, edx shr esi, 12h xor esi, edx mov edx, ecx xor eax, esi and edx, 0FFFFF333h mov esi, ecx shl edx, 12h and esi, 0CCCC0000h xor edx, esi mov esi, edx shr esi, 12h xor esi, edx xor ecx, esi mov esi, eax mov edx, ecx and esi, 55555555h shr edx, 1 and edx, 55555555h xor edx, esi xor eax, edx add edx, edx xor ecx, edx mov edx, eax shr edx, 8 mov esi, ecx and edx, 0FF00FFh and esi, 0FF00FFh xor edx, esi xor ecx, edx shl edx, 8 xor eax, edx mov edx, ecx shr edx, 1 mov esi, eax and edx, 55555555h and esi, 55555555h xor edx, esi xor eax, edx add edx, edx xor ecx, edx mov edx, eax mov esi, ecx and edx, 0F000000Fh shr esi, 0Ch and esi, 0FF0h and eax, 0FFFFFFFh or esi, edx mov edx, ecx and edx, 0FFh and ecx, 0FF00h shr esi, 4 shl edx, 10h or esi, edx or esi, ecx xor ecx, ecx mov [esp+20h+arg_4], ecx jmp short loc_43FDF1 loc_43FDEF: xor ebx, ebx loc_43FDF1: mov dl, [esp+ecx+20h+var_10] mov ecx, eax cmp dl, bl jz short loc_43FE0D shl ecx, 1Ah shr eax, 2 mov edx, esi or eax, ecx shl edx, 1Ah shr esi, 2 jmp short loc_43FE1B loc_43FE0D: shl ecx, 1Bh shr eax, 1 mov edx, esi or eax, ecx shl edx, 1Bh shr esi, 1 loc_43FE1B: and eax, 0FFFFFFFh or esi, edx mov edx, eax mov edi, eax shr edx, 1 mov ecx, edx and edi, 0C00000h and ecx, 7000000h mov ebx, edx or ecx, edi mov edi, eax shr ecx, 1 and edi, 100000h and ebx, 60000h or ecx, edi mov edi, eax and edi, 1E000h and edx, 0F00h or edi, ebx and esi, 0FFFFFFFh shr edi, 0Dh shr ecx, 14h mov ebx, dword_46F2DC[edi*4] mov edi, eax mov ecx, dword_46F3DC[ecx*4] and edi, 0C0h or edx, edi or ecx, ebx shr edx, 6 mov ebx, esi add ebp, 4 mov edi, dword_46F1DC[edx*4] mov edx, eax and edx, 3Fh or ecx, edi and ebx, 180h add ebp, 4 mov edi, dword_46F0DC[edx*4] or ecx, edi mov edi, esi shr edi, 1 mov edx, edi and edi, 6000000h and edx, 1E00h or edx, ebx mov ebx, esi and ebx, 1E00000h or edi, ebx shr edi, 15h shr edx, 7 mov ebx, dword_46F7DC[edi*4] mov edi, esi mov edx, dword_46F5DC[edx*4] shr edi, 0Fh and edi, 3Fh or edx, ebx mov ebx, dword_46F6DC[edi*4] mov edi, esi and edi, 3Fh or edx, ebx mov ebx, dword_46F4DC[edi*4] mov edi, ecx or edx, ebx and edi, 0FFFFh mov ebx, edx and edx, 0FFFF0000h shr ecx, 10h shl ebx, 10h or ecx, edx or edi, ebx mov edx, ecx mov [ebp-8], edi shr edx, 1Ch shl ecx, 4 or edx, ecx mov ecx, [esp+20h+arg_4] mov [ebp-4], edx inc ecx cmp ecx, 10h mov [esp+20h+arg_4], ecx jl loc_43FDEF pop edi pop esi pop ebp xor eax, eax pop ebx add esp, 10h retn sub_43FC80 ENDP ;------------------ SUBROUTINE ---------------------------------------------- sub_43F760 PROC var_8 = -08h var_4 = -04h arg_0 = 04h arg_4 = 08h arg_8 = 0ch arg_C = 10h sub esp, 8 mov eax, [esp+8+arg_0] xor ecx, ecx xor edx, edx push esi mov cl, [eax] mov dh, [eax+1] inc eax or ecx, edx inc eax xor edx, edx mov dl, [eax] shl edx, 10h or ecx, edx inc eax xor edx, edx mov dl, [eax] shl edx, 18h or ecx, edx inc eax xor edx, edx mov [esp+0Ch+var_8], ecx mov dl, [eax] inc eax mov esi, edx xor edx, edx mov dh, [eax] xor ecx, ecx mov ch, [eax+2] or esi, edx mov cl, [eax+1] inc eax mov edx, [esp+0Ch+arg_C] mov eax, [esp+0Ch+arg_8] shl ecx, 10h or ecx, esi push edx mov [esp+10h+var_4], ecx lea ecx, [esp+10h+var_8] push eax lea edx, [esp+14h+var_8] push ecx push edx call sub_43F810 mov eax, [esp+1Ch+arg_4] mov ecx, [esp+1Ch+var_8] add esp, 10h mov edx, ecx mov [eax], cl inc eax shr edx, 8 mov [eax], dl mov edx, ecx inc eax pop esi shr edx, 10h mov [eax], dl inc eax shr ecx, 18h mov [eax], cl mov ecx, [esp+8+var_4] inc eax mov edx, ecx shr edx, 8 mov [eax], cl inc eax mov [eax], dl mov edx, ecx inc eax shr edx, 10h shr ecx, 18h mov [eax], dl mov [eax+1], cl xor eax, eax add esp, 8 retn 10h sub_43F760 ENDP ;------------------ SUBROUTINE ---------------------------------------------- sub_43F810 PROC arg_0 = 04h arg_4 = 08h arg_8 = 0ch arg_C = 10h mov eax, [esp+arg_0] push ebx push ebp push esi mov ecx, [eax] push edi mov dword_479E1C, ecx mov eax, [eax+4] mov edx, eax mov esi, ecx shr edx, 4 and edx, 0F0F0F0Fh and esi, 0F0F0F0Fh xor edx, esi mov edi, [esp+10h+arg_8] xor ecx, edx mov dword_479E28, edi shl edx, 4 xor eax, edx mov edx, ecx mov esi, eax shr edx, 10h and esi, 0FFFFh xor edx, esi xor eax, edx shl edx, 10h xor ecx, edx mov edx, eax shr edx, 2 mov esi, ecx and edx, 33333333h and esi, 33333333h xor edx, esi xor ecx, edx shl edx, 2 xor eax, edx mov edx, ecx shr edx, 8 mov esi, eax and edx, 0FF00FFh and esi, 0FF00FFh xor edx, esi xor eax, edx shl edx, 8 xor ecx, edx mov edx, eax shr edx, 1 mov esi, ecx and edx, 55555555h and esi, 55555555h xor edx, esi xor ecx, edx add edx, edx xor eax, edx mov esi, eax add eax, eax shr esi, 1Fh or esi, eax mov eax, ecx shr eax, 1Fh add ecx, ecx mov dword_479E24, esi or eax, ecx mov ecx, [esp+10h+arg_C] test ecx, ecx mov dword_479D9C, eax mov dword_479E1C, esi jz loc_43FA41 xor ecx, ecx mov dword_479E20, ecx loc_43F8E8: mov edx, [edi+ecx*4] xor edx, eax mov dword_479E2C, edx mov ebx, [edi+ecx*4+4] xor ebx, eax mov ebp, edx mov ecx, ebx shl ecx, 1Ch shr ebx, 4 add ecx, ebx mov ebx, edx shr ebx, 18h and ebx, 3Fh mov dword_479E24, ecx shr ebp, 10h mov ebx, dword_46EEDC[ebx*4] and ebp, 3Fh or ebx, dword_46ECDC[ebp*4] mov ebp, edx shr ebp, 8 and ebp, 3Fh and edx, 3Fh or ebx, dword_46EADC[ebp*4] mov ebp, ecx shr ebp, 18h and ebp, 3Fh or ebx, dword_46EFDC[ebp*4] mov ebp, ecx shr ebp, 10h and ebp, 3Fh or ebx, dword_46EDDC[ebp*4] mov ebp, ecx shr ebp, 8 and ebp, 3Fh and ecx, 3Fh or ebx, dword_46EBDC[ebp*4] mov ebp, dword_46E8DC[edx*4] mov edx, dword_46E9DC[ecx*4] mov ecx, dword_479E20 or ebx, ebp or ebx, edx xor esi, ebx mov dword_479E1C, esi mov edx, [edi+ecx*4+8] xor edx, esi mov dword_479E2C, edx mov ebx, [edi+ecx*4+0Ch] xor ebx, esi mov ebp, edx mov ecx, ebx shl ecx, 1Ch shr ebx, 4 add ecx, ebx mov ebx, edx shr ebx, 18h and ebx, 3Fh mov dword_479E24, ecx shr ebp, 10h mov ebx, dword_46EEDC[ebx*4] and ebp, 3Fh or ebx, dword_46ECDC[ebp*4] mov ebp, edx shr ebp, 8 and ebp, 3Fh and edx, 3Fh or ebx, dword_46EADC[ebp*4] mov ebp, ecx shr ebp, 18h and ebp, 3Fh or ebx, dword_46EFDC[ebp*4] mov ebp, ecx shr ebp, 10h and ebp, 3Fh or ebx, dword_46EDDC[ebp*4] mov ebp, ecx shr ebp, 8 and ebp, 3Fh or ebx, dword_46EBDC[ebp*4] mov ebp, dword_46E8DC[edx*4] or ebx, ebp and ecx, 3Fh mov edx, dword_46E9DC[ecx*4] mov ecx, dword_479E20 or ebx, edx add ecx, 4 xor eax, ebx cmp ecx, 20h mov dword_479D9C, eax mov dword_479E20, ecx jl loc_43F8E8 jmp loc_43FBA1 loc_43FA41: mov ecx, 1Eh mov dword_479E20, ecx loc_43FA4C: mov ebx, [edi+ecx*4] mov edx, eax xor edx, ebx mov dword_479E2C, edx mov ebx, [edi+ecx*4+4] xor ebx, eax mov ebp, edx mov ecx, ebx shl ecx, 1Ch shr ebx, 4 add ecx, ebx mov ebx, edx shr ebx, 18h and ebx, 3Fh mov dword_479E24, ecx shr ebp, 10h mov ebx, dword_46EEDC[ebx*4] and ebp, 3Fh or ebx, dword_46ECDC[ebp*4] mov ebp, edx shr ebp, 8 and ebp, 3Fh and edx, 3Fh or ebx, dword_46EADC[ebp*4] mov ebp, ecx shr ebp, 18h and ebp, 3Fh or ebx, dword_46EFDC[ebp*4] mov ebp, ecx shr ebp, 10h and ebp, 3Fh or ebx, dword_46EDDC[ebp*4] mov ebp, ecx shr ebp, 8 and ebp, 3Fh and ecx, 3Fh or ebx, dword_46EBDC[ebp*4] mov ebp, dword_46E8DC[edx*4] mov edx, dword_46E9DC[ecx*4] mov ecx, dword_479E20 or ebx, ebp or ebx, edx xor esi, ebx mov dword_479E1C, esi mov edx, [edi+ecx*4-8] xor edx, esi mov dword_479E2C, edx mov ebx, [edi+ecx*4-4] xor ebx, esi mov ebp, edx mov ecx, ebx shl ecx, 1Ch shr ebx, 4 add ecx, ebx mov ebx, edx shr ebx, 18h and ebx, 3Fh mov dword_479E24, ecx shr ebp, 10h mov ebx, dword_46EEDC[ebx*4] and ebp, 3Fh or ebx, dword_46ECDC[ebp*4] mov ebp, edx shr ebp, 8 and ebp, 3Fh and edx, 3Fh or ebx, dword_46EADC[ebp*4] mov ebp, ecx shr ebp, 18h and ebp, 3Fh or ebx, dword_46EFDC[ebp*4] mov ebp, ecx shr ebp, 10h and ebp, 3Fh or ebx, dword_46EDDC[ebp*4] mov ebp, ecx shr ebp, 8 and ebp, 3Fh or ebx, dword_46EBDC[ebp*4] mov ebp, dword_46E8DC[edx*4] or ebx, ebp and ecx, 3Fh mov edx, dword_46E9DC[ecx*4] mov ecx, dword_479E20 or ebx, edx sub ecx, 4 xor eax, ebx mov dword_479E20, ecx test ecx, ecx mov dword_479D9C, eax jg loc_43FA4C loc_43FBA1: mov edx, eax mov ecx, esi shl edx, 1Fh shr eax, 1 shl ecx, 1Fh shr esi, 1 or edx, eax or ecx, esi mov eax, edx mov esi, ecx shr eax, 1 and eax, 55555555h and esi, 55555555h xor eax, esi pop edi xor ecx, eax add eax, eax xor edx, eax mov eax, ecx shr eax, 8 mov esi, edx and eax, 0FF00FFh and esi, 0FF00FFh xor eax, esi xor edx, eax shl eax, 8 xor ecx, eax mov eax, edx shr eax, 2 mov esi, ecx and eax, 33333333h and esi, 33333333h xor eax, esi xor ecx, eax shl eax, 2 xor edx, eax mov eax, ecx mov esi, edx shr eax, 10h and esi, 0FFFFh xor eax, esi xor edx, eax shl eax, 10h xor ecx, eax mov eax, edx shr eax, 4 mov esi, ecx and eax, 0F0F0F0Fh and esi, 0F0F0F0Fh xor eax, esi pop esi mov dword_479E24, eax xor ecx, eax shl eax, 4 xor edx, eax mov eax, [esp+8+arg_4] mov dword_479E1C, ecx mov dword_479D9C, edx mov [eax], ecx mov ecx, dword_479D9C mov [eax+4], ecx pop ebp xor eax, eax pop ebx retn sub_43F810 ENDP _strncpy PROC arg_0 = 04h arg_4 = 08h arg_8 = 0ch arg_C = 10h mov ecx, [esp+arg_8] push edi test ecx, ecx jz short loc_4077A3 push esi push ebx mov ebx, ecx mov esi, [esp+0Ch+arg_4] test esi, 3 mov edi, [esp+0Ch+arg_0] jnz short loc_407744 shr ecx, 2 jnz short loc_4077B1 jmp short loc_407765 loc_407744: mov al, [esi] inc esi mov [edi], al inc edi dec ecx jz short loc_407772 test al, al jz short loc_40777A test esi, 3 jnz short loc_407744 mov ebx, ecx shr ecx, 2 jnz short loc_4077B1 loc_407760: and ebx, 3 jz short loc_407772 loc_407765: mov al, [esi] inc esi mov [edi], al inc edi test al, al jz short loc_40779E dec ebx jnz short loc_407765 loc_407772: mov eax, [esp+0Ch+arg_0] pop ebx pop esi pop edi retn loc_40777A: test edi, 3 jz short loc_407794 loc_407782: mov [edi], al inc edi dec ecx jz loc_407816 test edi, 3 jnz short loc_407782 loc_407794: mov ebx, ecx shr ecx, 2 jnz short loc_407807 loc_40779B: mov [edi], al inc edi loc_40779E: dec ebx jnz short loc_40779B pop ebx pop esi loc_4077A3: mov eax, [esp+4+arg_0] pop edi retn loc_4077A9: mov [edi], edx add edi, 4 dec ecx jz short loc_407760 loc_4077B1: mov edx, 7EFEFEFFh mov eax, [esi] add edx, eax xor eax, 0FFFFFFFFh xor eax, edx mov edx, [esi] add esi, 4 test eax, 81010100h jz short loc_4077A9 test dl, dl jz short loc_4077FB test dh, dh jz short loc_4077F1 test edx, 0FF0000h jz short loc_4077E7 test edx, 0FF000000h jnz short loc_4077A9 mov [edi], edx jmp short loc_4077FF loc_4077E7: and edx, 0FFFFh mov [edi], edx jmp short loc_4077FF loc_4077F1: and edx, 0FFh mov [edi], edx jmp short loc_4077FF loc_4077FB: xor edx, edx mov [edi], edx loc_4077FF: add edi, 4 xor eax, eax dec ecx jz short loc_407811 loc_407807: xor eax, eax loc_407809: mov [edi], eax add edi, 4 dec ecx jnz short loc_407809 loc_407811: and ebx, 3 jnz short loc_40779B loc_407816: mov eax, [esp+arg_C] pop ebx pop esi pop edi retn _strncpy ENDP