Function at 0x140004818
Capabilities:
Encrypt data using speck

Disassembly:
jmp 0x140128e20
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x318
lea rbp, [rsp + 0x30]
mov rbx, rdx
mov r13, r8
mov rdi, r9
mov r12, rcx
mov r8d, dword [rbx]
test r8d, r8d
je 0x140129eae
mov rcx, r12
mov rdx, qword [rbp + 0x370]
mov dword [rbp + 0x2c0], edx
mov dword [rbp], r8d
call fcn.14000425a
mov r8d, dword [rbp]
test eax, eax
je 0x14012a4f6
mov esi, 1
mov r14d, esi
mov r10, qword [rbp + 0x358]
mov r15d, r14d
test r8d, r8d
jle 0x140129b8c
cmp r8d, 0x28
jl 0x14012a4de
mov r11, qword [rbp + 0x350]
and r11, 0xf
test r11d, r11d
je 0x140128ec2
test r11d, 3
jne 0x14012a4de
neg r11d
add r11d, 0x10
shr r11d, 2
lea r9d, [r11 + 0x28]
cmp r8d, r9d
jl 0x14012a4de
mov r9d, r8d
mov eax, 0x66666667
sub r9d, r11d
imul r9d
mov ecx, r9d
sar edx, 4
sar ecx, 0x1f
sub edx, ecx
mov ecx, r11d
lea eax, [rdx + rdx*4]
shl eax, 3
sub r9d, eax
xor eax, eax
neg r9d
add r9d, r8d
test r11d, r11d
jbe 0x140128f49
mov qword [rbp + 0x2a8], rbx
mov r11, qword [rbp + 0x350]
mov ebx, dword [rdi + rax*4]
cmp ebx, esi
mov edx, dword [r13 + rax*4]
cmovg esi, ebx
mov ebx, dword [r11 + rax*4]
lea edx, [rbx + rdx - 1]
cmp edx, r14d
cmovg r14d, edx
mov edx, dword [r10 + rax*4]
inc rax
lea ebx, [rbx + rdx - 1]
cmp ebx, r15d
cmovg r15d, ebx
cmp rax, rcx
jb 0x140128f0f
mov rbx, qword [rbp + 0x2a8]
movd xmm3, esi
movd xmm0, r15d
movd xmm2, r14d
lea rsi, [r10 + rcx*4]
pshufd xmm1, xmm0, 0
pshufd xmm3, xmm3, 0
pcmpeqd xmm0, xmm0
pshufd xmm2, xmm2, 0
movsxd rdx, r9d
test rsi, 0xf
je 0x140129416
movups xmmword [rbp + 0x260], xmm15
mov rsi, qword [rbp + 0x350]
movdqu xmm5, xmmword [rdi + rcx*4]
movdqu xmm15, xmmword [r13 + rcx*4]
movdqa xmm4, xmm5
pxor xmm5, xmm3
pcmpgtd xmm4, xmm3
pand xmm4, xmm5
pxor xmm3, xmm4
movdqu xmm4, xmmword [rsi + rcx*4]
paddd xmm15, xmm4
paddd xmm15, xmm0
movdqa xmm5, xmm15
pxor xmm15, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm15
movdqu xmm15, xmmword [r10 + rcx*4]
paddd xmm15, xmm4
pxor xmm2, xmm5
paddd xmm15, xmm0
movdqu xmm5, xmmword [rdi + rcx*4 + 0x10]
movdqa xmm4, xmm15
pxor xmm15, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm15
movdqa xmm15, xmm5
pcmpgtd xmm15, xmm3
pxor xmm5, xmm3
pxor xmm1, xmm4
pand xmm15, xmm5
movdqu xmm4, xmmword [r13 + rcx*4 + 0x10]
pxor xmm3, xmm15
movdqu xmm15, xmmword [rsi + rcx*4 + 0x10]
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm5, xmm4
pxor xmm4, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm4
movdqu xmm4, xmmword [r10 + rcx*4 + 0x10]
paddd xmm4, xmm15
pxor xmm2, xmm5
paddd xmm4, xmm0
movdqa xmm15, xmm4
pxor xmm4, xmm1
pcmpgtd xmm15, xmm1
pand xmm15, xmm4
movdqu xmm4, xmmword [rdi + rcx*4 + 0x20]
movdqa xmm5, xmm4
pxor xmm4, xmm3
pcmpgtd xmm5, xmm3
pxor xmm1, xmm15
movdqu xmm15, xmmword [r13 + rcx*4 + 0x20]
pand xmm5, xmm4
pxor xmm3, xmm5
movdqu xmm5, xmmword [rsi + rcx*4 + 0x20]
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqa xmm4, xmm15
pxor xmm15, xmm2
pcmpgtd xmm4, xmm2
pand xmm4, xmm15
movdqu xmm15, xmmword [r10 + rcx*4 + 0x20]
paddd xmm15, xmm5
pxor xmm2, xmm4
paddd xmm15, xmm0
movdqu xmm4, xmmword [rdi + rcx*4 + 0x30]
movdqa xmm5, xmm15
pxor xmm15, xmm1
pcmpgtd xmm5, xmm1
pand xmm5, xmm15
movdqa xmm15, xmm4
pxor xmm1, xmm5
pcmpgtd xmm15, xmm3
movdqu xmm5, xmmword [r13 + rcx*4 + 0x30]
pxor xmm4, xmm3
pand xmm15, xmm4
movdqu xmm4, xmmword [rsi + rcx*4 + 0x30]
pxor xmm3, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm15, xmm5
pxor xmm5, xmm2
pcmpgtd xmm15, xmm2
pand xmm15, xmm5
movdqu xmm5, xmmword [r10 + rcx*4 + 0x30]
paddd xmm5, xmm4
pxor xmm2, xmm15
paddd xmm5, xmm0
movdqa xmm4, xmm5
pxor xmm5, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm5
movdqu xmm5, xmmword [rdi + rcx*4 + 0x40]
movdqa xmm15, xmm5
pxor xmm5, xmm3
pcmpgtd xmm15, xmm3
pxor xmm1, xmm4
movdqu xmm4, xmmword [r13 + rcx*4 + 0x40]
pand xmm15, xmm5
pxor xmm3, xmm15
movdqu xmm15, xmmword [rsi + rcx*4 + 0x40]
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm5, xmm4
pxor xmm4, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm4
movdqu xmm4, xmmword [r10 + rcx*4 + 0x40]
paddd xmm4, xmm15
pxor xmm2, xmm5
paddd xmm4, xmm0
movdqa xmm15, xmm4
pxor xmm4, xmm1
pcmpgtd xmm15, xmm1
pand xmm15, xmm4
movdqu xmm4, xmmword [rdi + rcx*4 + 0x50]
movdqa xmm5, xmm4
pxor xmm4, xmm3
pcmpgtd xmm5, xmm3
pxor xmm1, xmm15
movdqu xmm15, xmmword [r13 + rcx*4 + 0x50]
pand xmm5, xmm4
pxor xmm3, xmm5
movdqu xmm5, xmmword [rsi + rcx*4 + 0x50]
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqa xmm4, xmm15
pxor xmm15, xmm2
pcmpgtd xmm4, xmm2
pand xmm4, xmm15
movdqu xmm15, xmmword [r10 + rcx*4 + 0x50]
paddd xmm15, xmm5
pxor xmm2, xmm4
paddd xmm15, xmm0
nop
movdqu xmm4, xmmword [rdi + rcx*4 + 0x60]
movdqa xmm5, xmm15
pxor xmm15, xmm1
pcmpgtd xmm5, xmm1
pand xmm5, xmm15
movdqa xmm15, xmm4
pxor xmm1, xmm5
pcmpgtd xmm15, xmm3
movdqu xmm5, xmmword [r13 + rcx*4 + 0x60]
pxor xmm4, xmm3
pand xmm15, xmm4
movdqu xmm4, xmmword [rsi + rcx*4 + 0x60]
pxor xmm3, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm15, xmm5
pxor xmm5, xmm2
pcmpgtd xmm15, xmm2
pand xmm15, xmm5
movdqu xmm5, xmmword [r10 + rcx*4 + 0x60]
paddd xmm5, xmm4
pxor xmm2, xmm15
paddd xmm5, xmm0
movdqa xmm4, xmm5
pxor xmm5, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm5
movdqu xmm5, xmmword [rdi + rcx*4 + 0x70]
movdqa xmm15, xmm5
pxor xmm5, xmm3
pcmpgtd xmm15, xmm3
pxor xmm1, xmm4
movdqu xmm4, xmmword [r13 + rcx*4 + 0x70]
pand xmm15, xmm5
pxor xmm3, xmm15
movdqu xmm15, xmmword [rsi + rcx*4 + 0x70]
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm5, xmm4
pxor xmm4, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm4
movdqu xmm4, xmmword [r10 + rcx*4 + 0x70]
paddd xmm4, xmm15
pxor xmm2, xmm5
paddd xmm4, xmm0
movdqa xmm15, xmm4
pxor xmm4, xmm1
pcmpgtd xmm15, xmm1
pand xmm15, xmm4
movdqu xmm4, xmmword [rdi + rcx*4 + 0x80]
movdqa xmm5, xmm4
pxor xmm4, xmm3
pcmpgtd xmm5, xmm3
pxor xmm1, xmm15
movdqu xmm15, xmmword [r13 + rcx*4 + 0x80]
pand xmm5, xmm4
pxor xmm3, xmm5
movdqu xmm5, xmmword [rsi + rcx*4 + 0x80]
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqa xmm4, xmm15
pxor xmm15, xmm2
pcmpgtd xmm4, xmm2
pand xmm4, xmm15
movdqu xmm15, xmmword [r10 + rcx*4 + 0x80]
paddd xmm15, xmm5
pxor xmm2, xmm4
paddd xmm15, xmm0
movdqu xmm4, xmmword [rdi + rcx*4 + 0x90]
movdqa xmm5, xmm15
pxor xmm15, xmm1
pcmpgtd xmm5, xmm1
pand xmm5, xmm15
movdqa xmm15, xmm4
pxor xmm1, xmm5
pcmpgtd xmm15, xmm3
movdqu xmm5, xmmword [r13 + rcx*4 + 0x90]
pxor xmm4, xmm3
pand xmm15, xmm4
nop dword [rax]
movdqu xmm4, xmmword [rsi + rcx*4 + 0x90]
pxor xmm3, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm15, xmm5
pxor xmm5, xmm2
pcmpgtd xmm15, xmm2
pand xmm15, xmm5
movdqu xmm5, xmmword [r10 + rcx*4 + 0x90]
paddd xmm5, xmm4
add rcx, 0x28
paddd xmm5, xmm0
pxor xmm2, xmm15
movdqa xmm4, xmm5
pxor xmm5, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm5
pxor xmm1, xmm4
cmp rcx, rdx
jb 0x140128f8d
jmp 0x1401298a9
movups xmmword [rbp + 0x260], xmm15
mov rsi, qword [rbp + 0x350]
movdqu xmm5, xmmword [rdi + rcx*4]
movdqu xmm15, xmmword [r13 + rcx*4]
movdqa xmm4, xmm5
pxor xmm5, xmm3
pcmpgtd xmm4, xmm3
pand xmm4, xmm5
pxor xmm3, xmm4
movdqu xmm4, xmmword [rsi + rcx*4]
paddd xmm15, xmm4
paddd xmm15, xmm0
movdqa xmm5, xmm15
pxor xmm15, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm15
movdqu xmm15, xmmword [r10 + rcx*4]
pxor xmm2, xmm5
paddd xmm15, xmm4
paddd xmm15, xmm0
movdqu xmm5, xmmword [rdi + rcx*4 + 0x10]
movdqa xmm4, xmm15
pxor xmm15, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm15
movdqa xmm15, xmm5
pcmpgtd xmm15, xmm3
pxor xmm5, xmm3
pxor xmm1, xmm4
pand xmm15, xmm5
movdqu xmm4, xmmword [r13 + rcx*4 + 0x10]
pxor xmm3, xmm15
movdqu xmm15, xmmword [rsi + rcx*4 + 0x10]
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm5, xmm4
pxor xmm4, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm4
movdqu xmm4, xmmword [r10 + rcx*4 + 0x10]
pxor xmm2, xmm5
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm15, xmm4
pxor xmm4, xmm1
pcmpgtd xmm15, xmm1
pand xmm15, xmm4
movdqu xmm4, xmmword [rdi + rcx*4 + 0x20]
movdqa xmm5, xmm4
pxor xmm4, xmm3
pcmpgtd xmm5, xmm3
pxor xmm1, xmm15
movdqu xmm15, xmmword [r13 + rcx*4 + 0x20]
pand xmm5, xmm4
pxor xmm3, xmm5
movdqu xmm5, xmmword [rsi + rcx*4 + 0x20]
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqa xmm4, xmm15
pxor xmm15, xmm2
pcmpgtd xmm4, xmm2
pand xmm4, xmm15
movdqu xmm15, xmmword [r10 + rcx*4 + 0x20]
pxor xmm2, xmm4
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqu xmm4, xmmword [rdi + rcx*4 + 0x30]
movdqa xmm5, xmm15
pxor xmm15, xmm1
pcmpgtd xmm5, xmm1
pand xmm5, xmm15
movdqa xmm15, xmm4
pxor xmm1, xmm5
pcmpgtd xmm15, xmm3
movdqu xmm5, xmmword [r13 + rcx*4 + 0x30]
pxor xmm4, xmm3
pand xmm15, xmm4
movdqu xmm4, xmmword [rsi + rcx*4 + 0x30]
pxor xmm3, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm15, xmm5
pxor xmm5, xmm2
pcmpgtd xmm15, xmm2
pand xmm15, xmm5
movdqu xmm5, xmmword [r10 + rcx*4 + 0x30]
pxor xmm2, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm4, xmm5
pxor xmm5, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm5
movdqu xmm5, xmmword [rdi + rcx*4 + 0x40]
movdqa xmm15, xmm5
pxor xmm5, xmm3
pcmpgtd xmm15, xmm3
pxor xmm1, xmm4
movdqu xmm4, xmmword [r13 + rcx*4 + 0x40]
pand xmm15, xmm5
pxor xmm3, xmm15
movdqu xmm15, xmmword [rsi + rcx*4 + 0x40]
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm5, xmm4
pxor xmm4, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm4
movdqu xmm4, xmmword [r10 + rcx*4 + 0x40]
pxor xmm2, xmm5
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm15, xmm4
pxor xmm4, xmm1
pcmpgtd xmm15, xmm1
pand xmm15, xmm4
movdqu xmm4, xmmword [rdi + rcx*4 + 0x50]
movdqa xmm5, xmm4
pxor xmm4, xmm3
pcmpgtd xmm5, xmm3
pxor xmm1, xmm15
movdqu xmm15, xmmword [r13 + rcx*4 + 0x50]
pand xmm5, xmm4
pxor xmm3, xmm5
movdqu xmm5, xmmword [rsi + rcx*4 + 0x50]
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqa xmm4, xmm15
pxor xmm15, xmm2
pcmpgtd xmm4, xmm2
pand xmm4, xmm15
movdqu xmm15, xmmword [r10 + rcx*4 + 0x50]
pxor xmm2, xmm4
paddd xmm15, xmm5
paddd xmm15, xmm0
nop
movdqu xmm4, xmmword [rdi + rcx*4 + 0x60]
movdqa xmm5, xmm15
pxor xmm15, xmm1
pcmpgtd xmm5, xmm1
pand xmm5, xmm15
movdqa xmm15, xmm4
pxor xmm1, xmm5
pcmpgtd xmm15, xmm3
movdqu xmm5, xmmword [r13 + rcx*4 + 0x60]
pxor xmm4, xmm3
pand xmm15, xmm4
movdqu xmm4, xmmword [rsi + rcx*4 + 0x60]
pxor xmm3, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm15, xmm5
pxor xmm5, xmm2
pcmpgtd xmm15, xmm2
pand xmm15, xmm5
movdqu xmm5, xmmword [r10 + rcx*4 + 0x60]
pxor xmm2, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm4, xmm5
pxor xmm5, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm5
movdqu xmm5, xmmword [rdi + rcx*4 + 0x70]
movdqa xmm15, xmm5
pxor xmm5, xmm3
pcmpgtd xmm15, xmm3
pxor xmm1, xmm4
movdqu xmm4, xmmword [r13 + rcx*4 + 0x70]
pand xmm15, xmm5
pxor xmm3, xmm15
movdqu xmm15, xmmword [rsi + rcx*4 + 0x70]
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm5, xmm4
pxor xmm4, xmm2
pcmpgtd xmm5, xmm2
pand xmm5, xmm4
movdqu xmm4, xmmword [r10 + rcx*4 + 0x70]
pxor xmm2, xmm5
paddd xmm4, xmm15
paddd xmm4, xmm0
movdqa xmm15, xmm4
pxor xmm4, xmm1
pcmpgtd xmm15, xmm1
pand xmm15, xmm4
movdqu xmm4, xmmword [rdi + rcx*4 + 0x80]
movdqa xmm5, xmm4
pxor xmm4, xmm3
pcmpgtd xmm5, xmm3
pxor xmm1, xmm15
movdqu xmm15, xmmword [r13 + rcx*4 + 0x80]
pand xmm5, xmm4
pxor xmm3, xmm5
movdqu xmm5, xmmword [rsi + rcx*4 + 0x80]
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqa xmm4, xmm15
pxor xmm15, xmm2
pcmpgtd xmm4, xmm2
pand xmm4, xmm15
movdqu xmm15, xmmword [r10 + rcx*4 + 0x80]
pxor xmm2, xmm4
paddd xmm15, xmm5
paddd xmm15, xmm0
movdqu xmm4, xmmword [rdi + rcx*4 + 0x90]
movdqa xmm5, xmm15
pxor xmm15, xmm1
pcmpgtd xmm5, xmm1
pand xmm5, xmm15
movdqa xmm15, xmm4
pxor xmm1, xmm5
pcmpgtd xmm15, xmm3
movdqu xmm5, xmmword [r13 + rcx*4 + 0x90]
pxor xmm4, xmm3
pand xmm15, xmm4
nop dword [rax]
movdqu xmm4, xmmword [rsi + rcx*4 + 0x90]
pxor xmm3, xmm15
paddd xmm5, xmm4
paddd xmm5, xmm0
movdqa xmm15, xmm5
pxor xmm5, xmm2
pcmpgtd xmm15, xmm2
pand xmm15, xmm5
movdqu xmm5, xmmword [r10 + rcx*4 + 0x90]
add rcx, 0x28
paddd xmm5, xmm4
pxor xmm2, xmm15
paddd xmm5, xmm0
movdqa xmm4, xmm5
pxor xmm5, xmm1
pcmpgtd xmm4, xmm1
pand xmm4, xmm5
pxor xmm1, xmm4
cmp rcx, rdx
jb 0x140129425
movups xmm15, xmmword [rbp + 0x260]
movdqa xmm5, xmm1
movdqa xmm4, xmm1
psrldq xmm5, 8
lea r11d, [r9 + 1]
pcmpgtd xmm4, xmm5
pxor xmm1, xmm5
pand xmm4, xmm1
pxor xmm4, xmm5
movdqa xmm1, xmm4
movdqa xmm5, xmm4
psrldq xmm1, 4
pcmpgtd xmm5, xmm1
pxor xmm4, xmm1
pand xmm5, xmm4
movdqa xmm4, xmm2
psrldq xmm4, 8
pxor xmm5, xmm1
movdqa xmm1, xmm2
pxor xmm2, xmm4
pcmpgtd xmm1, xmm4
pand xmm1, xmm2
pxor xmm1, xmm4
movdqa xmm2, xmm1
movdqa xmm4, xmm1
psrldq xmm2, 4
pcmpgtd xmm4, xmm2
pxor xmm1, xmm2
pand xmm4, xmm1
movdqa xmm1, xmm3
movd r15d, xmm5
movdqa xmm5, xmm3
psrldq xmm1, 8
pxor xmm4, xmm2
pcmpgtd xmm5, xmm1
pxor xmm3, xmm1
pand xmm5, xmm3
pxor xmm5, xmm1
movdqa xmm3, xmm5
movdqa xmm1, xmm5
psrldq xmm3, 4
pcmpgtd xmm1, xmm3
pxor xmm5, xmm3
pand xmm1, xmm5
pxor xmm1, xmm3
movd r14d, xmm4
movd esi, xmm1
cmp r11d, r8d
ja 0x140129b8c
movsxd rax, r8d
sub rax, rdx
cmp rax, 4
jl 0x14012a4d6
movd xmm1, r15d
mov r11d, eax
mov r15, qword [rbp + 0x350]
and r11d, 0xfffffffc
movd xmm4, esi
movd xmm3, r14d
movsxd r11, r11d
xor r14d, r14d
pshufd xmm4, xmm4, 0
lea rsi, [r10 + rdx*4]
pshufd xmm3, xmm3, 0
lea r8, [r15 + rdx*4]
pshufd xmm2, xmm1, 0
lea rcx, [r13 + rdx*4]
movups xmmword [rbp + 0x260], xmm15
lea r15, [rdi + rdx*4]
nop dword [rax + rax]
nop dword [rax]
movdqu xmm5, xmmword [r15 + r14*4]
movdqa xmm15, xmm5
pxor xmm5, xmm4
pcmpgtd xmm15, xmm4
pand xmm15, xmm5
movdqu xmm5, xmmword [rcx + r14*4]
movdqu xmm1, xmmword [r8 + r14*4]
pxor xmm4, xmm15
paddd xmm5, xmm1
paddd xmm5, xmm0
movdqa xmm15, xmm5
pxor xmm5, xmm3
pcmpgtd xmm15, xmm3
pand xmm15, xmm5
movdqu xmm5, xmmword [rsi + r14*4]
paddd xmm5, xmm1
add r14, 4
paddd xmm5, xmm0
pxor xmm3, xmm15
movdqa xmm1, xmm5
pxor xmm5, xmm2
pcmpgtd xmm1, xmm2
pand xmm1, xmm5
pxor xmm2, xmm1
cmp r14, r11
jb 0x1401299e0
movdqa xmm1, xmm2
movdqa xmm0, xmm2
psrldq xmm1, 8
pcmpgtd xmm0, xmm1
pxor xmm2, xmm1
pand xmm0, xmm2
pxor xmm0, xmm1
movdqa xmm1, xmm3
movdqa xmm2, xmm0
movdqa xmm5, xmm0
psrldq xmm2, 4
pcmpgtd xmm5, xmm2
pxor xmm0, xmm2
pand xmm5, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 8
pxor xmm5, xmm2
pcmpgtd xmm1, xmm0
pxor xmm3, xmm0
pand xmm1, xmm3
movdqa xmm2, xmm4
pxor xmm1, xmm0
movdqa xmm3, xmm1
movdqa xmm0, xmm1
psrldq xmm3, 4
pcmpgtd xmm0, xmm3
pxor xmm1, xmm3
pand xmm0, xmm1
movdqa xmm1, xmm4
psrldq xmm1, 8
pxor xmm0, xmm3
pcmpgtd xmm2, xmm1
pxor xmm4, xmm1
pand xmm2, xmm4
pxor xmm2, xmm1
movdqa xmm4, xmm2
movd r14d, xmm0
movdqa xmm0, xmm2
psrldq xmm4, 4
pcmpgtd xmm0, xmm4
pxor xmm2, xmm4
pand xmm0, xmm2
pxor xmm0, xmm4
movups xmm15, xmmword [rbp + 0x260]
movd r15d, xmm5
movd esi, xmm0
cmp r11, rax
jae 0x140129b8c
movsxd r9, r9d
mov rdx, qword [rbp + 0x350]
mov qword [rbp + 0x2b8], r13
mov qword [rbp + 0x2b0], rdi
lea rcx, [r10 + r9*4]
lea r8, [rdx + r9*4]
lea rdx, [r13 + r9*4]
lea r9, [rdi + r9*4]
mov r13d, dword [r9 + r11*4]
cmp r13d, esi
mov edi, dword [r8 + r11*4]
cmovg esi, r13d
mov r13d, dword [rdx + r11*4]
lea r13d, [r13 + rdi - 1]
cmp r13d, r14d
cmovg r14d, r13d
mov r13d, dword [rcx + r11*4]
inc r11
lea edi, [r13 + rdi - 1]
cmp edi, r15d
cmovg r15d, edi
cmp r11, rax
jb 0x140129b47
mov r13, qword [rbp + 0x2b8]
mov rdi, qword [rbp + 0x2b0]
pxor xmm1, xmm1
pxor xmm0, xmm0
cvtsi2sd xmm1, r14d
cvtsi2sd xmm0, esi
mulsd xmm1, xmm0
lea rdx, [rbp + 0x2c8]
cvttsd2si eax, xmm1
lea rcx, [0x1404d708c]
movsd qword [rdx], xmm1
mov dword [rbp + 0x3c], eax
call fcn.140006325
mov r10, qword [rbp + 0x358]
mov qword [rbp + 0x2d0], rax
test rax, rax
je 0x140129df5
mov r11, rsp
lea rcx, [0x14063ea80]
mov edx, 0x1f4
mov r8, r12
mov r9, qword [rbp + 0x370]
mov qword [r11 + 0x20], 0
mov qword [rbp + 0x290], rax
call fcn.1400025f4
movsxd r11, r14d
xor r9d, r9d
mov r8, qword [rbp + 0x370]
test r11, r11
movsxd rcx, r15d
cmovg r9, r11
xor edx, edx
test rcx, rcx
lea r8, [r8 - 1]
cmovle rcx, rdx
xor r15d, r15d
test r8, r8
movsxd rsi, esi
lea rdx, [r12 + 1]
cmovle r8, r15
mov qword [rbp + 0x270], rsi
mov r15d, r8d
mov dword [rbp + 0x298], esi
mov r10, qword [rbp + 0x358]
mov rsi, qword [rbp + 0x370]
mov rax, qword [rbp + 0x290]
mov qword [rbp + 0x278], rcx
mov qword [rbp + 0x280], r9
mov qword [rbp + 0x288], r11
mov dword [rbp + 0x2a0], r14d
mov qword [rbp + 0x2a8], rbx
mov rbx, rdx
mov qword [rbp + 0x2b8], r13
mov qword [rbp + 0x2b0], rdi
mov rdi, rsp
lea rcx, [0x14063ea80]
mov edx, 0x1f4
lea r8, [0x1404d7098]
mov r9d, 1
mov qword [rdi + 0x20], 2
call fcn.140003ef4
test eax, eax
jne 0x14012a4ca
mov edx, 0x1f4
lea rcx, [rbp]
lea r8, [0x14063ea80]
mov r9d, edx
call fcn.140005f83
lea rcx, [0x14063ea80]
lea rdx, [rbp]
mov r8d, 0x1f4
call fcn.1400066b3
mov rdi, rsp
lea rcx, [0x14063ea80]
mov edx, 0x1f4
lea r8, [0x1404d709c]
mov r9d, 1
mov dword [rdi + 0x20], 0
call fcn.140006019
mov dword [0x140898ebc], eax
test eax, eax
jne 0x140129d54
mov rdi, rsp
mov rcx, r12
mov rdx, rsi
lea r8, [0x14063ea80]
mov r9d, 0x1f4
mov qword [rdi + 0x20], 0
call fcn.1400025f4
mov edx, 0x1f4
lea r8, [0x1404d70a0]
jmp 0x140129da8
cmp eax, 1
jle 0x140129d6e
movsxd r9, eax
xor edi, edi
dec r9
lea r8, [0x14063ea80]
cmovle r9, rdi
jmp 0x140129d7b
lea r8, [0x1404d70a4]
mov r9d, 1
mov rdi, rsp
mov rcx, r12
mov rdx, rsi
mov qword [rdi + 0x20], 0
call fcn.1400025f4
movsxd rdx, dword [0x140898ebc]
xor edi, edi
test rdx, rdx
lea r8, [0x1404d70a8]
cmovle rdx, rdi
mov rdi, rsp
lea rcx, [0x14063ea80]
mov r9d, 1
mov qword [rdi + 0x20], 0
call fcn.1400025f4
mov rdi, rsp
mov rcx, r12
mov rdx, rsi
lea r8, [0x1404d70ac]
mov r9d, 1
mov qword [rdi + 0x20], 2
call fcn.140003ef4
test eax, eax
je 0x140129ec2
jmp 0x140129c92
mov edx, 0xc
lea rcx, [rbp + 0x30]
lea rbx, [0x1404d70b0]
lea r8, [rbp + 0x3c]
mov qword [rbp], rbx
mov rdi, rsp
mov qword [rbp + 8], 8
call fcn.140004390
mov edx, 0xc
lea rbx, [rbp + 0x40]
mov rcx, rbx
lea r8, [rbp + 0x30]
mov r9d, edx
call fcn.140002c52
movsxd rsi, eax
lea rcx, str._bytes_of_memory_not_available__MFORMS_not_processed.
mov qword [rbp + 0x18], rsi
add rsi, 0x3e
mov rax, rsi
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], 0x36
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.140001e38
sub rsp, rax
lea rax, [rsp + 0x30]
mov rbx, rax
lea rcx, [rbp]
mov edx, 3
mov r8, rbx
mov r9, rsi
call fcn.1400048cc
mov rcx, rbx
mov rdx, rsi
call fcn.140004e7b
mov rax, rdi
mov rsp, rax
mov rax, qword [rbp + 0x368]
mov dword [0x140898f1c], 0
mov dword [rax], 0xffffffff
lea rsp, [rbp + 0x2e8]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, rsi
lea rdi, str.Opening:
mov qword [rbp + 0x218], rdi
mov r14, rsp
mov qword [rbp + 0x220], 9
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.140001e38
sub rsp, rax
lea rax, [rsp + 0x30]
mov r13, rax
mov r8, r12
mov edx, dword [rbp + 0x2c0]
mov rcx, r13
mov r9d, edx
call fcn.140002c52
movsxd rdi, eax
mov qword [rbp + 0x230], rdi
add rdi, 9
mov rax, rdi
mov qword [rbp + 0x228], r13
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.140001e38
sub rsp, rax
lea rax, [rsp + 0x30]
mov r13, rax
lea rcx, [rbp + 0x218]
mov edx, 2
mov r8, r13
mov r9, rdi
call fcn.1400048cc
mov rcx, r13
mov rdx, rdi
call fcn.140004ad9
mov rax, r14
mov rsp, rax
mov dil, byte [r12]
mov dword [rbp + 0x1f4], 0
cmp dil, 0x22
je 0x140129f7f
cmp dil, 0x27
jne 0x140129fc3
mov rdi, rsp
mov rcx, rbx
mov edx, r15d
mov r8, r12
mov r9d, 1
mov dword [rdi + 0x20], 0
call fcn.140006019
cmp eax, 1
jle 0x140129fc3
movsxd r9, eax
mov r10, rsp
xor edi, edi
dec r9
mov rcx, r12
mov rdx, rsi
cmovle r9, rdi
mov r8, rbx
mov qword [r10 + 0x20], rdi
call fcn.1400025f4
mov rdi, rsp
lea rcx, [0x1404d7090]
mov rdx, r12
lea r8, [0x1404d7100]
mov r9, rsi
mov qword [rdi + 0x20], 1
call fcn.140001384
mov edi, dword [0x140898f1c]
test edi, edi
jne 0x14012a34b
mov rdi, rsp
lea rcx, [0x1404d7090]
mov rdx, r12
lea r8, str.DATAIN
mov r9, rsi
mov qword [rdi + 0x20], 6
call fcn.140001e6a
mov edi, dword [0x140898f1c]
cmp edi, 0xffffffff
je 0x14012a432
test edi, edi
jne 0x14012a354
mov dword [rbp + 0x258], r15d
mov qword [rbp + 0x250], rbx
mov qword [rbp + 0x238], r12
mov r13, qword [rbp + 0x278]
mov r15, qword [rbp + 0x280]
mov r14, qword [rbp + 0x288]
mov rsi, qword [rbp + 0x290]
mov r12d, dword [rbp + 0x298]
mov edi, dword [rbp + 0x2a0]
mov rbx, qword [rbp + 0x2a8]
mov rax, rsp
lea rcx, [0x1408befd0]
mov edx, 0x10000
lea r8, [0x1404d710c]
mov r9d, 1
mov qword [rax + 0x20], 0
call fcn.1400025f4
lea rcx, [0x1404d7090]
lea rdx, [0x1408befd0]
mov r8d, 0x10000
call fcn.140001082
cmp dword [0x140898f1c], 0
jne 0x14012a3e6
cmp byte [0x1408befd0], 0x1a
je 0x14012a3e6
mov rax, rsp
mov rcx, rsi
mov rdx, r15
lea r8, [0x1408befd0]
mov r9d, 0x10000
mov qword [rax + 0x20], 0
call fcn.1400025f4
mov edx, 2
lea rax, [r14 + r14]
cmp r12d, 2
jl 0x14012a1d6
mov dword [rbp + 0x2a0], edi
mov qword [rbp + 0x280], r15
mov r15, rax
mov dword [rbp + 0x298], r12d
mov r12, rdx
mov qword [rbp + 0x2a8], rbx
xor ebx, ebx
mov rdi, qword [rbp + 0x270]
lea rcx, [0x1404d7090]
lea rdx, [0x1408befd0]
mov r8d, 0x10000
call fcn.140001082
cmp dword [0x140898f1c], 0
je 0x14012a17c
mov r10, rsp
lea rcx, [0x1408befd0]
mov edx, 0x10000
lea r8, [0x1404d7110]
mov r9d, 1
mov qword [r10 + 0x20], 0
call fcn.1400025f4
mov rdx, r15
mov r10, rsp
sub rdx, r14
lea r8, [0x1408befd0]
mov r9d, 0x10000
mov qword [r10 + 0x20], rbx
lea rcx, [rsi + rdx]
neg rdx
add rdx, r15
test rdx, rdx
cmovle rdx, rbx
call fcn.1400025f4
inc r12
add r15, r14
cmp r12, rdi
jle 0x14012a131
mov r15, qword [rbp + 0x280]
mov r12d, dword [rbp + 0x298]
mov edi, dword [rbp + 0x2a0]
mov rbx, qword [rbp + 0x2a8]
mov rax, rsp
lea rcx, [0x1408befd0]
mov edx, 0x10000
lea r8, [0x1404d7114]
mov r9d, 1
mov qword [rax + 0x20], 0
call fcn.1400025f4
movsxd r9, dword [rbx]
mov eax, 1
test r9, r9
jle 0x14012a2f5
mov qword [rbp + 0x278], r13
mov qword [rbp + 0x280], r15
mov qword [rbp + 0x288], r14
mov qword [rbp + 0x2a8], rbx
mov qword [rbp + 0x2d8], r9
mov dword [rbp + 0x298], r12d
mov r12, rax
mov rbx, qword [rbp + 0x358]
xor eax, eax
mov r13, qword [rbp + 0x350]
mov r14, qword [rbp + 0x2b8]
mov r15, qword [rbp + 0x2b0]
mov r9d, dword [r15 + r12*4 - 4]
mov r10d, dword [r14 + r12*4 - 4]
movsxd rdx, dword [r13 + r12*4 - 4]
movsxd r8, dword [rbx + r12*4 - 4]
cmp r9d, 0xffffffff
je 0x14012a3d2
test rdx, rdx
jle 0x14012a2c6
imul r9d, edi
sub r10d, edi
add r10d, r9d
test rdx, rdx
movsxd r10, r10d
lea rcx, [0x1408bdc40]
lea r11, [r10 - 1]
lea r9, [rdx + r10]
cmovle rdx, rax
sub r9, r11
mov r11, rsp
dec r9
lea rcx, [rcx + r8 + 0x138f]
lea r8, [rsi + r10 - 1]
cmovle r9, rax
mov qword [r11 + 0x20], rax
call fcn.1400025f4
xor eax, eax
inc r12
cmp r12, qword [rbp + 0x2d8]
jle 0x14012a25b
mov r13, qword [rbp + 0x278]
mov r15, qword [rbp + 0x280]
mov r14, qword [rbp + 0x288]
mov r12d, dword [rbp + 0x298]
mov rbx, qword [rbp + 0x2a8]
lea rcx, [0x1404d7094]
lea rdx, [0x1408befd0]
mov r8, r13
inc dword [rbp + 0x1f4]
call fcn.140002e00
cmp dword [0x140898f1c], 0
je 0x14012a075
lea rcx, [0x1404d7118]
mov edx, 0x17
mov r12, qword [rbp + 0x238]
call fcn.140004e7b
mov rcx, qword [rbp + 0x360]
mov rdx, qword [rbp + 0x378]
call fcn.1400033c3
jmp 0x14012a37b
cmp edi, 0xffffffff
je 0x14012a432
mov rbx, qword [rbp + 0x2a8]
lea rcx, str.PROBLEM_WITH_MFORMS_INPUT_DATA_FILE.
mov edx, 0x25
call fcn.140004e7b
mov rcx, r12
mov rdx, qword [rbp + 0x370]
call fcn.1400033c3
mov rax, qword [rbp + 0x368]
mov dword [rax], 0xffffffff
lea rcx, [0x1404d7090]
call fcn.140001163
lea rcx, [rbp + 0x2d0]
call fcn.140003643
mov rax, rsp
mov rcx, r12
lea r8, [0x1404d7158]
mov r9d, 1
mov rdx, qword [rbp + 0x370]
mov qword [rax + 0x20], 0
call fcn.1400025f4
mov dword [rbx], 0
jmp 0x140129eae
lea rdx, [0x140000000]
mov byte [rdx + r8 + 0x8befcf], r10b
jmp 0x14012a2c6
mov qword [rbp + 0x280], r15
mov qword [rbp + 0x290], rsi
mov dword [rbp + 0x298], r12d
mov qword [rbp + 0x2a8], rbx
mov qword [rbp + 0x278], r13
mov qword [rbp + 0x288], r14
mov dword [rbp + 0x2a0], edi
mov r15d, dword [rbp + 0x258]
mov rbx, qword [rbp + 0x250]
mov r12, qword [rbp + 0x238]
mov rsi, qword [rbp + 0x370]
mov edx, 0xc
lea r13, [rbp + 0x240]
mov rcx, r13
lea r8, [rbp + 0x1f4]
lea r10, str.Records_processed:
mov rdi, rsp
mov qword [r8 + 4], r10
mov qword [r8 + 0xc], 0x13
call fcn.140004390
mov eax, 0x1f
mov qword [rbp + 0x208], r13
mov qword [rbp + 0x210], 0xc
mov rax, 0x20
sub rsp, rax
lea rax, [rsp + 0x30]
mov r13, rax
lea rcx, [rbp + 0x1f8]
mov edx, 2
mov r8, r13
mov r9d, 0x1f
call fcn.1400048cc
mov rcx, r13
mov edx, 0x1f
call fcn.140004ad9
mov rax, rdi
mov rsp, rax
lea rcx, [0x1404d7090]
call fcn.140001163
jmp 0x140129c92
mov rbx, qword [rbp + 0x2a8]
jmp 0x14012a388
xor r11d, r11d
jmp 0x140129b19
xor r9d, r9d
cmp r8d, 1
jb 0x140129b8c
movsxd rax, r8d
xor r11d, r11d
jmp 0x140129b19
lea rcx, str.MFORMS__DATA__MISSING
mov edx, 0x17
call fcn.140004e7b
mov rcx, r12
mov rdx, qword [rbp + 0x370]
call fcn.1400033c3
mov r8d, dword [rbx]
jmp 0x140128e75