Rev 8932 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8932 | Rev 9485 | ||
---|---|---|---|
Line 1261... | Line 1261... | ||
1261 | align 16 |
1261 | align 16 |
1262 | proc ted_memory_increase |
1262 | proc ted_memory_increase |
1263 | cmp ted_increase_size,0 |
1263 | cmp ted_increase_size,0 |
1264 | je @f |
1264 | je @f |
1265 | push eax ebx ecx |
1265 | push eax ebx ecx |
1266 | mov ecx,ted_increase_size |
- | |
1267 | add ecx,ted_max_chars |
- | |
1268 | mov ted_max_chars,ecx |
- | |
1269 | imul ecx,sizeof.symbol |
- | |
1270 | invoke mem.realloc, ted_tex,ecx |
- | |
1271 | mov ebx,ted_tex |
1266 | mov ebx,ted_tex |
1272 | mov ted_tex,eax |
- | |
1273 | mov ted_tex_1,eax |
1267 | mov ecx,ted_max_chars |
1274 | add ted_tex_1,sizeof.symbol |
1268 | call ted_mem_resize.no_2 |
1275 | sub edx,ebx |
1269 | sub edx,ebx |
1276 | add edx,eax |
1270 | add edx,ted_tex |
1277 | mov ted_ptr_free_symb,edx |
1271 | mov ted_ptr_free_symb,edx |
1278 | add eax,ecx |
- | |
1279 | mov ted_tex_end,eax |
- | |
1280 | pop ecx ebx eax |
1272 | pop ecx ebx eax |
1281 | @@: |
1273 | @@: |
1282 | ret |
1274 | ret |
1283 | endp |
1275 | endp |
Line 2544... | Line 2536... | ||
2544 | 2536 | ||
2545 | .if_0e: |
2537 | .if_0e: |
2546 | ret |
2538 | ret |
Line -... | Line 2539... | ||
- | 2539 | endp |
|
- | 2540 | ||
- | 2541 | ;description: |
|
- | 2542 | ; ¨§¬¥ï¥¬ à §¬¥à ¯ ¬ï⨠¤«ï ⥪áâ (ãáâ ®¢ª ted_ptr_free_symb 1 ᨬ¢®«) |
|
- | 2543 | ;input: |
|
- | 2544 | ; ecx - ç¨á«® ᨬ¢®«®¢ ¢ ä ©«¥ |
|
- | 2545 | ; edi - pointer to tedit struct |
|
- | 2546 | ;output: |
|
- | 2547 | ; eax, ecx - à §àãè îâáï |
|
- | 2548 | align 16 |
|
- | 2549 | ted_mem_resize: |
|
- | 2550 | add ecx,2 ;¯ ¬ïâì ¤«ï ⥪áâ + á«ã¦¥¡ë¥ ç «ìë© ¨ ª®¥çë© á¨¬¢®«ë |
|
- | 2551 | .no_2: |
|
- | 2552 | add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ¨ï ä ©« |
|
- | 2553 | mov ted_max_chars,ecx |
|
- | 2554 | imul ecx,sizeof.symbol |
|
- | 2555 | invoke mem.realloc, ted_tex,ecx |
|
- | 2556 | mov ted_tex,eax |
|
- | 2557 | mov ted_tex_1,eax |
|
- | 2558 | add ted_tex_1,sizeof.symbol |
|
- | 2559 | add eax,ecx |
|
- | 2560 | mov ted_tex_end,eax |
|
- | 2561 | mov ecx,ted_tex_1 |
|
- | 2562 | add ecx,sizeof.symbol |
|
- | 2563 | mov ted_ptr_free_symb,ecx |
|
2547 | endp |
2564 | ret |
2548 | 2565 | ||
2549 | ;output: |
2566 | ;output: |
2550 | ; eax = ª®¤ ®è¨¡ª¨ |
2567 | ; eax = ª®¤ ®è¨¡ª¨ |
2551 | ; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â |
2568 | ; ebx = ª®««¨ç¥á⢮ ¯à®ç¨â ëå ¡ ©â |
- | 2569 | align 16 |
|
- | 2570 | proc ted_open_file uses ecx edx edi esi, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©« |
|
- | 2571 | locals |
|
2552 | align 16 |
2572 | unpac_mem dd ? |
Line 2553... | Line 2573... | ||
2553 | proc ted_open_file uses ecx edx edi, edit:dword, file:dword, f_name:dword ;äãªæ¨ï ®âªàëâ¨ï ä ©« |
2573 | endl |
2554 | mov edi,[edit] |
2574 | mov edi,[edit] |
2555 | 2575 | ||
Line 2578... | Line 2598... | ||
2578 | sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì |
2598 | sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì |
2579 | mov edx,ted_tex |
2599 | mov edx,ted_tex |
2580 | mov edx,[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©« ¢ ¡ ©â å |
2600 | mov edx,[edx+32] ;+32 = +0x20: qword: à §¬¥à ä ©« ¢ ¡ ©â å |
2581 | cmp edx,ecx |
2601 | cmp edx,ecx |
2582 | jl @f |
2602 | jl @f |
2583 | ;㢥«¨ç¨¢ ¥¬ ¯ ¬ïâì ¥á«¨ ¥ å¢ â¨«® |
- | |
2584 | mov ecx,edx ;¯ ¬ïâì ¥®¡å®¤¨¬ ï ¤«ï ®âªàëâ¨ï ä ©« |
- | |
2585 | add ecx,2 ;¯ ¬ïâì ¤«ï á«ã¦¥¡ëå ç «ì®£® ¨ ª®¥ç®£® ᨬ¢®«®¢ |
- | |
2586 | add ecx,ted_increase_size ;¯ ¬ïâì ¤«ï । ªâ¨à®¢ ¨ï ä ©« |
- | |
2587 | mov ted_max_chars,ecx |
- | |
2588 | imul ecx,sizeof.symbol |
- | |
2589 | invoke mem.realloc, ted_tex,ecx |
- | |
2590 | mov ted_tex,eax |
- | |
2591 | mov ted_tex_1,eax |
- | |
2592 | add ted_tex_1,sizeof.symbol |
- | |
2593 | add eax,ecx |
2603 | mov ecx,edx |
2594 | mov ted_tex_end,eax |
2604 | call ted_mem_resize |
2595 | mov ecx,ted_tex_1 |
- | |
2596 | add ecx,sizeof.symbol |
- | |
2597 | mov ted_ptr_free_symb,ecx |
- | |
2598 | @@: |
2605 | @@: |
Line 2599... | Line 2606... | ||
2599 | 2606 | ||
2600 | ; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« *** |
2607 | ; *** ¯à®¡ã¥¬ ®âªàëâì ä ©« *** |
2601 | mov ebx,[file] |
2608 | mov ebx,[file] |
Line 2615... | Line 2622... | ||
2615 | jne .ret_f |
2622 | jne .ret_f |
2616 | @@: |
2623 | @@: |
2617 | cmp ebx,-1 |
2624 | cmp ebx,-1 |
2618 | je .ret_f |
2625 | je .ret_f |
2619 | ;if open file |
2626 | ;if open file |
- | 2627 | push eax |
|
- | 2628 | mov eax,ted_tex |
|
- | 2629 | cmp dword[eax],'KPCK' |
|
- | 2630 | jne .end_unpack |
|
- | 2631 | ;¢ë¤¥«¥¨¥ ¯ ¬ï⨠¤«ï à ᯠª®¢ª¨ ä ©« |
|
- | 2632 | invoke mem.alloc,[eax+4] |
|
- | 2633 | mov [unpac_mem],eax |
|
- | 2634 | stdcall unpack,ted_tex,[unpac_mem] |
|
- | 2635 | mov ecx,ted_max_chars |
|
- | 2636 | sub ecx,2 ;ecx = ¬ ªá¨¬ «ì®¥ ç¨á«® ¡ ©â, ¤«ï ª®â®àëå ¡ë« ¢ë¤¥«¥ ¯ ¬ïâì |
|
- | 2637 | mov eax,ted_tex |
|
- | 2638 | mov ebx,[eax+4] |
|
- | 2639 | cmp ebx,ecx |
|
- | 2640 | jl @f ;¥á«¨ ¤«ï à ᯠª®¢ ®£® ä ©« ¥ å¢ â ¥â ¢ë¤¥«¥®© ¯ ¬ï⨠|
|
- | 2641 | mov ecx,ebx |
|
- | 2642 | call ted_mem_resize |
|
- | 2643 | @@: |
|
- | 2644 | mov edi,ted_tex |
|
- | 2645 | mov esi,[unpac_mem] |
|
- | 2646 | mov ecx,ebx |
|
- | 2647 | cld |
|
- | 2648 | rep movsb |
|
- | 2649 | mov edi,[edit] |
|
- | 2650 | invoke mem.free,[unpac_mem] |
|
- | 2651 | .end_unpack: |
|
- | 2652 | pop eax |
|
2620 | call ted_on_open_file |
2653 | call ted_on_open_file |
2621 | .ret_f: |
2654 | .ret_f: |
2622 | ret |
2655 | ret |
2623 | endp |
2656 | endp |