// File: FFY00[P]uicc/include/uicc.h
// Function: UICC::send_check(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool send_check( string in, string out) {
        Assert( write(in) == (int)in.size(), "");
        string answer=read(out.size());

        if (answer.size() != out.size()) {
            printf("ret is not right size\n");
            dump_hex("expect", out);
            dump_hex("answer", answer);
            return false;
        }

        if ( answer != out) {
            printf("BAD return code\n");
            string answer2=read(255);
            dump_hex("Expected: ", out);
            dump_hex("got answer: ", answer+answer2);
            return false;
        }

        return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rsi, -0x1d0(%rbp)
movq %rdx, -0x1c8(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movq -0x1d0(%rbp), %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0x3120
movq -0x1c0(%rbp), %rdi
movq -0x1e0(%rbp), %rsi
callq 0x14a30
movl %eax, -0x1d4(%rbp)
jmp 0x14fc2
movq -0x1d0(%rbp), %rdi
callq 0x31f0
movq %rax, %rcx
movl -0x1d4(%rbp), %eax
cmpl %ecx, %eax
sete %al
xorb $-0x1, %al
movb %al, -0x1e1(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x31a0
movb -0x1e1(%rbp), %al
testb $0x1, %al
jne 0x14ffc
jmp 0x15087
movq 0x19fcd(%rip), %rax     # 0x2efd0
movq (%rax), %rax
movq %rax, -0x1f0(%rbp)
callq 0x3040
movl (%rax), %edi
callq 0x30d0
movq -0x1f0(%rbp), %rdi
movq %rax, %r9
leaq 0x10a92(%rip), %rsi     # 0x25abc
leaq 0x10b01(%rip), %rdx     # 0x25b32
leaq 0x1082e(%rip), %rcx     # 0x25866
movl $0x150, %r8d            # imm = 0x150
movb $0x0, %al
callq 0x3410
movq 0x19f54(%rip), %rax     # 0x2efa0
movq (%rax), %rdi
callq 0x3350
movq 0x19f75(%rip), %rax     # 0x2efd0
movq (%rax), %rdi
callq 0x3350
movl $0x1, %edi
callq 0x3370
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x31a0
jmp 0x154da
jmp 0x15089
movq -0x1c8(%rbp), %rdi
callq 0x31f0
movq -0x1c0(%rbp), %rsi
movq %rax, %rdx
leaq -0x70(%rbp), %rdi
callq 0x13fd0
leaq -0x70(%rbp), %rdi
callq 0x31f0
movq -0x1c8(%rbp), %rdi
movq %rax, -0x1f8(%rbp)
callq 0x31f0
movq %rax, %rcx
movq -0x1f8(%rbp), %rax
cmpq %rcx, %rax
je 0x152a4
leaq 0x10a5f(%rip), %rdi     # 0x25b3d
xorl %eax, %eax
callq 0x3050
jmp 0x150e7
leaq -0x91(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0x34d0
movq -0x200(%rbp), %rdx
leaq 0x10a4c(%rip), %rsi     # 0x25b54
leaq -0x90(%rbp), %rdi
callq 0x33e0
jmp 0x15116
movq -0x1c8(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3120
jmp 0x1512b
leaq -0x90(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0xd1b0
jmp 0x15140
leaq -0xb8(%rbp), %rdi
callq 0x31a0
leaq -0x90(%rbp), %rdi
callq 0x31a0
leaq -0x91(%rbp), %rdi
callq 0x3300
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x34d0
movq -0x208(%rbp), %rdx
leaq 0x101a1(%rip), %rsi     # 0x25326
leaq -0xd8(%rbp), %rdi
callq 0x33e0
jmp 0x15193
leaq -0x100(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3120
jmp 0x151a5
leaq -0xd8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xd1b0
jmp 0x151ba
leaq -0x100(%rbp), %rdi
callq 0x31a0
leaq -0xd8(%rbp), %rdi
callq 0x31a0
leaq -0xd9(%rbp), %rdi
callq 0x3300
movb $0x0, -0x1(%rbp)
movl $0x1, -0x104(%rbp)
jmp 0x154ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x154d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15242
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15236
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x31a0
leaq -0x90(%rbp), %rdi
callq 0x31a0
leaq -0x91(%rbp), %rdi
callq 0x3300
jmp 0x154d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15293
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15287
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x31a0
leaq -0xd8(%rbp), %rdi
callq 0x31a0
leaq -0xd9(%rbp), %rdi
callq 0x3300
jmp 0x154d1
movq -0x1c8(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x12e40
testb $0x1, %al
jne 0x152bd
jmp 0x154ac
leaq 0x10897(%rip), %rdi     # 0x25b5b
xorl %eax, %eax
callq 0x3050
jmp 0x152cd
movq -0x1c0(%rbp), %rsi
leaq -0x128(%rbp), %rdi
movl $0xff, %edx
callq 0x13fd0
jmp 0x152e7
leaq -0x149(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x34d0
movq -0x210(%rbp), %rdx
leaq 0x10864(%rip), %rsi     # 0x25b6c
leaq -0x148(%rbp), %rdi
callq 0x33e0
jmp 0x15316
movq -0x1c8(%rbp), %rsi
leaq -0x170(%rbp), %rdi
callq 0x3120
jmp 0x1532b
leaq -0x148(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xd1b0
jmp 0x15340
leaq -0x170(%rbp), %rdi
callq 0x31a0
leaq -0x148(%rbp), %rdi
callq 0x31a0
leaq -0x149(%rbp), %rdi
callq 0x3300
leaq -0x191(%rbp), %rdi
movq %rdi, -0x218(%rbp)
callq 0x34d0
movq -0x218(%rbp), %rdx
leaq 0x107f2(%rip), %rsi     # 0x25b77
leaq -0x190(%rbp), %rdi
callq 0x33e0
jmp 0x15393
leaq -0x1b8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x128(%rbp), %rdx
callq 0x154f0
jmp 0x153ac
leaq -0x190(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0xd1b0
jmp 0x153c1
leaq -0x1b8(%rbp), %rdi
callq 0x31a0
leaq -0x190(%rbp), %rdi
callq 0x31a0
leaq -0x191(%rbp), %rdi
callq 0x3300
movb $0x0, -0x1(%rbp)
movl $0x1, -0x104(%rbp)
leaq -0x128(%rbp), %rdi
callq 0x31a0
jmp 0x154ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15444
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15438
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x31a0
leaq -0x148(%rbp), %rdi
callq 0x31a0
leaq -0x149(%rbp), %rdi
callq 0x3300
jmp 0x1549e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15492
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x15486
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x31a0
leaq -0x190(%rbp), %rdi
callq 0x31a0
leaq -0x191(%rbp), %rdi
callq 0x3300
leaq -0x128(%rbp), %rdi
callq 0x31a0
jmp 0x154d1
movb $0x1, -0x1(%rbp)
movl $0x1, -0x104(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x31a0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
leaq -0x70(%rbp), %rdi
callq 0x31a0
movq -0x48(%rbp), %rdi
callq 0x34b0
nopw %cs:(%rax,%rax)
nopl (%rax)