Function at 0x140017540
Capabilities:
Encode data using xor
Read file on windows
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x288
movups xmmword [rsp + 0x1e0], xmm6
movups xmmword [rsp + 0x1f0], xmm7
movups xmmword [rsp + 0x200], xmm8
movups xmmword [rsp + 0x210], xmm9
movups xmmword [rsp + 0x220], xmm10
movups xmmword [rsp + 0x230], xmm11
movups xmmword [rsp + 0x240], xmm12
movups xmmword [rsp + 0x250], xmm13
movups xmmword [rsp + 0x260], xmm14
movups xmmword [rsp + 0x270], xmm15
mov r13d, 0x800
mov rax, qword [rsp + 0x2f8]
mov rdi, qword [rsp + 0x2f8]
mov r14d, dword [rsp + 0x2f0]
movzx esi, byte [rax + 2]
movzx ebx, byte [rdi + 8]
movzx eax, byte [rax + 3]
mov qword [rsp + 0x2d0], rcx
mov r12d, r9d
mov qword [rsp + 0x2d8], rdx
mov dword [rsp + 0x2e0], r8d
mov dword [rsp + 0x104], 0
cmp sil, 1
je 0x140017ad3
mov rdi, qword [rsp + 0x2f8]
movsd xmm7, qword [rdi + 0x10]
movsd xmm6, qword [rdi + 0x18]
comisd xmm6, xmm7
ja 0x140017874
mov dword [rsp + 0xf0], 0x200
lea ecx, [rbx + rbx + 1]
movzx ebx, al
mov edx, dword [rsp + 0xf0]
movzx eax, sil
mov r8d, ebx
lea edi, [rax*4]
mov dword [rsp + 0x30], ecx
imul r8d, r13d
imul eax, ecx
imul edx, edi
shl r8d, 2
lea ebp, [rax*4]
mov dword [rsp + 0x48], r8d
add edx, r8d
lea r9d, [rdx + rbp]
mov dword [rsp + 0x40], edx
lea ecx, [r9 + rdi]
mov dword [rsp + 0x38], r9d
call sub.msvcrt.dll_malloc
mov r15, rax
test rax, rax
je 0x140017a65
mov r8d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x38]
lea rax, [rax + r8]
lea rcx, [r15 + rdx]
mov r8d, ebp
xor edx, edx
mov qword [rsp + 0x68], rax
lea rax, [r15 + r9]
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xf8], rax
call sub.msvcrt.dll_memset
cmp edi, 8
jae 0x140017b41
test dil, 4
jne 0x1400190ea
test edi, edi
jne 0x140017e5f
movapd xmm0, xmm7
mov rax, qword [rsp + 0x2f8]
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x190], 0
divsd xmm0, xmm6
movsd xmm9, qword [rax + 0x20]
mov rax, qword [0x1400340b0]
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x2f8]
cmp byte [rax + 0xa], 0
minsd xmm0, xmm9
movsd qword [rsp + 0x40], xmm0
movsd qword [rsp + 0x188], xmm0
je 0x140017787
movzx eax, byte [rax + 8]
pxor xmm1, xmm1
movsd xmm8, qword [0x140034088]
cvtsi2sd xmm1, eax
maxsd xmm8, xmm0
movsd xmm0, qword [0x1400340e8]
divsd xmm0, xmm1
call fcn.140024290
movapd xmm1, xmm0
movsd xmm0, qword [0x1400340b0]
subsd xmm0, xmm1
mulsd xmm0, xmm8
movsd qword [rsp + 0x198], xmm0
ucomisd xmm7, xmm6
mov edx, 1
setp al
cmovne eax, edx
test al, al
jne 0x1400177b1
ucomisd xmm9, qword [0x1400340b0]
setp al
cmovne eax, edx
test al, al
je 0x140018e63
movsd xmm15, qword [rsp + 0x40]
movsd xmm7, qword [0x1400340f0]
movsd xmm8, qword [0x1400340f8]
mov rax, qword [rsp + 0x2f8]
movapd xmm6, xmm15
mulsd xmm6, xmm7
movzx esi, byte [rax + 0xb]
movapd xmm0, xmm6
mulsd xmm0, xmm8
call fcn.140024290
mov rax, qword [rsp + 0x2f8]
movapd xmm3, xmm0
addsd xmm3, xmm0
movzx edx, byte [rax + 9]
test sil, sil
jne 0x140017b7c
movsd xmm2, qword [0x140034088]
movzx eax, byte [rax + 8]
pxor xmm1, xmm1
xor ebp, ebp
movsd xmm0, qword [0x140034090]
divsd xmm2, xmm15
cvtsi2sd xmm1, eax
xorpd xmm1, xmmword [0x140034100]
mulsd xmm1, xmm7
mulsd xmm1, xmm15
movsd qword [rsp + 0x1b8], xmm3
unpcklpd xmm6, xmm2
movups xmmword [rsp + 0x1c8], xmm6
movsd qword [rsp + 0x1d8], xmm1
cmp dl, 7
ja case.0x140017872.3
lea rcx, [0x140034060]
movsxd rdx, dword [rcx + rdx*4]
add rdx, rcx
jmp rdx
movsd xmm0, qword [0x1400340d8]
movsd xmm2, qword [0x140034178]
movsd xmm3, qword [0x1400340e0]
mulsd xmm0, xmm7
divsd xmm0, xmm6
movapd xmm1, xmm0
andpd xmm1, xmm2
ucomisd xmm3, xmm1
ja 0x140017bd7
cvttsd2si rdi, xmm0
mov qword [rsp + 0xf0], rdi
jmp 0x14001762c
movsd xmm6, qword [0x140034110]
lea rdi, [0x140039080]
pxor xmm9, xmm9
mulsd xmm6, xmm0
pxor xmm8, xmm8
cvtsi2sd xmm8, ebp
mulsd xmm8, xmm6
subsd xmm8, xmm7
ucomisd xmm8, xmm9
jp 0x1400178f5
movss xmm0, dword [0x1400340a8]
je 0x140017908
movapd xmm0, xmm8
call fcn.140024290
divsd xmm0, xmm8
cvtsd2ss xmm0, xmm0
movss dword [rdi], xmm0
lea rax, [0x14003d084]
add rdi, 4
add ebp, 1
cmp rax, rdi
jne 0x1400178d0
lea rdi, [0x140034080]
mov rax, qword [rsp + 0x2f8]
mov ecx, dword [rsp + 0x104]
xor edx, edx
mov qword [rsp + 0xd0], rdi
movzx eax, byte [rax + 1]
test ecx, ecx
cmovne edx, r13d
movzx eax, byte [rdi + rax]
imul eax, ebx
test sil, sil
jne 0x140018ed0
mov rdi, qword [rsp + 0x2f8]
movzx ecx, byte [rdi + 8]
lea ebx, [rcx + rdx]
mov edx, dword [rsp + 0x2e0]
test edx, edx
je 0x1400190c9
mov rdi, qword [rsp + 0x2f8]
mov dword [rsp + 0xd8], 1
movzx esi, byte [rdi + 2]
imul eax, r14d
mov r11, qword [rsp + 0x2f8]
pxor xmm12, xmm12
mov rbp, r15
neg eax
mov dword [rsp + 0x100], eax
mov eax, esi
mov esi, ebx
mov ebx, eax
test r13d, r13d
je 0x140017f60
mov dword [rsp + 0x38], esi
movss xmm7, dword [0x140034158]
mov r15d, r13d
mov qword [rsp + 0x30], rbp
movss xmm6, dword [0x140034154]
mov byte [rsp + 0x60], bl
mov rdi, qword [rsp + 0x2d8]
mov dword [rsp + 0x48], r13d
mov r13, r11
test r12d, r12d
jne 0x140017a10
test r14d, r14d
je 0x140018f56
mov edx, dword [rsp + 0x100]
mov r8d, 1
mov rcx, rdi
mov r12d, r14d
call sub.msvcrt.dll_fseek
movzx eax, byte [r13 + 1]
cmp r12d, r15d
mov esi, r15d
mov r9, rdi
mov rcx, qword [rsp + 0xd0]
cmovbe esi, r12d
mov r8d, 1
movzx edx, byte [rcx + rax]
movzx eax, byte [r13 + 3]
imul edx, eax
imul eax, esi
imul edx, esi
lea rbx, [rbp + rax*4]
sub rbx, rdx
mov rcx, rbx
call sub.msvcrt.dll_fread
test rax, rax
jne 0x140017ee8
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
xor eax, eax
movups xmm6, xmmword [rsp + 0x1e0]
movups xmm7, xmmword [rsp + 0x1f0]
movups xmm8, xmmword [rsp + 0x200]
movups xmm9, xmmword [rsp + 0x210]
movups xmm10, xmmword [rsp + 0x220]
movups xmm11, xmmword [rsp + 0x230]
movups xmm12, xmmword [rsp + 0x240]
movups xmm13, xmmword [rsp + 0x250]
movups xmm14, xmmword [rsp + 0x260]
movups xmm15, xmmword [rsp + 0x270]
add rsp, 0x288
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp al, 1
jbe 0x140017605
mov dword [rsp + 0x130], eax
movzx eax, word [rdi + 4]
mov dword [rsp + 0x134], eax
movzx eax, byte [rdi + 7]
mov dword [rsp + 0x138], eax
movzx eax, byte [rdi + 6]
cmp al, 4
ja 0x140017a65
movzx edx, al
lea rcx, [rsp + 0x130]
call fcn.14001d640
test eax, eax
je 0x140017a65
mov rax, qword [rsp + 0x2f8]
mov dword [rsp + 0x104], 1
movzx r13d, word [rax + 4]
movzx esi, byte [rax + 2]
movzx eax, byte [rax + 3]
jmp 0x140017605
mov rcx, qword [rsp + 0xf8]
mov eax, edi
lea rdx, [rcx + 8]
mov qword [rcx], 0
mov qword [rcx + rax - 8], 0
and rdx, 0xfffffffffffffff8
mov rax, rcx
sub rax, rdx
lea ecx, [rdi + rax]
xor eax, eax
mov rdi, rdx
shr ecx, 3
rep stosq qword [rdi], rax
jmp 0x1400176df
movsd xmm2, qword [0x140034178]
movsd xmm0, qword [0x1400340b0]
divsd xmm0, qword [rsp + 0x40]
movapd xmm1, xmm0
movsd xmm4, qword [0x1400340e0]
andpd xmm1, xmm2
ucomisd xmm4, xmm1
ja 0x140017e27
mulsd xmm0, xmm0
pxor xmm1, xmm1
mov ebp, 0xfff
movsd xmm2, qword [0x140034098]
movsd qword [rsp + 0x1a0], xmm0
movsd xmm0, qword [0x1400340a0]
jmp 0x14001783d
cvttsd2si rdx, xmm0
pxor xmm1, xmm1
movapd xmm3, xmm0
movsd xmm4, qword [0x1400340b0]
andnpd xmm2, xmm0
cvtsi2sd xmm1, rdx
cmpnlesd xmm3, xmm1
andpd xmm3, xmm4
addsd xmm1, xmm3
movapd xmm0, xmm1
orpd xmm0, xmm2
cvttsd2si rdi, xmm0
mov qword [rsp + 0xf0], rdi
jmp 0x14001762c
movsd xmm6, qword [0x140034110]
lea rdi, [0x140039080]
movsd xmm10, qword [0x140034118]
mulsd xmm6, xmm0
pxor xmm7, xmm7
add rdi, 4
cvtsi2sd xmm7, ebp
add ebp, 1
mulsd xmm7, xmm6
movapd xmm0, xmm7
addsd xmm7, xmm7
call fcn.140023b00
movapd xmm9, xmm0
movapd xmm0, xmm7
call fcn.140023b00
movapd xmm1, xmm9
lea rax, [0x14003d084]
mulsd xmm1, xmm8
movapd xmm2, xmm0
movapd xmm0, xmm10
subsd xmm0, xmm1
movsd xmm1, qword [0x140034120]
mulsd xmm1, xmm2
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rdi - 4], xmm0
cmp rax, rdi
jne 0x140017c38
jmp 0x14001791f
movsd xmm6, qword [0x140034110]
lea rdi, [0x140039080]
movsd xmm10, qword [0x140034138]
mulsd xmm6, xmm0
pxor xmm7, xmm7
add rdi, 4
cvtsi2sd xmm7, ebp
add ebp, 1
mulsd xmm7, xmm6
movapd xmm0, xmm7
call fcn.140023b00
movapd xmm9, xmm0
movapd xmm0, xmm7
addsd xmm0, xmm7
call fcn.140023b00
movapd xmm8, xmm0
movsd xmm0, qword [0x140034128]
mulsd xmm0, xmm7
call fcn.140023b00
movsd xmm2, qword [0x140034130]
movsd xmm1, qword [0x140034140]
lea rax, [0x14003d084]
movapd xmm3, xmm0
movapd xmm0, xmm10
mulsd xmm2, xmm9
mulsd xmm1, xmm8
subsd xmm0, xmm2
addsd xmm0, xmm1
movsd xmm1, qword [0x140034148]
mulsd xmm1, xmm3
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rdi - 4], xmm0
cmp rax, rdi
jne 0x140017cc3
jmp 0x14001791f
movsd xmm6, qword [0x140034110]
lea rdi, [0x140039080]
mulsd xmm6, xmm0
pxor xmm0, xmm0
add rdi, 4
cvtsi2sd xmm0, ebp
add ebp, 1
mulsd xmm0, xmm6
call fcn.140023b00
lea rax, [0x14003d084]
mulsd xmm0, xmm8
movapd xmm1, xmm0
movapd xmm0, xmm8
subsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [rdi - 4], xmm0
cmp rax, rdi
jne 0x140017d73
jmp 0x14001791f
movsd xmm6, qword [0x140034110]
lea rdi, [0x140039080]
pxor xmm9, xmm9
mulsd xmm6, xmm0
pxor xmm8, xmm8
cvtsi2sd xmm8, ebp
mulsd xmm8, xmm6
subsd xmm8, xmm7
ucomisd xmm8, xmm9
jp 0x140017df4
movss xmm0, dword [0x1400340a8]
je 0x140017e0b
movapd xmm0, xmm8
call fcn.140024290
divsd xmm0, xmm8
mulsd xmm0, xmm0
cvtsd2ss xmm0, xmm0
movss dword [rdi], xmm0
lea rax, [0x14003d084]
add rdi, 4
add ebp, 1
cmp rax, rdi
jne 0x140017dcf
jmp 0x14001791f
cvttsd2si rax, xmm0
pxor xmm1, xmm1
movapd xmm4, xmm0
movsd xmm5, qword [0x1400340b0]
andnpd xmm2, xmm0
cvtsi2sd xmm1, rax
cmpnlesd xmm4, xmm1
andpd xmm4, xmm5
addsd xmm1, xmm4
movapd xmm0, xmm1
orpd xmm0, xmm2
jmp 0x140017bac
mov rax, qword [rsp + 0xf8]
mov byte [rax], 0
jmp 0x1400176df
mulsd xmm7, xmm0
lea rdi, [0x140039080]
pxor xmm0, xmm0
add rdi, 4
cvtsi2sd xmm0, ebp
add ebp, 1
mulsd xmm0, xmm7
call fcn.140024290
lea rax, [0x14003d084]
cvtsd2ss xmm0, xmm0
movss dword [rdi - 4], xmm0
cmp rax, rdi
jne 0x140017e7a
jmp 0x14001791f
movss xmm0, dword [0x1400340a8]
lea rdx, [0x14003d084]
lea rax, [rdx - 0x4000]
movss dword [0x140039080], xmm0
movss dword [rax], xmm0
add rax, 8
movss dword [rax - 4], xmm0
cmp rdx, rax
jne 0x140017eca
jmp 0x14001791f
movzx eax, byte [r13 + 3]
movzx edx, byte [r13 + 1]
imul eax, esi
cmp dl, 2
je 0x140018cb8
ja 0x140018ba6
test dl, dl
je 0x140018c5e
lea ecx, [rax - 1]
xor edx, edx
test eax, eax
je 0x140017f39
movsx r8d, word [rbx + rdx*2]
pxor xmm0, xmm0
cvtsi2ss xmm0, r8d
mov r8, rdx
mulss xmm0, xmm6
movss dword [rbp + rdx*4], xmm0
add rdx, 1
cmp rcx, r8
jne 0x140017f15
lea rbp, [rbp + rax*4]
sub r12d, esi
sub r15d, esi
jne 0x1400179ea
mov r11, r13
mov esi, dword [rsp + 0x38]
mov rbp, qword [rsp + 0x30]
movzx ebx, byte [rsp + 0x60]
mov r13d, dword [rsp + 0x48]
mov r15d, dword [rsp + 0x104]
test r15d, r15d
jne 0x140018e29
mov dword [rsp + 0x180], 0
movzx eax, bl
mov ebx, eax
test esi, esi
je 0x140018e19
mov edi, dword [rsp + 0xd8]
cmp r13d, esi
mov r9d, esi
cmovbe r9d, r13d
test edi, edi
jne 0x140018fc0
imul eax, r9d
lea rax, [rbp + rax*4]
mov qword [rsp + 0xb8], rax
mov eax, r13d
sub esi, r9d
sub eax, r9d
pxor xmm0, xmm0
movsd xmm2, qword [0x140034178]
movsd xmm3, qword [0x1400340e0]
cvtsi2sd xmm0, rax
mulsd xmm0, qword [r11 + 0x10]
subsd xmm0, qword [rsp + 0x190]
divsd xmm0, qword [r11 + 0x18]
movapd xmm1, xmm0
andpd xmm1, xmm2
ucomisd xmm3, xmm1
jbe 0x14001802b
cvttsd2si rax, xmm0
pxor xmm1, xmm1
movapd xmm3, xmm0
movsd xmm6, qword [0x1400340b0]
andnpd xmm2, xmm0
cvtsi2sd xmm1, rax
cmpnlesd xmm3, xmm1
andpd xmm3, xmm6
addsd xmm1, xmm3
movapd xmm0, xmm1
orpd xmm0, xmm2
cvttsd2si rax, xmm0
cmp dword [rsp + 0x2e0], eax
cmovbe eax, dword [rsp + 0x2e0]
mov edi, eax
test eax, eax
je 0x14001903f
movzx eax, word [rsp + 0x186]
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x118], esi
movq xmm11, qword [0x140034100]
mov dword [rsp + 0x120], edi
mov word [rsp + 0xca], ax
lea eax, [rbx - 1]
mov qword [rsp + 0x108], rax
lea rax, [rcx*4]
sub rcx, rax
mov dword [rsp + 0x11c], r13d
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x2f8], r11
mov dword [rsp + 0x2e8], r12d
mov r12d, ebx
mov dword [rsp + 0x2f0], r14d
mov r14, rbp
mov ebp, edi
mov eax, dword [rsp + 0xf0]
mov r9d, dword [rsp + 0xd8]
cmp eax, ebp
mov edi, eax
mov rax, qword [rsp + 0x2f8]
cmova edi, ebp
movzx r13d, byte [rax + 2]
mov edx, r13d
test r9d, r9d
jne 0x14001835c
test r12d, r12d
je 0x1400181bd
mov ecx, dword [rsp + 0xd8]
mov r9, qword [rsp + 0x68]
movzx r11d, dl
mov rax, qword [rsp + 0x2f8]
movss xmm0, dword [0x1400340a8]
movss xmm1, dword [0x140034168]
test ecx, ecx
mov rcx, qword [rsp + 0xb8]
movss xmm5, dword [rax + 0x2c]
movss xmm2, dword [rax + 0x28]
cmovne rcx, r9
mov rax, qword [rsp + 0x108]
shl r11, 2
mov r8, qword [rsp + 0xf8]
movaps xmm4, xmm5
addss xmm4, xmm0
subss xmm0, xmm5
lea r10, [rcx + rax*4 + 4]
mulss xmm4, xmm2
movaps xmm3, xmm0
mulss xmm3, xmm2
mulss xmm4, xmm1
mulss xmm3, xmm1
nop word [rax + rax]
test edi, edi
je 0x1400181ac
movss xmm0, dword [r8]
xor eax, eax
xor edx, edx
nop dword [rax]
movaps xmm2, xmm0
movss xmm0, dword [rcx + rax]
movaps xmm1, xmm4
add edx, 1
mulss xmm2, xmm3
mulss xmm1, xmm0
addss xmm1, xmm2
movss dword [r9 + rax], xmm1
add rax, r11
movss dword [r8], xmm0
cmp edi, edx
jne 0x140018180
add rcx, 4
add r9, 4
add r8, 4
cmp r10, rcx
jne 0x140018170
add word [rsp + 0xca], di
movzx eax, word [rsp + 0xca]
mov r8d, edi
mov rsi, qword [rsp + 0xb8]
imul r8d, r13d
mov word [rsp + 0x186], ax
mov eax, r12d
imul eax, edi
lea rax, [rsi + rax*4]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x2f8]
movzx r15d, byte [rax]
cmp r15b, 5
je 0x1400182ce
cmp r15b, 2
je 0x140018d9c
ja 0x140018bf8
test r15b, r15b
je 0x140018d28
lea eax, [r8 - 1]
test r8d, r8d
je 0x140018290
mov ebx, eax
xor esi, esi
mov dword [rsp + 0x30], edi
movss xmm7, dword [0x140034170]
mov rdi, rsi
movss xmm6, dword [0x1400340c4]
mov rsi, rbx
mov rbx, qword [rsp + 0x68]
jmp 0x140018279
comiss xmm0, dword [0x1400340c0]
jbe 0x140018264
movss xmm0, dword [0x1400340c0]
call fcn.14001f970
mov word [rbx + rdi*2], ax
lea rax, [rdi + 1]
cmp rdi, rsi
je 0x14001828c
mov rdi, rax
movss xmm0, dword [rbx + rdi*4]
mulss xmm0, xmm7
comiss xmm6, xmm0
jbe 0x140018253
movaps xmm0, xmm6
jmp 0x140018264
mov edi, dword [rsp + 0x30]
mov rax, qword [rsp + 0xd0]
mov r9, qword [rsp + 0x2d0]
mov r8d, 1
mov rcx, qword [rsp + 0x68]
movzx edx, byte [rax + r15]
imul edx, r13d
imul edx, edi
call sub.msvcrt.dll_fwrite
test rax, rax
jne 0x1400182ee
mov rcx, r14
call sub.msvcrt.dll_free
jmp 0x140017a65
mov rax, qword [rsp + 0x2f8]
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x2d0]
mov r9, qword [rax + 0x30]
call qword [rax + 0x38]
test eax, eax
je 0x1400182c1
sub ebp, edi
jne 0x1400180bb
mov r10d, dword [rsp + 0xd8]
mov rbp, r14
mov esi, dword [rsp + 0x118]
mov r13d, dword [rsp + 0x11c]
mov edi, dword [rsp + 0x120]
mov r12d, dword [rsp + 0x2e8]
mov r14d, dword [rsp + 0x2f0]
mov r11, qword [rsp + 0x2f8]
test r10d, r10d
je 0x140018345
mov r9d, r13d
sub r9d, dword [rsp + 0x180]
jne 0x14001905f
sub dword [rsp + 0x2e0], edi
je 0x1400190c6
movzx ebx, byte [r11 + 2]
jmp 0x1400179b1
movzx eax, byte [rax + 8]
movzx ecx, word [rsp + 0x184]
movsd xmm6, qword [0x1400340b0]
movsd xmm9, qword [rsp + 0x190]
lea r10d, [rax + rax]
mov eax, dword [rsp + 0x180]
mov dword [rsp + 0xdc], ecx
lea esi, [r10 + 1]
mov dword [rsp + 0xcc], eax
mov eax, ecx
mov rcx, qword [rsp + 0x2f8]
movsd xmm4, qword [rcx + 0x10]
divsd xmm6, xmm4
movsd qword [rsp + 0x80], xmm6
test r13d, r13d
je 0x140018e51
mov eax, esi
mov dword [rsp + 0x64], edi
xor r9d, r9d
xor r8d, r8d
movsd xmm6, qword [rsp + 0x1c8]
mov dword [rsp + 0x128], ebp
shr eax, 1
lea r15, [0x140039080]
mov byte [rsp + 0x12f], r13b
movapd xmm13, xmm4
mov rdx, r8
movsd xmm15, qword [rsp + 0x1d0]
movsd xmm1, qword [rsp + 0x1b0]
mov dword [rsp + 0xa8], eax
xor eax, eax
movsd xmm7, qword [rsp + 0x1a8]
mov dword [rsp + 0x124], r12d
mov r12d, r10d
mov r10d, r9d
movsd qword [rsp + 0x88], xmm6
movapd xmm2, xmm1
movsd xmm6, qword [rsp + 0x1d8]
movsd xmm10, qword [rsp + 0x1b8]
movsd qword [rsp + 0xe0], xmm9
movsd qword [rsp + 0xe8], xmm6
movsd xmm6, qword [rsp + 0x1a0]
movsd qword [rsp + 0x50], xmm15
movsd qword [rsp + 0x48], xmm6
movsd xmm6, qword [rsp + 0x198]
movsd qword [rsp + 0x38], xmm6
nop dword [rax]
mov rdi, qword [rsp + 0xc0]
mov r8d, dword [rsp + 0x64]
mov ecx, r10d
mov dword [rsp + 0x94], edx
lea rbp, [rdi + rcx*4]
test r8d, r8d
je 0x140018b89
mov rax, qword [rsp + 0x2f8]
mov dword [rsp + 0x60], edx
xor r9d, r9d
mov dword [rsp + 0xac], r10d
mov ebx, dword [rsp + 0xdc]
movzx eax, byte [rax + 0xb]
mov qword [rsp + 0xb0], rdx
movsd xmm8, qword [rsp + 0xe0]
mov edi, dword [rsp + 0xcc]
mov byte [rsp + 0x93], al
mov rax, qword [rsp + 0x2f8]
movsd xmm9, qword [rsp + 0xe8]
movsd xmm6, qword [rax + 0x18]
movsd qword [rsp + 0x70], xmm6
pxor xmm6, xmm6
cvtsi2sd xmm6, esi
movsd qword [rsp + 0x78], xmm6
nop dword [rax]
comisd xmm8, xmm13
jb 0x14001855d
mov eax, edi
mov ecx, dword [rsp + 0x94]
imul eax, r13d
add eax, ecx
nop
mov edx, eax
subsd xmm8, xmm13
movss xmm0, dword [r14 + rdx*4]
mov edx, ebx
movss dword [rbp + rdx*4], xmm0
lea edx, [rbx + 1]
sub ebx, r12d
cmp edx, esi
cmovb ebx, edx
add edi, 1
add eax, r13d
comisd xmm8, xmm13
jae 0x140018530
movsd xmm6, qword [rsp + 0x80]
mov dword [rsp + 0x58], r9d
movsd xmm15, qword [rsp + 0x88]
movsd xmm7, qword [0x1400340b0]
divsd xmm7, qword [rsp + 0x78]
movsd qword [rsp + 0x30], xmm7
mulsd xmm6, xmm8
movapd xmm14, xmm6
xorpd xmm14, xmm11
movapd xmm0, xmm14
subsd xmm0, qword [0x1400340f8]
mulsd xmm14, xmm15
mulsd xmm0, xmm15
addsd xmm14, xmm9
addsd xmm0, xmm9
call fcn.140023b00
movsd xmm7, qword [rsp + 0x50]
mulsd xmm7, xmm0
movapd xmm0, xmm14
call fcn.140024290
movsd xmm1, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x58]
cmp byte [rsp + 0x93], 0
mulsd xmm1, xmm0
jne 0x140018900
mov eax, dword [rsp + 0xa8]
mov r10d, ebx
mov ecx, ebx
xor edx, edx
pxor xmm14, xmm14
sub r10d, r12d
movsd qword [rsp + 0x58], xmm13
movapd xmm0, xmm14
movapd xmm15, xmm14
lea r11d, [rax + rbx]
sub r10d, 1
movsd qword [rsp + 0x98], xmm9
movapd xmm3, xmm14
movsd qword [rsp + 0xa0], xmm8
jmp 0x140018663
subsd xmm0, xmm3
add edx, 1
add ecx, 1
addsd xmm0, xmm2
addsd xmm14, xmm0
cmp edx, esi
jae 0x140018808
movapd xmm0, xmm3
movapd xmm3, xmm5
mov eax, ecx
pxor xmm2, xmm2
sub eax, r11d
cvtsi2sd xmm2, eax
subsd xmm2, xmm6
ucomisd xmm2, xmm12
jp 0x140018689
mov rax, qword [0x1400340b0]
movq xmm5, rax
je 0x140018691
movapd xmm5, xmm1
divsd xmm5, xmm2
movapd xmm2, xmm1
pxor xmm4, xmm4
pxor xmm9, xmm9
mulsd xmm2, xmm10
cvtsi2sd xmm4, edx
pxor xmm8, xmm8
addsd xmm4, xmm6
mulsd xmm4, qword [rsp + 0x30]
subsd xmm7, xmm2
mulsd xmm4, qword [0x140034160]
movapd xmm2, xmm7
mulsd xmm2, xmm10
cvttsd2si r8, xmm4
addsd xmm1, xmm2
movsd xmm2, qword [rsp + 0x38]
mov eax, r8d
add r8d, 1
cvtsi2sd xmm9, rax
cvtss2sd xmm8, dword [r15 + rax*4]
cmp ecx, esi
lea eax, [r10 + rdx]
minsd xmm2, xmm5
cmovb rax, rcx
movapd xmm5, xmm2
pxor xmm2, xmm2
subsd xmm4, xmm9
cvtss2sd xmm2, dword [r15 + r8*4]
subsd xmm2, xmm8
movapd xmm9, xmm3
xorpd xmm9, xmm11
mulsd xmm2, xmm4
pxor xmm4, xmm4
cvtss2sd xmm4, dword [rbp + rax*4]
addsd xmm2, xmm8
movapd xmm8, xmm3
cmpltsd xmm8, xmm12
mulsd xmm2, xmm5
andpd xmm9, xmm8
andnpd xmm8, xmm3
orpd xmm9, xmm8
mulsd xmm4, xmm2
movapd xmm13, xmm4
movapd xmm8, xmm4
movapd xmm5, xmm4
cmpltsd xmm13, xmm12
xorpd xmm8, xmm11
addsd xmm5, xmm3
andpd xmm8, xmm13
andnpd xmm13, xmm4
orpd xmm8, xmm13
comisd xmm9, xmm8
jb 0x1400188e8
subsd xmm3, xmm5
addsd xmm3, xmm4
addsd xmm15, xmm3
movapd xmm4, xmm0
movapd xmm8, xmm0
movapd xmm9, xmm2
cmpltsd xmm4, xmm12
xorpd xmm8, xmm11
movapd xmm3, xmm2
cmpltsd xmm9, xmm12
addsd xmm3, xmm0
andpd xmm8, xmm4
andnpd xmm4, xmm0
orpd xmm8, xmm4
movapd xmm4, xmm2
xorpd xmm4, xmm11
andpd xmm4, xmm9
andnpd xmm9, xmm2
orpd xmm4, xmm9
comisd xmm8, xmm4
jae 0x140018640
subsd xmm2, xmm3
add edx, 1
add ecx, 1
addsd xmm2, xmm0
addsd xmm14, xmm2
cmp edx, esi
jb 0x14001865b
addsd xmm5, xmm15
addsd xmm3, xmm14
movsd xmm13, qword [rsp + 0x58]
movsd xmm9, qword [rsp + 0x98]
movsd xmm8, qword [rsp + 0xa0]
movapd xmm2, xmm1
divsd xmm5, xmm3
mov edx, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
cvtsd2ss xmm5, xmm5
add r9d, 1
addsd xmm8, qword [rsp + 0x70]
mov rax, rdx
movss dword [rcx + rdx*4], xmm5
add eax, r13d
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x64], r9d
jne 0x140018518
mov r10d, dword [rsp + 0xac]
mov rdx, qword [rsp + 0xb0]
mov eax, 1
add rdx, 1
add r10d, esi
cmp edx, r13d
jb 0x140018480
mov r11d, edi
mov r12d, dword [rsp + 0x124]
mov edi, dword [rsp + 0x64]
mov ebp, dword [rsp + 0x128]
movzx edx, byte [rsp + 0x12f]
test al, al
je 0x1400188c0
movsd qword [rsp + 0x1a8], xmm7
movsd qword [rsp + 0x1b0], xmm2
mov eax, ebx
mov dword [rsp + 0x180], r11d
mov word [rsp + 0x184], ax
movsd qword [rsp + 0x190], xmm8
jmp 0x1400180ea
subsd xmm4, xmm5
addsd xmm4, xmm3
addsd xmm15, xmm4
jmp 0x140018795
mov r8d, ebx
pxor xmm14, xmm14
mov ecx, ebx
xor edx, edx
sub r8d, r12d
movapd xmm0, xmm14
movsd qword [rsp + 0xa0], xmm8
movapd xmm15, xmm14
movapd xmm3, xmm14
sub r8d, 1
movsd qword [rsp + 0x58], xmm13
movapd xmm8, xmm1
movsd qword [rsp + 0x98], xmm9
jmp 0x1400189dd
subsd xmm3, xmm5
addsd xmm3, xmm4
addsd xmm15, xmm3
movapd xmm4, xmm0
movapd xmm8, xmm0
movapd xmm9, xmm1
cmpltsd xmm4, xmm12
xorpd xmm8, xmm11
movapd xmm3, xmm1
cmpltsd xmm9, xmm12
addsd xmm3, xmm0
andpd xmm8, xmm4
andnpd xmm4, xmm0
orpd xmm8, xmm4
movapd xmm4, xmm1
xorpd xmm4, xmm11
andpd xmm4, xmm9
andnpd xmm9, xmm1
orpd xmm4, xmm9
comisd xmm8, xmm4
jb 0x140018b40
subsd xmm0, xmm3
add edx, 1
add ecx, 1
addsd xmm0, xmm1
addsd xmm14, xmm0
cmp edx, esi
jae 0x140018b5b
movapd xmm0, xmm3
movapd xmm8, xmm2
movapd xmm3, xmm5
pxor xmm4, xmm4
pxor xmm5, xmm5
cvtsi2sd xmm4, edx
movapd xmm1, xmm4
subsd xmm1, xmm6
mulsd xmm1, qword [rsp + 0x40]
comisd xmm12, xmm1
jae 0x140018a35
movapd xmm5, xmm1
movsd xmm9, qword [rsp + 0x48]
mulsd xmm5, xmm1
subsd xmm9, xmm5
ucomisd xmm9, xmm12
jp 0x140018a27
mov rax, qword [0x1400340b0]
movq xmm5, rax
je 0x140018a35
mulsd xmm1, xmm8
movapd xmm5, xmm1
divsd xmm5, xmm9
movapd xmm1, xmm10
addsd xmm4, xmm6
pxor xmm9, xmm9
mulsd xmm1, xmm8
mulsd xmm4, qword [rsp + 0x30]
mulsd xmm4, qword [0x140034160]
subsd xmm7, xmm1
movapd xmm1, xmm10
cvttsd2si r10, xmm4
mulsd xmm1, xmm7
mov eax, r10d
add r10d, 1
cmp ecx, esi
cvtsi2sd xmm9, rax
movapd xmm2, xmm1
movsd xmm1, qword [rsp + 0x38]
addsd xmm2, xmm8
pxor xmm8, xmm8
minsd xmm1, xmm5
cvtss2sd xmm8, dword [r15 + rax*4]
lea eax, [r8 + rdx]
subsd xmm4, xmm9
cmovb rax, rcx
movapd xmm9, xmm3
xorpd xmm9, xmm11
movapd xmm5, xmm1
pxor xmm1, xmm1
cvtss2sd xmm1, dword [r15 + r10*4]
subsd xmm1, xmm8
mulsd xmm1, xmm4
pxor xmm4, xmm4
cvtss2sd xmm4, dword [rbp + rax*4]
addsd xmm1, xmm8
movapd xmm8, xmm3
cmpltsd xmm8, xmm12
mulsd xmm1, xmm5
andpd xmm9, xmm8
andnpd xmm8, xmm3
orpd xmm9, xmm8
mulsd xmm4, xmm1
movapd xmm13, xmm4
movapd xmm8, xmm4
movapd xmm5, xmm4
cmpltsd xmm13, xmm12
xorpd xmm8, xmm11
addsd xmm5, xmm3
andpd xmm8, xmm13
andnpd xmm13, xmm4
orpd xmm8, xmm13
comisd xmm9, xmm8
jae 0x140018950
subsd xmm4, xmm5
addsd xmm4, xmm3
addsd xmm15, xmm4
jmp 0x14001895d
subsd xmm1, xmm3
add edx, 1
add ecx, 1
addsd xmm1, xmm0
addsd xmm14, xmm1
cmp edx, esi
jb 0x1400189d0
addsd xmm5, xmm15
addsd xmm3, xmm14
movsd xmm13, qword [rsp + 0x58]
movsd xmm9, qword [rsp + 0x98]
movsd xmm8, qword [rsp + 0xa0]
divsd xmm5, xmm3
jmp 0x140018835
mov ebx, dword [rsp + 0xdc]
mov edi, dword [rsp + 0xcc]
movsd xmm8, qword [rsp + 0xe0]
jmp 0x14001887c
cmp dl, 3
jne 0x140017f39
lea ecx, [rax - 1]
xor edx, edx
test eax, eax
je 0x140017f39
pxor xmm0, xmm0
mov r8, rdx
cvtsi2ss xmm0, dword [rbx + rdx*4]
mulss xmm0, xmm7
movss dword [rbp + rdx*4], xmm0
add rdx, 1
cmp rcx, r8
jne 0x140018bbc
lea rbp, [rbp + rax*4]
sub r12d, esi
sub r15d, esi
jne 0x1400179ea
jmp 0x140017f4a
cmp r15b, 3
jne 0x140018290
lea eax, [r8 - 1]
test r8d, r8d
je 0x140018290
mov rsi, qword [rsp + 0x68]
movss xmm7, dword [0x1400340d0]
movss xmm6, dword [0x1400340d4]
lea rbx, [rsi + rax*4 + 4]
jmp 0x140018c48
comiss xmm0, dword [0x1400340d0]
jbe 0x140018c37
movaps xmm0, xmm7
call fcn.14001f970
mov dword [rsi - 4], eax
cmp rsi, rbx
je 0x140018290
movss xmm0, dword [rsi]
add rsi, 4
mulss xmm0, xmm7
comiss xmm6, xmm0
jbe 0x140018c2b
movaps xmm0, xmm6
jmp 0x140018c37
lea ecx, [rax - 1]
test eax, eax
je 0x140017f39
movss xmm1, dword [0x140034150]
xor edx, edx
movsx r8d, byte [rbx + rdx]
pxor xmm0, xmm0
xor r8b, 0x80
cvtsi2ss xmm0, r8d
mov r8, rdx
mulss xmm0, xmm1
movss dword [rbp + rdx*4], xmm0
add rdx, 1
cmp r8, rcx
jne 0x140018c73
lea rbp, [rbp + rax*4]
sub r12d, esi
sub r15d, esi
jne 0x1400179ea
jmp 0x140017f4a
lea edx, [rax - 1]
test eax, eax
je 0x140017f39
lea r9, [rdx + rdx*2 + 3]
movss xmm1, dword [0x140034158]
mov r8, rbp
add r9, rbx
movzx edx, byte [rbx]
movzx ecx, byte [rbx + 1]
add rbx, 3
pxor xmm0, xmm0
add r8, 4
shl edx, 8
shl ecx, 0x10
or ecx, edx
movzx edx, byte [rbx - 1]
shl edx, 0x18
or edx, ecx
cvtsi2ss xmm0, edx
mulss xmm0, xmm1
movss dword [r8 - 4], xmm0
cmp rbx, r9
jne 0x140018cd6
lea rbp, [rbp + rax*4]
sub r12d, esi
sub r15d, esi
jne 0x1400179ea
jmp 0x140017f4a
lea eax, [r8 - 1]
test r8d, r8d
je 0x140018290
mov rsi, qword [rsp + 0x68]
mov dword [rsp + 0x30], edi
movss xmm7, dword [0x14003416c]
movss xmm6, dword [0x1400340bc]
lea rbx, [rsi + rax + 1]
mov rdi, rsi
mov rsi, qword [rsp + 0x110]
jmp 0x140018d89
comiss xmm0, dword [0x1400340b8]
jbe 0x140018d71
movss xmm0, dword [0x1400340b8]
call fcn.14001f970
add rdi, 1
add eax, 0xffffff80
mov byte [rdi - 1], al
cmp rdi, rbx
je 0x14001828c
movss xmm0, dword [rsi + rdi*4]
mulss xmm0, xmm7
comiss xmm6, xmm0
jbe 0x140018d60
movaps xmm0, xmm6
jmp 0x140018d71
lea eax, [r8 - 1]
test r8d, r8d
je 0x140018290
mov rsi, qword [rsp + 0x68]
mov dword [rsp + 0x30], edi
movss xmm6, dword [0x140034174]
lea rcx, [rsi + rax*4 + 4]
mov rdi, rsi
mov rbx, rcx
jmp 0x140018df6
comiss xmm0, dword [0x1400340c8]
jbe 0x140018dd8
movss xmm0, dword [0x1400340c8]
call fcn.14001f970
add rsi, 3
mov byte [rsi - 3], al
mov byte [rsi - 2], ah
shr eax, 0x10
mov byte [rsi - 1], al
cmp rdi, rbx
je 0x14001828c
movss xmm0, dword [rdi]
movss xmm7, dword [0x1400340cc]
add rdi, 4
mulss xmm0, xmm6
comiss xmm7, xmm0
jbe 0x140018dc7
movss xmm0, dword [0x1400340cc]
jmp 0x140018dd8
mov qword [rsp + 0xb8], rbp
mov eax, r13d
jmp 0x140017fbc
lea rcx, [rsp + 0x130]
mov r8, rbp
mov rdx, rbp
mov qword [rsp + 0x2f8], r11
call fcn.14001cf00
mov r11, qword [rsp + 0x2f8]
jmp 0x140017f71
mov r11d, dword [rsp + 0xcc]
movapd xmm8, xmm9
jmp 0x1400188c2
mov rax, qword [rsp + 0x2f8]
lea rdi, [0x140034080]
mov r11d, dword [rsp + 0x104]
mov qword [rsp + 0xd0], rdi
movzx eax, byte [rax + 1]
movzx eax, byte [rdi + rax]
imul eax, ebx
test r11d, r11d
je 0x140018f9b
mov r10d, dword [rsp + 0x2e0]
mov ebx, r13d
mov dword [rsp + 0xd8], 0
test r10d, r10d
jne 0x14001798e
lea rcx, [rsp + 0x130]
call fcn.14001dbb0
jmp 0x1400190d8
movsd xmm2, qword [0x140034178]
movsd xmm0, qword [0x1400340b0]
divsd xmm0, qword [rsp + 0x40]
movapd xmm1, xmm0
movsd xmm4, qword [0x1400340e0]
movapd xmm3, xmm0
andpd xmm1, xmm2
ucomisd xmm4, xmm1
jbe 0x140018f2b
cvttsd2si rcx, xmm0
pxor xmm1, xmm1
movsd xmm6, qword [0x1400340b0]
andnpd xmm2, xmm0
cvtsi2sd xmm1, rcx
cmpnlesd xmm3, xmm1
andpd xmm3, xmm6
addsd xmm3, xmm1
orpd xmm3, xmm2
mulsd xmm0, xmm3
mov edi, dword [rsp + 0x30]
add edx, edi
mov rdi, qword [rsp + 0x2f8]
mov ebx, edx
movzx r8d, byte [rdi + 8]
cvttsd2si ecx, xmm0
cmp ecx, r8d
cmova ecx, r8d
sub ebx, ecx
jmp 0x140017968
mov r11, r13
mov rdi, rbp
xor edx, edx
mov esi, dword [rsp + 0x38]
movzx r8d, byte [r11 + 3]
mov rcx, rdi
mov rbp, qword [rsp + 0x30]
mov qword [rsp + 0x2f8], r11
movzx ebx, byte [rsp + 0x60]
mov r13d, dword [rsp + 0x48]
imul r8d, r15d
shl r8, 2
call sub.msvcrt.dll_memset
mov r11, qword [rsp + 0x2f8]
jmp 0x140017f60
mov r9d, dword [rsp + 0x2e0]
xor ebx, ebx
mov dword [rsp + 0xd8], 0
test r9d, r9d
jne 0x14001798e
jmp 0x1400190d8
movzx eax, byte [r11 + 8]
mov r8, qword [rsp + 0xc0]
mov rdx, rbp
lea rcx, [rsp + 0x180]
mov qword [rsp + 0x2f8], r11
mov byte [rsp + 0x28], al
movzx eax, byte [r11 + 2]
mov byte [rsp + 0x20], al
call fcn.140017450
mov qword [rsp + 0xb8], rbp
mov r11, qword [rsp + 0x2f8]
jmp 0x140017fb3
mov rax, qword [rsp + 0x2f8]
lea rdi, [0x140034080]
mov r8d, dword [rsp + 0x104]
xor edx, edx
mov qword [rsp + 0xd0], rdi
movzx eax, byte [rax + 1]
movzx eax, byte [rdi + rax]
imul eax, ebx
test r8d, r8d
cmovne edx, r13d
jmp 0x140017950
mov ebx, dword [rsp + 0xd8]
test ebx, ebx
je 0x140018352
mov r9d, r13d
sub r9d, dword [rsp + 0x180]
je 0x140018352
movzx eax, byte [r11 + 8]
mov r8, qword [rsp + 0xc0]
mov rdx, rbp
lea rcx, [rsp + 0x180]
mov qword [rsp + 0x2f8], r11
pxor xmm1, xmm1
mov byte [rsp + 0x28], al
movzx eax, byte [r11 + 2]
mov byte [rsp + 0x20], al
call fcn.140017450
mov r11, qword [rsp + 0x2f8]
mov r9d, r9d
movsd xmm0, qword [rsp + 0x190]
cvtsi2sd xmm1, r9
mulsd xmm1, qword [r11 + 0x10]
subsd xmm0, xmm1
movsd qword [rsp + 0x190], xmm0
jmp 0x140018345
mov r15, rbp
mov eax, dword [rsp + 0x104]
test eax, eax
jne 0x140018eb5
mov rcx, r15
call sub.msvcrt.dll_free
mov eax, 1
jmp 0x140017a67
mov rax, qword [rsp + 0xf8]
mov dword [rax], 0
mov dword [rax + rdi - 4], 0
jmp 0x1400176df