Function at 0x140056930
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x90], xmm15
movaps xmmword [rbp + 0x80], xmm14
movaps xmmword [rbp + 0x70], xmm13
movaps xmmword [rbp + 0x60], xmm12
movaps xmmword [rbp + 0x50], xmm11
movaps xmmword [rbp + 0x40], xmm10
movaps xmmword [rbp + 0x30], xmm9
movaps xmmword [rbp + 0x20], xmm8
movaps xmmword [rbp + 0x10], xmm7
movaps xmmword [rbp], xmm6
mov rsi, r8
mov edi, edx
mov rax, qword [0x1406c4a98]
xor rax, rbp
mov qword [rbp - 8], rax
mov eax, dword [0x1406ce1e0]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
sete al
cmp dword [0x1406ce1e4], 0xa
setl r8b
or r8b, al
nop word cs:[rax + rax]
nop
mov eax, 0xc0
call fcn.1401f8850
sub rsp, rax
mov r12, rsp
mov eax, 0xa0
call fcn.1401f8850
sub rsp, rax
mov rdx, rsp
mov eax, reloc.WS2_32.dll_recv
call fcn.1401f8850
sub rsp, rax
mov rbx, rsp
test r8b, r8b
je 0x1400569c0
mov qword [rbp - 0x60], rdx
mov eax, reloc.WS2_32.dll_recv
call fcn.1401f8850
sub rsp, rax
mov r13, rsp
mov eax, reloc.WS2_32.dll_recv
call fcn.1401f8850
sub rsp, rax
mov rdx, rsp
mov eax, reloc.WS2_32.dll_recv
call fcn.1401f8850
sub rsp, rax
mov r14, rsp
mov eax, reloc.WS2_32.dll_recv
call fcn.1401f8850
sub rsp, rax
mov qword [rbp - 0x30], rsp
movups xmm0, xmmword [rcx + 0x70]
mov qword [rbp - 0x58], rbx
movups xmmword [rbx], xmm0
mov qword [rbp - 0x50], rcx
movups xmm0, xmmword [rcx + 0x50]
movups xmmword [rdx], xmm0
sub rsp, 0x20
mov rcx, r13
mov dword [rbp - 0x48], edi
mov r8d, edi
call fcn.1400558d0
add rsp, 0x20
mov ebx, dword [r13 + 8]
mov eax, dword [r13 + 0xc]
xor r15d, r15d
cmp ebx, eax
jge 0x140058115
mov rcx, qword [rbp - 0x50]
add rcx, 0x60
mov qword [rbp - 0x78], rcx
mov dword [rbp - 0x20], 0
mov dword [rbp - 0xc], 1
xorps xmm12, xmm12
movaps xmm13, xmmword [0x140251cc0]
movss xmm14, dword [0x1402592a0]
mov dword [rbp - 0x1c], 0
xor ecx, ecx
mov qword [rbp - 0x18], rcx
xor edi, edi
mov qword [rbp - 0x38], r13
mov qword [rbp - 0x80], r14
jmp 0x140056aee
mov edx, r14d
or dl, 2
cmp dl, 3
jne 0x14005768d
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
add dword [rbp - 0x20], eax
xor edi, edi
mov ebx, dword [r13 + 8]
mov eax, dword [r13 + 0xc]
cmp ebx, eax
jge 0x140058112
mov rdx, qword [r13]
lea ecx, [rbx + 1]
mov dword [r13 + 8], ecx
movsxd rbx, ebx
mov r14b, byte [rdx + rbx]
cmp r14b, 0x12
jae 0x140056b60
cmp r14b, 7
jae 0x140056c00
cmp r14b, 4
jb 0x140056ac1
jne 0x140056e54
mov eax, dword [0x1406ce1e0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
sete dl
cmp dword [0x1406ce1e4], 0xa
setl al
setge bl
or al, dl
and cl, bl
nop
test cl, cl
jne 0x140056b40
test edi, edi
jle 0x140058112
add edi, 0xffffffff
mov edi, edi
test al, al
je 0x140057cb0
jmp 0x140057c72
cmp r14b, 0x18
jae 0x140056c40
cmp r14b, 0x15
jae 0x140056d77
cmp r14b, 0x13
jb 0x140056ad0
mov edx, dword [0x1406ce1e0]
lea ebx, [rdx - 1]
imul ebx, edx
and ebx, 1
sete r8b
cmp dword [0x1406ce1e4], 0xa
setl dl
setge r9b
or dl, r8b
and bl, r9b
nop word cs:[rax + rax]
nop
test bl, bl
jne 0x140056bb0
cmp dword [rbp - 0xc], 0
je 0x140056bc6
mov ebx, edi
shr ebx, 0x1f
add ebx, edi
sar ebx, 1
add dword [rbp - 0x20], ebx
test dl, dl
je 0x140058110
mov ebx, dword [rbp - 0x20]
mov edx, ebx
add edx, 7
cmovns edx, ebx
add edx, 7
sar edx, 3
add ecx, edx
cmp eax, ecx
mov edx, ecx
cmovl edx, eax
test ecx, ecx
cmovs edx, eax
mov dword [r13 + 8], edx
jmp 0x140057c66
cmp r14b, 0xb
jae 0x140056e17
cmp r14b, 8
jae 0x140056fa9
xor r15d, r15d
test edi, edi
jle 0x140058112
mov edx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
jmp 0x140058029
cmp r14b, 0x1d
jae 0x140056e46
cmp r14b, 0x19
jae 0x140057042
mov r14, rdi
cmp r14d, 8
jl 0x140058112
mov ecx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
lea ebx, [r14 - 2]
xor edi, edi
jmp 0x140056c83
add edi, 6
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setl al
or al, cl
nop word [rax + rax]
test al, al
je 0x140056ca0
lea eax, [rdi + 5]
cmp eax, ebx
jge 0x140057285
cdqe
movss xmm9, dword [r12 + rax*4]
lea eax, [rdi + 4]
cdqe
movss xmm10, dword [r12 + rax*4]
lea eax, [rdi + 3]
cdqe
movss xmm11, dword [r12 + rax*4]
lea eax, [rdi + 2]
cdqe
movss xmm8, dword [r12 + rax*4]
mov eax, edi
or eax, 1
cdqe
movss xmm7, dword [r12 + rax*4]
movsxd rax, edi
movss xmm6, dword [r12 + rax*4]
nop
sub rsp, 0x40
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm11
mov rcx, rsi
movaps xmm1, xmm6
movaps xmm2, xmm7
movaps xmm3, xmm8
call fcn.1400583a0
add rsp, 0x40
mov ecx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
cmp eax, 0xa
jl 0x140056c80
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x140056c80
sub rsp, 0x40
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm11
mov rcx, rsi
movaps xmm1, xmm6
movaps xmm2, xmm7
movaps xmm3, xmm8
call fcn.1400583a0
add rsp, 0x40
jmp 0x140056cf0
jne 0x140057136
cmp edi, 2
jl 0x140058112
lea eax, [rdi - 1]
movss xmm6, dword [r12 + rax*4]
add edi, 0xfffffffe
movss xmm7, dword [r12 + rdi*4]
sub rsp, 0x20
mov rcx, rsi
movaps xmm1, xmm7
movaps xmm2, xmm6
call fcn.140058200
add rsp, 0x20
mov dword [rbp - 0xc], 0
cmp dword [0x1406ce1e4], 0xa
jl 0x140056adc
nop word cs:[rax + rax]
nop dword [rax]
mov eax, dword [0x1406ce1e0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140056adc
sub rsp, 0x20
mov rcx, rsi
movaps xmm1, xmm7
movaps xmm2, xmm6
call fcn.140058200
mov rcx, rsi
movaps xmm1, xmm7
movaps xmm2, xmm6
call fcn.140058200
add rsp, 0x20
cmp dword [0x1406ce1e4], 0xa
jge 0x140056dd0
jmp 0x140056adc
jne 0x140057169
mov rax, qword [rbp - 0x18]
test eax, eax
jle 0x140058112
add eax, 0xffffffff
mov qword [rbp - 0x18], rax
shl rax, 4
mov rcx, qword [rbp - 0x60]
movups xmm0, xmmword [rcx + rax]
movups xmmword [r13], xmm0
jmp 0x140056ade
jne 0x14005725f
mov ebx, dword [rbp - 0x1c]
jmp 0x1400573cf
cmp r14b, 6
jae 0x140057389
mov rbx, rdi
cmp ebx, 2
jl 0x140058112
mov eax, dword [0x1406ce1e4]
xor edi, edi
mov ecx, dword [0x1406ce1e0]
jmp 0x140056e83
add edi, 2
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setl al
or al, cl
nop word [rax + rax]
test al, al
je 0x140056ea0
mov eax, edi
or eax, 1
cmp eax, ebx
jge 0x140056adc
cdqe
movss xmm6, dword [r12 + rax*4]
movsxd rax, edi
movss xmm7, dword [r12 + rax*4]
nop word cs:[rax + rax]
nop dword [rax]
movss xmm0, dword [rsi + 0x10]
addss xmm0, xmm7
movss dword [rsi + 0x10], xmm0
movss xmm1, dword [rsi + 0x14]
addss xmm1, xmm6
movss dword [rsi + 0x14], xmm1
cvttss2si r9d, xmm1
cvttss2si r8d, xmm0
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
mov ecx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
cmp eax, 0xa
jl 0x140056e80
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x140056e80
movss xmm0, dword [rsi + 0x10]
addss xmm0, xmm7
movss dword [rsi + 0x10], xmm0
movss xmm1, dword [rsi + 0x14]
addss xmm1, xmm6
movss dword [rsi + 0x14], xmm1
cvttss2si r9d, xmm1
cvttss2si r8d, xmm0
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
jmp 0x140056ed0
cmp r14b, 9
ja 0x1400573a2
cmp r14b, 8
jne 0x14005768d
mov rbx, rdi
cmp ebx, 6
jl 0x140058112
mov edi, 5
nop
lea eax, [rdi - 5]
lea ecx, [rdi - 4]
movsxd rcx, ecx
lea edx, [rdi - 3]
movsxd rdx, edx
movss xmm3, dword [r12 + rdx*4]
lea edx, [rdi - 2]
movsxd rdx, edx
movss xmm0, dword [r12 + rdx*4]
lea edx, [rdi - 1]
movsxd rdx, edx
movss xmm4, dword [r12 + rdx*4]
movsxd rdi, edi
movss xmm5, dword [r12 + rdi*4]
movss xmm2, dword [r12 + rcx*4]
cdqe
movss xmm1, dword [r12 + rax*4]
sub rsp, 0x40
movss dword [rsp + 0x30], xmm5
movss dword [rsp + 0x28], xmm4
movss dword [rsp + 0x20], xmm0
mov rcx, rsi
call fcn.1400583a0
add rsp, 0x40
add edi, 6
cmp edi, ebx
jl 0x140056fd0
jmp 0x140056adc
jne 0x1400574c9
mov ecx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
lea ebx, [rcx - 1]
imul ebx, ecx
cmp eax, 0xa
setge dl
and dl, bl
nop word cs:[rax + rax]
nop dword [rax]
test dl, dl
jne 0x140057070
mov r14, rdi
cmp r14d, 8
jl 0x140058112
lea ebx, [r14 - 6]
xor edi, edi
nop word [rax + rax]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete cl
cmp eax, 0xa
setl al
or al, cl
nop word cs:[rax + rax]
nop
test al, al
je 0x1400570b0
mov eax, edi
or eax, 1
cmp eax, ebx
jge 0x140057786
cdqe
movss xmm0, dword [r12 + rax*4]
movsxd rax, edi
movss xmm1, dword [r12 + rax*4]
addss xmm1, dword [rsi + 0x10]
movss dword [rsi + 0x10], xmm1
addss xmm0, dword [rsi + 0x14]
movss dword [rsi + 0x14], xmm0
cvttss2si r9d, xmm0
cvttss2si r8d, xmm1
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
add edi, 2
mov ecx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
jmp 0x140057090
cmp r14b, 0x17
jae 0x140056ad0
test edi, edi
jle 0x140058112
add edi, 0xffffffff
movss xmm1, dword [r12 + rdi*4]
sub rsp, 0x20
xorps xmm2, xmm2
mov rcx, rsi
call fcn.140058200
add rsp, 0x20
jmp 0x140057c66
cmp r14b, 0xe
jae 0x140057674
cmp r14b, 0xc
jne 0x14005768d
mov ebx, dword [0x1406ce1e0]
mov r8d, dword [0x1406ce1e4]
lea r9d, [rbx - 1]
imul r9d, ebx
test r9b, 1
sete r10b
cmp r8d, 0xa
setl r11b
or r11b, r10b
mov ebx, ecx
cmp r11b, 1
jne 0x1400580ed
cmp ecx, eax
jge 0x1400580bd
lea ebx, [rcx + 1]
mov dword [r13 + 8], ebx
test r11b, r11b
je 0x1400580ed
movsxd rax, ecx
mov al, byte [rdx + rax]
cmp al, 0x24
jae 0x140057867
cmp al, 0x23
je 0x1400578e8
cmp al, 0x22
jne 0x1400580c4
cmp edi, 7
jl 0x1400580c4
cmp r8d, 0xa
setl al
test r9b, 1
sete dl
movss xmm8, dword [r12]
movss xmm9, dword [r12 + 4]
movaps xmm0, xmm13
movss xmm13, dword [r12 + 8]
movss xmm11, dword [r12 + 0xc]
movss xmm10, dword [r12 + 0x10]
mov ecx, eax
and cl, dl
xor cl, 1
xor al, dl
mov edx, eax
xor dl, 1
or dl, cl
movss xmm7, dword [r12 + 0x14]
movss xmm14, dword [r12 + 0x18]
movaps xmm6, xmm13
xorps xmm6, xmm0
cmp dl, 1
jne 0x140057ccb
xor al, cl
jne 0x140057d47
jmp 0x140057ccb
cmp r14b, 0x1f
jae 0x14005767b
cmp edi, 4
jl 0x140058112
mov edx, dword [0x1406ce1e0]
xor eax, eax
mov ecx, dword [0x1406ce1e4]
jmp 0x140057da4
mov eax, edi
or eax, 1
cmp eax, r14d
jge 0x140058112
cdqe
movss xmm6, dword [r12 + rax*4]
movsxd rax, edi
movss xmm7, dword [r12 + rax*4]
mov r13, qword [rbp - 0x38]
nop dword [rax + rax]
movss xmm0, dword [rsi + 0x10]
addss xmm0, xmm7
movss dword [rsi + 0x10], xmm0
movss xmm1, dword [rsi + 0x14]
addss xmm1, xmm6
movss dword [rsi + 0x14], xmm1
cvttss2si r9d, xmm1
cvttss2si r8d, xmm0
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
xor edi, edi
cmp dword [0x1406ce1e4], 0xa
jl 0x140056ade
mov eax, dword [0x1406ce1e0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140056ade
movss xmm0, dword [rsi + 0x10]
addss xmm0, xmm7
movss dword [rsi + 0x10], xmm0
movss xmm1, dword [rsi + 0x14]
addss xmm1, xmm6
movss dword [rsi + 0x14], xmm1
cvttss2si r9d, xmm1
cvttss2si r8d, xmm0
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
jmp 0x1400572b0
xor r15d, r15d
test edi, edi
jle 0x140058115
cmp r15d, edi
jge 0x140056adc
jmp 0x140057f43
mov ebx, 1
cmp dword [rbp - 0x1c], 0
jne 0x1400573cf
mov rdx, qword [rbp - 0x50]
cmp dword [rdx + 0x9c], 0
je 0x1400573cf
sub rsp, 0x20
mov rcx, qword [rbp - 0x58]
mov r8d, dword [rbp - 0x48]
call fcn.1400584b0
add rsp, 0x20
mov rdx, qword [rbp - 0x30]
mov rax, qword [rbp - 0x18]
test edi, edi
jle 0x140058112
cmp eax, 9
jg 0x140058112
mov dword [rbp - 0x1c], ebx
add edi, 0xffffffff
mov qword [rbp - 0x28], rdi
cvttss2si r15d, dword [r12 + rdi*4]
movsxd rbx, eax
shl rbx, 4
add rbx, qword [rbp - 0x60]
cmp r14b, 0xa
mov rdi, qword [rbp - 0x78]
cmove rdi, qword [rbp - 0x58]
mov r14, qword [rbp - 0x80]
nop word cs:[rax + rax]
nop
movups xmm0, xmmword [r13]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rdi]
movups xmmword [rdx], xmm0
sub rsp, 0x20
mov rcx, r14
mov r8d, r15d
call fcn.140058760
add rsp, 0x20
cmp dword [0x1406ce1e4], 0xa
jl 0x140057493
mov eax, dword [0x1406ce1e0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140057493
movups xmm0, xmmword [r13]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rdi]
mov r13, r14
mov r14, qword [rbp - 0x30]
movups xmmword [r14], xmm0
sub rsp, 0x20
mov rcx, r13
mov rdx, r14
mov r8d, r15d
call fcn.140058760
mov rdx, r14
mov r14, r13
mov r13, qword [rbp - 0x38]
add rsp, 0x20
jmp 0x140057420
movups xmm0, xmmword [r14]
movups xmmword [r13], xmm0
cmp dword [r13 + 0xc], 0
mov rdi, qword [rbp - 0x28]
mov r15d, 0
je 0x140058115
mov rax, qword [rbp - 0x18]
add eax, 1
mov qword [rbp - 0x18], rax
mov dword [r13 + 8], 0
jmp 0x140056ade
cmp r14b, 0x1c
jae 0x14005768d
mov rbx, rdi
cmp ebx, 4
jl 0x140058112
mov ecx, ebx
or ecx, 0xfffffffe
xor edx, edx
cmp ecx, 0xfffffffe
sete dl
mov eax, 4
sub eax, edx
cmp eax, ebx
jge 0x140056adc
xor r15d, r15d
xorps xmm8, xmm8
cmp ecx, 0xfffffffe
setne cl
je 0x140057510
movss xmm8, dword [r12]
mov r15b, cl
nop word cs:[rax + rax]
nop dword [rax]
lea ecx, [r15 + 2]
lea edx, [r15 + 1]
cdqe
movss xmm10, dword [r12 + rax*4]
movsxd rax, ecx
movss xmm7, dword [r12 + rax*4]
movsxd rax, edx
movss xmm9, dword [r12 + rax*4]
movsxd rax, r15d
movss xmm6, dword [r12 + rax*4]
cmp r14b, 0x1b
jne 0x1400575e0
nop word cs:[rax + rax]
nop
sub rsp, 0x40
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm7
mov dword [rsp + 0x30], 0
mov rcx, rsi
movaps xmm1, xmm6
movaps xmm2, xmm8
movaps xmm3, xmm9
call fcn.1400583a0
add rsp, 0x40
mov edx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x140057625
test ecx, ecx
je 0x140057625
sub rsp, 0x40
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm7
mov dword [rsp + 0x30], 0
mov rcx, rsi
movaps xmm1, xmm6
movaps xmm2, xmm8
movaps xmm3, xmm9
call fcn.1400583a0
add rsp, 0x40
jmp 0x140057560
sub rsp, 0x40
movss dword [rsp + 0x30], xmm10
movss dword [rsp + 0x20], xmm7
mov dword [rsp + 0x28], 0
mov rcx, rsi
movaps xmm1, xmm8
movaps xmm2, xmm6
movaps xmm3, xmm9
call fcn.1400583a0
add rsp, 0x40
mov edx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
mov edx, eax
and dl, cl
xor dl, 1
xor al, cl
mov ecx, eax
xor cl, dl
xor al, 1
or al, dl
and al, cl
nop word cs:[rax + rax]
nop dword [rax]
test al, al
jne 0x140057650
lea ecx, [r15 + 4]
add r15d, 7
xorps xmm8, xmm8
mov eax, r15d
cmp r15d, edi
mov r15d, ecx
jl 0x140057520
jmp 0x140056adc
jne 0x14005768d
jmp 0x140058176
jne 0x14005768d
xor ebx, ebx
cmp edi, 4
jge 0x140057e35
jmp 0x140058112
cmp r14b, 0x1f
ja 0x14005769d
cmp r14b, 0x1c
jne 0x140058112
cmp r14b, 0xff
je 0x140057745
nop word [rax + rax]
add ecx, 0xffffffff
cmp eax, ecx
mov edx, ecx
cmovl edx, eax
test ecx, ecx
cmovs edx, eax
mov dword [r13 + 8], edx
sub rsp, 0x20
mov rcx, r13
call fcn.140056170
add rsp, 0x20
mov ecx, dword [0x1406ce1e0]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
sete bl
cmp dword [0x1406ce1e4], 0xa
setl cl
mov edx, ecx
and dl, bl
xor dl, 1
xor cl, bl
cmp cl, dl
je 0x14005773b
xor cl, 1
or dl, cl
je 0x14005773b
mov eax, dword [r13 + 8]
mov ecx, dword [r13 + 0xc]
add eax, 0xffffffff
cmp ecx, eax
mov edx, eax
cmovl edx, ecx
test eax, eax
cmovs edx, ecx
mov dword [r13 + 8], edx
sub rsp, 0x20
mov rcx, r13
call fcn.140056170
add rsp, 0x20
mov ecx, dword [r13 + 8]
mov eax, dword [r13 + 0xc]
jmp 0x1400576b0
cwde
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
jmp 0x140057766
sub rsp, 0x20
mov rcx, r13
mov edx, 4
call fcn.140055d80
add rsp, 0x20
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, xmm14
cmp edi, 0x2f
mov r15d, 0
jg 0x140058115
movsxd rax, edi
add edi, 1
movss dword [r12 + rax*4], xmm0
jmp 0x140056ade
lea ecx, [rdi + 5]
cmp ecx, r14d
jge 0x140058112
movsxd rcx, ecx
movss xmm9, dword [r12 + rcx*4]
lea ecx, [rdi + 4]
movsxd rcx, ecx
movss xmm10, dword [r12 + rcx*4]
lea ecx, [rdi + 3]
movsxd rcx, ecx
movss xmm11, dword [r12 + rcx*4]
lea ecx, [rdi + 2]
movsxd rcx, ecx
movss xmm8, dword [r12 + rcx*4]
cdqe
movss xmm7, dword [r12 + rax*4]
movsxd rax, edi
movss xmm6, dword [r12 + rax*4]
mov r13, qword [rbp - 0x38]
nop word cs:[rax + rax]
nop
sub rsp, 0x40
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm11
mov rcx, rsi
movaps xmm1, xmm6
movaps xmm2, xmm7
movaps xmm3, xmm8
call fcn.1400583a0
add rsp, 0x40
xor edi, edi
cmp dword [0x1406ce1e4], 0xa
jl 0x140056ade
mov eax, dword [0x1406ce1e0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140056ade
sub rsp, 0x40
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm11
mov rcx, rsi
movaps xmm1, xmm6
movaps xmm2, xmm7
movaps xmm3, xmm8
call fcn.1400583a0
add rsp, 0x40
jmp 0x1400577e0
cmp al, 0x24
movaps xmm5, xmmword [0x140251cf0]
je 0x140057a77
cmp al, 0x25
jne 0x1400580c4
cmp edi, 0xb
jl 0x1400580c4
movsd xmm1, qword [r12]
movsd xmm3, qword [r12 + 8]
movsd xmm0, qword [r12 + 0x10]
movsd xmm7, qword [r12 + 0x18]
movsd xmm6, qword [r12 + 0x20]
movss xmm8, dword [r12 + 0x28]
movaps xmm2, xmm1
addps xmm2, xmm3
addps xmm2, xmm0
addps xmm2, xmm7
addps xmm2, xmm6
movaps xmm4, xmm2
andps xmm4, xmm5
pshufd xmm5, xmm4, 0x55
ucomiss xmm4, xmm5
jbe 0x140057be8
shufps xmm2, xmm2, 0x55
xorps xmm2, xmm13
movaps xmm9, xmm8
movaps xmm8, xmm2
jmp 0x140057bf0
cmp edi, 0xd
jl 0x1400580c4
movss xmm1, dword [r12]
movss xmm2, dword [r12 + 4]
movss xmm3, dword [r12 + 8]
movss xmm4, dword [r12 + 0xc]
movss xmm0, dword [r12 + 0x10]
movss xmm5, dword [r12 + 0x14]
movss xmm9, dword [r12 + 0x18]
movss xmm6, dword [r12 + 0x1c]
movss dword [rbp - 0x70], xmm6
movss xmm10, dword [r12 + 0x20]
movss xmm6, dword [r12 + 0x24]
movss dword [rbp - 0x28], xmm6
movss xmm8, dword [r12 + 0x28]
movss xmm7, dword [r12 + 0x2c]
movss dword [rbp - 0x44], xmm8
movss dword [rbp - 0x40], xmm9
movss dword [rbp - 0x3c], xmm7
sub rsp, 0x40
movaps xmm6, xmm5
movss dword [rsp + 0x30], xmm5
movaps xmm12, xmm0
movss dword [rsp + 0x28], xmm0
movaps xmm11, xmm4
movss dword [rsp + 0x20], xmm4
mov rcx, rsi
movaps xmm13, xmm1
movaps xmm14, xmm2
movaps xmm15, xmm3
call fcn.1400583a0
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm8
movss xmm0, dword [rbp - 0x28]
movss dword [rsp + 0x20], xmm0
mov rcx, rsi
movaps xmm1, xmm9
movss xmm9, dword [rbp - 0x70]
movaps xmm2, xmm9
movaps xmm3, xmm10
call fcn.1400583a0
add rsp, 0x40
cmp dword [0x1406ce1e4], 0xa
mov al, 1
jl 0x1400580c6
mov ecx, dword [0x1406ce1e0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x1400580c6
sub rsp, 0x40
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm12
movss dword [rsp + 0x20], xmm11
mov rcx, rsi
movaps xmm1, xmm13
movaps xmm2, xmm14
movaps xmm3, xmm15
call fcn.1400583a0
movss xmm7, dword [rbp - 0x3c]
movss dword [rsp + 0x30], xmm7
movss xmm8, dword [rbp - 0x44]
movss dword [rsp + 0x28], xmm8
movss xmm0, dword [rbp - 0x28]
movss dword [rsp + 0x20], xmm0
mov rcx, rsi
movaps xmm2, xmm9
movss xmm9, dword [rbp - 0x40]
movaps xmm1, xmm9
movaps xmm3, xmm10
call fcn.1400583a0
movaps xmm5, xmm6
movaps xmm4, xmm11
movaps xmm0, xmm12
movaps xmm3, xmm15
movaps xmm2, xmm14
movaps xmm1, xmm13
add rsp, 0x40
jmp 0x14005795f
cmp edi, 9
jl 0x1400580c4
movss xmm1, dword [r12]
movss xmm2, dword [r12 + 4]
movss xmm3, dword [r12 + 8]
movss xmm5, dword [r12 + 0xc]
movss xmm4, dword [r12 + 0x10]
movss xmm15, dword [r12 + 0x14]
movss xmm6, dword [r12 + 0x18]
movss xmm0, dword [r12 + 0x1c]
movss xmm10, dword [r12 + 0x20]
movaps xmm7, xmm2
addss xmm7, xmm5
movss dword [rbp - 0x28], xmm0
addss xmm7, xmm0
xorps xmm7, xmm13
movaps xmmword [rbp - 0x70], xmm7
sub rsp, 0x40
movaps xmm11, xmm4
movss dword [rsp + 0x28], xmm4
movaps xmm13, xmm5
movss dword [rsp + 0x20], xmm5
mov dword [rsp + 0x30], 0
mov rcx, rsi
movaps xmm9, xmm1
movaps xmm14, xmm2
movaps xmm8, xmm3
call fcn.1400583a0
movss dword [rsp + 0x30], xmm7
movaps xmm12, xmm10
movss dword [rsp + 0x28], xmm10
movss xmm0, dword [rbp - 0x28]
movaps xmm10, xmm0
movss dword [rsp + 0x20], xmm0
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm7, xmm15
movaps xmm1, xmm15
movaps xmm3, xmm6
call fcn.1400583a0
add rsp, 0x40
cmp dword [0x1406ce1e4], 0xa
mov al, 1
jl 0x1400580c6
mov ecx, dword [0x1406ce1e0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x1400580c6
sub rsp, 0x40
movss dword [rsp + 0x28], xmm11
movss dword [rsp + 0x20], xmm13
mov dword [rsp + 0x30], 0
mov rcx, rsi
movaps xmm1, xmm9
movaps xmm2, xmm14
movaps xmm3, xmm8
call fcn.1400583a0
movaps xmm0, xmmword [rbp - 0x70]
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x28], xmm12
movss dword [rsp + 0x20], xmm10
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm15, xmm7
movaps xmm7, xmm0
movaps xmm10, xmm12
movaps xmm1, xmm15
movaps xmm3, xmm6
call fcn.1400583a0
movaps xmm5, xmm13
movaps xmm4, xmm11
movaps xmm2, xmm14
movaps xmm3, xmm8
movaps xmm1, xmm9
add rsp, 0x40
jmp 0x140057ad6
xorps xmm2, xmm13
movaps xmm9, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
movaps xmm4, xmm3
shufps xmm4, xmm3, 0x55
movaps xmm5, xmm0
shufps xmm5, xmm0, 0x55
sub rsp, 0x40
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x30], xmm5
movss dword [rsp + 0x20], xmm4
mov rcx, rsi
call fcn.1400583a0
add rsp, 0x40
movaps xmm2, xmm7
shufps xmm2, xmm7, 0x55
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
sub rsp, 0x40
movss dword [rsp + 0x30], xmm8
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm0
mov rcx, rsi
movaps xmm1, xmm7
movaps xmm3, xmm6
call fcn.1400583a0
add rsp, 0x40
mov al, 1
jmp 0x1400580c6
mov dword [rbp - 0xc], 0
jmp 0x140056adc
movss xmm2, dword [r12 + rdi*4]
sub rsp, 0x20
xorps xmm1, xmm1
mov rcx, rsi
call fcn.140058200
add rsp, 0x20
cmp dword [0x1406ce1e4], 0xa
jl 0x140057c66
mov dword [rbp - 0xc], 0
mov eax, dword [0x1406ce1e0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140056adc
movss xmm2, dword [r12 + rdi*4]
sub rsp, 0x20
xorps xmm1, xmm1
mov rcx, rsi
call fcn.140058200
add rsp, 0x20
jmp 0x140057c72
sub rsp, 0x40
movss dword [rsp + 0x28], xmm11
movss dword [rsp + 0x20], xmm13
mov dword [rsp + 0x30], 0
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm1, xmm8
movaps xmm3, xmm9
call fcn.1400583a0
movss dword [rsp + 0x28], xmm14
movss dword [rsp + 0x20], xmm6
mov dword [rsp + 0x30], 0
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm1, xmm10
movaps xmm3, xmm7
call fcn.1400583a0
add rsp, 0x40
cmp dword [0x1406ce1e4], 0xa
mov al, 1
jl 0x1400580c6
mov ecx, dword [0x1406ce1e0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x1400580c6
sub rsp, 0x40
movss dword [rsp + 0x28], xmm11
movss dword [rsp + 0x20], xmm13
mov dword [rsp + 0x30], 0
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm1, xmm8
movaps xmm3, xmm9
call fcn.1400583a0
movss dword [rsp + 0x28], xmm14
movss dword [rsp + 0x20], xmm6
mov dword [rsp + 0x30], 0
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm1, xmm10
movaps xmm3, xmm7
call fcn.1400583a0
add rsp, 0x40
jmp 0x140057ccb
lea ebx, [rdx - 1]
imul ebx, edx
test bl, 1
sete dl
cmp ecx, 0xa
setl cl
or cl, dl
nop dword [rax + rax]
test cl, cl
je 0x140057dc0
lea ecx, [rax + 3]
cmp ecx, edi
jge 0x140056adc
mov edx, edi
sub edx, eax
lea ebx, [rax + 4]
xorps xmm0, xmm0
cmp edx, 5
jne 0x140057de7
movsxd rdx, ebx
movss xmm0, dword [r12 + rdx*4]
movsxd rcx, ecx
movss xmm1, dword [r12 + rcx*4]
lea ecx, [rax + 2]
movsxd rcx, ecx
movss xmm4, dword [r12 + rcx*4]
lea ecx, [rax + 1]
movsxd rcx, ecx
movss xmm3, dword [r12 + rcx*4]
cdqe
movss xmm2, dword [r12 + rax*4]
sub rsp, 0x40
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm4
xorps xmm1, xmm1
mov rcx, rsi
call fcn.1400583a0
add rsp, 0x40
mov edx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
test ecx, ecx
sete dl
cmp eax, 0xa
setl cl
lea eax, [rbx + 3]
cmp eax, edi
jge 0x140056adc
or cl, dl
nop word cs:[rax + rax]
nop dword [rax]
test cl, cl
je 0x140057e70
mov ecx, edi
sub ecx, ebx
xorps xmm8, xmm8
cmp ecx, 5
jne 0x140057e8d
lea ecx, [rbx + 4]
movsxd rcx, ecx
movss xmm8, dword [r12 + rcx*4]
cdqe
movss xmm9, dword [r12 + rax*4]
lea eax, [rbx + 2]
cdqe
movss xmm10, dword [r12 + rax*4]
lea eax, [rbx + 1]
cdqe
movss xmm6, dword [r12 + rax*4]
movsxd rax, ebx
movss xmm7, dword [r12 + rax*4]
nop word cs:[rax + rax]
nop
sub rsp, 0x40
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm8
movss dword [rsp + 0x20], xmm10
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm1, xmm7
movaps xmm3, xmm6
call fcn.1400583a0
add rsp, 0x40
mov edx, dword [0x1406ce1e0]
mov ecx, dword [0x1406ce1e4]
lea eax, [rdx - 1]
imul eax, edx
test al, 1
je 0x140057f39
cmp ecx, 9
jle 0x140057f39
sub rsp, 0x40
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm8
movss dword [rsp + 0x20], xmm10
xorps xmm2, xmm2
mov rcx, rsi
movaps xmm1, xmm7
movaps xmm3, xmm6
call fcn.1400583a0
add rsp, 0x40
jmp 0x140057ec0
add ebx, 4
mov eax, ebx
jmp 0x140057da4
movsxd rax, r15d
movss xmm6, dword [r12 + rax*4]
nop dword [rax]
movss xmm0, dword [rsi + 0x10]
addss xmm0, xmm6
movss dword [rsi + 0x10], xmm0
movss xmm1, dword [rsi + 0x14]
addss xmm1, xmm12
movss dword [rsi + 0x14], xmm1
cvttss2si r9d, xmm1
cvttss2si r8d, xmm0
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
mov edx, dword [0x1406ce1e0]
mov eax, dword [0x1406ce1e4]
lea ecx, [rdx - 1]
imul ecx, edx
and ecx, 1
cmp eax, 0xa
jl 0x140058025
test ecx, ecx
je 0x140058025
movss xmm0, dword [rsi + 0x10]
addss xmm0, xmm6
movss dword [rsi + 0x10], xmm0
movss xmm1, dword [rsi + 0x14]
addss xmm1, xmm12
movss dword [rsi + 0x14], xmm1
cvttss2si r9d, xmm1
cvttss2si r8d, xmm0
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
jmp 0x140057f50
add r15d, 1
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
or al, cl
nop word cs:[rax + rax]
test al, al
je 0x140058040
cmp r15d, edi
jge 0x140056adc
movsxd rax, r15d
movss xmm0, dword [r12 + rax*4]
movss xmm1, dword [rsi + 0x10]
addss xmm1, xmm12
movss dword [rsi + 0x10], xmm1
addss xmm0, dword [rsi + 0x14]
movss dword [rsi + 0x14], xmm0
cvttss2si r9d, xmm0
cvttss2si r8d, xmm1
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
add r15d, 1
cmp r15d, edi
jge 0x140056adc
jmp 0x140057f43
mov ebx, ecx
test r11b, r11b
je 0x1400580ed
xor eax, eax
xor edi, edi
mov r15d, 0
test al, al
movaps xmm13, xmmword [0x140251cc0]
movss xmm14, dword [0x1402592a0]
xorps xmm12, xmm12
jne 0x140056ade
jmp 0x140058115
cmp ebx, eax
jge 0x1400580f8
add ebx, 1
mov dword [r13 + 8], ebx
mov ecx, ebx
cmp ecx, eax
jge 0x1400580bd
jmp 0x1400571b9
jmp 0x140058110
xor r15d, r15d
mov rcx, qword [rbp - 8]
xor rcx, rbp
sub rsp, 0x20
call fcn.1401f88b0
add rsp, 0x20
mov eax, r15d
movaps xmm6, xmmword [rbp]
movaps xmm7, xmmword [rbp + 0x10]
movaps xmm8, xmmword [rbp + 0x20]
movaps xmm9, xmmword [rbp + 0x30]
movaps xmm10, xmmword [rbp + 0x40]
movaps xmm11, xmmword [rbp + 0x50]
movaps xmm12, xmmword [rbp + 0x60]
movaps xmm13, xmmword [rbp + 0x70]
movaps xmm14, xmmword [rbp + 0x80]
movaps xmm15, xmmword [rbp + 0x90]
lea rsp, [rbp + 0xa8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movss xmm0, dword [rsi + 8]
movss xmm1, dword [rsi + 0xc]
ucomiss xmm0, dword [rsi + 0x10]
jne 0x140058190
jp 0x140058190
ucomiss xmm1, dword [rsi + 0x14]
jne 0x140058190
jnp 0x1400581f3
cvttss2si r9d, xmm1
cvttss2si r8d, xmm0
sub rsp, 0x40
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov dl, 2
call fcn.1400588c0
add rsp, 0x40
mov eax, dword [0x1406ce1e8]
lea ecx, [rax - 1]
imul ecx, eax
cmp dword [0x1406ce1ec], 0xa
setge al
and al, cl
mov r15d, 1
test al, al
jne 0x1400581e4
jmp 0x140058115
mov r15d, 1
jmp 0x140058115