Function at 0x14009d420
Capabilities:
Write file on windows

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov esi, edx
mov rdi, rcx
movzx ebx, byte [rcx + 4]
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
test bl, bl
je 0x14009d4cd
mov ecx, 0x2c
mov rdx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputc
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov ecx, 0xa
mov rdx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputc
cmp dword [rdi], 0
je 0x14009d49b
xor ebx, ebx
mov r14, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
nop dword [rax + rax]
mov ecx, 2
call r14
mov ecx, 0x20
mov rdx, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fputc
inc ebx
cmp ebx, dword [rdi]
jne 0x14009d480
mov byte [rdi + 4], 0
cmp esi, 0x13
ja case.default.0x14009d4b4
mov eax, esi
lea rcx, [0x1400d48ec]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Primary
jmp 0x14009d6ec
lea rcx, [0x1400cfd78]
mov edx, 2
mov r8d, 1
mov r9, rax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite
cmp esi, 0x13
jbe 0x14009d4a4
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Postfix
jmp 0x14009d6ec
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Unary
mov edx, 0x11
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Cast
mov edx, 0x10
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::PtrMem
mov edx, 0x12
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Multiplicative
mov edx, 0x1a
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Additive
mov edx, 0x14
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Shift
mov edx, 0x11
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Spaceship
mov edx, 0x15
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Relational
mov edx, 0x16
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Equality
mov edx, 0x14
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::And
mov edx, 0xf
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Xor
mov edx, 0xf
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Ior
mov edx, 0xf
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::AndIf
mov edx, 0x11
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::OrIf
mov edx, 0x10
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Conditional
mov edx, 0x17
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Assign
mov edx, 0x12
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Comma
mov edx, 0x11
jmp 0x14009d6f1
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rcx, str.Node::Prec::Default
mov edx, 0x13
mov r8d, 1
mov r9, rax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp sub.api_ms_win_crt_stdio_l1_1_0.dll_fwrite