// File: /workspace/github_cpp_makefile_star2_O1/sisong[P]ApkDiffPatch/HDiffPatch/libHDiffPatch/HPatch/patch.c
// Function: patch
hpatch_BOOL patch(TByte* out_newData,TByte* out_newData_end,
                  const TByte* oldData,const TByte* oldData_end,
                  const TByte* serializedDiff,const TByte* serializedDiff_end){
    const TByte *code_lengths, *code_lengths_end,
                *code_inc_newPos, *code_inc_newPos_end,
                *code_inc_oldPos, *code_inc_oldPos_end,
                *code_newDataDiff, *code_newDataDiff_end;
    hpatch_size_t  coverCount;

    assert(out_newData<=out_newData_end);
    assert(oldData<=oldData_end);
    assert(serializedDiff<=serializedDiff_end);
    unpackUIntTo(&coverCount,&serializedDiff, serializedDiff_end);
    {   //head
        hpatch_size_t lengthSize,inc_newPosSize,inc_oldPosSize,newDataDiffSize;
        unpackUIntTo(&lengthSize,&serializedDiff, serializedDiff_end);
        unpackUIntTo(&inc_newPosSize,&serializedDiff, serializedDiff_end);
        unpackUIntTo(&inc_oldPosSize,&serializedDiff, serializedDiff_end);
        unpackUIntTo(&newDataDiffSize,&serializedDiff, serializedDiff_end);
#ifdef __RUN_MEM_SAFE_CHECK
        if (lengthSize>(hpatch_size_t)(serializedDiff_end-serializedDiff)) return _hpatch_FALSE;
#endif
        code_lengths=serializedDiff;     serializedDiff+=lengthSize;
        code_lengths_end=serializedDiff;
#ifdef __RUN_MEM_SAFE_CHECK
        if (inc_newPosSize>(hpatch_size_t)(serializedDiff_end-serializedDiff)) return _hpatch_FALSE;
#endif
        code_inc_newPos=serializedDiff; serializedDiff+=inc_newPosSize;
        code_inc_newPos_end=serializedDiff;
#ifdef __RUN_MEM_SAFE_CHECK
        if (inc_oldPosSize>(hpatch_size_t)(serializedDiff_end-serializedDiff)) return _hpatch_FALSE;
#endif
        code_inc_oldPos=serializedDiff; serializedDiff+=inc_oldPosSize;
        code_inc_oldPos_end=serializedDiff;
#ifdef __RUN_MEM_SAFE_CHECK
        if (newDataDiffSize>(hpatch_size_t)(serializedDiff_end-serializedDiff)) return _hpatch_FALSE;
#endif
        code_newDataDiff=serializedDiff; serializedDiff+=newDataDiffSize;
        code_newDataDiff_end=serializedDiff;
    }

    //decode rle ; rle data begin==cur serializedDiff;
    _SAFE_CHECK_DO(_bytesRle_load(out_newData, out_newData_end, serializedDiff, serializedDiff_end));

    {   //patch
        const hpatch_size_t newDataSize=(hpatch_size_t)(out_newData_end-out_newData);
        hpatch_size_t oldPosBack=0;
        hpatch_size_t newPosBack=0;
        hpatch_size_t i;
        for (i=0; i<coverCount; ++i){
            hpatch_size_t copyLength,addLength, oldPos,inc_oldPos,inc_oldPos_sign;
            unpackUIntTo(&copyLength,&code_inc_newPos, code_inc_newPos_end);
            unpackUIntTo(&addLength,&code_lengths, code_lengths_end);
#ifdef __RUN_MEM_SAFE_CHECK
            if (code_inc_oldPos>=code_inc_oldPos_end) return _hpatch_FALSE;
#endif
            inc_oldPos_sign=(*code_inc_oldPos)>>(8-kSignTagBit);
            unpackUIntWithTagTo(&inc_oldPos,&code_inc_oldPos, code_inc_oldPos_end, kSignTagBit);
            if (inc_oldPos_sign==0)
                oldPos=oldPosBack+inc_oldPos;
            else
                oldPos=oldPosBack-inc_oldPos;
            if (copyLength>0){
#ifdef __RUN_MEM_SAFE_CHECK
                if (copyLength>(hpatch_size_t)(newDataSize-newPosBack)) return _hpatch_FALSE;
                if (copyLength>(hpatch_size_t)(code_newDataDiff_end-code_newDataDiff)) return _hpatch_FALSE;
#endif
                memcpy(out_newData+newPosBack,code_newDataDiff,copyLength);
                code_newDataDiff+=copyLength;
                newPosBack+=copyLength;
            }
#ifdef __RUN_MEM_SAFE_CHECK
            if ( (addLength>(hpatch_size_t)(newDataSize-newPosBack)) ) return _hpatch_FALSE;
            if ( (oldPos>(hpatch_size_t)(oldData_end-oldData)) ||
                 (addLength>(hpatch_size_t)(oldData_end-oldData-oldPos)) ) return _hpatch_FALSE;
#endif
            addData(out_newData+newPosBack,oldData+oldPos,addLength);
            oldPosBack=oldPos;
            newPosBack+=addLength;
        }

        if (newPosBack<newDataSize){
            hpatch_size_t copyLength=newDataSize-newPosBack;
#ifdef __RUN_MEM_SAFE_CHECK
            if (copyLength>(hpatch_size_t)(code_newDataDiff_end-code_newDataDiff)) return _hpatch_FALSE;
#endif
            memcpy(out_newData+newPosBack,code_newDataDiff,copyLength);
            code_newDataDiff+=copyLength;
            //newPosBack=newDataSize;
        }
    }

    if (  (code_lengths==code_lengths_end)
        &&(code_inc_newPos==code_inc_newPos_end)
        &&(code_inc_oldPos==code_inc_oldPos_end)
        &&(code_newDataDiff==code_newDataDiff_end))
        return hpatch_TRUE;
    else
        return _hpatch_FALSE;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
cmpq %rsi, %rdi
ja 0x442f0
movq %rcx, %r11
cmpq %rcx, %rdx
ja 0x4430f
movq %r9, %r13
cmpq %r9, %r8
ja 0x4432e
movq %rsi, %r10
jae 0x43ab3
movzbl (%r8), %ecx
leaq 0x1(%r8), %rax
movl %ecx, %ebx
andl $0x7f, %ebx
testb %cl, %cl
js 0x43b16
xorl %ecx, %ecx
jmp 0x43ab8
movb $0x1, %cl
movq %r8, %rax
testb %cl, %cl
je 0x43ac3
xorl %esi, %esi
jmp 0x43cfb
cmpq %r13, %rax
jae 0x43ae2
movzbl (%rax), %ecx
leaq 0x1(%rax), %r12
movl %ecx, %r14d
andl $0x7f, %r14d
testb %cl, %cl
js 0x43b80
xorl %ecx, %ecx
jmp 0x43ae7
movb $0x1, %cl
movq %rax, %r12
xorl %esi, %esi
testb %cl, %cl
je 0x43af4
xorl %ecx, %ecx
jmp 0x43c48
cmpq %r13, %r12
jae 0x43b50
movzbl (%r12), %ecx
leaq 0x1(%r12), %rax
movl %ecx, %r15d
andl $0x7f, %r15d
testb %cl, %cl
js 0x43bf3
xorl %ecx, %ecx
jmp 0x43b55
movabsq $0x1ffffffffffffff, %r14 # imm = 0x1FFFFFFFFFFFFFF
cmpq %r14, %rbx
seta %sil
cmpq %r13, %rax
sete %cl
orb %sil, %cl
jne 0x43ab5
movzbl (%rax), %esi
incq %rax
shlq $0x7, %rbx
movl %esi, %r9d
andl $0x7f, %r9d
orq %r9, %rbx
testb %sil, %sil
js 0x43b20
jmp 0x43ab8
movb $0x1, %cl
movq %r12, %rax
testb %cl, %cl
je 0x43b63
xorl %ecx, %ecx
movq %rax, %r12
jmp 0x43c46
cmpq %r13, %rax
jae 0x43bc0
movzbl (%rax), %ecx
leaq 0x1(%rax), %r12
movl %ecx, %ebp
andl $0x7f, %ebp
testb %cl, %cl
js 0x44165
xorl %ecx, %ecx
jmp 0x43bc5
movabsq $0x1ffffffffffffff, %r9 # imm = 0x1FFFFFFFFFFFFFF
cmpq %r9, %r14
seta %sil
cmpq %r13, %r12
sete %cl
orb %sil, %cl
jne 0x43ae4
movzbl (%r12), %esi
incq %r12
shlq $0x7, %r14
movl %esi, %r8d
andl $0x7f, %r8d
orq %r8, %r14
testb %sil, %sil
js 0x43b8a
jmp 0x43ae7
movb $0x1, %cl
movq %rax, %r12
testb %cl, %cl
je 0x43bcd
xorl %ecx, %ecx
jmp 0x43c46
cmpq %r13, %r12
jae 0x43c31
movzbl (%r12), %eax
leaq 0x1(%r12), %rsi
movl %eax, %ecx
andl $0x7f, %ecx
movq %rcx, %r9
testb %al, %al
js 0x441bd
xorl %eax, %eax
movq %rsi, %rcx
jmp 0x43c36
movabsq $0x1ffffffffffffff, %r9 # imm = 0x1FFFFFFFFFFFFFF
cmpq %r9, %r15
seta %sil
cmpq %r13, %rax
sete %cl
orb %sil, %cl
jne 0x43b52
movzbl (%rax), %esi
incq %rax
shlq $0x7, %r15
movl %esi, %r8d
andl $0x7f, %r8d
orq %r8, %r15
testb %sil, %sil
js 0x43bfd
jmp 0x43b55
movb $0x1, %al
movq %r12, %rcx
movq %rcx, 0x48(%rsp)
testb %al, %al
je 0x43cbe
xorl %ecx, %ecx
movq 0x48(%rsp), %r12
xorl %esi, %esi
testb %cl, %cl
je 0x43cfb
movq %rbp, 0x38(%rsp)
movq %rdx, 0x68(%rsp)
movq %r11, 0x70(%rsp)
cmpq %r13, %r12
jae 0x43c7e
movzbl (%r12), %ecx
leaq 0x1(%r12), %rax
movl %ecx, %ebp
andl $0x7f, %ebp
testb %cl, %cl
js 0x43c82
xorl %edx, %edx
movq %rax, %r12
jmp 0x43ce0
movb $0x1, %dl
jmp 0x43ce0
movabsq $0x1ffffffffffffff, %rcx # imm = 0x1FFFFFFFFFFFFFF
cmpq %rcx, %rbp
seta %sil
cmpq %r13, %rax
sete %dl
orb %sil, %dl
jne 0x43cde
movzbl (%rax), %edx
incq %rax
movq %rbp, %rsi
shlq $0x7, %rsi
movl %edx, %ebp
andl $0x7f, %ebp
orq %rsi, %rbp
testb %dl, %dl
js 0x43c8c
xorl %edx, %edx
movq %rax, %r12
jmp 0x43cde
movq %r13, %rax
movq 0x48(%rsp), %r12
subq %r12, %rax
cmpq %rax, %r14
movl $0x0, %esi
jbe 0x441a5
xorl %ecx, %ecx
jmp 0x441b8
xorl %esi, %esi
testb %dl, %dl
jne 0x43cfb
movq %r15, 0x28(%rsp)
movq %rdi, 0x18(%rsp)
movq %r13, 0x8(%rsp)
subq %r12, %r13
cmpq %r13, %rbp
jbe 0x43d0c
movl %esi, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movabsq $0x1ffffffffffffff, %rax # imm = 0x1FFFFFFFFFFFFFF
addq %r12, %rbp
leaq 0x1(%rax), %r9
movq %rbp, %r11
movq 0x18(%rsp), %r13
movq %r10, (%rsp)
movq %r9, 0x58(%rsp)
movq %rbp, %rax
subq %r12, %rax
testq %rax, %rax
jle 0x43e66
movzbl (%r12), %eax
cmpq %rbp, %r12
jae 0x43d90
leaq 0x1(%r12), %rdx
movl %eax, %esi
andl $0x1f, %esi
movb $0x1, %cl
testb $0x20, %al
je 0x43d88
cmpq %r9, %rsi
setb %r8b
cmpq %rbp, %rdx
setne %dil
andb %r8b, %dil
cmpb $0x1, %dil
jne 0x43d94
movzbl (%rdx), %edi
incq %rdx
movq %rsi, %r8
shlq $0x7, %r8
movl %edi, %esi
andl $0x7f, %esi
orq %r8, %rsi
testb %dil, %dil
js 0x43d57
movq %rdx, %r12
movq %rsi, %r15
jmp 0x43d96
xorl %ecx, %ecx
jmp 0x43d96
movl %edi, %ecx
xorl %esi, %esi
testb %cl, %cl
je 0x43e03
movq %r10, %rcx
subq %r13, %rcx
cmpq %rcx, %r15
jae 0x43e03
shrl $0x6, %eax
incq %r15
movl %eax, %eax
leaq 0x1d52e(%rip), %rcx     # 0x612e4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %r13, %rdi
xorl %esi, %esi
jmp 0x43e0f
cmpq 0x8(%rsp), %r11
je 0x43e03
movzbl (%r11), %esi
movq %r13, %rdi
movq %r15, %rdx
movq %r11, 0x20(%rsp)
callq 0x41c0
movq 0x20(%rsp), %r11
xorl %esi, %esi
movq 0x58(%rsp), %r9
movq (%rsp), %r10
incq %r11
jmp 0x43e2c
movq 0x8(%rsp), %rax
subq %r11, %rax
cmpq %rax, %r15
jbe 0x43e3e
xorl %eax, %eax
jmp 0x43e31
movq %r13, %rdi
movl $0xff, %esi
movq %r15, %rdx
movq %r11, 0x20(%rsp)
callq 0x41c0
movq 0x20(%rsp), %r11
xorl %esi, %esi
movq 0x58(%rsp), %r9
movq (%rsp), %r10
addq %r15, %r13
movb $0x1, %al
testb %al, %al
jne 0x43d2e
jmp 0x43cfb
movq %r13, %rdi
movq %r11, %rsi
movq %r15, %rdx
movq %r11, 0x20(%rsp)
callq 0x4290
movq 0x20(%rsp), %r11
xorl %esi, %esi
movq 0x58(%rsp), %r9
movq (%rsp), %r10
addq %r15, %r11
jmp 0x43e2c
xorl %esi, %esi
cmpq %rbp, %r12
jne 0x43cfb
cmpq 0x8(%rsp), %r11
jne 0x43cfb
cmpq %r10, %r13
jne 0x43cfb
movq 0x18(%rsp), %rdi
subq %rdi, %r10
testq %rbx, %rbx
je 0x44217
movq 0x68(%rsp), %rax
subq %rax, 0x70(%rsp)
xorl %r11d, %r11d
movq $0x0, 0x10(%rsp)
movq $0x0, 0x60(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x28(%rsp), %r15
movq %r15, (%rsp)
movq %r14, %rsi
movq 0x48(%rsp), %r13
movq %r11, 0x20(%rsp)
movb $0x1, %r11b
cmpq %r15, %rsi
jae 0x43f2f
movzbl (%rsi), %r8d
leaq 0x1(%rsi), %r12
movl %r8d, %ebp
andl $0x7f, %ebp
testb %r8b, %r8b
js 0x43ef5
xorl %r11d, %r11d
jmp 0x43f35
movabsq $0x1ffffffffffffff, %r8 # imm = 0x1FFFFFFFFFFFFFF
cmpq %r8, %rbp
seta %r8b
cmpq %r15, %r12
sete %r11b
orb %r8b, %r11b
jne 0x43f2f
movzbl (%r12), %r8d
incq %r12
shlq $0x7, %rbp
movl %r8d, %r9d
andl $0x7f, %r9d
orq %r9, %rbp
testb %r8b, %r8b
js 0x43ef5
jmp 0x43f35
movq %rsi, %r12
movq %rdx, %rbp
testb %r11b, %r11b
je 0x43f46
xorl %edx, %edx
movq 0x20(%rsp), %r11
jmp 0x440dc
movq %r12, 0x8(%rsp)
cmpq %r14, %r13
movq 0x58(%rsp), %r9
movq 0x20(%rsp), %r11
jae 0x43fa4
movzbl (%r13), %edx
leaq 0x1(%r13), %r8
movl %edx, %r12d
andl $0x7f, %r12d
movb $0x1, %sil
testb %dl, %dl
jns 0x43fac
cmpq %r9, %r12
setb %dl
cmpq %r14, %r8
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x43fa6
movzbl (%r8), %edx
incq %r8
shlq $0x7, %r12
movq %r8, %rax
movl %edx, %r8d
andl $0x7f, %r8d
orq %r8, %r12
movq %rax, %r8
jmp 0x43f6d
xorl %esi, %esi
movq %r13, %r8
movq %rcx, %r12
xorl %edx, %edx
testb %sil, %sil
je 0x4400e
movq (%rsp), %rsi
cmpq 0x38(%rsp), %rsi
jae 0x4400e
movzbl (%rsi), %ecx
leaq 0x1(%rsi), %r13
movl %ecx, %r15d
andl $0x3f, %r15d
testb $0x40, %cl
jne 0x43fd5
xorl %edx, %edx
jmp 0x44022
movabsq $0x1ffffffffffffff, %rdx # imm = 0x1FFFFFFFFFFFFFF
cmpq %rdx, %r15
seta %sil
cmpq 0x38(%rsp), %r13
sete %dl
orb %sil, %dl
jne 0x44019
movzbl (%r13), %esi
incq %r13
shlq $0x7, %r15
movl %esi, %edi
andl $0x7f, %edi
orq %rdi, %r15
testb %sil, %sil
js 0x43fd5
jmp 0x44022
movq %r8, %r13
movq %r12, %rcx
jmp 0x440d7
movq (%rsp), %r13
movq 0x30(%rsp), %r15
testb %dl, %dl
jne 0x440bc
movq %r15, %r9
negq %r9
testb %cl, %cl
cmovnsq %r15, %r9
testq %rbp, %rbp
je 0x440a7
movq %r10, %rax
subq 0x10(%rsp), %rax
xorl %edx, %edx
cmpq %rax, %rbp
ja 0x440be
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rsi
subq %rsi, %rax
cmpq %rax, %rbp
ja 0x440be
movq 0x18(%rsp), %rax
movq 0x10(%rsp), %rcx
leaq (%rax,%rcx), %rdi
movq %rsi, 0x40(%rsp)
movq %rbp, %rdx
movq %r10, (%rsp)
movq %r8, 0x48(%rsp)
movq %r9, 0x30(%rsp)
callq 0x4290
movq 0x30(%rsp), %r9
movq 0x48(%rsp), %r8
movq 0x20(%rsp), %r11
movq 0x10(%rsp), %rdi
movq (%rsp), %r10
addq %rbp, 0x40(%rsp)
addq %rbp, %rdi
jmp 0x440ac
movq 0x10(%rsp), %rdi
movq %r10, %rax
subq %rdi, %rax
cmpq %rax, %r12
jbe 0x440fb
movq %rdi, 0x10(%rsp)
xorl %edx, %edx
movq %r13, (%rsp)
movq %r8, %r13
movq %r12, %rcx
movq %r15, 0x30(%rsp)
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %r15
movq 0x8(%rsp), %r12
testb %dl, %dl
je 0x44286
incq %r11
movq %rbp, %rdx
movq %r12, %rsi
cmpq %rbx, %r11
jne 0x43ed0
jmp 0x4423b
addq 0x60(%rsp), %r9
xorl %edx, %edx
movq 0x70(%rsp), %rax
subq %r9, %rax
jb 0x4415b
cmpq %rax, %r12
ja 0x4415b
testq %r12, %r12
je 0x44138
movq 0x68(%rsp), %rax
addq %r9, %rax
movq 0x18(%rsp), %rcx
addq %rdi, %rcx
xorl %edx, %edx
movb (%rax,%rdx), %sil
addb %sil, (%rcx,%rdx)
incq %rdx
cmpq %rdx, %r12
jne 0x44128
addq %r12, %rdi
movq %rdi, 0x10(%rsp)
movb $0x1, %dl
movq %r13, (%rsp)
movq %r8, %r13
movq %r12, %rcx
movq %r15, 0x30(%rsp)
movq %r9, 0x60(%rsp)
jmp 0x440cd
movq %rdi, 0x10(%rsp)
jmp 0x440be
movabsq $0x1ffffffffffffff, %r9 # imm = 0x1FFFFFFFFFFFFFF
cmpq %r9, %rbp
seta %sil
cmpq %r13, %r12
sete %cl
orb %sil, %cl
jne 0x43bc2
movzbl (%r12), %esi
incq %r12
shlq $0x7, %rbp
movl %esi, %r8d
andl $0x7f, %r8d
orq %r8, %rbp
testb %sil, %sil
js 0x4416f
jmp 0x43bc5
addq %r12, %r14
movq %r13, %rax
subq %r14, %rax
cmpq %rax, %r15
jbe 0x441fe
xorl %ecx, %ecx
movq %r14, %r12
jmp 0x43c48
movq %rsi, %rcx
movabsq $0x1ffffffffffffff, %rax # imm = 0x1FFFFFFFFFFFFFF
cmpq %rax, %r9
seta %sil
cmpq %r13, %rcx
sete %al
orb %sil, %al
jne 0x43c33
movzbl (%rcx), %r8d
incq %rcx
shlq $0x7, %r9
movl %r8d, %esi
andl $0x7f, %esi
orq %rsi, %r9
testb %r8b, %r8b
js 0x441c0
jmp 0x43c36
addq %r14, %r15
movq %r13, %rax
subq %r15, %rax
cmpq %rax, %rbp
jbe 0x442c6
xorl %ecx, %ecx
movq %r15, %r12
jmp 0x441b8
movq $0x0, 0x10(%rsp)
movq %r14, %r12
movq 0x28(%rsp), %r15
movq %r15, (%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %r13
movq %r12, %rbp
movb $0x1, %bl
subq 0x10(%rsp), %r10
jbe 0x4428b
movq 0x50(%rsp), %rcx
movq %rcx, %rax
movq 0x40(%rsp), %r12
subq %r12, %rax
cmpq %rax, %r10
setbe %bl
ja 0x4427f
addq 0x10(%rsp), %rdi
movq %r12, %rsi
movq %r10, %rdx
movq %r10, %r15
callq 0x4290
movq 0x50(%rsp), %rcx
addq %r15, %r12
movq 0x28(%rsp), %r15
movq 0x38(%rsp), %rax
jmp 0x4429a
movq %r12, %rbp
xorl %ebx, %ebx
movq 0x38(%rsp), %rax
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %r12
testb %bl, %bl
je 0x43abc
xorq %r14, %r13
xorq %r15, %rbp
orq %r13, %rbp
movq (%rsp), %rdx
xorq %rax, %rdx
orq %rbp, %rdx
xorq %rcx, %r12
xorl %esi, %esi
orq %rdx, %r12
sete %sil
jmp 0x43cfb
addq %r15, %rbp
movq %r13, %rax
subq %rbp, %rax
cmpq %rax, %r9
jbe 0x442de
xorl %ecx, %ecx
movq %rbp, %r12
jmp 0x441b8
addq %rbp, %r9
movq %r9, %r12
movb $0x1, %cl
movq %r9, 0x50(%rsp)
jmp 0x43c48
leaq 0x1d0c8(%rip), %rdi     # 0x613bf
leaq 0x1d010(%rip), %rsi     # 0x6130e
leaq 0x1d0d7(%rip), %rcx     # 0x613dc
movl $0xea, %edx
callq 0x4200
leaq 0x17a36(%rip), %rdi     # 0x5bd4c
leaq 0x1cff1(%rip), %rsi     # 0x6130e
leaq 0x1d0b8(%rip), %rcx     # 0x613dc
movl $0xeb, %edx
callq 0x4200
leaq 0x1d107(%rip), %rdi     # 0x6143c
leaq 0x1cfd2(%rip), %rsi     # 0x6130e
leaq 0x1d099(%rip), %rcx     # 0x613dc
movl $0xec, %edx
callq 0x4200