// File: /workspace/github_c_makefile_star2_O2/Carton32[P]quectel-CM/mbim-cm.c
// Function: requestGetIPAddress
static int mbim_ip_config(PROFILE_T *profile, int sessionID) {
    MBIM_MESSAGE_HEADER *pRequest = NULL;
    MBIM_COMMAND_DONE_T *pCmdDone = NULL;
    MBIM_IP_CONFIGURATION_INFO_T ip_info;
    int err;

    if (profile->ipv4.Address == 0 || mbim_verbose)
        mbim_debug("%s(sessionID=%d)", __func__, sessionID);
    ip_info.SessionId = htole32(sessionID);
    pRequest = compose_basic_connect_command(MBIM_CID_IP_CONFIGURATION, MBIM_CID_CMD_TYPE_QUERY, &ip_info, sizeof(ip_info));
    err = mbim_send_command(pRequest, &pCmdDone, mbim_default_timeout);
    mbim_check_err(err, pRequest, pCmdDone);

    if (le32toh(pCmdDone->InformationBufferLength)) {
        UINT8 prefix, *ipv4=NULL, *ipv6=NULL, *gw=NULL, *dns1=NULL, *dns2=NULL;
        UINT32 mtu = 1500;
        MBIM_IP_CONFIGURATION_INFO_T *pInfo = (MBIM_IP_CONFIGURATION_INFO_T *)pCmdDone->InformationBuffer;

        /* IPv4 network configration */
        if (le32toh(pInfo->IPv4ConfigurationAvailable)&0x1) {
            MBIM_IPV4_ELEMENT_T *pAddress = (MBIM_IPV4_ELEMENT_T *)(&pInfo->DataBuffer[le32toh(pInfo->IPv4AddressOffset)-sizeof(MBIM_IP_CONFIGURATION_INFO_T)]);
            prefix = le32toh(pAddress->OnLinkPrefixLength);
            ipv4 = pAddress->IPv4Address;

            if (le32toh(pInfo->IPv4ConfigurationAvailable)&0x2)
                gw = (UINT8 *)(&pInfo->DataBuffer[le32toh(pInfo->IPv4GatewayOffset)-sizeof(MBIM_IP_CONFIGURATION_INFO_T)]);

            if (le32toh(pInfo->IPv4ConfigurationAvailable)&0x4) {
                dns1 = (UINT8 *)(&pInfo->DataBuffer[le32toh(pInfo->IPv4DnsServerOffset)-sizeof(MBIM_IP_CONFIGURATION_INFO_T)]);
                if (le32toh(pInfo->IPv4DnsServerCount) == 2)
                    dns2 = dns1 + 4;
            }

            if (le32toh(pInfo->IPv4ConfigurationAvailable)&0x8)
                mtu =  le32toh(pInfo->IPv4Mtu);

            if (profile->ipv4.Address != mbim2qmi_ipv4addr(*(uint32_t *)ipv4) || mbim_verbose) {
                mbim_dump_ipconfig(pInfo, "<");
                profile->ipv4.Address = mbim2qmi_ipv4addr(*(uint32_t *)ipv4);
            }

			if(gw != NULL)
            	profile->ipv4.Gateway = mbim2qmi_ipv4addr(*(uint32_t *)gw);
            profile->ipv4.SubnetMask = mbim2qmi_ipv4addr(0xFFFFFFFF>>(32-prefix)<<(32-prefix));
			if(dns1 != NULL)
            	profile->ipv4.DnsPrimary = mbim2qmi_ipv4addr(*(uint32_t *)dns1);
			if(dns2 != NULL)
            	profile->ipv4.DnsSecondary = mbim2qmi_ipv4addr(*(uint32_t *)dns2);
            profile->ipv4.Mtu = mbim2qmi_ipv4addr(mtu);
        }

        /* IPv6 network configration */
        if (le32toh(pInfo->IPv6ConfigurationAvailable)&0x1) {
			gw = NULL; dns1 = NULL; dns2 = NULL;
            MBIM_IPV6_ELEMENT_T *pAddress = (MBIM_IPV6_ELEMENT_T *)(&pInfo->DataBuffer[le32toh(pInfo->IPv6AddressOffset)-sizeof(MBIM_IP_CONFIGURATION_INFO_T)]);
            prefix = le32toh(pAddress->OnLinkPrefixLength);
            ipv6 = pAddress->IPv6Address;

            if (le32toh(pInfo->IPv6ConfigurationAvailable)&0x2)
                gw = (UINT8 *)(&pInfo->DataBuffer[le32toh(pInfo->IPv6GatewayOffset)-sizeof(MBIM_IP_CONFIGURATION_INFO_T)]);

            if (le32toh(pInfo->IPv6ConfigurationAvailable)&0x4) {
                dns1 = (UINT8 *)(&pInfo->DataBuffer[le32toh(pInfo->IPv6DnsServerOffset)-sizeof(MBIM_IP_CONFIGURATION_INFO_T)]);
                if (le32toh(pInfo->IPv6DnsServerCount) == 2)
                    dns2 = dns1 + 16;
            }

            if (le32toh(pInfo->IPv6ConfigurationAvailable)&0x8)
                mtu =  le32toh(pInfo->IPv6Mtu);

            if(ipv6 != NULL)
            	mbim2qmi_ipv6addr(ipv6, profile->ipv6.Address);
			if(gw != NULL)
            	mbim2qmi_ipv6addr(gw, profile->ipv6.Gateway);
			if(dns1 != NULL)
            	mbim2qmi_ipv6addr(dns1, profile->ipv6.DnsPrimary);
			if(dns2 != NULL)
            	mbim2qmi_ipv6addr(dns2, profile->ipv6.DnsSecondary);
            profile->ipv6.PrefixLengthIPAddr = prefix;
            profile->ipv6.PrefixLengthGateway = prefix;
            profile->ipv6.Mtu = mbim2qmi_ipv4addr(mtu);
        }
    }
    return err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
andq $0x0, 0x78(%rsp)
movl 0x182cd(%rip), %ebp     # 0x2af14
movq %rdi, 0x60(%rsp)
cmpl $0x0, 0x126(%rdi)
je 0x12c5e
cmpl $0x0, 0x180d4(%rip)     # 0x2ad30
je 0x12cbd
movq 0x16353(%rip), %rax     # 0x28fb8
movq (%rax), %r14
callq 0xe343
leaq 0xd8b8(%rip), %rsi      # 0x2052c
leaq 0xd8db(%rip), %rcx      # 0x20556
movq %r14, %rdi
movq %rax, %rdx
movl %ebp, %r8d
xorl %eax, %eax
callq 0x52c0
leaq 0x17016(%rip), %rax     # 0x29ca8
movq (%rax), %r14
testq %r14, %r14
je 0x12cbd
callq 0xe343
leaq 0xd886(%rip), %rsi      # 0x2052c
leaq 0xd8a9(%rip), %rcx      # 0x20556
movq %r14, %rdi
movq %rax, %rdx
movl %ebp, %r8d
xorl %eax, %eax
callq 0x52c0
leaq 0xac(%rsp), %rdx
movl %ebp, (%rdx)
pushq $0xf
popq %rdi
pushq $0x3c
popq %rcx
xorl %esi, %esi
callq 0x1022b
movq %rax, %r13
leaq 0x78(%rsp), %r14
movq %rax, %rdi
movq %r14, %rsi
movl $0x7530, %edx           # imm = 0x7530
callq 0x103ea
movl %eax, %r15d
movq (%r14), %r14
movq %r14, %rdi
callq 0x1055f
movl %eax, %r12d
testq %r14, %r14
je 0x12d3e
testl %r15d, %r15d
jne 0x12d3e
testl %r12d, %r12d
jne 0x12d3e
xorl %ebp, %ebp
cmpl $0x0, 0x2c(%r14)
je 0x13e85
movl 0x34(%r14), %eax
movl $0x5dc, %r8d            # imm = 0x5DC
testb $0x1, %al
je 0x13da8
leaq 0x6c(%r14), %r13
testb $0x2, %al
jne 0x12e0f
xorl %esi, %esi
jmp 0x12e1b
testq %r14, %r14
je 0x12d5f
xorl %esi, %esi
cmpl $0x0, 0x17fe4(%rip)     # 0x2ad30
sete %sil
movq %r14, %rdi
callq 0x10583
movq 0x78(%rsp), %rbx
jmp 0x12d61
xorl %ebx, %ebx
movq %r13, %rdi
callq 0x5040
testq %rbx, %rbx
je 0x12d7c
movq %rbx, %rdi
callq 0x5040
andq $0x0, 0x78(%rsp)
movq 0x16235(%rip), %rax     # 0x28fb8
movq (%rax), %rbx
callq 0xe343
subq $0x8, %rsp
leaq 0xc60b(%rip), %rsi      # 0x1f3a1
leaq 0xd7b9(%rip), %rcx      # 0x20556
movq %rbx, %rdi
movq %rax, %rdx
movl $0x815, %r8d            # imm = 0x815
movl %r15d, %r9d
xorl %eax, %eax
pushq %r12
callq 0x52c0
popq %rcx
popq %rdx
leaq 0x16eea(%rip), %rax     # 0x29ca8
movq (%rax), %rbx
testq %rbx, %rbx
je 0x12df7
callq 0xe343
subq $0x8, %rsp
leaq 0xc5cb(%rip), %rsi      # 0x1f3a1
leaq 0xd779(%rip), %rcx      # 0x20556
movq %rbx, %rdi
movq %rax, %rdx
movl $0x815, %r8d            # imm = 0x815
movl %r15d, %r9d
xorl %eax, %eax
pushq %r12
callq 0x52c0
popq %rcx
popq %rdx
testl %r12d, %r12d
movl $0x22b8, %ebp           # imm = 0x22B8
cmovnel %r12d, %ebp
testl %r15d, %r15d
cmovnel %r15d, %ebp
jmp 0x13e85
movl 0x4c(%r14), %ecx
leaq (%rcx,%r13), %rsi
addq $-0x3c, %rsi
movl 0x40(%r14), %r9d
testb $0x4, %al
jne 0x12e29
xorl %edi, %edi
xorl %edx, %edx
jmp 0x12e42
movl 0x58(%r14), %ecx
xorl %edx, %edx
cmpl $0x2, 0x54(%r14)
leaq -0x3c(%rcx,%r13), %rdi
leaq -0x38(%rcx,%r13), %rcx
cmoveq %rcx, %rdx
testb $0x8, %al
je 0x12e4a
movl 0x64(%r14), %r8d
movzbl 0x30(%r9,%r14), %ecx
movl -0x38(%r13,%r9), %eax
bswapl %eax
movq 0x60(%rsp), %r10
cmpl %eax, 0x126(%r10)
jne 0x12e72
cmpl $0x0, 0x17ec4(%rip)     # 0x2ad30
je 0x13d48
movl %ecx, 0x84(%rsp)
movq %r9, 0x88(%rsp)
movq %rdi, 0x90(%rsp)
movq %rsi, 0x98(%rsp)
movq %rdx, 0xa0(%rsp)
movl %r8d, 0x6c(%rsp)
movq 0x16113(%rip), %r15     # 0x28fb8
movq (%r15), %r12
callq 0xe343
movl 0x30(%r14), %r8d
leaq 0xc616(%rip), %rsi      # 0x1f4ce
leaq 0xc5cf(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x16dd5(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x12eff
callq 0xe343
movl 0x30(%r14), %r8d
leaq 0xc5e3(%rip), %rsi      # 0x1f4ce
leaq 0xc59c(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
movq (%r15), %r12
callq 0xe343
movl 0x34(%r14), %r8d
leaq 0xd653(%rip), %rsi      # 0x20565
leaq 0xc575(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x16d7b(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x12f59
callq 0xe343
movl 0x34(%r14), %r8d
leaq 0xd620(%rip), %rsi      # 0x20565
leaq 0xc542(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
movq (%r15), %r12
callq 0xe343
movl 0x38(%r14), %r8d
leaq 0xd624(%rip), %rsi      # 0x20590
leaq 0xc51b(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x16d21(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x12fb3
callq 0xe343
movl 0x38(%r14), %r8d
leaq 0xd5f1(%rip), %rsi      # 0x20590
leaq 0xc4e8(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
movq (%r15), %r12
callq 0xe343
movl 0x3c(%r14), %r8d
leaq 0xd5f5(%rip), %rsi      # 0x205bb
leaq 0xc4c1(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x16cc7(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x1300d
callq 0xe343
movl 0x3c(%r14), %r8d
leaq 0xd5c2(%rip), %rsi      # 0x205bb
leaq 0xc48e(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
movq (%r15), %r12
callq 0xe343
movl 0x40(%r14), %r8d
leaq 0xd5bc(%rip), %rsi      # 0x205dc
leaq 0xc467(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x16c6d(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x13067
callq 0xe343
movl 0x40(%r14), %r8d
leaq 0xd589(%rip), %rsi      # 0x205dc
leaq 0xc434(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
movq (%r15), %r12
callq 0xe343
movl 0x44(%r14), %r8d
leaq 0xd584(%rip), %rsi      # 0x205fe
leaq 0xc40d(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x16c13(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x130c1
callq 0xe343
movl 0x44(%r14), %r8d
leaq 0xd551(%rip), %rsi      # 0x205fe
leaq 0xc3da(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
movq (%r15), %r12
callq 0xe343
movl 0x48(%r14), %r8d
leaq 0xd54b(%rip), %rsi      # 0x2061f
leaq 0xc3b3(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x16bb9(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x1311b
callq 0xe343
movl 0x48(%r14), %r8d
leaq 0xd518(%rip), %rsi      # 0x2061f
leaq 0xc380(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
testb $0x1, 0x34(%r14)
je 0x131db
movl 0x40(%r14), %r15d
movzbl 0x30(%r14,%r15), %ebx
movq 0x15e81(%rip), %rax     # 0x28fb8
movq (%rax), %r12
callq 0xe343
movzbl 0x34(%r14,%r15), %r8d
movzbl 0x35(%r14,%r15), %r9d
movzbl 0x36(%r14,%r15), %r10d
movzbl 0x37(%r14,%r15), %r11d
subq $0x8, %rsp
leaq 0xd4df(%rip), %rsi      # 0x20641
leaq 0xc325(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
movq %rbx, 0x10(%rsp)
pushq %rbx
pushq %r11
pushq %r10
callq 0x52c0
addq $0x20, %rsp
leaq 0x16b1d(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x131db
callq 0xe343
movzbl -0x38(%r13,%r15), %r8d
movzbl -0x37(%r13,%r15), %r9d
movzbl -0x36(%r13,%r15), %r10d
movzbl -0x35(%r13,%r15), %r11d
subq $0x8, %rsp
leaq 0xd486(%rip), %rsi      # 0x20641
leaq 0xc2cc(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq 0x10(%rsp)
pushq %r11
pushq %r10
callq 0x52c0
addq $0x20, %rsp
testb $0x2, 0x34(%r14)
je 0x1327f
movl 0x4c(%r14), %r15d
movq 0x15dc7(%rip), %rax     # 0x28fb8
movq (%rax), %r12
callq 0xe343
movzbl 0x30(%r14,%r15), %r8d
movzbl 0x31(%r14,%r15), %r9d
movzbl 0x32(%r14,%r15), %r10d
movzbl 0x33(%r14,%r15), %r11d
leaq 0xd448(%rip), %rsi      # 0x20660
leaq 0xc26f(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x52c0
popq %rcx
popq %rdx
leaq 0x16a6f(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x1327f
callq 0xe343
movzbl -0x3c(%r13,%r15), %r8d
movzbl -0x3b(%r13,%r15), %r9d
movzbl -0x3a(%r13,%r15), %r10d
movzbl -0x39(%r13,%r15), %r11d
leaq 0xd3fb(%rip), %rsi      # 0x20660
leaq 0xc222(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x52c0
popq %rcx
popq %rdx
testb $0x3, 0x34(%r14)
je 0x133c3
movl 0x58(%r14), %r15d
movq 0x15d23(%rip), %rax     # 0x28fb8
movq (%rax), %r12
callq 0xe343
movzbl 0x30(%r14,%r15), %r8d
movzbl 0x31(%r14,%r15), %r9d
movzbl 0x32(%r14,%r15), %r10d
movzbl 0x33(%r14,%r15), %r11d
leaq 0xd3be(%rip), %rsi      # 0x2067a
leaq 0xc1cb(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x52c0
popq %rcx
popq %rdx
leaq 0x169cb(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x13323
callq 0xe343
movzbl -0x3c(%r13,%r15), %r8d
movzbl -0x3b(%r13,%r15), %r9d
movzbl -0x3a(%r13,%r15), %r10d
movzbl -0x39(%r13,%r15), %r11d
leaq 0xd371(%rip), %rsi      # 0x2067a
leaq 0xc17e(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x52c0
popq %rcx
popq %rdx
cmpl $0x2, 0x54(%r14)
jne 0x133c3
movq 0x15c83(%rip), %rax     # 0x28fb8
movq (%rax), %r12
callq 0xe343
movzbl -0x38(%r13,%r15), %r8d
movzbl -0x37(%r13,%r15), %r9d
movzbl -0x36(%r13,%r15), %r10d
movzbl -0x35(%r13,%r15), %r11d
leaq 0xd33a(%rip), %rsi      # 0x20696
leaq 0xc12b(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x52c0
popq %rcx
popq %rdx
leaq 0x1692b(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x133c3
callq 0xe343
movzbl -0x38(%r13,%r15), %r8d
movzbl -0x37(%r13,%r15), %r9d
movzbl -0x36(%r13,%r15), %r10d
movzbl -0x35(%r13,%r15), %r11d
leaq 0xd2ed(%rip), %rsi      # 0x20696
leaq 0xc0de(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r11
pushq %r10
callq 0x52c0
popq %rcx
popq %rdx
cmpl $0x0, 0x64(%r14)
je 0x1342b
movq 0x15be7(%rip), %rax     # 0x28fb8
movq (%rax), %r12
callq 0xe343
movl 0x64(%r14), %r8d
leaq 0xd2ce(%rip), %rsi      # 0x206b2
leaq 0xc0a3(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x168a9(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x1342b
callq 0xe343
movl 0x64(%r14), %r8d
leaq 0xd29b(%rip), %rsi      # 0x206b2
leaq 0xc070(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
testb $0x1, 0x38(%r14)
je 0x13672
movl 0x48(%r14), %r15d
movzbl 0x30(%r14,%r15), %ebx
movq 0x15b71(%rip), %rax     # 0x28fb8
movq (%rax), %rax
movq %rax, 0x70(%rsp)
callq 0xe343
movzbl 0x34(%r14,%r15), %r8d
movzbl 0x35(%r14,%r15), %r9d
movzbl 0x36(%r14,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl 0x37(%r14,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl 0x38(%r14,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl 0x39(%r14,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl 0x3a(%r14,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl 0x3b(%r14,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl 0x3c(%r14,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl 0x3d(%r14,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl 0x3e(%r14,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl 0x3f(%r14,%r15), %ecx
movq %rcx, 0x10(%rsp)
movzbl 0x40(%r14,%r15), %ecx
movq %rcx, 0x58(%rsp)
movzbl 0x41(%r14,%r15), %r11d
movzbl 0x42(%r14,%r15), %r10d
movzbl 0x43(%r14,%r15), %r12d
subq $0x8, %rsp
leaq 0xd1d3(%rip), %rsi      # 0x206c9
leaq 0xbf91(%rip), %rcx      # 0x1f48e
movq 0x78(%rsp), %rdi
movq %rax, %rdx
xorl %eax, %eax
movq %rbx, 0x78(%rsp)
pushq %rbx
pushq %r12
pushq %r10
pushq %r11
pushq 0x80(%rsp)
pushq 0x40(%rsp)
pushq 0x50(%rsp)
pushq 0x60(%rsp)
pushq 0x70(%rsp)
pushq 0x80(%rsp)
pushq 0x90(%rsp)
pushq 0xa0(%rsp)
pushq 0xb0(%rsp)
pushq 0xc0(%rsp)
pushq 0x80(%rsp)
callq 0x52c0
addq $0x80, %rsp
leaq 0x16741(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x13672
callq 0xe343
movzbl -0x38(%r13,%r15), %r8d
movzbl -0x37(%r13,%r15), %r9d
movzbl -0x36(%r13,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl -0x35(%r13,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl -0x34(%r13,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl -0x33(%r13,%r15), %ebx
movzbl -0x32(%r13,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl -0x31(%r13,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl -0x30(%r13,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl -0x2f(%r13,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl -0x2e(%r13,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl -0x2d(%r13,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl -0x2c(%r13,%r15), %ecx
movq %rcx, 0x10(%rsp)
movzbl -0x2b(%r13,%r15), %r11d
movzbl -0x2a(%r13,%r15), %r10d
movzbl -0x29(%r13,%r15), %r15d
subq $0x8, %rsp
leaq 0xd0b4(%rip), %rsi      # 0x206c9
leaq 0xbe72(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq 0x78(%rsp)
pushq %r15
pushq %r10
pushq %r11
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq %rbx
pushq 0xb0(%rsp)
pushq 0xc0(%rsp)
pushq 0x80(%rsp)
callq 0x52c0
addq $0x80, %rsp
testb $0x2, 0x38(%r14)
je 0x13881
movl 0x50(%r14), %r15d
movq 0x15930(%rip), %rax     # 0x28fb8
movq (%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xe343
movzbl 0x30(%r14,%r15), %r8d
movzbl 0x31(%r14,%r15), %r9d
movzbl 0x32(%r14,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl 0x33(%r14,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl 0x34(%r14,%r15), %ebx
movzbl 0x35(%r14,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl 0x36(%r14,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl 0x37(%r14,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl 0x38(%r14,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl 0x39(%r14,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl 0x3a(%r14,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl 0x3b(%r14,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl 0x3c(%r14,%r15), %ecx
movq %rcx, 0x58(%rsp)
movzbl 0x3d(%r14,%r15), %r11d
movzbl 0x3e(%r14,%r15), %r10d
movzbl 0x3f(%r14,%r15), %r12d
leaq 0xcff6(%rip), %rsi      # 0x20724
leaq 0xbd59(%rip), %rcx      # 0x1f48e
movq 0x10(%rsp), %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r12
pushq %r10
pushq %r11
pushq 0x70(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq %rbx
pushq 0xb0(%rsp)
pushq 0x70(%rsp)
callq 0x52c0
addq $0x70, %rsp
leaq 0x16521(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x13881
callq 0xe343
movzbl -0x3c(%r13,%r15), %r8d
movzbl -0x3b(%r13,%r15), %r9d
movzbl -0x3a(%r13,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl -0x39(%r13,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl -0x38(%r13,%r15), %ebx
movzbl -0x37(%r13,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl -0x36(%r13,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl -0x35(%r13,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl -0x34(%r13,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl -0x33(%r13,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl -0x32(%r13,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl -0x31(%r13,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl -0x30(%r13,%r15), %ecx
movq %rcx, 0x10(%rsp)
movzbl -0x2f(%r13,%r15), %r11d
movzbl -0x2e(%r13,%r15), %r10d
movzbl -0x2d(%r13,%r15), %r15d
leaq 0xcef3(%rip), %rsi      # 0x20724
leaq 0xbc56(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r15
pushq %r10
pushq %r11
pushq 0x28(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq %rbx
pushq 0xb0(%rsp)
pushq 0x70(%rsp)
callq 0x52c0
addq $0x70, %rsp
testb $0x3, 0x38(%r14)
je 0x13ca2
movl 0x60(%r14), %r15d
movq 0x15721(%rip), %rax     # 0x28fb8
movq (%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xe343
movzbl 0x30(%r14,%r15), %r8d
movzbl 0x31(%r14,%r15), %r9d
movzbl 0x32(%r14,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl 0x33(%r14,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl 0x34(%r14,%r15), %ebx
movzbl 0x35(%r14,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl 0x36(%r14,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl 0x37(%r14,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl 0x38(%r14,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl 0x39(%r14,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl 0x3a(%r14,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl 0x3b(%r14,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl 0x3c(%r14,%r15), %ecx
movq %rcx, 0x58(%rsp)
movzbl 0x3d(%r14,%r15), %r11d
movzbl 0x3e(%r14,%r15), %r10d
movzbl 0x3f(%r14,%r15), %r12d
leaq 0xce3d(%rip), %rsi      # 0x2077a
leaq 0xbb4a(%rip), %rcx      # 0x1f48e
movq 0x10(%rsp), %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r12
pushq %r10
pushq %r11
pushq 0x70(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq %rbx
pushq 0xb0(%rsp)
pushq 0x70(%rsp)
callq 0x52c0
addq $0x70, %rsp
leaq 0x16312(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x13a97
callq 0xe343
movzbl -0x3c(%r13,%r15), %r8d
movzbl -0x3b(%r13,%r15), %r9d
movzbl -0x3a(%r13,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl -0x39(%r13,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl -0x38(%r13,%r15), %ebx
movzbl -0x37(%r13,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl -0x36(%r13,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl -0x35(%r13,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl -0x34(%r13,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl -0x33(%r13,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl -0x32(%r13,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl -0x31(%r13,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl -0x30(%r13,%r15), %ecx
movq %rcx, 0x10(%rsp)
movzbl -0x2f(%r13,%r15), %ecx
movq %rcx, 0x58(%rsp)
movzbl -0x2e(%r13,%r15), %r10d
movzbl -0x2d(%r13,%r15), %r11d
leaq 0xcd35(%rip), %rsi      # 0x2077a
leaq 0xba42(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r11
pushq %r10
pushq 0x68(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq %rbx
pushq 0xb0(%rsp)
pushq 0x70(%rsp)
callq 0x52c0
addq $0x70, %rsp
cmpl $0x2, 0x5c(%r14)
jne 0x13ca2
movq 0x1550f(%rip), %rax     # 0x28fb8
movq (%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xe343
movzbl -0x2c(%r13,%r15), %r8d
movzbl -0x2b(%r13,%r15), %r9d
movzbl -0x2a(%r13,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl -0x29(%r13,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl -0x38(%r13,%r15), %ebx
movzbl -0x37(%r13,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl -0x36(%r13,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl -0x35(%r13,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl -0x24(%r13,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl -0x23(%r13,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl -0x22(%r13,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl -0x21(%r13,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl -0x20(%r13,%r15), %ecx
movq %rcx, 0x58(%rsp)
movzbl -0x1f(%r13,%r15), %r11d
movzbl -0x1e(%r13,%r15), %r10d
movzbl -0x1d(%r13,%r15), %r12d
leaq 0xcc83(%rip), %rsi      # 0x207d2
leaq 0xb938(%rip), %rcx      # 0x1f48e
movq 0x10(%rsp), %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r12
pushq %r10
pushq %r11
pushq 0x70(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq %rbx
pushq 0xb0(%rsp)
pushq 0x70(%rsp)
callq 0x52c0
addq $0x70, %rsp
leaq 0x16100(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x13ca2
callq 0xe343
movzbl -0x2c(%r13,%r15), %r8d
movzbl -0x2b(%r13,%r15), %r9d
movzbl -0x2a(%r13,%r15), %ecx
movq %rcx, 0x8(%rsp)
movzbl -0x29(%r13,%r15), %ecx
movq %rcx, 0x50(%rsp)
movzbl -0x38(%r13,%r15), %ebx
movzbl -0x37(%r13,%r15), %ecx
movq %rcx, 0x48(%rsp)
movzbl -0x36(%r13,%r15), %ecx
movq %rcx, 0x40(%rsp)
movzbl -0x35(%r13,%r15), %ecx
movq %rcx, 0x38(%rsp)
movzbl -0x24(%r13,%r15), %ecx
movq %rcx, 0x30(%rsp)
movzbl -0x23(%r13,%r15), %ecx
movq %rcx, 0x28(%rsp)
movzbl -0x22(%r13,%r15), %ecx
movq %rcx, 0x20(%rsp)
movzbl -0x21(%r13,%r15), %ecx
movq %rcx, 0x18(%rsp)
movzbl -0x20(%r13,%r15), %ecx
movq %rcx, 0x10(%rsp)
movzbl -0x1f(%r13,%r15), %r11d
movzbl -0x1e(%r13,%r15), %r10d
movzbl -0x1d(%r13,%r15), %r15d
leaq 0xcb80(%rip), %rsi      # 0x207d2
leaq 0xb835(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
pushq %r15
pushq %r10
pushq %r11
pushq 0x28(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x58(%rsp)
pushq 0x68(%rsp)
pushq 0x78(%rsp)
pushq 0x88(%rsp)
pushq 0x98(%rsp)
pushq %rbx
pushq 0xb0(%rsp)
pushq 0x70(%rsp)
callq 0x52c0
addq $0x70, %rsp
cmpl $0x0, 0x68(%r14)
je 0x13d0a
movq 0x15308(%rip), %rax     # 0x28fb8
movq (%rax), %r12
callq 0xe343
movl 0x68(%r14), %r8d
leaq 0xcb67(%rip), %rsi      # 0x2082a
leaq 0xb7c4(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
leaq 0x15fca(%rip), %rax     # 0x29ca8
movq (%rax), %r12
testq %r12, %r12
je 0x13d0a
callq 0xe343
movl 0x68(%r14), %r8d
leaq 0xcb34(%rip), %rsi      # 0x2082a
leaq 0xb791(%rip), %rcx      # 0x1f48e
movq %r12, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x52c0
movq 0x88(%rsp), %rax
movl -0x38(%r13,%rax), %eax
bswapl %eax
movq 0x60(%rsp), %rcx
movl %eax, 0x126(%rcx)
movl 0x6c(%rsp), %r8d
movq 0xa0(%rsp), %rdx
movq 0x98(%rsp), %rsi
movq 0x90(%rsp), %rdi
movl 0x84(%rsp), %ecx
testq %rsi, %rsi
je 0x13d5c
movl (%rsi), %eax
bswapl %eax
movq 0x60(%rsp), %rsi
movl %eax, 0x12a(%rsi)
negb %cl
pushq $-0x1
popq %rax
shll %cl, %eax
bswapl %eax
movq 0x60(%rsp), %rcx
movl %eax, 0x12e(%rcx)
testq %rdi, %rdi
je 0x13d84
movl (%rdi), %eax
bswapl %eax
movq 0x60(%rsp), %rcx
movl %eax, 0x132(%rcx)
testq %rdx, %rdx
je 0x13d98
movl (%rdx), %eax
bswapl %eax
movq 0x60(%rsp), %rcx
movl %eax, 0x136(%rcx)
movl %r8d, %eax
bswapl %eax
movq 0x60(%rsp), %rcx
movl %eax, 0x13a(%rcx)
movl 0x38(%r14), %ecx
testb $0x1, %cl
je 0x13e85
leaq 0x6c(%r14), %rdx
movl 0x48(%r14), %eax
testb $0x2, %cl
jne 0x13dc7
xorl %r12d, %r12d
jmp 0x13dd3
movl 0x50(%r14), %esi
leaq (%rsi,%rdx), %r12
addq $-0x3c, %r12
testb $0x4, %cl
jne 0x13de0
xorl %r13d, %r13d
xorl %r15d, %r15d
jmp 0x13dfa
movl 0x60(%r14), %esi
xorl %r15d, %r15d
cmpl $0x2, 0x5c(%r14)
leaq -0x3c(%rsi,%rdx), %r13
leaq -0x2c(%rsi,%rdx), %rdx
cmoveq %rdx, %r15
movq 0x60(%rsp), %rbx
leaq (%rax,%r14), %rdi
addq $0x34, %rdi
testb $0x8, %cl
je 0x13e10
movl 0x68(%r14), %r8d
movl %r8d, 0x6c(%rsp)
movb 0x30(%rax,%r14), %bpl
movq %rbx, %r14
leaq 0x13e(%rbx), %rsi
callq 0x15524
testq %r12, %r12
je 0x13e3d
leaq 0x14e(%r14), %rsi
movq %r12, %rdi
callq 0x15524
testq %r13, %r13
je 0x13e51
leaq 0x16e(%rbx), %rsi
movq %r13, %rdi
callq 0x15524
testq %r15, %r15
movq %rbx, %r14
je 0x13e68
leaq 0x17e(%r14), %rsi
movq %r15, %rdi
callq 0x15524
movb %bpl, 0x18e(%r14)
movb %bpl, 0x18f(%r14)
movl 0x6c(%rsp), %ebx
bswapl %ebx
movl %ebx, 0x190(%r14)
xorl %ebp, %ebp
movl %ebp, %eax
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq