// File: nachogoro[P]wordcrack-herminia/src/main.cpp
// Function: validateConfig(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void validateConfig(
        const std::string& dict, const std::string& board,
        const std::string& outwords, const std::string& outcoords)
{
    if (!std::ifstream(dict.c_str()).good()) {
        throw std::runtime_error(dict + " does not exist");
    }

    if (!std::ifstream(board.c_str()).good()) {
        throw std::runtime_error(board + " does not exist");
    }

    if (!std::ofstream(outwords.c_str()).good()) {
        throw std::runtime_error(outwords + " can not be written to");
    }

    if (!std::ofstream(outcoords.c_str()).good()) {
        throw std::runtime_error(outcoords + " can not be written to");
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x940, %rsp            # imm = 0x940
movq %rdi, -0x900(%rbp)
movq %rsi, -0x8f8(%rbp)
movq %rdx, -0x8f0(%rbp)
movq %rcx, -0x8e8(%rbp)
callq 0x31c0
movq -0x900(%rbp), %rdi
movq -0x8f8(%rbp), %rsi
movq -0x8f0(%rbp), %rdx
movq -0x8e8(%rbp), %rcx
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x30d0
movq %rax, %rsi
leaq -0x228(%rbp), %rdi
movl $0x8, %edx
callq 0x3420
movq -0x228(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x228(%rbp,%rax), %rdi
callq 0x33c0
movb %al, -0x8da(%rbp)
jmp 0xe385
movb -0x8da(%rbp), %al
xorb $-0x1, %al
movb %al, -0x901(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x3070
movb -0x901(%rbp), %al
testb $0x1, %al
jne 0xe3ae
jmp 0xe48b
movb $0x1, -0x259(%rbp)
movl $0x10, %edi
callq 0x3100
movq %rax, -0x910(%rbp)
movq -0x8(%rbp), %rsi
leaq 0x903b(%rip), %rdx      # 0x1740c
leaq -0x258(%rbp), %rdi
callq 0x11070
jmp 0xe3df
movq -0x910(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x3380
jmp 0xe3f4
movq -0x910(%rbp), %rdi
movb $0x0, -0x259(%rbp)
movq 0x11be7(%rip), %rsi     # 0x1fff0
movq 0x11bb0(%rip), %rdx     # 0x1ffc0
callq 0x33d0
jmp 0xe863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x3070
jmp 0xe857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0xe46f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x3150
testb $0x1, -0x259(%rbp)
jne 0xe47a
jmp 0xe486
movq -0x910(%rbp), %rdi
callq 0x3190
jmp 0xe857
movq -0x10(%rbp), %rdi
callq 0x30d0
movq %rax, %rsi
leaq -0x468(%rbp), %rdi
movl $0x8, %edx
callq 0x3420
movq -0x468(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x468(%rbp,%rax), %rdi
callq 0x33c0
movb %al, -0x911(%rbp)
jmp 0xe4c8
movb -0x911(%rbp), %al
xorb $-0x1, %al
movb %al, -0x912(%rbp)
leaq -0x468(%rbp), %rdi
callq 0x3070
movb -0x912(%rbp), %al
testb $0x1, %al
jne 0xe4f1
jmp 0xe5ce
movb $0x1, -0x489(%rbp)
movl $0x10, %edi
callq 0x3100
movq %rax, -0x920(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x8ef8(%rip), %rdx      # 0x1740c
leaq -0x488(%rbp), %rdi
callq 0x11070
jmp 0xe522
movq -0x920(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0x3380
jmp 0xe537
movq -0x920(%rbp), %rdi
movb $0x0, -0x489(%rbp)
movq 0x11aa4(%rip), %rsi     # 0x1fff0
movq 0x11a6d(%rip), %rdx     # 0x1ffc0
callq 0x33d0
jmp 0xe863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x468(%rbp), %rdi
callq 0x3070
jmp 0xe857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0xe5b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x3150
testb $0x1, -0x489(%rbp)
jne 0xe5bd
jmp 0xe5c9
movq -0x920(%rbp), %rdi
callq 0x3190
jmp 0xe857
movq -0x18(%rbp), %rdi
callq 0x30d0
movq %rax, %rsi
leaq -0x690(%rbp), %rdi
movl $0x10, %edx
callq 0x3280
movq -0x690(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x690(%rbp,%rax), %rdi
callq 0x33c0
movb %al, -0x921(%rbp)
jmp 0xe60b
movb -0x921(%rbp), %al
xorb $-0x1, %al
movb %al, -0x922(%rbp)
leaq -0x690(%rbp), %rdi
callq 0x3330
movb -0x922(%rbp), %al
testb $0x1, %al
jne 0xe634
jmp 0xe711
movb $0x1, -0x6b1(%rbp)
movl $0x10, %edi
callq 0x3100
movq %rax, -0x930(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x8dc5(%rip), %rdx      # 0x1741c
leaq -0x6b0(%rbp), %rdi
callq 0x11070
jmp 0xe665
movq -0x930(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
callq 0x3380
jmp 0xe67a
movq -0x930(%rbp), %rdi
movb $0x0, -0x6b1(%rbp)
movq 0x11961(%rip), %rsi     # 0x1fff0
movq 0x1192a(%rip), %rdx     # 0x1ffc0
callq 0x33d0
jmp 0xe863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x690(%rbp), %rdi
callq 0x3330
jmp 0xe857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0xe6f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x3150
testb $0x1, -0x6b1(%rbp)
jne 0xe700
jmp 0xe70c
movq -0x930(%rbp), %rdi
callq 0x3190
jmp 0xe857
movq -0x20(%rbp), %rdi
callq 0x30d0
movq %rax, %rsi
leaq -0x8b8(%rbp), %rdi
movl $0x10, %edx
callq 0x3280
movq -0x8b8(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x8b8(%rbp,%rax), %rdi
callq 0x33c0
movb %al, -0x931(%rbp)
jmp 0xe74e
movb -0x931(%rbp), %al
xorb $-0x1, %al
movb %al, -0x932(%rbp)
leaq -0x8b8(%rbp), %rdi
callq 0x3330
movb -0x932(%rbp), %al
testb $0x1, %al
jne 0xe777
jmp 0xe84e
movb $0x1, -0x8d9(%rbp)
movl $0x10, %edi
callq 0x3100
movq %rax, -0x940(%rbp)
movq -0x20(%rbp), %rsi
leaq 0x8c82(%rip), %rdx      # 0x1741c
leaq -0x8d8(%rbp), %rdi
callq 0x11070
jmp 0xe7a8
movq -0x940(%rbp), %rdi
leaq -0x8d8(%rbp), %rsi
callq 0x3380
jmp 0xe7bd
movq -0x940(%rbp), %rdi
movb $0x0, -0x8d9(%rbp)
movq 0x1181e(%rip), %rsi     # 0x1fff0
movq 0x117e7(%rip), %rdx     # 0x1ffc0
callq 0x33d0
jmp 0xe863
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x8b8(%rbp), %rdi
callq 0x3330
jmp 0xe857
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0xe835
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x8d8(%rbp), %rdi
callq 0x3150
testb $0x1, -0x8d9(%rbp)
jne 0xe840
jmp 0xe84c
movq -0x940(%rbp), %rdi
callq 0x3190
jmp 0xe857
addq $0x940, %rsp            # imm = 0x940
popq %rbp
retq
movq -0x230(%rbp), %rdi
callq 0x33f0
nopw %cs:(%rax,%rax)