Function at 0x402df0
Capabilities:
Write file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x198
lea rbp, [rsp + 0x80]
mov rax, qword [0x0059d0f8]
test rax, rax
mov r15, rcx
je 0x403041
cmp byte [rax], 0x2d
je 0x403078
mov r14, qword [r15]
test r14, r14
je 0x403041
mov ebx, 1
xor r13d, r13d
mov dword [rbp - 0x28], 0xffffffff
lea rdi, [0x004c0305]
jmp 0x402e78
lea rdx, [0x004c030c]
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x403041
lea rax, [rbx + 1]
mov r14, qword [r15 + rax*8 - 8]
test r14, r14
je 0x402ecd
mov rbx, rax
cmp byte [r14], 0x2d
lea r12d, [rbx - 1]
mov esi, ebx
jne 0x402ea0
cmp byte [r14 + 1], 0x45
jne 0x402ea0
cmp byte [r14 + 2], 0
je 0x403041
nop word cs:[rax + rax]
cmp byte [r14], 0x2d
je 0x403058
mov rdx, rdi
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x402e50
lea rax, [rbx + 1]
mov r13d, 1
mov r14, qword [r15 + rax*8 - 8]
test r14, r14
jne 0x402e75
cmp dword [rbp - 0x28], 0xffffffff
je 0x403041
test r13d, r13d
je 0x403041
lea rdi, [rbp - 0x20]
mov rax, r14
mov ecx, 6
mov qword [rbp - 0x30], rdi
add esi, 4
rep stosq qword [rdi], rax
movsxd rsi, esi
shl rsi, 3
lea rax, [rsi + 0xf]
mov qword [rbp - 0x38], rsi
and rax, 0xfffffffffffffff0
call fcn.00497ea0
lea r8, [rsi - 0x18]
sub rsp, rax
mov rdx, r15
lea rdi, [rsp + 0x30]
mov rcx, rdi
call sub.msvcrt.dll_memcpy
movsxd rax, dword [rbp - 0x28]
lea rdx, str._frandom_seed0
mov qword [rdi + rbx*8], rdx
lea rdx, [0x004c032a]
mov qword [rdi + rsi - 0x18], rdx
lea rdx, [rdi + rsi - 0x10]
mov qword [rdx], 0
shl rax, 3
mov qword [rbp - 0x40], rdx
lea rdx, [rdi + rax]
mov rcx, qword [rdx]
cmp byte [rcx + 2], 0
jne 0x403115
lea rsi, [0x004c0338]
mov qword [rdi + rax + 8], rsi
mov rbx, qword [rbp - 0x30]
lea r14, str..err
xor r13d, r13d
mov r15, rbx
lea rcx, str..out
call fcn.0048a570
mov rcx, r14
mov qword [rbx], rax
mov rsi, rax
call fcn.0048a570
xor r9d, r9d
cmp r13d, 2
mov rdx, rsi
sete r9b
mov qword [rbx + 0x18], rax
mov r8, rax
mov rcx, rdi
mov dword [rsp + 0x20], r9d
call fcn.00402b70
cmp eax, 2
jne 0x402ffa
add r13d, 1
add rbx, 8
cmp r13d, 3
jne 0x402f82
mov rdx, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
call fcn.00402ca0
test al, al
je 0x402ffa
mov rdx, qword [rbp]
mov rcx, qword [rbp - 8]
call fcn.00402ca0
test al, al
mov r13d, eax
jne 0x403083
mov ecx, 2
call qword [fcn.004a5d20]
lea rdx, str.The_bug_is_not_reproducible__so_it_is_likely_a_hardware_or_OS_problem._n
mov rcx, rax
call fcn.00430660
mov rsi, qword [rbp - 0x30]
add rsi, 0x30
nop dword [rax]
mov rbx, qword [r15]
test rbx, rbx
je 0x403038
mov rcx, rbx
call sub.msvcrt.dll__unlink
mov rcx, rbx
call fcn.004a6450
add r15, 8
cmp r15, rsi
jne 0x403020
lea rsp, [rbp + 0x118]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp byte [r14 + 1], 0x6f
jne 0x402eaa
cmp dword [rbp - 0x28], 0xffffffff
jne 0x403041
mov dword [rbp - 0x28], r12d
jmp 0x402e67
cmp byte [rax + 1], 0
je 0x403041
jmp 0x402e27
mov rax, qword [rbp + 8]
lea rdx, [0x004c0390]
mov rbx, qword [rbp - 0x10]
mov rcx, rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x28], rbx
call sub.msvcrt.dll_fopen
lea rdx, [0x004c0393]
mov rcx, rbx
lea rbx, [rbp + 0x10]
mov rsi, rax
call sub.msvcrt.dll_fopen
mov r14, rax
jmp 0x4030df
mov rdx, r14
mov rcx, rbx
call sub.msvcrt.dll_fputs
mov edx, 0xa
mov rcx, rbx
call sub.msvcrt.dll_strchr
test rax, rax
setne r13b
mov r8, rsi
mov edx, 0x100
mov rcx, rbx
call sub.msvcrt.dll_fgets
test rax, rax
je 0x403124
test r13b, r13b
je 0x4030c0
mov r9, r14
mov r8d, 3
mov edx, 1
lea rcx, [0x004c0396]
call sub.msvcrt.dll_fwrite
jmp 0x4030c0
lea rax, [0x004c033a]
mov qword [rdx], rax
jmp 0x402f71
mov rcx, rsi
call sub.msvcrt.dll_fclose
mov rcx, r14
call sub.msvcrt.dll_fclose
mov rcx, qword [rbp - 0x28]
mov edx, 0xa
call sub.msvcrt.dll__open
test eax, eax
mov r13d, eax
js 0x403014
mov r8d, 3
mov ecx, eax
mov rbx, rdi
lea rdx, [0x004c039a]
call sub.msvcrt.dll__write
lea r14, [rdi + r12*8 + 0x18]
lea r12, [0x004c021f]
mov r8d, 1
mov rdx, r12
mov ecx, r13d
call sub.msvcrt.dll__write
mov rsi, qword [rbx]
add rbx, 8
mov rcx, rsi
call sub.msvcrt.dll_strlen
mov rdx, rsi
mov ecx, r13d
mov r8d, eax
call sub.msvcrt.dll__write
cmp r14, rbx
jne 0x403170
lea rdx, [0x004c039e]
mov r8d, 2
mov ecx, r13d
call sub.msvcrt.dll__write
mov ecx, r13d
call sub.msvcrt.dll__close_1
mov rax, qword [rbp - 0x40]
xor r9d, r9d
mov rcx, rdi
lea rdx, [0x004c03a1]
mov qword [rax], rdx
mov rax, qword [rbp - 0x38]
mov qword [rdi + rax - 8], 0
mov dword [rsp + 0x20], 1
mov r8, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x28]
call fcn.00402b70
cmp eax, 1
jne 0x403014
mov ecx, 2
call qword [fcn.004a5d20]
mov rdi, qword [rbp - 0x28]
lea rdx, str.Preprocessed_source_stored_into__s_file__please_attach_this_to_your_bugreport._n
mov rcx, rax
mov r8, rdi
call fcn.00430660
mov rcx, rdi
call fcn.004a6450
mov qword [rbp - 0x10], 0
jmp 0x403014