Function at 0x401ef0
Capabilities:
Write file on windows

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, qword [0x005062c0]
mov rbx, qword [rsi + 8]
cmp rbx, qword [rsi + 0x10]
jae 0x402370
mov rdi, qword [0x005062b0]
lea rbp, [rdi + 0xc0]
lea r12, [rdi + 0xd8]
jmp 0x401f3d
add rbx, 0x128
cmp qword [rsi + 0x10], rbx
jbe 0x401f80
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x401f30
mov eax, dword [rax + 0x14]
cmp dword [rbx + 0x20], eax
jle 0x401f30
mov rdx, qword [rbx]
mov rcx, rbp
call fcn.0040a200
test rax, rax
je 0x402330
mov edx, dword [rbx + 0x20]
add rbx, 0x128
mov rax, qword [rbx - 0x110]
cmp qword [rsi + 0x10], rbx
mov dword [rax + 0x14], edx
ja 0x401f3d
nop dword [rax]
mov rdi, qword [0x00506090]
mov rbx, qword [rdi]
test rbx, rbx
je 0x402390
movsxd rcx, dword [rbx + 0x14]
test ecx, ecx
jle 0x401fba
shl rcx, 3
call fcn.004be5f0
movsxd r8, dword [rbx + 0x14]
xor edx, edx
mov qword [rbx + 0x20], rax
mov rcx, rax
shl r8, 3
call sub.msvcrt.dll_memset
mov rbx, qword [rbx]
test rbx, rbx
jne 0x401f93
mov rbx, qword [rsi + 8]
cmp rbx, qword [rsi + 0x10]
jae 0x402061
mov rbp, qword [0x005062b0]
lea r12, [rbp + 0xc0]
lea r13, [rbp + 0xd8]
jmp 0x401ffd
add rbx, 0x128
cmp qword [rsi + 0x10], rbx
jbe 0x402061
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x401ff0
mov r9d, dword [rax + 0x14]
test r9d, r9d
je 0x401ff0
mov rdx, qword [rbx]
mov rcx, r12
call fcn.0040a200
test rax, rax
je 0x402302
mov rax, qword [rbx + 0x18]
mov edx, dword [rbx + 0x28]
movsxd rcx, dword [rbx + 0x20]
add dword [rax + 0x10], edx
mov rax, qword [rax + 0x20]
lea rax, [rax + rcx*8 - 8]
mov r14, qword [rax]
test r14, r14
je 0x402360
cmp qword [r14], 0
jne 0x4022c0
add dword [r14 + 0x28], edx
add rbx, 0x128
cmp qword [rsi + 0x10], rbx
ja 0x401ffd
mov rbx, qword [rdi]
test rbx, rbx
je 0x4021f4
mov r13, qword [0x00506140]
mov ecx, dword [rbx + 0x14]
test ecx, ecx
je 0x4021e8
mov edx, dword [r13]
test edx, edx
je 0x402092
mov eax, dword [rbx + 0x10]
test eax, eax
je 0x4021e8
mov r9, rbx
mov edx, 0x10
mov rcx, rbx
mov dword [0x0051303c], 0
lea r8, [0x00401610]
mov dword [0x00513040], 0
call fcn.004097a0
test rax, rax
mov rsi, rax
je 0x4021e8
mov r8d, dword [0x004c3010]
test r8d, r8d
jg 0x402203
mov rcx, qword [rbx + 0x20]
call sub.msvcrt.dll_free
mov r9, rsi
mov r8d, 0x15
mov edx, 1
lea rcx, str._nExecution_Summary:_n_n
mov qword [rbx + 0x20], 0
call sub.msvcrt.dll_fwrite
mov r8d, dword [0x00513040]
lea rdx, str._9ld___Executable_lines_in_this_file_n
mov rcx, rsi
call sub.msvcrt.dll_fprintf
mov r8d, dword [0x0051303c]
lea rdx, str._9ld___Lines_executed_n
mov rcx, rsi
call sub.msvcrt.dll_fprintf
mov eax, dword [0x00513040]
mov rdi, qword [0x004c91e0]
test eax, eax
movq xmm0, rdi
je 0x402166
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [0x0051303c]
pxor xmm1, xmm1
mulsd xmm0, qword [0x004c91e0]
cvtsi2sd xmm1, eax
divsd xmm0, xmm1
movq r8, xmm0
movapd xmm2, xmm0
mov rcx, rsi
lea rdx, str._9.2f___Percent_of_the_file_executed_n
call sub.msvcrt.dll_fprintf
mov r8d, dword [rbx + 0x10]
lea rdx, str._n_9lu___Total_number_of_line_executions_n
mov rcx, rsi
call sub.msvcrt.dll_fprintf
mov eax, dword [0x00513040]
pxor xmm0, xmm0
test eax, eax
je 0x4021b8
mov r8d, dword [rbx + 0x10]
pxor xmm0, xmm0
pxor xmm1, xmm1
cvtsi2sd xmm1, eax
cvtsi2sd xmm0, r8
divsd xmm0, xmm1
movapd xmm2, xmm0
movq r8, xmm0
mov rcx, rsi
lea rdx, str._9.2f___Average_executions_per_line_n
call sub.msvcrt.dll_fprintf
mov ecx, 1
call qword [fcn.004c1900]
cmp rax, rsi
je 0x4021e8
mov rcx, rsi
call sub.msvcrt.dll_fclose
mov rbx, qword [rbx]
test rbx, rbx
jne 0x402074
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
lea rdx, str._n_nTop__d_Lines:_n_n_____Line______Count_n_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
movsxd rdx, dword [rbx + 0x14]
lea r9, [0x00401560]
mov r8d, 8
mov rcx, qword [rbx + 0x20]
call sub.msvcrt.dll_qsort
mov eax, dword [0x004c3010]
cmp dword [rbx + 0x14], eax
cmovle eax, dword [rbx + 0x14]
mov rcx, qword [rbx + 0x20]
test eax, eax
mov edx, eax
jle 0x4020dd
mov rax, qword [rcx]
test rax, rax
je 0x4020dd
mov r9d, dword [rax + 0x28]
test r9d, r9d
je 0x4020dd
lea rbp, str._9d__10lu_n
sub edx, 1
mov edi, 8
lea r12, [rdx*8 + 8]
jmp 0x40229e
mov rax, qword [rcx + rdi]
test rax, rax
je 0x4020dd
mov r9d, dword [rax + 0x28]
add rdi, 8
test r9d, r9d
je 0x4020dd
mov r8d, dword [rax + 0x20]
mov rcx, rsi
mov rdx, rbp
call sub.msvcrt.dll_fprintf
cmp rdi, r12
mov rcx, qword [rbx + 0x20]
jne 0x402280
jmp 0x4020dd
mov ecx, 0x128
call fcn.004be5f0
mov rdx, r14
mov r8d, 0x128
mov rcx, rax
call sub.msvcrt.dll_memcpy
movsxd rdx, dword [rbx + 0x20]
mov r9, rax
mov qword [rax], 0
mov eax, dword [rbx + 0x28]
add dword [r9 + 0x28], eax
mov rax, qword [rbx + 0x18]
mov rax, qword [rax + 0x20]
mov qword [rax + rdx*8 - 8], r9
jmp 0x401ff0
mov r8d, dword [rbp + 0xc0]
test r8d, r8d
jne 0x401ff0
mov rdx, qword [rbx]
mov rcx, r13
call fcn.0040a200
test rax, rax
jne 0x401ff0
jmp 0x402023
mov r10d, dword [rdi + 0xc0]
test r10d, r10d
jne 0x401f30
mov rdx, qword [rbx]
mov rcx, r12
call fcn.0040a200
test rax, rax
jne 0x401f30
jmp 0x401f62
mov qword [rax], rbx
jmp 0x401ff0
mov rdi, qword [0x00506090]
mov rbx, qword [rdi]
test rbx, rbx
jne 0x401f93
jmp 0x4021f4
mov rbx, qword [rsi + 8]
cmp rbx, qword [rsi + 0x10]
jb 0x401fd0
jmp 0x4021f4