Function at 0x14012eb80
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push rbp
mov rbp, rsp
push r15
mov r15, rcx
push r14
push r13
push r12
push rdi
push rsi
push rbx
mov ebx, 4
sub rsp, 0x20
and rsp, 0xfffffffffffffff0
sub rsp, 0x110
mov eax, dword [rbp + 0x30]
mov r10d, dword [rbp + 0x38]
mov qword [rsp + 0x70], rcx
mov ecx, r9d
mov dword [rsp + 0x80], eax
mov eax, 1
shl rbx, cl
shl rax, cl
lea r12, [r15 + rbx]
mov dword [rsp + 0x84], r9d
lea r11, [r8 + rax]
lea rsi, [rdx + rax]
movaps xmmword [rsp + 0x110], xmm6
cmp r15, r11
lea r13, [r12 + rbx]
movaps xmmword [rsp + 0x120], xmm7
setae r9b
cmp r12, r8
setbe cl
or r9d, ecx
cmp r12, rdx
setbe cl
cmp r15, rsi
setae dil
or ecx, edi
and ecx, r9d
lea r9, [rax - 1]
cmp r9, 0xe
seta r9b
and ecx, r9d
lea r9, [rbx - 4]
cmp r9, 0x38
seta r9b
and ecx, r9d
cmp rdx, r13
setae r9b
cmp r12, rsi
setae sil
or r9d, esi
test cl, r9b
je 0x1401302ac
cmp r8, r13
setae cl
cmp r12, r11
setae r9b
or cl, r9b
je 0x1401302ac
mov r9, rax
movdqa xmm2, xmmword [0x1402d14a0]
xor ecx, ecx
mov r11, r15
and r9, 0xfffffffffffffff0
pxor xmm4, xmm4
pxor xmm3, xmm3
movdqu xmm0, xmmword [rdx + rcx]
movdqa xmm5, xmm4
movdqa xmm6, xmm3
pcmpgtb xmm5, xmm0
movdqa xmm1, xmm0
punpcklbw xmm1, xmm5
punpckhbw xmm0, xmm5
pcmpgtw xmm6, xmm1
movdqa xmm7, xmm1
punpcklwd xmm7, xmm6
punpckhwd xmm1, xmm6
movdqa xmm6, xmm0
movdqa xmm5, xmm7
psrad xmm5, 0x1f
pand xmm5, xmm2
paddd xmm5, xmm7
movups xmmword [r11 + rcx*4], xmm5
movdqa xmm5, xmm1
psrad xmm5, 0x1f
pand xmm5, xmm2
paddd xmm1, xmm5
movdqa xmm5, xmm3
pcmpgtw xmm5, xmm0
movups xmmword [r11 + rcx*4 + 0x10], xmm1
punpcklwd xmm6, xmm5
punpckhwd xmm0, xmm5
movdqa xmm5, xmm4
movdqa xmm1, xmm6
psrad xmm1, 0x1f
pand xmm1, xmm2
paddd xmm1, xmm6
movdqa xmm6, xmm3
movups xmmword [r11 + rcx*4 + 0x20], xmm1
movdqa xmm1, xmm0
psrad xmm1, 0x1f
pand xmm1, xmm2
paddd xmm0, xmm1
movups xmmword [r11 + rcx*4 + 0x30], xmm0
movdqu xmm0, xmmword [r8 + rcx]
pcmpgtb xmm5, xmm0
movdqa xmm1, xmm0
punpcklbw xmm1, xmm5
punpckhbw xmm0, xmm5
pcmpgtw xmm6, xmm1
movdqa xmm7, xmm1
punpcklwd xmm7, xmm6
punpckhwd xmm1, xmm6
movdqa xmm6, xmm0
movdqa xmm5, xmm7
psrad xmm5, 0x1f
pand xmm5, xmm2
paddd xmm5, xmm7
movups xmmword [r12 + rcx*4], xmm5
movdqa xmm5, xmm1
psrad xmm5, 0x1f
pand xmm5, xmm2
paddd xmm1, xmm5
movdqa xmm5, xmm3
pcmpgtw xmm5, xmm0
movups xmmword [r12 + rcx*4 + 0x10], xmm1
punpcklwd xmm6, xmm5
punpckhwd xmm0, xmm5
movdqa xmm1, xmm6
psrad xmm1, 0x1f
pand xmm1, xmm2
paddd xmm1, xmm6
movups xmmword [r12 + rcx*4 + 0x20], xmm1
movdqa xmm1, xmm0
psrad xmm1, 0x1f
pand xmm1, xmm2
paddd xmm0, xmm1
movups xmmword [r12 + rcx*4 + 0x30], xmm0
add rcx, 0x10
cmp r9, rcx
jne 0x14012ec7b
mov rcx, rax
and rcx, 0xfffffffffffffff0
test al, 0xf
je 0x14012f1bb
movsx esi, byte [rdx + rcx]
mov rdi, qword [rsp + 0x70]
lea r9, [rcx*4]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + rcx*4], r11d
movsx esi, byte [r8 + rcx]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + rcx*4], r11d
lea r11, [rcx + 1]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 1]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 4], r11d
movsx esi, byte [r8 + rcx + 1]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 4], r11d
lea r11, [rcx + 2]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 2]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 8], r11d
movsx esi, byte [r8 + rcx + 2]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 8], r11d
lea r11, [rcx + 3]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 3]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0xc], r11d
movsx esi, byte [r8 + rcx + 3]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0xc], r11d
lea r11, [rcx + 4]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 4]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x10], r11d
movsx esi, byte [r8 + rcx + 4]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x10], r11d
lea r11, [rcx + 5]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 5]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x14], r11d
movsx esi, byte [r8 + rcx + 5]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x14], r11d
lea r11, [rcx + 6]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 6]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x18], r11d
movsx esi, byte [r8 + rcx + 6]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x18], r11d
lea r11, [rcx + 7]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 7]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x1c], r11d
movsx esi, byte [r8 + rcx + 7]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x1c], r11d
lea r11, [rcx + 8]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 8]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x20], r11d
movsx esi, byte [r8 + rcx + 8]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x20], r11d
lea r11, [rcx + 9]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 9]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x24], r11d
movsx esi, byte [r8 + rcx + 9]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x24], r11d
lea r11, [rcx + 0xa]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 0xa]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x28], r11d
movsx esi, byte [r8 + rcx + 0xa]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x28], r11d
lea r11, [rcx + 0xb]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 0xb]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x2c], r11d
movsx esi, byte [r8 + rcx + 0xb]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x2c], r11d
lea r11, [rcx + 0xc]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 0xc]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x30], r11d
movsx esi, byte [r8 + rcx + 0xc]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x30], r11d
lea r11, [rcx + 0xd]
cmp rax, r11
jbe 0x14012f1bb
movsx esi, byte [rdx + rcx + 0xd]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [rdi + r9 + 0x34], r11d
movsx esi, byte [r8 + rcx + 0xd]
mov r11d, esi
sar r11d, 0x1f
and r11d, 0x7fffd801
add r11d, esi
mov dword [r12 + r9 + 0x34], r11d
lea r11, [rcx + 0xe]
cmp rax, r11
jbe 0x14012f1bb
movsx r11d, byte [rdx + rcx + 0xe]
mov edx, r11d
sar edx, 0x1f
and edx, 0x7fffd801
add edx, r11d
mov dword [rdi + r9 + 0x38], edx
movsx ecx, byte [r8 + rcx + 0xe]
mov edx, ecx
sar edx, 0x1f
and edx, 0x7fffd801
add edx, ecx
mov dword [r12 + r9 + 0x38], edx
mov edi, dword [rsp + 0x80]
test edi, edi
jne 0x14012f1d8
test r10b, 1
jne 0x140130009
test edi, edi
je 0x14012ffe8
mov qword [rsp + 0x50], 0
mov eax, r10d
and eax, 1
mov byte [rsp + 0xa6], al
mov eax, dword [rsp + 0x84]
lea edi, [rax - 1]
sub eax, dword [rsp + 0x80]
mov dword [rsp + 0xa0], edi
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x84]
mov r12, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x70]
sub eax, edi
cmp dword [rsp + 0x80], eax
seta al
add edi, 1
or al, byte [rsp + 0xa6]
mov ecx, edi
mov byte [rsp + 0xa7], al
mov eax, 1
mov r15d, edi
shl rax, cl
mov dword [rsp + 0xec], edi
mov rsi, rax
mov qword [rsp + 0x48], rax
lea rax, [0x1402cf240]
mov r13, qword [rax + r12*8]
add rax, 8
shr rsi, 1
mov rax, qword [rax + r12*8]
mov qword [rsp + 0xe0], rsi
mov r8, r13
mov qword [rsp + 0x100], rax
shl rax, 2
shl r8, cl
mov qword [rsp + 0x78], rax
imul rax, rsi
lea rbx, [rdx + rax]
mov r14, rax
lea rax, [r8*4]
shl r8, 3
add r14, rbx
mov rdi, rax
mov qword [rsp + 0x60], rbx
lea rcx, [r14 + rax]
mov eax, 4
mov qword [rsp + 0x88], r14
add rdi, rcx
mov qword [rsp + 0x90], rcx
mov ecx, r15d
shl rax, cl
mov qword [rsp + 0xd8], rdi
mov rcx, r14
add rdi, rax
mov qword [rsp + 0x40], rax
mov rbx, rax
mov qword [rsp + 0xd0], rdi
add rdi, rax
mov qword [rsp + 0xf8], rdi
call sub.msvcrt.dll_memmove
test r13, r13
je 0x14012f8c0
test r15d, r15d
mov rcx, qword [rsp + 0x90]
lea r9, [r13*4]
mov qword [rsp + 0xf0], 0
sete al
test r12d, r12d
mov qword [rsp + 0x68], r9
setne dl
mov qword [rsp + 0xb8], rcx
mov r15d, edx
mov qword [rsp + 0xc0], r14
mov r14d, 2
or r15d, eax
test r12d, r12d
lea r12, [rdi + rsi*8]
sete dl
mov byte [rsp + 0xe8], r15b
add rbx, rdi
mov r15d, edx
mov rdx, qword [rsp + 0x70]
or r15d, eax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xb0], rax
mov byte [rsp + 0x98], r15b
lea r15, [0x1402cfb84]
mov qword [rsp + 0x108], r15
mov r15, rbx
mov ebx, 0x7fffd801
nop dword [rax]
mov eax, r14d
mov edx, r14d
sub eax, ebx
mov ecx, eax
imul ecx, ebx
sub edx, ecx
imul eax, edx
mov edx, r14d
mov ecx, eax
imul ecx, ebx
sub edx, ecx
imul eax, edx
mov edx, r14d
mov ecx, eax
imul ecx, ebx
sub edx, ecx
mov ecx, ebx
imul eax, edx
mov esi, eax
imul esi, ebx
sub esi, r14d
imul esi, eax
and esi, 0x7fffffff
mov edx, esi
call fcn.140144ec0
mov dword [rsp + 0x28], esi
mov rdx, qword [rsp + 0xd0]
mov dword [rsp + 0xc8], eax
mov rax, qword [rsp + 0x108]
mov dword [rsp + 0x20], ebx
mov r8d, dword [rsp + 0xec]
mov r9d, dword [rax]
mov rcx, qword [rsp + 0xd8]
call fcn.140146300
mov rdx, qword [rsp + 0xc0]
mov rax, rdi
cmp r13, 1
jne 0x14012f796
nop word [rax + rax]
mov ecx, dword [rdx]
add rax, 4
add rdx, 4
mov dword [rax - 4], ecx
cmp r15, rax
jne 0x14012f440
cmp byte [rsp + 0xe8], 0
je 0x14012f743
cmp qword [rsp + 0xe0], 0
je 0x14012f50d
cmp qword [rsp + 0x100], 1
mov r8d, esi
mov r9d, ebx
mov rdx, rdi
mov r10d, dword [rsp + 0xc8]
mov rcx, qword [rsp + 0xa8]
jne 0x14012f7b6
nop word [rax + rax]
mov eax, dword [rdx]
mov r11d, dword [rdx + 4]
add rdx, 8
add rcx, 4
imul r11, rax
mov rax, r8
imul rax, r11
and eax, 0x7fffffff
imul rax, r9
add rax, r11
shr rax, 0x1f
sub eax, ebx
mov r11d, eax
sar r11d, 0x1f
and r11d, ebx
add r11d, eax
mov rax, r8
mov r11d, r11d
imul r11, r10
imul rax, r11
and eax, 0x7fffffff
imul rax, r9
add rax, r11
shr rax, 0x1f
sub eax, ebx
mov r11d, eax
sar r11d, 0x1f
and r11d, ebx
add eax, r11d
mov dword [rcx - 4], eax
cmp rdx, r12
jne 0x14012f4a0
cmp byte [rsp + 0x98], 0
jne 0x14012f53f
mov dword [rsp + 0x28], esi
mov r9d, dword [rsp + 0xec]
mov rdx, r13
mov dword [rsp + 0x20], ebx
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xc0]
call fcn.140144fc0
mov rdx, qword [rsp + 0xb8]
mov rax, rdi
cmp r13, 1
jne 0x14012f776
nop dword [rax]
mov ecx, dword [rdx]
add rax, 4
add rdx, 4
mov dword [rax - 4], ecx
cmp rax, r15
jne 0x14012f558
cmp byte [rsp + 0xe8], 0
je 0x14012f710
cmp qword [rsp + 0xe0], 0
je 0x14012f61d
cmp qword [rsp + 0x100], 1
mov r8d, esi
mov r9d, ebx
mov rdx, rdi
mov r10d, dword [rsp + 0xc8]
mov rcx, qword [rsp + 0xb0]
jne 0x14012f835
nop
mov eax, dword [rdx]
mov r11d, dword [rdx + 4]
add rdx, 8
add rcx, 4
imul r11, rax
mov rax, r8
imul rax, r11
and eax, 0x7fffffff
imul rax, r9
add rax, r11
shr rax, 0x1f
sub eax, ebx
mov r11d, eax
sar r11d, 0x1f
and r11d, ebx
add r11d, eax
mov rax, r8
mov r11d, r11d
imul r11, r10
imul rax, r11
and eax, 0x7fffffff
imul rax, r9
add rax, r11
shr rax, 0x1f
sub eax, ebx
mov r11d, eax
sar r11d, 0x1f
and r11d, ebx
add eax, r11d
mov dword [rcx - 4], eax
cmp rdx, r12
jne 0x14012f5b0
cmp byte [rsp + 0x98], 0
jne 0x14012f64f
mov dword [rsp + 0x28], esi
mov r9d, dword [rsp + 0xec]
mov rdx, r13
mov dword [rsp + 0x20], ebx
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xb8]
call fcn.140144fc0
cmp byte [rsp + 0xa7], 0
jne 0x14012f6b9
mov eax, dword [rsp + 0xa0]
test eax, eax
je 0x14012f6b9
mov dword [rsp + 0x28], esi
mov r8, qword [rsp + 0xd0]
mov r9d, eax
mov dword [rsp + 0x20], ebx
mov rdx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xa8]
call fcn.140144fc0
mov dword [rsp + 0x28], esi
mov r9d, dword [rsp + 0xa0]
mov dword [rsp + 0x20], ebx
mov r8, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xb0]
call fcn.140144fc0
add qword [rsp + 0xf0], 1
mov rax, qword [rsp + 0xf0]
add qword [rsp + 0x108], 0xc
mov rsi, qword [rsp + 0x108]
add qword [rsp + 0xa8], 4
add qword [rsp + 0xb0], 4
add qword [rsp + 0xb8], 4
add qword [rsp + 0xc0], 4
cmp r13, rax
je 0x14012f8c0
mov ebx, dword [rsi - 4]
jmp 0x14012f3a8
mov dword [rsp + 0x20], esi
mov r8d, dword [rsp + 0x84]
mov r9d, ebx
mov rcx, rdi
mov rdx, qword [rsp + 0xd8]
call fcn.140144920
cmp qword [rsp + 0xe0], 0
jne 0x14012f587
jmp 0x14012f64f
mov dword [rsp + 0x20], esi
mov r8d, dword [rsp + 0x84]
mov r9d, ebx
mov rcx, rdi
mov rdx, qword [rsp + 0xd8]
call fcn.140144920
cmp qword [rsp + 0xe0], 0
jne 0x14012f46f
jmp 0x14012f53f
mov r8, qword [rsp + 0x68]
nop dword [rax + rax]
mov ecx, dword [rdx]
add rax, 4
add rdx, r8
mov dword [rax - 4], ecx
cmp rax, r15
jne 0x14012f780
jmp 0x14012f56a
mov r8, qword [rsp + 0x68]
nop dword [rax + rax]
mov ecx, dword [rdx]
add rax, 4
add rdx, r8
mov dword [rax - 4], ecx
cmp r15, rax
jne 0x14012f7a0
jmp 0x14012f452
mov qword [rsp + 0x58], r13
mov r11, qword [rsp + 0x78]
mov eax, dword [rdx + 4]
mov r13d, dword [rdx]
add rdx, 8
imul r13, rax
mov rax, r13
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r13
shr rax, 0x1f
sub eax, ebx
mov r13d, eax
sar r13d, 0x1f
and r13d, ebx
add r13d, eax
mov r13d, r13d
imul r13, r10
mov rax, r13
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r13
shr rax, 0x1f
sub eax, ebx
mov r13d, eax
sar r13d, 0x1f
and r13d, ebx
add eax, r13d
mov dword [rcx], eax
add rcx, r11
cmp rdx, r12
jne 0x14012f7c0
mov r13, qword [rsp + 0x58]
jmp 0x14012f50d
mov qword [rsp + 0xc8], r13
mov r11, qword [rsp + 0x78]
nop word [rax + rax]
mov eax, dword [rdx + 4]
mov r13d, dword [rdx]
add rdx, 8
imul r13, rax
mov rax, r13
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r13
shr rax, 0x1f
sub eax, ebx
mov r13d, eax
sar r13d, 0x1f
and r13d, ebx
add r13d, eax
mov r13d, r13d
imul r13, r10
mov rax, r13
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r13
shr rax, 0x1f
sub eax, ebx
mov r13d, eax
sar r13d, 0x1f
and r13d, ebx
add eax, r13d
mov dword [rcx], eax
add rcx, r11
cmp rdx, r12
jne 0x14012f848
mov r13, qword [rsp + 0xc8]
jmp 0x14012f61d
mov rdi, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0x48]
mov r8, r13
mov rdx, r13
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x20], rdi
mov r9, rsi
call fcn.14020e350
mov qword [rsp + 0x20], rdi
mov r9, rsi
mov r8, r13
mov rcx, qword [rsp + 0x90]
mov rdx, r13
call fcn.14020e350
cmp r13, qword [rsp + 0x100]
jae 0x14012fed2
lea rax, [r13 + r13*2]
lea rdx, [0x1402cfb80]
mov rbx, qword [rsp + 0xf8]
mov qword [rsp + 0xa8], r13
lea rax, [rdx + rax*4]
lea rdi, [r13*4]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x70]
lea esi, [r13 - 1]
add rax, rdi
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x60]
add rax, rdi
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x40]
add rax, rbx
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xe0]
lea rax, [rbx + rax*8]
mov qword [rsp + 0x98], rax
nop dword [rax]
mov rax, qword [rsp + 0xc8]
mov edx, 2
mov r12d, 0x80000000
mov ebx, dword [rax]
mov eax, 2
sub eax, ebx
mov ecx, ebx
sub r12d, ebx
imul ecx, eax
sub edx, ecx
mov ecx, ebx
imul eax, edx
mov edx, 2
imul ecx, eax
sub edx, ecx
mov ecx, ebx
imul eax, edx
mov edx, 2
imul ecx, eax
sub edx, ecx
mov ecx, ebx
imul eax, edx
mov edx, ebx
imul edx, eax
sub edx, 2
imul eax, edx
and eax, 0x7fffffff
mov edx, eax
mov dword [rsp + 0x108], eax
mov r15d, eax
call fcn.140144ec0
mov dword [rsp + 0xf0], eax
test esi, esi
je 0x14012fa8d
mov r8d, r15d
mov edx, ebx
xor ecx, ecx
mov r9d, 1
mov eax, eax
nop dword [rax + rax]
bt esi, ecx
jae 0x14012fa52
imul r12, rax
mov r10, r8
imul r10, r12
and r10d, 0x7fffffff
imul r10, rdx
add r10, r12
shr r10, 0x1f
sub r10d, ebx
mov r12d, r10d
sar r12d, 0x1f
and r12d, ebx
add r12d, r10d
imul rax, rax
add ecx, 1
mov r10, rax
mov rax, r8
imul rax, r10
and eax, 0x7fffffff
imul rax, rdx
add rax, r10
shr rax, 0x1f
sub eax, ebx
mov r10d, eax
sar r10d, 0x1f
and r10d, ebx
add eax, r10d
mov r10d, r9d
shl r10d, cl
cmp esi, r10d
jae 0x14012fa20
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x20], ebx
mov r14d, ebx
mov rcx, qword [rsp + 0xc8]
mov r8d, dword [rsp + 0xec]
mov dword [rsp + 0x28], eax
mov rdx, qword [rsp + 0xd0]
mov r9d, dword [rcx + 4]
mov rcx, qword [rsp + 0xd8]
call fcn.140146300
mov dword [rsp + 0xe8], esi
mov r10, qword [rsp + 0xf8]
mov r9, qword [rsp + 0x88]
mov r15d, dword [rsp + 0xf0]
mov r11d, dword [rsp + 0x108]
mov rsi, qword [rsp + 0xb0]
nop word [rax + rax]
xor edx, edx
test r13, r13
je 0x14012fb6a
lea r8, [r13 - 1]
nop dword [rax + rax]
imul rdx, r15
mov ecx, dword [r9 + r8*4]
sub ecx, ebx
mov rax, rdx
imul rax, r11
and eax, 0x7fffffff
imul rax, r14
add rax, rdx
shr rax, 0x1f
sub eax, ebx
cdq
sub eax, ebx
and edx, ebx
add edx, eax
add edx, ecx
sar ecx, 0x1f
and ecx, ebx
add edx, ecx
mov eax, edx
sar eax, 0x1f
and eax, ebx
add edx, eax
sub r8, 1
jae 0x14012fb10
mov eax, dword [r9 + rdi - 4]
shr eax, 0x1e
neg eax
and eax, r12d
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ebx
add edx, eax
mov dword [r10], edx
add r10, 4
add r9, rdi
cmp rsi, r10
jne 0x14012fb00
mov r8d, dword [rsp + 0xec]
mov esi, dword [rsp + 0xe8]
test r8d, r8d
je 0x14012fbb0
mov eax, dword [rsp + 0x108]
mov rdx, qword [rsp + 0xd8]
mov r9d, ebx
mov rcx, qword [rsp + 0xf8]
mov dword [rsp + 0x20], eax
call fcn.140144920
cmp qword [rsp + 0xe0], 0
je 0x14012fc6d
cmp qword [rsp + 0x100], 1
mov r8d, dword [rsp + 0x108]
mov r9d, ebx
mov r10d, dword [rsp + 0xf0]
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0xc0]
mov r11, qword [rsp + 0x98]
jne 0x14012fefa
nop dword [rax]
mov eax, dword [rdx]
mov r14d, dword [rdx + 4]
add rdx, 8
add rcx, 4
imul r14, rax
mov rax, r8
imul rax, r14
and eax, 0x7fffffff
imul rax, r9
add rax, r14
shr rax, 0x1f
sub eax, ebx
mov r14d, eax
sar r14d, 0x1f
and r14d, ebx
add r14d, eax
mov rax, r8
mov r14d, r14d
imul r14, r10
imul rax, r14
and eax, 0x7fffffff
imul rax, r9
add rax, r14
shr rax, 0x1f
sub eax, ebx
mov r14d, eax
sar r14d, 0x1f
and r14d, ebx
add eax, r14d
mov dword [rcx - 4], eax
cmp r11, rdx
jne 0x14012fc00
mov dword [rsp + 0xe8], esi
mov r10, qword [rsp + 0xf8]
mov r14d, ebx
mov r9, qword [rsp + 0x90]
mov r15d, dword [rsp + 0xf0]
mov r11d, dword [rsp + 0x108]
mov rsi, qword [rsp + 0xb0]
nop
xor edx, edx
test r13, r13
je 0x14012fd0a
lea r8, [r13 - 1]
nop dword [rax + rax]
imul rdx, r15
mov ecx, dword [r9 + r8*4]
sub ecx, ebx
mov rax, rdx
imul rax, r11
and eax, 0x7fffffff
imul rax, r14
add rax, rdx
shr rax, 0x1f
sub eax, ebx
cdq
sub eax, ebx
and edx, ebx
add edx, eax
add edx, ecx
sar ecx, 0x1f
and ecx, ebx
add edx, ecx
mov eax, edx
sar eax, 0x1f
and eax, ebx
add edx, eax
sub r8, 1
jae 0x14012fcb0
mov eax, dword [r9 + rdi - 4]
shr eax, 0x1e
neg eax
and eax, r12d
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ebx
add edx, eax
mov dword [r10], edx
add r10, 4
add r9, rdi
cmp rsi, r10
jne 0x14012fca0
mov r8d, dword [rsp + 0xec]
mov esi, dword [rsp + 0xe8]
test r8d, r8d
je 0x14012fd50
mov eax, dword [rsp + 0x108]
mov rdx, qword [rsp + 0xd8]
mov r9d, ebx
mov rcx, qword [rsp + 0xf8]
mov dword [rsp + 0x20], eax
call fcn.140144920
cmp qword [rsp + 0xe0], 0
je 0x14012fe0d
cmp qword [rsp + 0x100], 1
mov r8d, dword [rsp + 0x108]
mov r9d, ebx
mov r10d, dword [rsp + 0xf0]
mov rdx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0xb8]
mov r11, qword [rsp + 0x98]
jne 0x14012ff70
nop dword [rax]
mov eax, dword [rdx]
mov r12d, dword [rdx + 4]
add rdx, 8
add rcx, 4
imul r12, rax
mov rax, r8
imul rax, r12
and eax, 0x7fffffff
imul rax, r9
add rax, r12
shr rax, 0x1f
sub eax, ebx
mov r12d, eax
sar r12d, 0x1f
and r12d, ebx
add r12d, eax
mov rax, r8
mov r12d, r12d
imul r12, r10
imul rax, r12
and eax, 0x7fffffff
imul rax, r9
add rax, r12
shr rax, 0x1f
sub eax, ebx
mov r12d, eax
sar r12d, 0x1f
and r12d, ebx
add eax, r12d
mov dword [rcx - 4], eax
cmp r11, rdx
jne 0x14012fda0
add qword [rsp + 0xa8], 1
cmp byte [rsp + 0xa7], 0
jne 0x14012fec0
mov r15d, dword [rsp + 0xa0]
test r15d, r15d
je 0x14012fe89
mov r14d, dword [rsp + 0x108]
mov dword [rsp + 0x20], ebx
mov r9d, r15d
mov r12, qword [rsp + 0x100]
mov r8, qword [rsp + 0xd0]
mov dword [rsp + 0x28], r14d
mov rcx, qword [rsp + 0xc0]
mov rdx, r12
call fcn.140144fc0
mov dword [rsp + 0x28], r14d
mov r9d, r15d
mov rdx, r12
mov dword [rsp + 0x20], ebx
mov r8, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xb8]
call fcn.140144fc0
mov rbx, qword [rsp + 0xa8]
cmp qword [rsp + 0x100], rbx
jbe 0x14012ffe8
add qword [rsp + 0xc8], 0xc
add qword [rsp + 0xc0], 4
add qword [rsp + 0xb8], 4
jmp 0x14012f990
mov rbx, qword [rsp + 0xa8]
cmp qword [rsp + 0x100], rbx
ja 0x14012fe9f
mov edi, dword [rsp + 0xa0]
add qword [rsp + 0x50], 1
lea eax, [rdi - 1]
cmp dword [rsp + 0x3c], edi
je 0x14012ffe8
mov dword [rsp + 0xa0], eax
mov edi, eax
jmp 0x14012f20a
mov r14, qword [rsp + 0x78]
nop
mov eax, dword [rdx + 4]
mov r15d, dword [rdx]
add rdx, 8
imul r15, rax
mov rax, r15
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r15
shr rax, 0x1f
sub eax, ebx
mov r15d, eax
sar r15d, 0x1f
and r15d, ebx
add r15d, eax
mov r15d, r15d
imul r15, r10
mov rax, r15
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r15
shr rax, 0x1f
sub eax, ebx
mov r15d, eax
sar r15d, 0x1f
and r15d, ebx
add eax, r15d
mov dword [rcx], eax
add rcx, r14
cmp r11, rdx
jne 0x14012ff00
jmp 0x14012fc6d
mov r12, qword [rsp + 0x78]
nop dword [rax]
mov eax, dword [rdx + 4]
mov r14d, dword [rdx]
add rdx, 8
imul r14, rax
mov rax, r14
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r14
shr rax, 0x1f
sub eax, ebx
mov r14d, eax
sar r14d, 0x1f
and r14d, ebx
add r14d, eax
mov r14d, r14d
imul r14, r10
mov rax, r14
imul rax, r8
and eax, 0x7fffffff
imul rax, r9
add rax, r14
shr rax, 0x1f
sub eax, ebx
mov r14d, eax
sar r14d, 0x1f
and r14d, ebx
add eax, r14d
mov dword [rcx], eax
add rcx, r12
cmp r11, rdx
jne 0x14012ff78
jmp 0x14012fe0d
movaps xmm6, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x120]
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov edi, dword [rsp + 0x84]
cmp edi, 9
ja 0x1401302ff
je 0x1401302f5
cmp edi, 8
je 0x140130345
cmp edi, 7
je 0x14013033b
cmp edi, 6
je 0x140130331
cmp edi, 5
je 0x140130327
cmp edi, 4
je 0x14013031d
cmp edi, 3
je 0x140130313
lea edx, [rdi + 8]
cmp edi, 2
je 0x140130309
cmp edx, 8
mov ecx, 0x483a39d2
mov edx, 0x7fffb002
cmovne rdx, rcx
mov ecx, 0x1e
mov r8d, 0x27ff
mov r9d, 0x7fffd7ff
imul r8, r8
imul r10, r8, 0x79bfd7ff
and r10d, 0x7fffffff
imul r10, r10, 0x7fffd801
add r8, r10
shr r8, 0x1f
sub r8d, 0x7fffd801
mov r10d, r8d
sar r10d, 0x1f
and r10d, 0x7fffd801
lea r11d, [r8 + r10]
mov r8, r11
imul r11, rdx
imul r10, r11, 0x79bfd7ff
and r10d, 0x7fffffff
imul r10, r10, 0x7fffd801
add r10, r11
mov r11d, r9d
shr r10, 0x1f
shr r11d, cl
sub r10d, 0x7fffd801
and r11d, 1
mov esi, r10d
neg r11d
sar esi, 0x1f
and esi, 0x7fffd801
add r10d, esi
xor r10d, r8d
and r10d, r11d
xor r8d, r10d
sub ecx, 1
jae 0x140130083
imul rcx, r8, 0x79bfd7ff
lea rsi, [r13 + rbx]
xor r10d, r10d
xor r11d, r11d
lea rbx, [0x1402cf380]
and ecx, 0x7fffffff
imul rcx, rcx, 0x7fffd801
add rcx, r8
shr rcx, 0x1f
sub ecx, 0x7fffd801
mov r8d, ecx
sar r8d, 0x1f
and r8d, 0x7fffd801
add ecx, r8d
mov ecx, ecx
imul r8, rcx, 0x27ff
imul rcx, rcx, 0x63fb001
and r8d, 0x7fffffff
imul r8, r8, 0x7fffd801
add r8, rcx
mov ecx, 0xa
sub ecx, dword [rsp + 0x84]
shr r8, 0x1f
sub r8d, 0x7fffd801
mov r9d, r8d
sar r9d, 0x1f
and r9d, 0x7fffd801
lea edi, [r8 + r9]
mov r9d, 0x27ff
mov r8d, 0x27ff
jmp 0x1401301bb
mov r10, r11
shl r10, cl
movzx r10d, word [rbx + r10*2]
mov dword [r13 + r10*4], r8d
imul r8, rdx
add r11, 1
mov dword [rsi + r10*4], r9d
imul r9, rdi
imul r10, r8, 0x79bfd7ff
and r10d, 0x7fffffff
imul r10, r10, 0x7fffd801
add r10, r8
shr r10, 0x1f
sub r10d, 0x7fffd801
mov r8d, r10d
sar r8d, 0x1f
and r8d, 0x7fffd801
add r8d, r10d
mov r10, r9
imul r9, r9, 0x79bfd7ff
and r9d, 0x7fffffff
imul r9, r9, 0x7fffd801
add r9, r10
shr r9, 0x1f
sub r9d, 0x7fffd801
mov r10d, r9d
sar r10d, 0x1f
and r10d, 0x7fffd801
add r9d, r10d
cmp rax, r11
jne 0x1401301b0
mov edi, dword [rsp + 0x84]
test edi, edi
je 0x14012ffe8
mov dword [rsp + 0x20], 0x79bfd7ff
mov rcx, qword [rsp + 0x70]
mov r8d, edi
mov rdx, r13
mov r9d, 0x7fffd801
call fcn.140144920
mov r8d, edi
mov rdx, r13
mov rcx, r12
mov dword [rbp + 0x30], 0x79bfd7ff
movaps xmm6, xmmword [rsp + 0x110]
mov r9d, 0x7fffd801
movaps xmm7, xmmword [rsp + 0x120]
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.140144920
xor ecx, ecx
movsx r11d, byte [rdx + rcx]
mov rdi, qword [rsp + 0x70]
mov r9d, r11d
sar r9d, 0x1f
and r9d, 0x7fffd801
add r9d, r11d
mov dword [rdi + rcx*4], r9d
movsx r11d, byte [r8 + rcx]
mov r9d, r11d
sar r9d, 0x1f
and r9d, 0x7fffd801
add r9d, r11d
mov dword [r12 + rcx*4], r9d
add rcx, 1
cmp rax, rcx
jne 0x1401302ae
jmp 0x14012f1bb
mov edx, 0x647a5148
jmp 0x140130072
mov edx, 0x75596399
jmp 0x140130072
mov edx, 0x32515c51
jmp 0x140130072
mov edx, 0x61ecc538
jmp 0x140130072
mov edx, 0x7db88950
jmp 0x140130072
mov edx, 0x5af2430a
jmp 0x140130072
mov edx, 0x686a0ec2
jmp 0x140130072
mov edx, 0x2255b8a
jmp 0x140130072
mov edx, 0x22c6fd6b
jmp 0x140130072