// File: /workspace/github_c_makefile_star2_O0/Carton32[P]quectel-CM/main.c
// Function: check_ipv4_address
static int check_ipv4_address(PROFILE_T *profile) {
    uint32_t oldAddress = profile->ipv4.Address;

    if (profile->request_ops == &mbim_request_ops)
        return 1; //we will get a new ipv6 address per requestGetIPAddress()
    if (profile->request_ops == &atc_request_ops)
        return 1; //TODO

    if (profile->request_ops->requestGetIPAddress(profile, IpFamilyV4) == 0) {
         if (profile->ipv4.Address != oldAddress || debug_qmi) {
             unsigned char *l = (unsigned char *)&oldAddress;
             unsigned char *r = (unsigned char *)&profile->ipv4.Address;
             dbg_time("localIP: %d.%d.%d.%d VS remoteIP: %d.%d.%d.%d",
                     l[3], l[2], l[1], l[0], r[3], r[2], r[1], r[0]);
        }
        return (profile->ipv4.Address == oldAddress);
    }

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x60, %rsp
movq %rdi, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl 0x126(%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rax
leaq 0x2b4e9(%rip), %rcx     # 0x364c0
cmpq %rcx, 0x326(%rax)
jne 0xafec
movl $0x1, -0x14(%rbp)
jmp 0xb199
movq -0x20(%rbp), %rax
leaq 0x2bd29(%rip), %rcx     # 0x36d20
cmpq %rcx, 0x326(%rax)
jne 0xb00c
movl $0x1, -0x14(%rbp)
jmp 0xb199
movq -0x20(%rbp), %rax
movq 0x326(%rax), %rax
movq 0x58(%rax), %rax
movq -0x20(%rbp), %rdi
movl $0x4, %esi
callq *%rax
cmpl $0x0, %eax
jne 0xb192
movq -0x20(%rbp), %rax
movl 0x126(%rax), %eax
cmpl -0x24(%rbp), %eax
jne 0xb04b
cmpl $0x0, 0x2c547(%rip)     # 0x3758c
je 0xb178
leaq -0x24(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
addq $0x126, %rax            # imm = 0x126
movq %rax, -0x38(%rbp)
movq 0x2bf78(%rip), %rax     # 0x36fe0
movq (%rax), %rax
movq %rax, -0x40(%rbp)
callq 0x13930
movq -0x40(%rbp), %rdi
movq %rax, %rdx
movq -0x30(%rbp), %rax
movzbl 0x3(%rax), %ecx
movq -0x30(%rbp), %rax
movzbl 0x2(%rax), %r8d
movq -0x30(%rbp), %rax
movzbl 0x1(%rax), %r9d
movq -0x30(%rbp), %rax
movzbl (%rax), %r14d
movq -0x38(%rbp), %rax
movzbl 0x3(%rax), %ebx
movq -0x38(%rbp), %rax
movzbl 0x2(%rax), %r11d
movq -0x38(%rbp), %rax
movzbl 0x1(%rax), %r10d
movq -0x38(%rbp), %rax
movzbl (%rax), %eax
leaq 0x20e94(%rip), %rsi     # 0x2bf59
movl %r14d, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0x52c0
leaq 0x2cd7f(%rip), %rax     # 0x37e68
cmpq $0x0, (%rax)
je 0xb174
leaq 0x2cd6e(%rip), %rax     # 0x37e68
movq (%rax), %rax
movq %rax, -0x48(%rbp)
callq 0x13930
movq -0x48(%rbp), %rdi
movq %rax, %rdx
movq -0x30(%rbp), %rax
movzbl 0x3(%rax), %ecx
movq -0x30(%rbp), %rax
movzbl 0x2(%rax), %r8d
movq -0x30(%rbp), %rax
movzbl 0x1(%rax), %r9d
movq -0x30(%rbp), %rax
movzbl (%rax), %r14d
movq -0x38(%rbp), %rax
movzbl 0x3(%rax), %ebx
movq -0x38(%rbp), %rax
movzbl 0x2(%rax), %r11d
movq -0x38(%rbp), %rax
movzbl 0x1(%rax), %r10d
movq -0x38(%rbp), %rax
movzbl (%rax), %eax
leaq 0x20e02(%rip), %rsi     # 0x2bf59
movl %r14d, (%rsp)
movl %ebx, 0x8(%rsp)
movl %r11d, 0x10(%rsp)
movl %r10d, 0x18(%rsp)
movl %eax, 0x20(%rsp)
movb $0x0, %al
callq 0x52c0
jmp 0xb176
jmp 0xb178
movq -0x20(%rbp), %rax
movl 0x126(%rax), %eax
cmpl -0x24(%rbp), %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x14(%rbp)
jmp 0xb199
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
addq $0x60, %rsp
popq %rbx
popq %r14
popq %rbp
retq
nopw %cs:(%rax,%rax)