Function at 0x14004c6f0
Capabilities:
Write file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x508]
sub rsp, 0x5d0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
mov rax, qword [0x14006b100]
xor rax, rsp
mov qword [rbp + 0x420], rax
mov r13, rdx
mov rdi, rcx
mov rax, qword [rcx + 0x40]
movss xmm6, dword [rax + 0x44]
movss xmm7, dword [rax + 0x40]
movsd xmm0, qword [rdx + 0x78]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rdx + 0x80]
mov dword [rsp + 0x48], eax
call fcn.14004b290
mov r8d, eax
lea rdx, [rsp + 0x70]
mov rcx, r13
call fcn.14004b330
movsd xmm0, qword [rax]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x68], eax
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm7
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.14004ab10
mov qword [rbp - 0x30], 0
movsd xmm11, qword [rsp + 0x50]
movsd qword [rsp + 0x40], xmm11
mov ebx, dword [rsp + 0x58]
mov dword [rsp + 0x48], ebx
lea r8, [rbp - 0x30]
lea rdx, [rsp + 0x40]
mov rcx, qword [rdi + 0x50]
call fcn.14004f400
test al, al
je 0x14004ca51
mov rax, qword [rdi + 0x50]
movss xmm7, dword [rbp - 0x2c]
subss xmm7, dword [rax + 0xc]
movss xmm8, dword [rbp - 0x30]
subss xmm8, dword [rax + 8]
movss xmm6, dword [rdi + 0xc]
movaps xmm10, xmm6
mulss xmm10, dword [rdi + 0x10]
movss xmm1, dword [0x1400597a4]
movss xmm0, dword [0x14005e568]
call fcn.14004bbf0
addss xmm6, xmm0
movss dword [rbp - 0x14], xmm6
movss xmm13, dword [0x1400597f8]
movaps xmm1, xmm13
movss xmm0, dword [0x140059858]
call fcn.14004bbf0
movaps xmm9, xmm0
addss xmm9, dword [rdi + 0x14]
movsd qword [rsp + 0x50], xmm11
mov dword [rsp + 0x58], ebx
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.14004a810
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movss dword [rbp - 0x20], xmm6
movaps xmm1, xmm6
comiss xmm9, xmm2
jb 0x14004c8c0
divss xmm2, xmm9
movaps xmm1, xmm13
subss xmm1, xmm2
mulss xmm1, xmm10
addss xmm1, xmm6
movss dword [rbp - 0x20], xmm1
lea rax, [rbp - 0x14]
lea rcx, [rbp - 0x20]
comiss xmm6, xmm1
cmovbe rax, rcx
movss xmm6, dword [rax]
divss xmm8, xmm6
mov rax, qword [rdi + 0x40]
cmp byte [rax + 9], 0
jne 0x14004c8f7
mov edx, 1
mov rcx, qword [0x14006b850]
call fcn.140001d00
test al, al
je 0x14004c8fc
mulss xmm6, dword [rdi + 0x2c]
divss xmm7, xmm6
movaps xmm0, xmm8
movss xmm1, dword [0x1400598c0]
andps xmm0, xmm1
comiss xmm13, xmm0
jbe 0x14004c925
movaps xmm0, xmm7
andps xmm0, xmm1
comiss xmm13, xmm0
ja 0x14004cfc0
cvttss2si r15d, xmm7
cvttss2si r12d, xmm8
lea rbx, [rdi + 0x80]
mov rsi, qword [rbx + 0x10]
mov rcx, rbx
mov r14, qword [rbx + 0x18]
cmp r14, 0xf
jbe 0x14004c94a
mov rcx, qword [rbx]
cmp rsi, 3
jne 0x14004c975
mov r8, rsi
lea rdx, [0x14005e010]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14004c975
movzx edx, r15w
movzx ecx, r12w
call fcn.140049830
jmp 0x14004ca5a
cmp r14, 0xf
jbe 0x14004c97e
mov rbx, qword [rbx]
cmp rsi, 4
jne 0x14004ca5a
mov r8, rsi
lea rdx, str.BPro
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14004ca5a
xor edx, edx
mov r8d, 0x400
lea rcx, [rbp + 0x20]
call sub.VCRUNTIME140.dll_memset
mov r9d, r15d
mov r8d, r12d
lea rdx, str.km.move__d___d__10__r_n
lea rcx, [rbp + 0x20]
call fcn.140049f50
lea rax, [rbp + 0x20]
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rax + rbx], 0
jne 0x14004c9d4
mov rax, qword [rdi + 0xf8]
cmp rax, 0xffffffffffffffff
je 0x14004ca5a
xor r8d, r8d
lea rdx, [rbp - 0x24]
mov rcx, qword [rdi + 0xf8]
call qword [sym.imp.KERNEL32.dll_ClearCommError]
test eax, eax
je 0x14004ca1a
cmp dword [rbp - 0x24], 0
jbe 0x14004ca1a
mov edx, 5
mov rcx, qword [rdi + 0xf8]
call qword [sym.imp.KERNEL32.dll_PurgeComm]
mov dword [rbp - 0x28], 0
lea rax, [rdi + 0x168]
mov qword [rsp + 0x20], rax
lea r9, [rbp - 0x28]
mov r8d, ebx
lea rdx, [rbp + 0x20]
mov rcx, qword [rdi + 0xf8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x14004ca5a
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x14004ca5a
movss xmm13, dword [0x1400597f8]
mov edx, dword [rdi + 0x38]
mov rcx, qword [0x14006b850]
call fcn.140001d00
test al, al
je 0x14004cfc0
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], rax
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x64], 3
lea rax, [rsp + 0x60]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x78], rax
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 8]
call fcn.140049fb0
nop
mov rsi, qword [rbp + 8]
mov r14, qword [rbp + 0x10]
cmp rsi, r14
je 0x14004cf0f
movabs r15, 0x2aaaaaaaaaaaaaab
movss xmm8, dword [0x140059814]
movss xmm11, dword [0x140059854]
movss xmm12, dword [0x140059860]
movss xmm10, dword [0x14005e56c]
movss xmm9, dword [0x14005e51c]
movsd xmm14, qword [0x14005e540]
nop dword [rax]
nop word [rax + rax]
mov ebx, dword [rsi]
mov rax, qword [rdi + 0x40]
movss xmm6, dword [rax + 0x44]
movss xmm7, dword [rax + 0x40]
movsd xmm0, qword [r13 + 0x78]
movsd qword [rsp + 0x50], xmm0
mov eax, dword [r13 + 0x80]
mov dword [rsp + 0x58], eax
mov r8d, ebx
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.14004b330
movsd xmm0, qword [rax]
movsd qword [rbp - 0x50], xmm0
mov eax, dword [rax + 8]
mov dword [rbp - 0x48], eax
movss dword [rsp + 0x28], xmm6
movss dword [rsp + 0x20], xmm7
lea r9, [rsp + 0x50]
lea r8, [rbp - 0x50]
lea rdx, [rsp + 0x40]
mov rcx, rdi
call fcn.14004ab10
test ebx, ebx
jne 0x14004cb85
movaps xmm7, xmm8
movaps xmm6, xmm8
jmp 0x14004cb9e
cmp ebx, 3
jne 0x14004cefe
movss xmm6, dword [0x14005981c]
movss xmm7, dword [0x140059824]
xor eax, eax
movss xmm5, dword [rsp + 0x48]
movaps xmm4, xmm5
addss xmm4, xmm7
movss xmm2, dword [rsp + 0x44]
movaps xmm3, xmm2
addss xmm3, xmm6
movss xmm1, dword [rsp + 0x40]
movaps xmm0, xmm1
addss xmm0, xmm6
movss dword [rbp - 0x80], xmm0
movss dword [rbp - 0x7c], xmm3
movss dword [rbp - 0x78], xmm4
subss xmm5, xmm7
subss xmm2, xmm6
subss xmm1, xmm6
movss dword [rbp - 0x74], xmm1
movss dword [rbp - 0x70], xmm2
movss dword [rbp - 0x6c], xmm5
movss dword [rbp - 0x68], xmm0
movss dword [rbp - 0x64], xmm2
movss dword [rbp - 0x60], xmm4
movss dword [rbp - 0x5c], xmm1
movss dword [rbp - 0x58], xmm3
movss dword [rbp - 0x54], xmm5
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x10], xmm0
mov qword [rbp], rax
lea ecx, [rax + 0x30]
call fcn.140053000
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
lea rbx, [rax + 0x30]
mov qword [rbp], rbx
mov r8d, 0x30
lea rdx, [rbp - 0x80]
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov qword [rbp - 8], rbx
movaps xmm8, xmm11
movss dword [rbp - 0x1c], xmm11
movaps xmm7, xmm12
movss dword [rbp - 0x18], xmm7
movss dword [rbp - 0x28], xmm11
movss dword [rbp - 0x24], xmm12
mov r8, qword [rbp - 0x10]
mov rcx, r8
cmp r8, rbx
je 0x14004ce3f
mov rdx, qword [rdi + 0x50]
movss xmm13, dword [rdx + 0x14]
movss xmm14, dword [rdx + 0x18]
movss xmm15, dword [rdx + 0x1c]
nop
mov qword [rbp - 0x30], 0
movsd xmm4, qword [rcx]
movsd qword [rsp + 0x70], xmm4
movaps xmm5, xmm4
mulss xmm5, xmm13
movss xmm3, dword [rsp + 0x74]
movaps xmm0, xmm3
mulss xmm0, xmm14
addss xmm5, xmm0
movss xmm2, dword [rcx + 8]
movaps xmm1, xmm2
mulss xmm1, xmm15
addss xmm5, xmm1
addss xmm5, dword [rdx + 0x20]
movaps xmm6, xmm4
mulss xmm6, dword [rdx + 0x24]
movaps xmm0, xmm3
mulss xmm0, dword [rdx + 0x28]
addss xmm6, xmm0
movaps xmm1, xmm2
mulss xmm1, dword [rdx + 0x2c]
addss xmm6, xmm1
addss xmm6, dword [rdx + 0x30]
mulss xmm4, dword [rdx + 0x44]
mulss xmm3, dword [rdx + 0x48]
addss xmm4, xmm3
mulss xmm2, dword [rdx + 0x4c]
addss xmm4, xmm2
addss xmm4, dword [rdx + 0x50]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm4
movsd xmm1, qword [0x14005e510]
comisd xmm1, xmm0
ja 0x14004ce20
movsd xmm2, qword [0x140059908]
divsd xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm5
mulsd xmm0, xmm2
cvtpd2ps xmm4, xmm0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm6
mulsd xmm1, xmm2
cvtpd2ps xmm3, xmm1
comiss xmm10, xmm4
ja 0x14004ce20
comiss xmm4, xmm9
ja 0x14004ce20
comiss xmm10, xmm3
ja 0x14004ce20
comiss xmm3, xmm9
ja 0x14004ce20
movss xmm2, dword [rdx + 4]
mulss xmm2, dword [0x1400597d0]
movaps xmm0, xmm2
mulss xmm0, xmm3
subss xmm2, xmm0
movss xmm1, dword [rdx]
mulss xmm1, dword [0x1400597d0]
movaps xmm0, xmm1
mulss xmm0, xmm4
addss xmm0, xmm1
movss dword [rbp - 0x30], xmm0
movss dword [rbp - 0x2c], xmm2
lea rax, [rbp - 0x30]
lea r9, [rbp - 0x1c]
comiss xmm8, xmm0
cmovbe rax, r9
movss xmm8, dword [rax]
movss dword [rbp - 0x1c], xmm8
lea rax, [rbp - 0x30]
lea r9, [rbp - 0x18]
comiss xmm0, xmm7
cmovbe rax, r9
movss xmm7, dword [rax]
movss dword [rbp - 0x18], xmm7
lea rax, [rbp - 0x2c]
lea r9, [rbp - 0x28]
comiss xmm11, xmm2
cmovbe rax, r9
movss xmm11, dword [rax]
movss dword [rbp - 0x28], xmm11
lea rax, [rbp - 0x2c]
lea r9, [rbp - 0x24]
comiss xmm2, xmm12
cmovbe rax, r9
movss xmm12, dword [rax]
movss dword [rbp - 0x24], xmm12
add rcx, 0xc
cmp rcx, rbx
jne 0x14004cc90
movss xmm13, dword [0x1400597f8]
movsd xmm14, qword [0x14005e540]
mov rax, qword [rdi + 0x50]
movss xmm0, dword [rax + 8]
subss xmm8, xmm13
comiss xmm0, xmm8
jb 0x14004ce8f
addss xmm7, xmm13
comiss xmm7, xmm0
jb 0x14004ce8f
movss xmm1, dword [rax + 0xc]
cvtps2pd xmm1, xmm1
xorps xmm0, xmm0
cvtss2sd xmm0, xmm11
subsd xmm0, xmm14
comisd xmm1, xmm0
jb 0x14004ce8f
xorps xmm0, xmm0
cvtss2sd xmm0, xmm12
addsd xmm0, xmm14
comisd xmm0, xmm1
jae 0x14004cf4f
test r8, r8
je 0x14004cee3
mov rcx, qword [rbp]
sub rcx, r8
mov rax, r15
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 2
mov rax, r8
cmp rdx, 0x1000
jb 0x14004cedb
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004cfb1
mov rcx, r8
call fcn.14005303c
movss xmm12, dword [0x140059860]
movss xmm11, dword [0x140059854]
movss xmm8, dword [0x140059814]
add rsi, 4
cmp rsi, r14
jne 0x14004cb10
mov rsi, qword [rbp + 8]
test rsi, rsi
je 0x14004cfc0
mov rdx, qword [rbp + 0x18]
sub rdx, rsi
and rdx, 0xfffffffffffffffc
mov rax, rsi
cmp rdx, 0x1000
jb 0x14004cfb8
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004cfb8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rcx, rdi
call fcn.14004b990
nop
mov r8, qword [rbp - 0x10]
test r8, r8
je 0x14004cf0b
mov rcx, qword [rbp]
sub rcx, r8
mov rax, r15
imul rcx
sar rdx, 1
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 2
mov rax, r8
cmp rdx, 0x1000
jb 0x14004cfa4
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004cfb1
mov rcx, r8
call fcn.14005303c
jmp 0x14004cf0b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rcx, rsi
call fcn.14005303c
mov rcx, qword [rbp + 0x420]
xor rcx, rsp
call fcn.140052fe0
lea r11, [rsp + 0x5d0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret