Function at 0x40f880
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbp, qword [rdx + 0x20]
mov r12, qword [rsp + 0xc8]
test rbp, rbp
mov rsi, rcx
mov rbx, rdx
mov edi, r8d
mov r13d, r9d
je 0x40f98c
cmp r8d, 0x64
jne 0x40f930
movzx eax, byte [r12]
test al, al
je 0x40f930
mov rdx, qword [rsp + 0xc0]
cmp qword [rbx + 0x28], rdx
jne 0x40f930
mov edx, dword [rbx + 0x60]
test edx, edx
jne 0x40ffb5
test rbp, rbp
je 0x41078d
cmp al, 0x2f
je 0x4100dd
cmp al, 0x5c
je 0x4100dd
cmp byte [r12 + 1], 0x3a
je 0x4100dd
xor r8d, r8d
mov rdx, r12
mov rcx, rbp
call fcn.004cbee0
mov qword [rbx + 0x20], rax
mov rcx, rbp
call fcn.004d4f88
mov rax, qword [rsp + 0xc0]
mov edi, 1
mov qword [rbx + 0x28], rax
jmp 0x40fa62
mov rdx, rbp
mov rcx, rsi
call fcn.004088b0
test eax, eax
je 0x40fa60
mov ebp, dword [rbx + 8]
mov qword [rbx + 0x40], 0
mov rax, qword [rbx + 0x20]
test ebp, ebp
mov qword [rbx + 0x48], rax
jne 0x40f962
mov rax, qword [rbx + 0x28]
mov qword [rbx + 0x30], rax
mov dword [rbx + 0x80], 1
mov ecx, 8
call fcn.004d1690
mov qword [rbx + 0x20], 0
mov qword [rbx + 0x88], rax
mov qword [rax], 0
cmp edi, 0x62
je 0x40fd10
jle 0x40fa75
cmp edi, 0xc0
je 0x40ff20
jle 0x40fd20
cmp edi, 0xe0
je 0x40f9f0
jle 0x40fe10
cmp edi, 0xe2
je 0x40ff00
cmp edi, 0xe4
jne 0x40fb64
mov rdx, r12
mov rcx, rsi
xor edi, edi
call fcn.00408e90
test eax, eax
setne dil
jmp 0x40fa62
mov r11d, dword [rbx + 0x44]
test r11d, r11d
je 0x40fa03
cmp r13d, 1
je 0x40fd10
lea rdx, [rbx + 0x78]
mov rcx, rsi
call fcn.0040a2e0
test eax, eax
je 0x40fa60
mov rdx, qword [rbx + 0x38]
mov rcx, rsi
add rdx, qword [rbx + 0x30]
add rdx, qword [rsp + 0xc0]
call fcn.00408d20
test eax, eax
je 0x40fa60
sub dword [rbx + 0x70], 1
jns 0x40fd10
mov ecx, 2
call qword [fcn.004d5190]
mov r8d, 0x12
mov edx, 1
lea rcx, str.Too_many_N_RBRACs_n
mov r9, rax
call sub.msvcrt.dll_fwrite
nop
xor edi, edi
mov eax, edi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp edi, 0x24
je 0x40fad3
jle 0x410050
cmp edi, 0x38
je 0x40fd10
jle 0x4100c1
cmp edi, 0x3c
je 0x40feb0
cmp edi, 0x44
jne 0x40fb64
mov r10d, dword [rbx + 0x60]
test r10d, r10d
je 0x40fab6
mov rax, qword [rbx + 0x38]
add qword [rsp + 0xc0], rax
mov r8, qword [rsp + 0xc0]
mov edx, r13d
mov rcx, rsi
xor edi, edi
call fcn.00408d80
test eax, eax
setne dil
jmp 0x40fa62
cmp byte [r12], 0
mov eax, dword [rbx + 0x60]
jne 0x40fb40
test eax, eax
je 0x40fd10
mov r9d, dword [rbx + 8]
test r9d, r9d
je 0x40fafa
mov rax, qword [rbx + 0x38]
add qword [rsp + 0xc0], rax
mov rcx, rsi
lea rdx, [rbx + 0x78]
call fcn.0040a2e0
test eax, eax
je 0x40fa60
mov rdx, qword [rsp + 0xc0]
mov rcx, rsi
call fcn.00408c10
test eax, eax
je 0x40fa60
mov dword [rbx + 0x60], 0
mov edi, 1
mov qword [rbx + 0x68], 0xffffffffffffffff
jmp 0x40fa62
test eax, eax
je 0x40fb64
mov rax, qword [rbx + 0x68]
cmp rax, 0xffffffffffffffff
je 0x40fb58
cmp rax, qword [rsp + 0xc0]
jbe 0x40fb64
mov rax, qword [rsp + 0xc0]
mov qword [rbx + 0x68], rax
mov edx, 0x3a
mov rcx, r12
call sub.msvcrt.dll_strchr
test rax, rax
je 0x40fd10
movzx edx, byte [rax + 1]
mov ecx, edx
and ecx, 0xffffffdf
cmp cl, 0x46
jne 0x40ff80
mov r8d, dword [rbx + 0x60]
test r8d, r8d
je 0x40fbe0
mov rbp, qword [rbx + 0x68]
cmp rbp, 0xffffffffffffffff
je 0x410780
cmp rbp, qword [rsp + 0xc0]
jae 0x410780
lea rdx, [rbx + 0x78]
mov rcx, rsi
call fcn.0040a2e0
test eax, eax
je 0x40fa60
mov rdx, rbp
mov rcx, rsi
call fcn.00408c10
test eax, eax
je 0x40fa60
mov qword [rbx + 0x68], 0xffffffffffffffff
mov ecx, dword [rbx + 8]
test ecx, ecx
je 0x40fbf3
mov rax, qword [rsp + 0xc0]
mov qword [rbx + 0x38], rax
mov dword [rbx + 0x60], 1
mov edx, 0x3a
mov rcx, r12
call sub.msvcrt.dll_strchr
test rax, rax
mov qword [rsp + 0x40], rax
jne 0x40fc41
jmp 0x40fd10
lea rcx, [rax + 2]
mov edx, 0x3a
mov qword [rsp + 0x40], rcx
call sub.msvcrt.dll_strchr
test rax, rax
mov qword [rsp + 0x40], rax
je case.0x41016c.1
movzx edx, byte [rax + 1]
cmp dl, 0x3a
je 0x40fc20
cmp byte [r12], 0x24
je 0x4100ee
xor ebp, ebp
cmp r12, rax
je 0x40fc82
cmp byte [r12], 0x20
jne 0x40fc6d
lea rdx, [r12 + 1]
cmp rax, rdx
je 0x40fc82
sub rax, r12
mov rcx, r12
mov edx, eax
call fcn.0040a0f0
mov rbp, rax
mov rax, qword [rsp + 0x40]
lea rdx, [rax + 1]
mov rcx, qword [0x00521300]
mov qword [rsp + 0x40], rdx
movzx r8d, byte [rax + 1]
test byte [rcx + r8*2], 4
jne case.0x41016c.41
cmp r8b, 0x28
sete cl
cmp r8b, 0x2d
sete dl
or cl, dl
je 0x410140
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
call fcn.0040ca50
test rax, rax
je 0x40fa60
mov rcx, qword [rsp + 0xc0]
mov dword [rsp + 0x20], 4
mov r9, rax
mov qword [rsp + 0x28], rcx
mov r8, rbp
mov rdx, rbx
mov rcx, rsi
call fcn.0040a230
test eax, eax
je 0x40fa60
nop word [rax + rax]
mov edi, 1
jmp 0x40fa62
cmp edi, 0x82
je 0x40fd80
jle 0x40ff99
cmp edi, 0x84
je 0x40fdf4
cmp edi, 0xa2
jne 0x40fb64
mov rax, qword [rbx + 0x50]
test rax, rax
je 0x40ff90
mov rcx, qword [rbx + 0x88]
mov r8d, dword [rax + 0x20]
mov rdx, qword [rax + 8]
mov rcx, qword [rcx + r8*8]
test rdx, rdx
mov qword [rbx + 0x50], rdx
mov qword [rax + 0x28], rcx
je 0x40ff90
mov rdx, qword [rdx + 0x10]
jmp 0x40fdf7
mov ecx, 0x30
call fcn.004d1690
mov rcx, qword [rbx + 0x88]
mov rdi, rax
mov rax, qword [rbx + 0x58]
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x28], 0
mov qword [rbx + 0x58], rdi
mov qword [rdi], rax
mov rax, qword [rbx + 0x50]
mov qword [rbx + 0x50], rdi
mov qword [rdi + 8], rax
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 0x18], rax
mov eax, dword [rbx + 0x80]
mov dword [rdi + 0x20], eax
add eax, 1
lea rdx, [rax*8]
mov dword [rbx + 0x80], eax
call fcn.004d1710
mov edx, dword [rdi + 0x20]
mov qword [rbx + 0x88], rax
mov qword [rax + rdx*8], 0
mov rdx, r12
mov rcx, rsi
xor edi, edi
call fcn.00408970
test eax, eax
setne dil
jmp 0x40fa62
cmp edi, 0xc2
jne 0x40fb64
mov eax, dword [rbx + 0x80]
mov rcx, qword [rbx + 0x88]
add eax, 1
mov dword [rbx + 0x80], eax
lea rdx, [rax*8]
call fcn.004d1710
mov rsi, qword [rbx + 0x58]
mov rdi, rax
mov qword [rbx + 0x88], rax
test rsi, rsi
jne 0x40fe9f
lea rdx, str.Undefined_N_EXCL
mov rcx, r12
mov edi, 1
call fcn.0040a050
mov eax, dword [rbx + 0x80]
lea edx, [rax - 1]
mov rax, qword [rbx + 0x88]
mov qword [rax + rdx*8], 0
jmp 0x40fa62
mov rcx, qword [rsi + 0x10]
mov rdx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x410030
mov rsi, qword [rsi]
test rsi, rsi
je 0x40fe52
mov rax, qword [rsi + 0x18]
cmp qword [rsp + 0xc0], rax
jne 0x40fe97
jmp 0x40fe83
test r12, r12
je 0x410020
lea rdi, str.gcc2_compiled.
mov ecx, 0xf
mov rsi, r12
repe cmpsb byte [rsi], byte [rdi]
je 0x4100b0
lea rdi, str.gcc_compiled.
mov ecx, 0xe
mov rsi, r12
repe cmpsb byte [rsi], byte [rdi]
jne 0x410020
mov dword [rbx + 0x40], 1
mov edi, 1
jmp 0x40fa62
mov rdx, r12
mov rcx, rsi
xor edi, edi
call fcn.00408e70
test eax, eax
setne dil
jmp 0x40fa62
mov edi, dword [rbx + 0x44]
test edi, edi
je 0x40ff31
cmp r13d, 1
je 0x40fd10
mov edi, dword [rbx + 0x60]
test edi, edi
je 0x410080
mov rdx, qword [rbx + 0x38]
mov rcx, rsi
add rdx, qword [rbx + 0x30]
add rdx, qword [rsp + 0xc0]
call fcn.00408c80
test eax, eax
je 0x40fa60
lea rdx, [rbx + 0x78]
mov rcx, rsi
call fcn.0040a2e0
test eax, eax
je 0x40fa60
add dword [rbx + 0x70], 1
mov edi, 1
jmp 0x40fa62
mov qword [rsp + 0x40], rax
jmp 0x40fc45
mov rdx, qword [rbx + 0x48]
jmp 0x40fdf7
cmp edi, 0x64
jne 0x40fb64
cmp dword [rbx + 0x60], 0
movzx eax, byte [r12]
je 0x41000c
test al, al
je 0x4100d0
mov rdi, qword [rbx + 0x68]
cmp rdi, 0xffffffffffffffff
je 0x4100d0
cmp rdi, qword [rsp + 0xc0]
jae 0x4100d0
lea rdx, [rbx + 0x78]
mov rcx, rsi
call fcn.0040a2e0
test eax, eax
je 0x40fa60
mov rdx, rdi
mov rcx, rsi
call fcn.00408c10
test eax, eax
je 0x40fa60
mov dword [rbx + 0x60], 0
mov qword [rbx + 0x68], 0xffffffffffffffff
movzx eax, byte [r12]
test al, al
je 0x40fd10
mov rbp, qword [rbx + 0x20]
jmp 0x40f8d9
mov dword [rbx + 0x44], 1
jmp 0x40fd10
mov eax, dword [rbx + 0x80]
mov rdx, qword [rsi + 0x28]
sub eax, 1
mov qword [rdi + rax*8], rdx
mov edi, 1
jmp 0x40fa62
cmp edi, 0xc
je 0x40fd10
jl 0x40fb64
lea eax, [rdi - 0x1e]
cmp eax, 1
jbe 0x40fd10
jmp 0x40fb64
mov rcx, r12
xor edi, edi
call fcn.0040a0c0
jmp 0x40fa62
mov ecx, 2
call qword [fcn.004d5190]
mov r8d, 0x1c
mov edx, 1
lea rcx, str.N_LBRAC_not_within_function_n
mov r9, rax
call sub.msvcrt.dll_fwrite
jmp 0x40fa62
mov dword [rbx + 0x40], 2
mov edi, 1
jmp 0x40fa62
cmp edi, 0x2a
je 0x40fd10
jmp 0x40fb64
mov rdi, qword [rsp + 0xc0]
jmp 0x40ffd1
mov rcx, r12
call fcn.004d17b0
mov qword [rbx + 0x20], rax
jmp 0x40f910
movzx ecx, byte [r12 + 1]
lea edx, [rcx - 0x58]
cmp dl, 0x1e
ja case.0x41010d.1
lea rcx, [0x004e6f48]
movzx edx, dl
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
lea rbp, str.eh_throw
jmp 0x40fc82
lea rbp, [0x004e6ec0]
jmp 0x40fc82
lea rdx, str.unknown_C_encoded_name
mov rcx, r12
call fcn.0040a050
mov rax, qword [rsp + 0x40]
jmp case.0x41010d.0
lea rdx, [rax + 2]
mov qword [rsp + 0x40], rdx
movzx r13d, byte [rax + 1]
lea edx, [r13 - 0x43]
cmp dl, 0x33
ja case.0x41016c.1
lea rcx, [0x004e6fc4]
movzx edx, dl
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
call fcn.0040ca50
test rax, rax
mov r8, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
mov r9d, 2
mov qword [rsp + 0x20], rax
mov rdx, rbp
mov rcx, rsi
call fcn.00408b40
test eax, eax
je 0x40fa60
jmp 0x40fd10
cmp edi, 0x24
jne case.0x41016c.15
lea rdi, [rsp + 0x40]
mov rax, qword [rsp + 0x40]
cmp byte [rax], 0x3b
jne 0x40fd10
add rax, 1
xor r8d, r8d
mov r9, rdi
mov qword [rsp + 0x20], 0
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x40], rax
call fcn.0040ca50
test rax, rax
jne 0x4101cb
jmp 0x40fa60
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
call fcn.0040ca50
test rax, rax
mov r13, rax
je 0x40fa60
test rbp, rbp
je 0x4102a6
mov rax, qword [rbx]
mov rdi, qword [rbx + 0x10]
mov rax, qword [rax + 8]
movzx r15d, byte [rax + 0x1c]
mov eax, dword [rbx + 0x18]
test eax, eax
jle 0x4102a6
sub eax, 1
movzx r14d, byte [rbp]
lea rax, [rdi + rax*8 + 8]
mov qword [rsp + 0x38], rax
jmp 0x410269
add rdi, 8
cmp rdi, qword [rsp + 0x38]
je 0x4102a6
mov r12, qword [rdi]
test r15b, r15b
mov rcx, qword [r12 + 8]
je 0x41027f
cmp r15b, byte [rcx]
jne 0x41027f
add rcx, 1
cmp byte [rcx], r14b
jne 0x41025e
mov rdx, rbp
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x41025e
mov rdx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x10]
add rax, qword [rdx + 0x28]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0x20], 1
mov r9, r13
mov qword [rsp + 0x28], rax
jmp 0x40fcf1
lea rdi, [rsp + 0x40]
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], 0
mov r9, rdi
mov rcx, rsi
call fcn.0040ca50
test rax, rax
mov r8, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
cmp r13b, 0x46
mov rdx, rbp
mov rcx, rsi
sete r9b
movzx r9d, r9b
mov qword [rsp + 0x20], rax
call fcn.00408a50
test eax, eax
jne 0x410347
jmp 0x40fa60
add rax, 1
xor r8d, r8d
mov r9, rdi
mov qword [rsp + 0x20], 0
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x40], rax
call fcn.0040ca50
test rax, rax
je 0x40fa60
mov rax, qword [rsp + 0x40]
cmp byte [rax], 0x3b
je 0x41031b
jmp 0x40fd10
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
call fcn.0040ca50
test rax, rax
mov r8, rax
je 0x40fa60
mov r9, qword [rsp + 0xc0]
mov rdx, rbp
mov rcx, rsi
call fcn.00408f90
test eax, eax
jne 0x40fd10
jmp 0x40fa60
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
call fcn.0040ca50
test rax, rax
mov r8, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
mov r9d, 3
mov qword [rsp + 0x20], rax
jmp 0x4101a9
lea rax, [rsp + 0x48]
mov r8, rbp
mov rdx, rbx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov rcx, rsi
call fcn.0040ca50
test rax, rax
mov r8, rax
je 0x40fa60
test rbp, rbp
je 0x40fd10
mov rdx, rbp
mov rcx, rsi
call fcn.00409790
test rax, rax
je 0x40fa60
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x40fd10
mov qword [rdx], rax
mov edi, 1
jmp 0x40fa62
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], 0
mov rcx, rsi
call fcn.0040ca50
test rax, rax
mov r9, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0x20], 5
mov qword [rsp + 0x28], rax
jmp 0x40fcf1
cmp byte [rax + 2], 0x46
je 0x41079e
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.0040ca50
test rax, rax
je 0x40fa60
mov rdx, qword [rsp + 0xc0]
mov r9d, 1
mov r8, rax
mov qword [rsp + 0x20], rdx
jmp 0x4101a9
cmp byte [rax + 2], 0x3d
jne case.0x41016c.1
lea rcx, [rax + 4]
mov qword [rsp + 0x40], rcx
movzx eax, byte [rax + 3]
cmp al, 0x69
je 0x410821
cmp al, 0x72
je 0x410800
cmp al, 0x65
jne case.0x41016c.1
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
call fcn.0040ca50
test rax, rax
mov rbx, rax
je 0x40fa60
mov rcx, qword [rsp + 0x40]
cmp byte [rcx], 0x2c
jne case.0x41016c.1
call sub.msvcrt.dll_atoi
mov r8, rbx
mov rdx, rbp
mov rcx, rsi
movsxd r9, eax
call fcn.00408f30
test eax, eax
je 0x40fa60
jmp 0x40fd10
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], 0
mov rcx, rsi
call fcn.0040ca50
test rax, rax
mov r9, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0x20], 4
mov qword [rsp + 0x28], rax
jmp 0x40fcf1
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], 0
mov rcx, rsi
call fcn.0040ca50
test rax, rax
mov r9, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0x20], 3
mov qword [rsp + 0x28], rax
jmp 0x40fcf1
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
call fcn.0040ca50
test rax, rax
mov r8, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
mov r9d, 4
mov qword [rsp + 0x20], rax
jmp 0x4101a9
lea rdx, [rax + 3]
mov qword [rsp + 0x40], rdx
cmp byte [rax + 3], 0x6e
jne case.0x41016c.1
lea rdx, [rax + 4]
mov qword [rsp + 0x40], rdx
cmp byte [rax + 4], 0x30
jne case.0x41016c.1
mov rax, qword [rsp + 0x40]
cmp byte [rax], 0x3b
je 0x40fd10
add rax, 1
mov qword [rsp + 0x40], rax
jmp 0x41063d
xor edi, edi
cmp byte [rax + 2], 0x74
je 0x4107ed
lea rax, [rsp + 0x48]
mov r8, rbp
mov rdx, rbx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
mov rcx, rsi
call fcn.0040ca50
test rax, rax
mov r8, rax
je 0x40fa60
test rbp, rbp
je 0x40fd10
mov rdx, rbp
mov rcx, rsi
mov r13d, dword [rbx + 0x1a8]
call fcn.00409840
test rax, rax
mov r12, rax
je 0x40fa60
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x4106bf
mov qword [rax], r12
test r13d, r13d
jne 0x410702
lea r13, [rbx + 0x1a0]
mov rbx, qword [rbx + 0x1a0]
jmp 0x4106da
mov r13, rbx
mov rbx, qword [rbx]
test rbx, rbx
je 0x410702
mov rcx, qword [rbx + 8]
movzx eax, byte [rbp]
cmp byte [rcx], al
jne 0x4106d4
mov rdx, rbp
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4106d4
mov rax, qword [rbx]
mov qword [rbx + 0x18], r12
mov qword [r13], rax
test edi, edi
je 0x40fd10
mov r8, r12
mov rdx, rbp
mov rcx, rsi
call fcn.00409790
test rax, rax
je 0x40fa60
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x40fd10
mov qword [rdx], rax
jmp 0x40fa62
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], 0
mov rcx, rsi
call fcn.0040ca50
test rax, rax
mov r9, rax
je 0x40fa60
mov rax, qword [rsp + 0xc0]
mov dword [rsp + 0x20], 2
mov qword [rsp + 0x28], rax
jmp 0x40fcf1
mov rbp, qword [rsp + 0xc0]
jmp 0x40fbb1
mov rcx, r12
call fcn.004d17b0
mov qword [rbx + 0x20], rax
jmp 0x40f918
add rax, 3
xor r8d, r8d
mov rdx, rbx
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
mov rcx, rsi
mov qword [rsp + 0x40], rax
call fcn.0040ca50
test rax, rax
je 0x40fa60
mov rcx, rsi
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
call fcn.004092a0
mov rcx, rsi
mov rdx, rax
call fcn.00409250
jmp 0x4104a7
add rax, 3
mov edi, 1
mov qword [rsp + 0x40], rax
jmp 0x410662
call sub.msvcrt.dll_atof
mov rdx, rbp
mov rcx, rsi
movapd xmm2, xmm0
call fcn.00408ef0
test eax, eax
jne 0x40fd10
jmp 0x40fa60
call sub.msvcrt.dll_atoi
mov rdx, rbp
mov rcx, rsi
movsxd r8, eax
call fcn.00408eb0
test eax, eax
je 0x40fa60
jmp 0x40fd10