// File: night-shift[P]Srl/src/lib/PJson.cpp
// Function: Srl::PJson::throw_exception(Srl::PJson::State&, Srl::String const&)
void PJson::throw_exception(State& state, const String& info)
{
    auto name = state.name.size > 0
        ? string((const char*)state.name.ptr, state.name.size)
        : "";

    auto msg = "In field " + name + (state.value.data() && state.value.size() > 0
            ? "\' at \'" + string((const char*)state.value.data(), state.value.size()) + "\'."
            : "." );

    throw Exception("Unable to parse JSON document. " + info.unwrap<char>(false) + " " + msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movb $0x0, -0x3a(%rbp)
movb $0x0, -0x4e(%rbp)
cmpq $0x0, %rax
jbe 0x4f26c
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movq %rcx, -0x198(%rbp)
movq 0x8(%rax), %rax
movq %rax, -0x190(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x38240
movq -0x198(%rbp), %rsi
movq -0x190(%rbp), %rdx
movq -0x188(%rbp), %rcx
movb $0x1, -0x3a(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x36220
jmp 0x4f26a
jmp 0x4f29b
leaq -0x4d(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x38240
movq -0x1a0(%rbp), %rdx
movb $0x1, -0x4e(%rbp)
leaq 0x1a6e0(%rip), %rsi     # 0x6996e
leaq -0x38(%rbp), %rdi
callq 0x37f40
jmp 0x4f299
jmp 0x4f29b
testb $0x1, -0x4e(%rbp)
jne 0x4f2a3
jmp 0x4f2ac
leaq -0x4d(%rbp), %rdi
callq 0x35f90
testb $0x1, -0x3a(%rbp)
jne 0x4f2b4
jmp 0x4f2bd
leaq -0x39(%rbp), %rdi
callq 0x35f90
leaq 0x1a67a(%rip), %rsi     # 0x6993e
leaq -0x90(%rbp), %rdi
leaq -0x38(%rbp), %rdx
callq 0x356d0
jmp 0x4f2d6
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
movb $0x0, -0xf2(%rbp)
movb $0x0, -0xf3(%rbp)
movb $0x0, -0xf4(%rbp)
movb $0x0, -0xf6(%rbp)
callq 0x36770
movq %rax, -0x1a8(%rbp)
jmp 0x4f308
movq -0x1a8(%rbp), %rax
cmpq $0x0, %rax
je 0x4f3f1
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x34510
movq %rax, -0x1b0(%rbp)
jmp 0x4f32f
movq -0x1b0(%rbp), %rax
cmpq $0x0, %rax
jbe 0x4f3f1
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x36770
movq %rax, -0x1b8(%rbp)
jmp 0x4f356
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x34510
movq %rax, -0x1c0(%rbp)
jmp 0x4f36c
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x38240
movq -0x1b8(%rbp), %rsi
movq -0x1c0(%rbp), %rdx
movq -0x1c8(%rbp), %rcx
movb $0x1, -0xf2(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x36220
jmp 0x4f3a9
movb $0x1, -0xf3(%rbp)
leaq 0x1a591(%rip), %rsi     # 0x69948
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rdx
callq 0x37e60
jmp 0x4f3cc
movb $0x1, -0xf4(%rbp)
leaq 0x1a53a(%rip), %rdx     # 0x69914
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x336d0
jmp 0x4f3ef
jmp 0x4f429
leaq -0xf5(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x38240
movq -0x1d0(%rbp), %rdx
movb $0x1, -0xf6(%rbp)
leaq 0x1a4fc(%rip), %rsi     # 0x69915
leaq -0xb0(%rbp), %rdi
callq 0x37f40
jmp 0x4f427
jmp 0x4f429
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0xb0(%rbp), %rdx
callq 0x354a0
jmp 0x4f442
leaq -0xb0(%rbp), %rdi
callq 0x38ce0
testb $0x1, -0xf6(%rbp)
jne 0x4f459
jmp 0x4f465
leaq -0xf5(%rbp), %rdi
callq 0x35f90
testb $0x1, -0xf4(%rbp)
jne 0x4f470
jmp 0x4f47c
leaq -0xd0(%rbp), %rdi
callq 0x38ce0
testb $0x1, -0xf3(%rbp)
jne 0x4f487
jmp 0x4f493
leaq -0xf0(%rbp), %rdi
callq 0x38ce0
testb $0x1, -0xf2(%rbp)
jne 0x4f49e
jmp 0x4f4aa
leaq -0xf1(%rbp), %rdi
callq 0x35f90
leaq -0x90(%rbp), %rdi
callq 0x38ce0
movb $0x1, -0x179(%rbp)
movl $0x28, %edi
callq 0x34160
movq %rax, -0x1d8(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x178(%rbp), %rdi
xorl %edx, %edx
callq 0x35e30
jmp 0x4f4e2
leaq 0x1a466(%rip), %rsi     # 0x6994f
leaq -0x158(%rbp), %rdi
leaq -0x178(%rbp), %rdx
callq 0x37e60
jmp 0x4f4fe
leaq 0x1a468(%rip), %rdx     # 0x6996d
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x336d0
jmp 0x4f51a
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x373a0
jmp 0x4f533
movq -0x1d8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x33910
jmp 0x4f548
movq -0x1d8(%rbp), %rdi
movb $0x0, -0x179(%rbp)
movq 0x33a8b(%rip), %rsi     # 0x82fe8
movq 0x339d4(%rip), %rdx     # 0x82f38
callq 0x37fc0
jmp 0x4f741
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f59b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x4e(%rbp)
jne 0x4f590
jmp 0x4f599
leaq -0x4d(%rbp), %rdi
callq 0x35f90
jmp 0x4f59b
testb $0x1, -0x3a(%rbp)
jne 0x4f5a3
jmp 0x4f5ac
leaq -0x39(%rbp), %rdi
callq 0x35f90
jmp 0x4f738
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f72f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f68a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f671
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f658
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f63f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f626
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x38ce0
testb $0x1, -0xf6(%rbp)
jne 0x4f631
jmp 0x4f63d
leaq -0xf5(%rbp), %rdi
callq 0x35f90
jmp 0x4f63f
testb $0x1, -0xf4(%rbp)
jne 0x4f64a
jmp 0x4f656
leaq -0xd0(%rbp), %rdi
callq 0x38ce0
jmp 0x4f658
testb $0x1, -0xf3(%rbp)
jne 0x4f663
jmp 0x4f66f
leaq -0xf0(%rbp), %rdi
callq 0x38ce0
jmp 0x4f671
testb $0x1, -0xf2(%rbp)
jne 0x4f67c
jmp 0x4f688
leaq -0xf1(%rbp), %rdi
callq 0x35f90
jmp 0x4f68a
leaq -0x90(%rbp), %rdi
callq 0x38ce0
jmp 0x4f72f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f70f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f703
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f6f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x4f6eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x38ce0
leaq -0x138(%rbp), %rdi
callq 0x38ce0
leaq -0x158(%rbp), %rdi
callq 0x38ce0
leaq -0x178(%rbp), %rdi
callq 0x38ce0
testb $0x1, -0x179(%rbp)
jne 0x4f71a
jmp 0x4f726
movq -0x1d8(%rbp), %rdi
callq 0x34ce0
leaq -0x70(%rbp), %rdi
callq 0x38ce0
leaq -0x38(%rbp), %rdi
callq 0x38ce0
movq -0x48(%rbp), %rdi
callq 0x38210
nopw %cs:(%rax,%rax)