// File: /workspace/github_c_makefile_star2_O0/jeff-1amstudios[P]carmageddon-1-cheat-code-disassembly/src/log/zf_log.c
// Function: put_src
static void put_src(zf_log_message *const msg, const src_location *const src)
{
    _PP_MAP(_ZF_LOG_MESSAGE_FORMAT_INIT, ZF_LOG_MESSAGE_SRC_FORMAT)
#if !_ZF_LOG_MESSAGE_FORMAT_CONTAINS(FUNCTION, ZF_LOG_MESSAGE_SRC_FORMAT) && \
    !_ZF_LOG_MESSAGE_FORMAT_CONTAINS(FILENAME, ZF_LOG_MESSAGE_SRC_FORMAT) && \
    !_ZF_LOG_MESSAGE_FORMAT_CONTAINS(FILELINE, ZF_LOG_MESSAGE_SRC_FORMAT)
    VAR_UNUSED(src);
#endif
#if !_ZF_LOG_MESSAGE_FORMAT_FIELDS(ZF_LOG_MESSAGE_SRC_FORMAT)
    VAR_UNUSED(msg);
#else
    #if ZF_LOG_OPTIMIZE_SIZE
    int n;
    n = snprintf(msg->p, nprintf_size(msg),
                 _PP_MAP(_ZF_LOG_MESSAGE_FORMAT_PRINTF_FMT, ZF_LOG_MESSAGE_SRC_FORMAT)
                 _PP_MAP(_ZF_LOG_MESSAGE_FORMAT_PRINTF_VAL, ZF_LOG_MESSAGE_SRC_FORMAT));
    put_nprintf(msg, n);
    #else
    _PP_MAP(_ZF_LOG_MESSAGE_FORMAT_PUT, ZF_LOG_MESSAGE_SRC_FORMAT)
    #endif
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x4e50
movq %rax, %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x4de0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movl $0x0, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rdx
xorl %eax, %eax
cmpq 0x20(%rdx), %rcx
movb %al, -0x1d(%rbp)
jbe 0x4410
movl -0x14(%rbp), %eax
movl %eax, %ecx
movl $0x1, %eax
cmpq %rcx, %rax
seta %al
movb %al, -0x1d(%rbp)
movb -0x1d(%rbp), %al
testb $0x1, %al
jne 0x4419
jmp 0x4448
movl -0x14(%rbp), %eax
movl %eax, %ecx
leaq 0x5e73(%rip), %rax      # 0xa298
movb (%rax,%rcx), %cl
movq -0x8(%rbp), %rdx
movq 0x20(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x20(%rdx)
movb %cl, (%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x43e6
jmp 0x444a
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x4e80
movq %rax, %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x4de0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movl $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rdx
xorl %eax, %eax
cmpq 0x20(%rdx), %rcx
movb %al, -0x1e(%rbp)
jbe 0x44ab
movl -0x18(%rbp), %eax
movl %eax, %ecx
movl $0x1, %eax
cmpq %rcx, %rax
seta %al
movb %al, -0x1e(%rbp)
movb -0x1e(%rbp), %al
testb $0x1, %al
jne 0x44b4
jmp 0x44e3
movl -0x18(%rbp), %eax
movl %eax, %ecx
leaq 0x5d91(%rip), %rax      # 0xa251
movb (%rax,%rcx), %cl
movq -0x8(%rbp), %rdx
movq 0x20(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x20(%rdx)
movb %cl, (%rax)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x4481
jmp 0x44e5
movq -0x10(%rbp), %rax
movl 0x10(%rax), %edi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x18(%rax), %r8
xorl %edx, %edx
movl %edx, %esi
callq 0x4ef0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movl $0x0, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rdx
xorl %eax, %eax
cmpq 0x20(%rdx), %rcx
movb %al, -0x1f(%rbp)
jbe 0x4541
movl -0x1c(%rbp), %eax
movl %eax, %ecx
movl $0x1, %eax
cmpq %rcx, %rax
seta %al
movb %al, -0x1f(%rbp)
movb -0x1f(%rbp), %al
testb $0x1, %al
jne 0x454a
jmp 0x4579
movl -0x1c(%rbp), %eax
movl %eax, %ecx
leaq 0x6097(%rip), %rax      # 0xa5ed
movb (%rax,%rcx), %cl
movq -0x8(%rbp), %rdx
movq 0x20(%rdx), %rax
movq %rax, %rsi
addq $0x1, %rsi
movq %rsi, 0x20(%rdx)
movb %cl, (%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4517
jmp 0x457b
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)