.text:0045A814 loc_45A814: ; CODE XREF: sub_45A7B0+60j .text:0045A814 movzx ecx, byte ptr [edx] ; Read patch type .text:0045A817 and ecx, 7Fh .text:0045A81A cmp ecx, esi .text:0045A81C jnz loc_45A95E .text:0045A822 cmp eax, 0Dh .text:0045A825 jz loc_45A926 .text:0045A82B mov cl, [edx+1] ; Read patch header size byte .text:0045A82E test cl, cl .text:0045A830 js short loc_45A853 .text:0045A832 movzx ecx, cl .text:0045A835 mov esi, ecx .text:0045A837 and esi, 7Fh .text:0045A83A mov ecx, edi .text:0045A83C sub ecx, esi .text:0045A83E push 0 .text:0045A840 lea edx, [esi+edx+2] .text:0045A844 movzx esi, [ebp+arg_28] .text:0045A848 add ecx, 0FFFFFFFEh .text:0045A84B push ecx .text:0045A84C push esi .text:0045A84D push eax .text:0045A84E jmp loc_45A932 .text:0045A853 ; --------------------------------------------------------------------------- .text:0045A853 .text:0045A853 loc_45A853: ; CODE XREF: sub_45A7B0+80j .text:0045A853 movzx ecx, cl ; Special case for signed header size .text:0045A856 sub ecx, 80h .text:0045A85C jz loc_45A8F0 .text:0045A862 sub ecx, 1 .text:0045A865 jz short loc_45A8D4 .text:0045A867 sub ecx, 3 .text:0045A86A jnz loc_45A95E .text:0045A870 cmp edi, 3 .text:0045A873 jbe loc_45A95E .text:0045A879 movzx edx, byte ptr [edx+2] .text:0045A87D add edx, 3 .text:0045A880 cmp edi, edx .text:0045A882 jbe loc_45A95E .text:0045A888 mov ecx, [ebp+4] .text:0045A88B movzx esi, byte ptr [ecx+2] .text:0045A88F cmp byte ptr [esi+ecx+3], 0 .text:0045A894 lea edx, [esi+ecx+3] .text:0045A898 lea ecx, [esi+edi-3] .text:0045A89C jz short loc_45A8BA .text:0045A89E mov edi, edi .text:0045A8A0 .text:0045A8A0 loc_45A8A0: ; CODE XREF: sub_45A7B0+FDj .text:0045A8A0 test ecx, ecx .text:0045A8A2 jbe short loc_45A8B1 .text:0045A8A4 add edx, 1 .text:0045A8A7 sub ecx, 1 .text:0045A8AA cmp byte ptr [edx], 0 .text:0045A8AD jnz short loc_45A8A0 .text:0045A8AF jmp short loc_45A8BA .text:0045A8B1 ; --------------------------------------------------------------------------- .text:0045A8B1 .text:0045A8B1 loc_45A8B1: ; CODE XREF: sub_45A7B0+F2j .text:0045A8B1 cmp byte ptr [edx], 0 .text:0045A8B4 jnz loc_45A95E .text:0045A8BA .text:0045A8BA loc_45A8BA: ; CODE XREF: sub_45A7B0+ECj .text:0045A8BA ; sub_45A7B0+FFj .text:0045A8BA cmp ecx, 17h .text:0045A8BD jb loc_45A95E .text:0045A8C3 movzx esi, [ebp+arg_28] .text:0045A8C7 push 0 .text:0045A8C9 add ecx, 0FFFFFFE9h .text:0045A8CC push ecx .text:0045A8CD push esi .text:0045A8CE add edx, 17h .text:0045A8D1 push eax .text:0045A8D2 jmp short loc_45A932 .text:0045A8D4 ; --------------------------------------------------------------------------- .text:0045A8D4 .text:0045A8D4 loc_45A8D4: ; CODE XREF: sub_45A7B0+B5j .text:0045A8D4 cmp edi, 4 .text:0045A8D7 jb loc_45A95E .text:0045A8DD movzx esi, [ebp+arg_28] .text:0045A8E1 mov ecx, edi .text:0045A8E3 push 0 .text:0045A8E5 add ecx, 0FFFFFFFCh .text:0045A8E8 push ecx .text:0045A8E9 push esi .text:0045A8EA add edx, 4 .text:0045A8ED push eax .text:0045A8EE jmp short loc_45A932 .text:0045A8F0 ; --------------------------------------------------------------------------- .text:0045A8F0 .text:0045A8F0 loc_45A8F0: ; CODE XREF: sub_45A7B0+ACj .text:0045A8F0 cmp eax, 0Bh .text:0045A8F3 jnz short loc_45A90E .text:0045A8F5 cmp edi, 4 .text:0045A8F8 jb short loc_45A90E .text:0045A8FA mov eax, edi .text:0045A8FC lea ecx, [eax-4] .text:0045A8FF movzx eax, [ebp+arg_28] .text:0045A903 push 0 .text:0045A905 push ecx .text:0045A906 push eax .text:0045A907 add edx, 4 .text:0045A90A push 0Bh .text:0045A90C jmp short loc_45A932 .text:0045A90E ; --------------------------------------------------------------------------- .text:0045A90E .text:0045A90E loc_45A90E: ; CODE XREF: sub_45A7B0+143j .text:0045A90E ; sub_45A7B0+148j .text:0045A90E cmp edi, 1Ah .text:0045A911 jb short loc_45A95E .text:0045A913 movzx esi, [ebp+arg_28] .text:0045A917 mov ecx, edi .text:0045A919 push 0 .text:0045A91B add ecx, 0FFFFFFE6h .text:0045A91E push ecx .text:0045A91F push esi .text:0045A920 add edx, 1Ah .text:0045A923 push eax .text:0045A924 jmp short loc_45A932