// File: FFY00[P]uicc/include/uicc.h
// Function: USIM::openFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool openFile(string filename) {
        string order(u8"\x00\xa4\x08\x04",4);
        string answer(u8"\x61",1);
        string filenameBin=UICCFile(filename);

        if (! send_check(order+(char)(filenameBin.size())+filenameBin, answer))
            return false;

        string size=read(1);

        if (size.size() !=1)
            return false;

        return readFileInfo(size);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rsi, -0x178(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x170(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x34d0
movq -0x168(%rbp), %rcx
leaq 0x86bd(%rip), %rsi      # 0x23290
leaq -0x38(%rbp), %rdi
movl $0x4, %edx
callq 0x3330
jmp 0x1abe3
leaq -0x39(%rbp), %rdi
callq 0x3300
leaq -0x71(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x34d0
movq -0x180(%rbp), %rcx
leaq 0xb41a(%rip), %rsi      # 0x26024
leaq -0x70(%rbp), %rdi
movl $0x1, %edx
callq 0x3330
jmp 0x1ac1a
leaq -0x71(%rbp), %rdi
callq 0x3300
movq -0x178(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x3120
jmp 0x1ac38
movq -0x170(%rbp), %rsi
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rdx
callq 0x1af10
jmp 0x1ac54
leaq -0xb8(%rbp), %rdi
callq 0x31a0
leaq -0x98(%rbp), %rdi
callq 0x31f0
movsbl %al, %edx
leaq -0xf8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1c940
jmp 0x1ac81
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x1c8f0
jmp 0x1ac9d
leaq -0x118(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3120
jmp 0x1acaf
movq -0x170(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0x14f60
movb %al, -0x181(%rbp)
jmp 0x1acd1
movb -0x181(%rbp), %al
xorb $-0x1, %al
movb %al, -0x182(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x31a0
leaq -0xd8(%rbp), %rdi
callq 0x31a0
leaq -0xf8(%rbp), %rdi
callq 0x31a0
movb -0x182(%rbp), %al
testb $0x1, %al
jne 0x1ad12
jmp 0x1ade9
movb $0x0, -0x1(%rbp)
movl $0x1, -0x11c(%rbp)
jmp 0x1aebc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x39(%rbp), %rdi
callq 0x3300
jmp 0x1af06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x71(%rbp), %rdi
callq 0x3300
jmp 0x1aefd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1aef4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x31a0
jmp 0x1aef4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1aee8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1add8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1adcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x31a0
leaq -0xd8(%rbp), %rdi
callq 0x31a0
leaq -0xf8(%rbp), %rdi
callq 0x31a0
jmp 0x1aee8
movq -0x170(%rbp), %rsi
leaq -0x140(%rbp), %rdi
movl $0x1, %edx
callq 0x13fd0
jmp 0x1ae03
leaq -0x140(%rbp), %rdi
callq 0x31f0
cmpq $0x1, %rax
je 0x1ae25
movb $0x0, -0x1(%rbp)
movl $0x1, -0x11c(%rbp)
jmp 0x1aea0
leaq -0x160(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x3120
jmp 0x1ae3a
movq -0x170(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x1c9c0
movb %al, -0x183(%rbp)
jmp 0x1ae55
movb -0x183(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x31a0
movl $0x1, -0x11c(%rbp)
jmp 0x1aea0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1aeae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x31a0
jmp 0x1aeae
leaq -0x140(%rbp), %rdi
callq 0x31a0
jmp 0x1aebc
leaq -0x140(%rbp), %rdi
callq 0x31a0
jmp 0x1aee8
leaq -0x98(%rbp), %rdi
callq 0x31a0
leaq -0x70(%rbp), %rdi
callq 0x31a0
leaq -0x38(%rbp), %rdi
callq 0x31a0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
leaq -0x98(%rbp), %rdi
callq 0x31a0
leaq -0x70(%rbp), %rdi
callq 0x31a0
leaq -0x38(%rbp), %rdi
callq 0x31a0
movq -0x48(%rbp), %rdi
callq 0x34b0
nop