Function at 0x4022b9
Capabilities:
Write file on windows

Disassembly:
push rbp
push rdi
push rsi
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x00527eb0]
mov rax, qword [rax + 8]
mov qword [rbp - 8], rax
jmp 0x402369
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
test rax, rax
je 0x402361
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0x20]
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov eax, dword [rax + 0x14]
cmp edx, eax
jle 0x402361
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov rdx, rax
mov rax, qword [0x00527ea0]
lea rcx, [rax + 0xc0]
call fcn.0040e9bc
test rax, rax
jne 0x40234f
mov rax, qword [0x00527ea0]
mov eax, dword [rax + 0xc0]
test eax, eax
jne 0x402361
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov rdx, rax
mov rax, qword [0x00527ea0]
lea rcx, [rax + 0xd8]
call fcn.0040e9bc
test rax, rax
jne 0x402361
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov rdx, qword [rbp - 8]
mov edx, dword [rdx + 0x20]
mov dword [rax + 0x14], edx
add qword [rbp - 8], 0x128
mov rax, qword [0x00527eb0]
mov rax, qword [rax + 0x10]
cmp qword [rbp - 8], rax
jb 0x4022d7
mov rax, qword [0x00527c80]
mov rax, qword [rax]
mov qword [rbp - 0x10], rax
jmp 0x4023ed
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x14]
test eax, eax
jle 0x4023e2
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x14]
cdqe
shl rax, 3
mov rcx, rax
call fcn.004d75e6
mov rdx, rax
mov rax, qword [rbp - 0x10]
mov qword [rax + 0x20], rdx
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x14]
cdqe
lea rdx, [rax*8]
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x20]
mov r8, rdx
mov edx, 0
mov rcx, rax
call sub.msvcrt.dll_memset
mov rax, qword [rbp - 0x10]
mov rax, qword [rax]
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
jne 0x40238e
mov rax, qword [0x00527eb0]
mov rax, qword [rax + 8]
mov qword [rbp - 8], rax
jmp 0x4025a2
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
test rax, rax
je 0x40259a
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov eax, dword [rax + 0x14]
test eax, eax
je 0x40259a
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov rdx, rax
mov rax, qword [0x00527ea0]
lea rcx, [rax + 0xc0]
call fcn.0040e9bc
test rax, rax
jne 0x402489
mov rax, qword [0x00527ea0]
mov eax, dword [rax + 0xc0]
test eax, eax
jne 0x40259a
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov rdx, rax
mov rax, qword [0x00527ea0]
lea rcx, [rax + 0xd8]
call fcn.0040e9bc
test rax, rax
jne 0x40259a
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov ecx, dword [rax + 0x10]
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0x28]
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
add edx, ecx
mov dword [rax + 0x10], edx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov rdx, qword [rax + 0x20]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x20]
cdqe
shl rax, 3
sub rax, 8
add rax, rdx
mov rax, qword [rax]
mov qword [rbp - 0x28], rax
cmp qword [rbp - 0x28], 0
jne 0x402502
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov rdx, qword [rax + 0x20]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x20]
cdqe
shl rax, 3
sub rax, 8
add rdx, rax
mov rax, qword [rbp - 8]
mov qword [rdx], rax
jmp 0x40259a
mov rax, qword [rbp - 0x28]
mov rax, qword [rax]
test rax, rax
jne 0x402527
mov rax, qword [rbp - 0x28]
mov edx, dword [rax + 0x28]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x28]
add edx, eax
mov rax, qword [rbp - 0x28]
mov dword [rax + 0x28], edx
jmp 0x40259a
mov ecx, 0x128
call fcn.004d75e6
mov qword [rbp - 0x30], rax
mov rdx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
mov r8, rax
mov eax, 0x25
mov rdi, rdx
mov rsi, r8
mov rcx, rax
rep movsq qword [rdi], qword [rsi]
mov rax, qword [rbp - 0x30]
mov qword [rax], 0
mov rax, qword [rbp - 0x30]
mov edx, dword [rax + 0x28]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x28]
add edx, eax
mov rax, qword [rbp - 0x30]
mov dword [rax + 0x28], edx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov rdx, qword [rax + 0x20]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x20]
cdqe
shl rax, 3
sub rax, 8
add rdx, rax
mov rax, qword [rbp - 0x30]
mov qword [rdx], rax
add qword [rbp - 8], 0x128
mov rax, qword [0x00527eb0]
mov rax, qword [rax + 0x10]
cmp qword [rbp - 8], rax
jb 0x402408
mov rax, qword [0x00527c80]
mov rax, qword [rax]
mov qword [rbp - 0x10], rax
jmp 0x4028be
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x14]
test eax, eax
je 0x4028af
mov rax, qword [0x00527d30]
mov eax, dword [rax]
test eax, eax
je 0x4025f5
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x10]
test eax, eax
je 0x4028af
mov dword [0x0053c038], 0
mov eax, dword [0x0053c038]
mov dword [0x0053c034], eax
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x10]
mov r9, rdx
lea r8, [0x00401dc4]
mov edx, 0x10
mov rcx, rax
call fcn.0040d8f8
mov qword [rbp - 0x20], rax
cmp qword [rbp - 0x20], 0
je 0x4028b2
mov eax, dword [0x004da014]
test eax, eax
jle 0x402713
mov edx, dword [0x004da014]
mov rax, qword [rbp - 0x20]
mov r8d, edx
lea rdx, str._n_nTop__d_Lines:_n_n_____Line______Count_n_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x14]
movsxd rdx, eax
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x20]
lea r9, [0x00401633]
mov r8d, 8
mov rcx, rax
call sub.msvcrt.dll_qsort
mov eax, dword [0x004da014]
mov dword [rbp - 0x18], eax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x14]
cmp dword [rbp - 0x18], eax
jle 0x4026a9
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x14]
mov dword [rbp - 0x18], eax
mov dword [rbp - 0x14], 0
jmp 0x40270b
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x20]
mov edx, dword [rbp - 0x14]
movsxd rdx, edx
shl rdx, 3
add rax, rdx
mov rax, qword [rax]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
je 0x402713
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x28]
test eax, eax
je 0x402713
mov rax, qword [rbp - 8]
mov ecx, dword [rax + 0x28]
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0x20]
mov rax, qword [rbp - 0x20]
mov r9d, ecx
mov r8d, edx
lea rdx, str._9d__10lu_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
add dword [rbp - 0x14], 1
mov eax, dword [rbp - 0x14]
cmp eax, dword [rbp - 0x18]
jl 0x4026b2
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x20]
mov rcx, rax
call sub.msvcrt.dll_free
mov rax, qword [rbp - 0x10]
mov qword [rax + 0x20], 0
mov rax, qword [rbp - 0x20]
mov r9, rax
mov r8d, 0x15
mov edx, 1
lea rcx, str._nExecution_Summary:_n_n
call sub.msvcrt.dll_fwrite
mov edx, dword [0x0053c034]
mov rax, qword [rbp - 0x20]
mov r8d, edx
lea rdx, str._9ld___Executable_lines_in_this_file_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov edx, dword [0x0053c038]
mov rax, qword [rbp - 0x20]
mov r8d, edx
lea rdx, str._9ld___Lines_executed_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov eax, dword [0x0053c034]
test eax, eax
je 0x4027b5
mov eax, dword [0x0053c038]
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x004f81d8]
mulsd xmm0, xmm1
mov eax, dword [0x0053c034]
cvtsi2sd xmm1, eax
divsd xmm0, xmm1
jmp 0x4027bd
movsd xmm0, qword [0x004f81d8]
movq rax, xmm0
mov rdx, rax
mov qword [rbp - 0x38], rdx
movsd xmm1, qword [rbp - 0x38]
mov qword [rbp - 0x38], rax
movsd xmm0, qword [rbp - 0x38]
mov rax, qword [rbp - 0x20]
movapd xmm2, xmm1
movq r8, xmm0
lea rdx, str._9.2f___Percent_of_the_file_executed_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov rax, qword [rbp - 0x10]
mov edx, dword [rax + 0x10]
mov rax, qword [rbp - 0x20]
mov r8d, edx
lea rdx, str._n_9lu___Total_number_of_line_executions_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov eax, dword [0x0053c034]
test eax, eax
je 0x402854
mov rax, qword [rbp - 0x10]
mov eax, dword [rax + 0x10]
mov eax, eax
test rax, rax
js 0x40282f
cvtsi2sd xmm0, rax
jmp 0x402844
mov rdx, rax
shr rdx, 1
and eax, 1
or rdx, rax
cvtsi2sd xmm0, rdx
addsd xmm0, xmm0
mov eax, dword [0x0053c034]
cvtsi2sd xmm1, eax
divsd xmm0, xmm1
jmp 0x402858
pxor xmm0, xmm0
movq rax, xmm0
mov rdx, rax
mov qword [rbp - 0x38], rdx
movsd xmm1, qword [rbp - 0x38]
mov qword [rbp - 0x38], rax
movsd xmm0, qword [rbp - 0x38]
mov rax, qword [rbp - 0x20]
movapd xmm2, xmm1
movq r8, xmm0
lea rdx, str._9.2f___Average_executions_per_line_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x30
cmp qword [rbp - 0x20], rax
je 0x4028b3
mov rax, qword [rbp - 0x20]
mov rcx, rax
call sub.msvcrt.dll_fclose
jmp 0x4028b3
nop
jmp 0x4028b3
nop
mov rax, qword [rbp - 0x10]
mov rax, qword [rax]
mov qword [rbp - 0x10], rax
cmp qword [rbp - 0x10], 0
jne 0x4025ca
nop
add rsp, 0x60
pop rsi
pop rdi
pop rbp
ret