Function at 0x140085160
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 0x14008688c
cmp r8, r13
setae cl
cmp r12, r11
setae r9b
or cl, r9b
je 0x14008688c
mov r9, rax
movdqa xmm2, xmmword [0x14010ad40]
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 0x14008525b
mov rcx, rax
and rcx, 0xfffffffffffffff0
test al, 0xf
je 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x14008579b
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 0x1400857b8
test r10b, 1
jne 0x1400865e9
test edi, edi
je 0x1400865c8
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, [0x140108ae0]
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 0x140085ea0
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, [0x140109424]
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.14008bbd0
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.14008d010
mov rdx, qword [rsp + 0xc0]
mov rax, rdi
cmp r13, 1
jne 0x140085d76
nop word [rax + rax]
mov ecx, dword [rdx]
add rax, 4
add rdx, 4
mov dword [rax - 4], ecx
cmp r15, rax
jne 0x140085a20
cmp byte [rsp + 0xe8], 0
je 0x140085d23
cmp qword [rsp + 0xe0], 0
je 0x140085aed
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 0x140085d96
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 0x140085a80
cmp byte [rsp + 0x98], 0
jne 0x140085b1f
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.14008bcd0
mov rdx, qword [rsp + 0xb8]
mov rax, rdi
cmp r13, 1
jne 0x140085d56
nop dword [rax]
mov ecx, dword [rdx]
add rax, 4
add rdx, 4
mov dword [rax - 4], ecx
cmp rax, r15
jne 0x140085b38
cmp byte [rsp + 0xe8], 0
je 0x140085cf0
cmp qword [rsp + 0xe0], 0
je 0x140085bfd
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 0x140085e15
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 0x140085b90
cmp byte [rsp + 0x98], 0
jne 0x140085c2f
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.14008bcd0
cmp byte [rsp + 0xa7], 0
jne 0x140085c99
mov eax, dword [rsp + 0xa0]
test eax, eax
je 0x140085c99
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.14008bcd0
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.14008bcd0
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 0x140085ea0
mov ebx, dword [rsi - 4]
jmp 0x140085988
mov dword [rsp + 0x20], esi
mov r8d, dword [rsp + 0x84]
mov r9d, ebx
mov rcx, rdi
mov rdx, qword [rsp + 0xd8]
call fcn.14008b630
cmp qword [rsp + 0xe0], 0
jne 0x140085b67
jmp 0x140085c2f
mov dword [rsp + 0x20], esi
mov r8d, dword [rsp + 0x84]
mov r9d, ebx
mov rcx, rdi
mov rdx, qword [rsp + 0xd8]
call fcn.14008b630
cmp qword [rsp + 0xe0], 0
jne 0x140085a4f
jmp 0x140085b1f
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 0x140085d60
jmp 0x140085b4a
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 0x140085d80
jmp 0x140085a32
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 0x140085da0
mov r13, qword [rsp + 0x58]
jmp 0x140085aed
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 0x140085e28
mov r13, qword [rsp + 0xc8]
jmp 0x140085bfd
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.1400b7a30
mov qword [rsp + 0x20], rdi
mov r9, rsi
mov r8, r13
mov rcx, qword [rsp + 0x90]
mov rdx, r13
call fcn.1400b7a30
cmp r13, qword [rsp + 0x100]
jae 0x1400864b2
lea rax, [r13 + r13*2]
lea rdx, [0x140109420]
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.14008bbd0
mov dword [rsp + 0xf0], eax
test esi, esi
je 0x14008606d
mov r8d, r15d
mov edx, ebx
xor ecx, ecx
mov r9d, 1
mov eax, eax
nop dword [rax + rax]
bt esi, ecx
jae 0x140086032
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 0x140086000
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.14008d010
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 0x14008614a
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 0x1400860f0
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 0x1400860e0
mov r8d, dword [rsp + 0xec]
mov esi, dword [rsp + 0xe8]
test r8d, r8d
je 0x140086190
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.14008b630
cmp qword [rsp + 0xe0], 0
je 0x14008624d
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 0x1400864da
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 0x1400861e0
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 0x1400862ea
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 0x140086290
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 0x140086280
mov r8d, dword [rsp + 0xec]
mov esi, dword [rsp + 0xe8]
test r8d, r8d
je 0x140086330
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.14008b630
cmp qword [rsp + 0xe0], 0
je 0x1400863ed
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 0x140086550
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 0x140086380
add qword [rsp + 0xa8], 1
cmp byte [rsp + 0xa7], 0
jne 0x1400864a0
mov r15d, dword [rsp + 0xa0]
test r15d, r15d
je 0x140086469
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.14008bcd0
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.14008bcd0
mov rbx, qword [rsp + 0xa8]
cmp qword [rsp + 0x100], rbx
jbe 0x1400865c8
add qword [rsp + 0xc8], 0xc
add qword [rsp + 0xc0], 4
add qword [rsp + 0xb8], 4
jmp 0x140085f70
mov rbx, qword [rsp + 0xa8]
cmp qword [rsp + 0x100], rbx
ja 0x14008647f
mov edi, dword [rsp + 0xa0]
add qword [rsp + 0x50], 1
lea eax, [rdi - 1]
cmp dword [rsp + 0x3c], edi
je 0x1400865c8
mov dword [rsp + 0xa0], eax
mov edi, eax
jmp 0x1400857ea
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 0x1400864e0
jmp 0x14008624d
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 0x140086558
jmp 0x1400863ed
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 0x1400868df
je 0x1400868d5
cmp edi, 8
je 0x140086925
cmp edi, 7
je 0x14008691b
cmp edi, 6
je 0x140086911
cmp edi, 5
je 0x140086907
cmp edi, 4
je 0x1400868fd
cmp edi, 3
je 0x1400868f3
lea edx, [rdi + 8]
cmp edi, 2
je 0x1400868e9
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 0x140086663
imul rcx, r8, 0x79bfd7ff
lea rsi, [r13 + rbx]
xor r10d, r10d
xor r11d, r11d
lea rbx, [0x140108c20]
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 0x14008679b
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 0x140086790
mov edi, dword [rsp + 0x84]
test edi, edi
je 0x1400865c8
mov dword [rsp + 0x20], 0x79bfd7ff
mov rcx, qword [rsp + 0x70]
mov r8d, edi
mov rdx, r13
mov r9d, 0x7fffd801
call fcn.14008b630
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.14008b630
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 0x14008688e
jmp 0x14008579b
mov edx, 0x647a5148
jmp 0x140086652
mov edx, 0x75596399
jmp 0x140086652
mov edx, 0x32515c51
jmp 0x140086652
mov edx, 0x61ecc538
jmp 0x140086652
mov edx, 0x7db88950
jmp 0x140086652
mov edx, 0x5af2430a
jmp 0x140086652
mov edx, 0x686a0ec2
jmp 0x140086652
mov edx, 0x2255b8a
jmp 0x140086652
mov edx, 0x22c6fd6b
jmp 0x140086652