Function at 0x14000efe0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xd8
mov r8, rcx
mov rax, qword [rsp + 0x148]
mov r13, r9
movzx ebx, word [rax + 2]
mov r12d, ebx
movzx ecx, word [rax + 4]
mov edi, ecx
shr r12d, 5
shr edi, 5
and r12d, 0x3f
and edi, 0x3f
mov byte [rsp + 0x39], r12b
mov byte [rsp + 0x3a], dil
cmp ebx, ecx
jbe 0x14001083e
lea esi, [rdi + r12*2]
imul esi, esi, 0x56
lea ebp, [r12 + rdi*2]
imul ebp, ebp, 0x56
shr esi, 8
mov byte [rsp + 0x3b], sil
shr ebp, 8
mov eax, r12d
sub eax, edi
cdq
xor eax, edx
mov byte [rsp + 0x3c], bpl
sub eax, edx
je 0x140010836
bsr r9d, eax
inc r9d
cmp ebx, ecx
mov ecx, 0
seta cl
lea ebx, [rcx + r9*2]
mov r9, qword [rsp + 0x148]
shl rbx, 0xe
movzx r10d, word [r9 + 0x10]
movzx r11d, word [r9 + 0x12]
mov r9d, r10d
shr r9d, 5
and r9d, 0x3f
lea r8, [r8 + rbx + 0xae888]
mov qword [rsp + 0xc0], r8
mov r8d, r11d
shr r8d, 5
and r8d, 0x3f
mov byte [rsp + 0x20], r9b
mov byte [rsp + 0x21], r8b
cmp r10d, r11d
jbe 0x140010821
lea ecx, [r8 + r9*2]
imul ebx, ecx, 0x56
lea r8d, [r9 + r8*2]
imul r9d, r8d, 0x56
shr ebx, 8
shr r9d, 8
mov byte [rsp + 0x22], bl
mov byte [rsp + 0x23], r9b
mov rcx, qword [rsp + 0x148]
mov ebx, dword [rcx + 0x14]
mov r8d, ebx
mov r9d, ebx
mov r11d, ebx
shr r8d, 6
shr r9d, 0xe
and r8d, 3
shr r11d, 0x16
and r9d, 3
shr ebx, 0x1e
and r11d, 3
movzx r10d, byte [rsp + r9 + 0x20]
movzx r8d, byte [rsp + r8 + 0x20]
mov r14d, r8d
movzx r15d, byte [rsp + r11 + 0x20]
mov bl, byte [rsp + rbx + 0x20]
mov byte [rsp + 0x26], r8b
mov dword [rsp + 0x48], r8d
mov byte [rsp + 0x32], r8b
mov byte [rsp + 0x24], r8b
mov dword [rsp + 0x58], r10d
mov byte [rsp + 0x35], r10b
mov dword [rsp + 0x68], r10d
mov byte [rsp + 0x30], r10b
mov dword [rsp + 0x60], r15d
mov byte [rsp + 0x38], r15b
mov byte [rsp + 0x33], r15b
mov byte [rsp + 0x36], bl
cmp byte [rcx], 1
ja 0x140010752
xor ebx, ebx
xor r9d, r9d
mov byte [rsp + 0x25], r8b
xor r10d, r10d
mov byte [rsp + 0x29], bl
mov byte [rsp + 0x28], bl
mov byte [rsp + 0x2c], bl
mov dword [rsp + 0x70], r9d
mov byte [rsp + 0x2b], bl
mov byte [rsp + 0x2f], bl
mov byte [rsp + 0x2e], bl
cmp r14d, r8d
mov ecx, r8d
mov r11d, r8d
cmova ecx, r14d
cmovb r11d, r14d
cmp r8d, ecx
jae 0x14000f1bb
add r14d, r8d
sub r14d, r8d
cmp r8d, r11d
mov r11d, ecx
cmova r11d, r14d
movzx r11d, r11b
mov r8d, r12d
sub r8d, r11d
xor ecx, ecx
mov eax, r8d
mov r15d, 2
cdq
mov eax, edi
xor r8d, edx
sub eax, r11d
sub r8d, edx
cdq
xor eax, edx
mov r14d, 3
sub eax, edx
cmp eax, r8d
cmovb r8d, eax
mov eax, esi
setb cl
sub eax, r11d
cdq
xor eax, edx
neg r11d
sub eax, edx
add r11d, ebp
cmp eax, r8d
cmovb r8d, eax
mov eax, r11d
cdq
cmovb rcx, r15
xor r11d, edx
sub r11d, edx
cmp r11d, r8d
mov r15d, dword [r13]
mov r8d, r15d
cmovb rcx, r14
and r8d, 0x7fff
shl rcx, 0xc
add rcx, qword [rsp + 0xc0]
shr r15d, 0xf
movd xmm0, r8d
movdqu xmm4, xmmword [rcx + 0x240]
punpcklwd xmm0, xmm0
movdqa xmm2, xmm4
pshufd xmm1, xmm0, 0
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r11d, xmm2
add r11d, 0x10
bsf eax, r11d
mov dword [rsp + 0xc8], eax
lea r11d, [rax - 1]
movzx r14d, word [rcx + r11*2 + 0x240]
sub r8d, r14d
movzx edx, word [rcx + rax*2 + 0x240]
sub edx, r14d
lea r14, [0x140000000]
imul edx, r15d
movsxd r15, r11d
add r8d, edx
shl r15, 4
movdqu xmm3, xmmword [r14 + r15 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rcx + 0x240], xmm4
cmp r8d, 0x800000
jb 0x140010707
movzx ecx, byte [rsp + r11 + 0x39]
cmp ecx, r9d
mov r14d, r9d
mov r11d, r9d
cmova r14d, ecx
cmovb r11d, ecx
mov dword [r13], r8d
mov dword [rsp + 0x40], ecx
cmp ebx, r14d
jae 0x14000f302
lea r15d, [rcx + r9]
sub r15d, ebx
cmp ebx, r11d
mov r11d, r14d
cmova r11d, r15d
movzx r11d, r11b
mov ebx, r12d
sub ebx, r11d
mov r15d, esi
mov eax, ebx
sub r15d, r11d
cdq
mov eax, edi
xor ebx, edx
sub eax, r11d
sub ebx, edx
cdq
xor eax, edx
xor r14d, r14d
sub eax, edx
neg r11d
cmp eax, ebx
mov ecx, dword [rsp + 0xc8]
cmovb ebx, eax
mov eax, r15d
cdq
setb r14b
xor r15d, edx
sub r15d, edx
mov eax, 2
cmp r15d, ebx
lea ecx, [rcx + 0x1f]
cmovb r14, rax
add r11d, ebp
mov eax, r11d
cmp r15d, ebx
cdq
cmovb ebx, r15d
xor r11d, edx
sub r11d, edx
mov r15d, 3
cmp r11d, ebx
mov r11d, r8d
cmovb r14, r15
and r11d, 0x7fff
shl rcx, 4
add rcx, qword [rsp + 0xc0]
shl r14, 0xc
add rcx, r14
movd xmm0, r11d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rcx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r14d, xmm2
add r14d, 0x10
bsf r15d, r14d
mov dword [rsp + 0xb8], r15d
lea r14d, [r15 - 1]
movzx ebx, word [rcx + r14*2]
movzx r15d, word [rcx + r15*2]
sub r15d, ebx
imul r8d, r15d
sub r8d, ebx
lea rbx, [0x140000000]
add r8d, r11d
movsxd r11, r14d
shl r11, 4
movdqu xmm3, xmmword [rbx + r11 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rcx], xmm4
cmp r8d, 0x800000
jb 0x1400106be
movzx ebx, byte [rsp + r14 + 0x39]
mov r11d, dword [rsp + 0x70]
cmp ebx, r11d
mov r14d, r11d
cmova r14d, ebx
cmovb r11d, ebx
mov dword [r13], r8d
cmp r9d, r14d
jae 0x14000f44f
mov ecx, dword [rsp + 0x70]
lea r15d, [rbx + rcx]
sub r15d, r9d
cmp r9d, r11d
mov r11d, r14d
cmova r11d, r15d
movzx r11d, r11b
mov r9d, r12d
sub r9d, r11d
mov r14d, esi
mov eax, r9d
sub r14d, r11d
cdq
mov eax, edi
xor r9d, edx
sub eax, r11d
sub r9d, edx
cdq
xor eax, edx
xor r15d, r15d
sub eax, edx
neg r11d
cmp eax, r9d
mov ecx, dword [rsp + 0xb8]
cmovb r9d, eax
mov eax, r14d
cdq
setb r15b
xor r14d, edx
sub r14d, edx
mov eax, 2
cmp r14d, r9d
lea ecx, [rcx + 0x1f]
cmovb r15, rax
add r11d, ebp
mov eax, r11d
cmp r14d, r9d
cdq
cmovb r9d, r14d
xor r11d, edx
sub r11d, edx
mov r14d, 3
cmp r11d, r9d
cmovb r15, r14
mov r14d, r8d
shl rcx, 4
and r14d, 0x7fff
add rcx, qword [rsp + 0xc0]
shl r15, 0xc
add rcx, r15
movd xmm0, r14d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
movdqu xmm4, xmmword [rcx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r15d, xmm2
add r15d, 0x10
bsf r9d, r15d
mov dword [rsp + 0xb0], r9d
lea r15d, [r9 - 1]
movzx r11d, word [rcx + r15*2]
movzx eax, word [rcx + r9*2]
shr r8d, 0xf
sub eax, r11d
imul r8d, eax
movsxd rax, r15d
sub r8d, r11d
shl rax, 4
lea r11, [0x140000000]
add r8d, r14d
movdqu xmm3, xmmword [r11 + rax + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rcx], xmm4
cmp r8d, 0x800000
jb 0x140010673
movzx ecx, byte [rsp + r15 + 0x39]
cmp ecx, r10d
mov r11d, r10d
mov r14d, r10d
cmova r11d, ecx
cmovb r14d, ecx
mov dword [r13], r8d
mov dword [rsp + 0x50], ecx
cmp r11d, dword [rsp + 0x70]
jbe 0x14000f5a6
add r10d, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x70]
sub r10d, ecx
cmp ecx, r14d
mov r14d, r11d
cmova r14d, r10d
movzx r14d, r14b
mov r15d, r12d
sub r15d, r14d
mov r11d, esi
mov eax, r15d
sub r11d, r14d
cdq
mov eax, edi
xor r15d, edx
sub eax, r14d
sub r15d, edx
cdq
xor eax, edx
neg r14d
sub eax, edx
add r14d, ebp
xor r10d, r10d
cmp eax, r15d
cmovb r15d, eax
mov eax, r11d
cdq
mov eax, r14d
setb r10b
mov r9d, 2
xor r11d, edx
sub r11d, edx
cmp r11d, r15d
cdq
cmovb r10, r9
mov ecx, dword [rsp + 0xb0]
mov r9d, r8d
cmovb r15d, r11d
xor r14d, edx
sub r14d, edx
mov r11d, 3
cmp r14d, r15d
lea ecx, [rcx + 0x1f]
cmovb r10, r11
and r9d, 0x7fff
shl rcx, 4
add rcx, qword [rsp + 0xc0]
shl r10, 0xc
add rcx, r10
movd xmm0, r9d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rcx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r10d, xmm2
add r10d, 0x10
bsf r14d, r10d
mov dword [rsp + 0xa8], r14d
lea r10d, [r14 - 1]
movzx r15d, word [rcx + r10*2]
movzx r11d, word [rcx + r14*2]
sub r11d, r15d
imul r8d, r11d
movsxd rax, r10d
sub r8d, r15d
shl rax, 4
add r8d, r9d
lea r9, [0x140000000]
movdqu xmm3, xmmword [r9 + rax + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rcx], xmm4
cmp r8d, 0x800000
jb 0x140010628
mov r11d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x68]
cmp ecx, r11d
movzx r9d, byte [rsp + r10 + 0x39]
mov r10d, r11d
cmova r10d, ecx
mov dword [r13], r8d
cmovb r11d, ecx
cmp r10d, dword [rsp + 0x48]
jbe 0x14000f700
mov r14d, ecx
add r14d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x48]
sub r14d, ecx
cmp ecx, r11d
mov r11d, r10d
cmova r11d, r14d
movzx r11d, r11b
mov r10d, r12d
sub r10d, r11d
mov r15d, esi
mov eax, r10d
sub r15d, r11d
cdq
mov eax, edi
xor r10d, edx
sub eax, r11d
sub r10d, edx
cdq
xor eax, edx
xor r14d, r14d
sub eax, edx
neg r11d
cmp eax, r10d
mov ecx, dword [rsp + 0xc8]
cmovb r10d, eax
mov eax, r15d
cdq
setb r14b
xor r15d, edx
sub r15d, edx
mov eax, 2
cmp r15d, r10d
lea ecx, [rcx*8 - 4]
cmovb r14, rax
add r11d, ebp
mov eax, r11d
cmp r15d, r10d
cdq
cmovb r10d, r15d
xor r11d, edx
sub r11d, edx
mov r15d, 3
cmp r11d, r10d
mov r11d, r8d
cmovb r14, r15
and r11d, 0x7fff
shl rcx, 4
add rcx, qword [rsp + 0xc0]
shl r14, 0xc
add rcx, r14
movd xmm0, r11d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rcx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r14d, xmm2
add r14d, 0x10
bsf r15d, r14d
mov dword [rsp + 0xa0], r15d
lea r14d, [r15 - 1]
movzx r10d, word [rcx + r14*2]
movzx r15d, word [rcx + r15*2]
sub r15d, r10d
imul r8d, r15d
sub r8d, r10d
lea r10, [0x140000000]
add r8d, r11d
movsxd r11, r14d
shl r11, 4
movdqu xmm3, xmmword [r10 + r11 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rcx], xmm4
cmp r8d, 0x800000
jb 0x1400105dd
movzx ecx, byte [rsp + r14 + 0x39]
cmp ecx, ebx
mov r10d, ebx
mov r11d, ebx
cmova r10d, ecx
cmovb r11d, ecx
mov dword [r13], r8d
mov dword [rsp + 0x48], ecx
cmp r10d, dword [rsp + 0x40]
jbe 0x14000f85d
mov r14d, ebx
mov ecx, dword [rsp + 0x40]
sub r14d, ecx
add r14d, dword [rsp + 0x48]
cmp ecx, r11d
mov r11d, r10d
cmova r11d, r14d
movzx r11d, r11b
mov r10d, r12d
sub r10d, r11d
mov r15d, esi
mov eax, r10d
sub r15d, r11d
cdq
mov eax, edi
xor r10d, edx
sub eax, r11d
sub r10d, edx
cdq
xor eax, edx
xor r14d, r14d
sub eax, edx
neg r11d
cmp eax, r10d
mov ecx, dword [rsp + 0xc8]
cmovb r10d, eax
mov eax, r15d
cdq
mov eax, dword [rsp + 0xb8]
setb r14b
shl ecx, 6
xor r15d, edx
sub r15d, edx
add r11d, ebp
cmp r15d, r10d
mov edx, dword [rsp + 0xa0]
lea ecx, [rcx + rax*8]
mov eax, 2
cmovb r14, rax
mov eax, r11d
lea ecx, [rcx + rdx - 0x49]
cdq
cmovb r10d, r15d
xor r11d, edx
sub r11d, edx
mov r15d, 3
cmp r11d, r10d
mov r11d, r8d
cmovb r14, r15
and r11d, 0x7fff
shl rcx, 4
add rcx, qword [rsp + 0xc0]
shl r14, 0xc
add rcx, r14
movd xmm0, r11d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rcx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r14d, xmm2
add r14d, 0x10
bsf r15d, r14d
mov dword [rsp + 0x98], r15d
lea r14d, [r15 - 1]
movzx r10d, word [rcx + r14*2]
movzx r15d, word [rcx + r15*2]
sub r15d, r10d
imul r8d, r15d
sub r8d, r10d
lea r10, [0x140000000]
add r8d, r11d
movsxd r11, r14d
shl r11, 4
movdqu xmm3, xmmword [r10 + r11 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rcx], xmm4
cmp r8d, 0x800000
jb 0x140010592
movzx ecx, byte [rsp + r14 + 0x39]
mov r11d, dword [rsp + 0x50]
cmp ecx, r11d
mov r10d, r11d
cmova r10d, ecx
cmovb r11d, ecx
mov dword [r13], r8d
cmp ebx, r10d
jae 0x14000f9c1
mov r14d, dword [rsp + 0x50]
sub r14d, ebx
add r14d, ecx
cmp ebx, r11d
mov r11d, r10d
cmova r11d, r14d
movzx r11d, r11b
mov r10d, r12d
sub r10d, r11d
mov r15d, esi
mov eax, r10d
sub r15d, r11d
cdq
mov eax, edi
xor r10d, edx
sub eax, r11d
sub r10d, edx
cdq
xor eax, edx
xor r14d, r14d
sub eax, edx
neg r11d
cmp eax, r10d
mov ebx, dword [rsp + 0xb8]
cmovb r10d, eax
mov eax, r15d
cdq
mov eax, dword [rsp + 0xb0]
setb r14b
shl ebx, 6
xor r15d, edx
sub r15d, edx
add r11d, ebp
cmp r15d, r10d
mov edx, dword [rsp + 0x98]
lea ebx, [rbx + rax*8]
mov eax, 2
cmovb r14, rax
mov eax, r11d
lea ebx, [rbx + rdx - 0x49]
cdq
cmovb r10d, r15d
xor r11d, edx
sub r11d, edx
mov r15d, 3
cmp r11d, r10d
mov r11d, r8d
cmovb r14, r15
and r11d, 0x7fff
shl rbx, 4
add rbx, qword [rsp + 0xc0]
shl r14, 0xc
add rbx, r14
movd xmm0, r11d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rbx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r14d, xmm2
add r14d, 0x10
bsf r15d, r14d
mov dword [rsp + 0x88], r15d
lea r14d, [r15 - 1]
mov dword [rsp + 0x90], r14d
movzx r10d, word [rbx + r14*2]
movzx r15d, word [rbx + r15*2]
sub r15d, r10d
imul r8d, r15d
sub r8d, r10d
lea r10, [0x140000000]
add r8d, r11d
movsxd r11, r14d
shl r11, 4
movdqu xmm3, xmmword [r10 + r11 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rbx], xmm4
cmp r8d, 0x800000
jb 0x140010547
movzx ebx, byte [rsp + r14 + 0x39]
cmp ebx, r9d
mov r10d, r9d
mov r14d, r9d
cmova r10d, ebx
cmovb r14d, ebx
mov dword [r13], r8d
mov dword [rsp + 0x40], ebx
cmp r10d, dword [rsp + 0x50]
jbe 0x14000fb32
mov ebx, dword [rsp + 0x50]
sub r9d, ebx
add r9d, dword [rsp + 0x40]
cmp ebx, r14d
mov r14d, r10d
cmova r14d, r9d
movzx r14d, r14b
mov r15d, r12d
sub r15d, r14d
mov r11d, esi
mov eax, r15d
sub r11d, r14d
cdq
mov eax, edi
xor r15d, edx
sub eax, r14d
sub r15d, edx
cdq
xor eax, edx
neg r14d
sub eax, edx
add r14d, ebp
xor r10d, r10d
cmp eax, r15d
mov ebx, dword [rsp + 0xb0]
cmovb r15d, eax
mov eax, r11d
mov r9d, dword [rsp + 0xa8]
setb r10b
shl ebx, 6
cdq
xor r11d, edx
mov eax, r14d
sub r11d, edx
lea ebx, [rbx + r9*8]
mov r9d, dword [rsp + 0x88]
cmp r11d, r15d
cdq
lea ebx, [rbx + r9 - 0x49]
mov r9d, 2
cmovb r10, r9
mov r9d, r8d
cmovb r15d, r11d
xor r14d, edx
sub r14d, edx
mov r11d, 3
cmp r14d, r15d
cmovb r10, r11
and r9d, 0x7fff
shl rbx, 4
add rbx, qword [rsp + 0xc0]
shl r10, 0xc
add rbx, r10
movd xmm0, r9d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rbx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r10d, xmm2
add r10d, 0x10
bsf r14d, r10d
mov dword [rsp + 0x80], r14d
lea r10d, [r14 - 1]
movzx r15d, word [rbx + r10*2]
movzx r11d, word [rbx + r14*2]
sub r11d, r15d
imul r8d, r11d
movsxd rax, r10d
sub r8d, r15d
shl rax, 4
add r8d, r9d
lea r9, [0x140000000]
movdqu xmm3, xmmword [r9 + rax + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rbx], xmm4
cmp r8d, 0x800000
jb 0x1400104fc
mov ebx, dword [rsp + 0x60]
mov r11d, dword [rsp + 0x48]
cmp ebx, r11d
mov r9d, r11d
cmova r9d, ebx
cmovb r11d, ebx
mov dword [r13], r8d
movzx r10d, byte [rsp + r10 + 0x39]
cmp r9d, dword [rsp + 0x58]
jbe 0x14000fca5
mov r14d, ebx
add r14d, dword [rsp + 0x48]
mov ebx, dword [rsp + 0x58]
sub r14d, ebx
cmp ebx, r11d
mov r11d, r9d
cmova r11d, r14d
movzx r11d, r11b
mov r9d, r12d
sub r9d, r11d
mov r15d, esi
mov eax, r9d
sub r15d, r11d
cdq
mov eax, edi
xor r9d, edx
sub eax, r11d
sub r9d, edx
cdq
xor eax, edx
xor r14d, r14d
sub eax, edx
neg r11d
cmp eax, r9d
mov ebx, dword [rsp + 0xa0]
cmovb r9d, eax
mov eax, r15d
cdq
setb r14b
xor r15d, edx
sub r15d, edx
mov eax, 2
cmp r15d, r9d
lea ebx, [rbx*8 - 4]
cmovb r14, rax
add r11d, ebp
mov eax, r11d
cmp r15d, r9d
cdq
cmovb r9d, r15d
xor r11d, edx
sub r11d, edx
mov r15d, 3
cmp r11d, r9d
mov r11d, r8d
cmovb r14, r15
and r11d, 0x7fff
shl rbx, 4
add rbx, qword [rsp + 0xc0]
shl r14, 0xc
add rbx, r14
movd xmm0, r11d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rbx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r14d, xmm2
add r14d, 0x10
bsf r15d, r14d
mov dword [rsp + 0x78], r15d
lea r14d, [r15 - 1]
mov dword [rsp + 0x70], r14d
movzx r9d, word [rbx + r14*2]
movzx r15d, word [rbx + r15*2]
sub r15d, r9d
imul r8d, r15d
sub r8d, r9d
lea r9, [0x140000000]
add r8d, r11d
movsxd r11, r14d
shl r11, 4
movdqu xmm3, xmmword [r9 + r11 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rbx], xmm4
cmp r8d, 0x800000
jb 0x1400104b1
movzx ebx, byte [rsp + r14 + 0x39]
cmp ebx, ecx
mov r9d, ecx
mov r14d, ecx
cmova r9d, ebx
cmovb r14d, ebx
mov dword [r13], r8d
mov dword [rsp + 0x58], ebx
cmp r9d, dword [rsp + 0x48]
jbe 0x14000fe04
mov r11d, ecx
mov ebx, dword [rsp + 0x48]
sub r11d, ebx
add r11d, dword [rsp + 0x58]
cmp ebx, r14d
mov r14d, r9d
cmova r14d, r11d
movzx r14d, r14b
mov r11d, r12d
sub r11d, r14d
mov ebx, esi
mov eax, r11d
sub ebx, r14d
cdq
mov eax, edi
xor r11d, edx
sub eax, r14d
sub r11d, edx
cdq
xor eax, edx
xor r15d, r15d
sub eax, edx
neg r14d
cmp eax, r11d
mov r9d, dword [rsp + 0xa0]
cmovb r11d, eax
mov eax, ebx
cdq
mov eax, dword [rsp + 0x98]
setb r15b
shl r9d, 6
xor ebx, edx
sub ebx, edx
add r14d, ebp
cmp ebx, r11d
mov edx, dword [rsp + 0x78]
lea r9d, [r9 + rax*8]
mov eax, 2
cmovb r15, rax
mov eax, r14d
lea r9d, [r9 + rdx - 0x49]
cdq
cmovb r11d, ebx
xor r14d, edx
sub r14d, edx
mov ebx, 3
cmp r14d, r11d
mov r14d, r8d
cmovb r15, rbx
and r14d, 0x7fff
shl r9, 4
add r9, qword [rsp + 0xc0]
shl r15, 0xc
add r9, r15
movd xmm0, r14d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [r9]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r15d, xmm2
add r15d, 0x10
bsf ebx, r15d
lea r15d, [rbx - 1]
mov dword [rsp + 0x68], r15d
movzx r11d, word [r9 + r15*2]
movzx eax, word [r9 + rbx*2]
sub eax, r11d
imul r8d, eax
sub r8d, r11d
lea r11, [0x140000000]
add r8d, r14d
movsxd r14, r15d
shl r14, 4
movdqu xmm3, xmmword [r11 + r14 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [r9], xmm4
cmp r8d, 0x800000
jb 0x140010466
movzx r9d, byte [rsp + r15 + 0x39]
mov r11d, dword [rsp + 0x40]
cmp r9d, r11d
mov r14d, r11d
cmova r14d, r9d
cmovb r11d, r9d
mov dword [r13], r8d
mov dword [rsp + 0x50], r9d
cmp ecx, r14d
jae 0x14000ff6a
mov r9d, dword [rsp + 0x40]
sub r9d, ecx
add r9d, dword [rsp + 0x50]
cmp ecx, r11d
mov r11d, r14d
cmova r11d, r9d
movzx r11d, r11b
mov r9d, r12d
sub r9d, r11d
mov r14d, esi
mov eax, r9d
sub r14d, r11d
cdq
mov eax, edi
xor r9d, edx
sub eax, r11d
sub r9d, edx
cdq
xor eax, edx
xor r15d, r15d
sub eax, edx
neg r11d
cmp eax, r9d
mov ecx, dword [rsp + 0x98]
cmovb r9d, eax
mov eax, r14d
cdq
mov eax, dword [rsp + 0x88]
setb r15b
shl ecx, 6
xor r14d, edx
sub r14d, edx
add r11d, ebp
cmp r14d, r9d
lea ecx, [rcx + rax*8]
mov eax, 2
cmovb r15, rax
mov eax, r11d
cdq
lea ecx, [rcx + rbx - 0x49]
cmovb r9d, r14d
xor r11d, edx
sub r11d, edx
mov r14d, 3
cmp r11d, r9d
mov r11d, r8d
cmovb r15, r14
and r11d, 0x7fff
shl rcx, 4
add rcx, qword [rsp + 0xc0]
shl r15, 0xc
add rcx, r15
movd xmm0, r11d
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
shr r8d, 0xf
movdqu xmm4, xmmword [rcx]
movdqa xmm2, xmm4
pcmpgtw xmm2, xmm1
packsswb xmm2, xmm2
pmovmskb r15d, xmm2
add r15d, 0x10
bsf r14d, r15d
lea r15d, [r14 - 1]
mov dword [rsp + 0x60], r15d
movzx r9d, word [rcx + r15*2]
movzx eax, word [rcx + r14*2]
sub eax, r9d
imul r8d, eax
sub r8d, r9d
lea r9, [0x140000000]
add r8d, r11d
movsxd r11, r15d
shl r11, 4
movdqu xmm3, xmmword [r9 + r11 + 0x10c0]
psubw xmm3, xmm4
psraw xmm3, 7
paddw xmm4, xmm3
movdqu xmmword [rcx], xmm4
cmp r8d, 0x800000
jb 0x14001041b
movzx ecx, byte [rsp + r15 + 0x39]
cmp ecx, r10d
mov dword [r13], r8d
mov r8d, r10d
cmova r8d, ecx
mov r11d, r10d
mov dword [rsp + 0x48], ecx
cmovb r11d, ecx
cmp r8d, dword [rsp + 0x40]
jbe 0x1400100c9
mov ecx, dword [rsp + 0x40]
sub r10d, ecx
add r10d, dword [rsp + 0x48]
cmp ecx, r11d
mov r11d, r8d
cmova r11d, r10d
movzx r11d, r11b
mov r15d, r12d
sub r15d, r11d
mov r10d, esi
mov eax, r15d
sub r10d, r11d
cdq
mov eax, edi
xor r15d, edx
sub eax, r11d
sub r15d, edx
cdq
xor eax, edx
neg r11d
sub eax, edx
add r11d, ebp
xor r9d, r9d
cmp eax, r15d
mov ecx, dword [rsp + 0x90]
cmovb r15d, eax
mov eax, r10d
cdq
mov r8d, dword [rsp + 0x80]
mov eax, r11d
setb r9b
xor r10d, edx
shl ecx, 6
sub r10d, edx
cmp r10d, r15d
cdq
lea ecx, [rcx + r8*8 - 8]
mov r8d, 2
cmovb r9, r8
mov r8, qword [rsp + 0x140]
lea ecx, [rcx + r14 - 1]
cmovb r15d, r10d
xor r11d, edx
sub r11d, edx
mov r10d, 3
cmp r11d, r15d
mov rdx, r13
cmovb r9, r10
shl rcx, 4
add rcx, qword [rsp + 0xc0]
shl r9, 0xc
add rcx, r9
call fcn.140010850
mov r15d, eax
movzx r10d, byte [rsp + 0x36]
mov r9d, dword [rsp + 0x58]
cmp r10d, r9d
mov r8d, r9d
movzx ecx, byte [rsp + r15 + 0x39]
cmova r8d, r10d
mov dword [rsp + 0x40], ecx
cmovb r9d, r10d
movzx ecx, byte [rsp + 0x38]
cmp ecx, r8d
jae 0x1400101b4
add r10d, dword [rsp + 0x58]
sub r10d, ecx
cmp ecx, r9d
mov r9d, r8d
cmova r9d, r10d
movzx r9d, r9b
mov r11d, 2
sub r12d, r9d
sub edi, r9d
mov eax, r12d
sub esi, r9d
cdq
xor r12d, edx
mov eax, edi
sub r12d, edx
sub ebp, r9d
cdq
xor edi, edx
mov eax, esi
sub edi, edx
cdq
cmp edi, r12d
mov eax, ebp
mov r10d, dword [rsp + 0x78]
cmovb r12d, edi
mov edi, 0
setb dil
xor esi, edx
sub esi, edx
lea ecx, [r10*8 - 4]
cmp esi, r12d
cdq
cmovb rdi, r11
mov r8, qword [rsp + 0x140]
cmovb r12d, esi
xor ebp, edx
sub ebp, edx
mov rdx, r13
cmp ebp, r12d
mov ebp, 3
cmovb rdi, rbp
shl rcx, 4
add rcx, qword [rsp + 0xc0]
shl rdi, 0xc
add rcx, rdi
call fcn.140010850
mov edi, eax
lea r9, [rsp + 0x39]
mov edx, dword [r9 + 0x17]
mov r8d, dword [r9 + 0x1f]
movzx ecx, byte [rsp + rdi + 0x39]
call fcn.140010920
mov rbp, rax
mov rdx, r13
mov eax, dword [rsp + 0x70]
shl eax, 6
shl rbp, 0xc
mov r8, qword [rsp + 0x140]
lea ecx, [rax + rbx*8 - 8]
add ecx, edi
shl rcx, 4
add rcx, qword [rsp + 0xc0]
add rcx, rbp
call fcn.140010850
mov esi, eax
lea r9, [rsp + 0x39]
mov edx, dword [r9 + 0xf]
mov r8d, dword [r9 + 0x17]
movzx ecx, byte [rsp + rsi + 0x39]
call fcn.140010920
mov rbp, rax
mov rdx, r13
mov eax, dword [rsp + 0x68]
shl eax, 6
shl rbp, 0xc
mov r8, qword [rsp + 0x140]
lea ecx, [rax + r14*8 - 8]
add ecx, esi
shl rcx, 4
add rcx, qword [rsp + 0xc0]
add rcx, rbp
call fcn.140010850
mov ebp, eax
lea r9, [rsp + 0x39]
mov edx, dword [r9 + 7]
mov r8d, dword [r9 + 0xf]
movzx ecx, byte [rsp + rbp + 0x39]
call fcn.140010920
mov r10, rax
mov rdx, r13
mov eax, dword [rsp + 0x60]
shl eax, 6
mov rcx, qword [rsp + 0xc0]
shl r10, 0xc
mov r8, qword [rsp + 0x140]
lea r9d, [rax + r15*8]
add r9d, ebp
shl r9, 4
add rcx, r9
add rcx, r10
call fcn.140010850
mov edx, dword [rsp + 0xc8]
dec edx
shrd edx, edx, 2
mov ecx, dword [rsp + 0xb8]
mov r9d, dword [rsp + 0xb0]
mov r11d, dword [rsp + 0xa8]
mov r13d, dword [rsp + 0xa0]
lea r8d, [rdx + rcx - 1]
shrd r8d, r8d, 2
mov ecx, dword [rsp + 0x98]
lea r10d, [r8 + r9 - 1]
mov r9d, dword [rsp + 0x88]
shrd r10d, r10d, 2
lea r12d, [r10 + r11 - 1]
mov r11d, dword [rsp + 0x80]
shrd r12d, r12d, 2
lea edx, [r12 + r13 - 1]
mov r13d, dword [rsp + 0x78]
shrd edx, edx, 2
lea r8d, [rdx + rcx - 1]
shrd r8d, r8d, 2
lea r10d, [r8 + r9 - 1]
shrd r10d, r10d, 2
lea r12d, [r10 + r11 - 1]
shrd r12d, r12d, 2
lea edx, [r12 + r13 - 1]
shrd edx, edx, 2
lea ebx, [rdx + rbx - 1]
shrd ebx, ebx, 2
lea r14d, [rbx + r14 - 1]
shrd r14d, r14d, 2
add r14d, r15d
shrd r14d, r14d, 2
add r14d, edi
shrd r14d, r14d, 2
add r14d, esi
shrd r14d, r14d, 2
add r14d, ebp
shrd r14d, r14d, 2
add r14d, eax
mov rax, qword [rsp + 0x148]
shrd r14d, r14d, 2
mov dword [rax + 8], r14d
xor eax, eax
add rsp, 0xd8
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rcx, qword [rsp + 0x140]
shl r8d, 8
mov rcx, qword [rcx]
movzx r9d, byte [rcx]
or r8d, r9d
inc rcx
cmp r8d, 0x800000
jb 0x14001044d
mov r9, qword [rsp + 0x140]
mov qword [r9], rcx
jmp 0x14001008d
shl r8d, 8
movzx r9d, byte [rcx]
or r8d, r9d
inc rcx
cmp r8d, 0x800000
jb 0x14001044d
jmp 0x14001043d
mov r9, qword [rsp + 0x140]
shl r8d, 8
mov r9, qword [r9]
movzx r11d, byte [r9]
or r8d, r11d
inc r9
cmp r8d, 0x800000
jb 0x140010498
mov r11, qword [rsp + 0x140]
mov qword [r11], r9
jmp 0x14000ff2c
shl r8d, 8
movzx r11d, byte [r9]
or r8d, r11d
inc r9
cmp r8d, 0x800000
jb 0x140010498
jmp 0x140010488
mov rbx, qword [rsp + 0x140]
shl r8d, 8
mov rbx, qword [rbx]
movzx r9d, byte [rbx]
or r8d, r9d
inc rbx
cmp r8d, 0x800000
jb 0x1400104e3
mov r9, qword [rsp + 0x140]
mov qword [r9], rbx
jmp 0x14000fdc6
shl r8d, 8
movzx r9d, byte [rbx]
or r8d, r9d
inc rbx
cmp r8d, 0x800000
jb 0x1400104e3
jmp 0x1400104d3
mov rbx, qword [rsp + 0x140]
shl r8d, 8
mov rbx, qword [rbx]
movzx r9d, byte [rbx]
or r8d, r9d
inc rbx
cmp r8d, 0x800000
jb 0x14001052e
mov r9, qword [rsp + 0x140]
mov qword [r9], rbx
jmp 0x14000fc64
shl r8d, 8
movzx r9d, byte [rbx]
or r8d, r9d
inc rbx
cmp r8d, 0x800000
jb 0x14001052e
jmp 0x14001051e
mov rbx, qword [rsp + 0x140]
shl r8d, 8
mov rbx, qword [rbx]
movzx r10d, byte [rbx]
or r8d, r10d
inc rbx
cmp r8d, 0x800000
jb 0x140010579
mov r10, qword [rsp + 0x140]
mov qword [r10], rbx
jmp 0x14000faf6
shl r8d, 8
movzx r10d, byte [rbx]
or r8d, r10d
inc rbx
cmp r8d, 0x800000
jb 0x140010579
jmp 0x140010569
mov rcx, qword [rsp + 0x140]
shl r8d, 8
mov rcx, qword [rcx]
movzx r10d, byte [rcx]
or r8d, r10d
inc rcx
cmp r8d, 0x800000
jb 0x1400105c4
mov r10, qword [rsp + 0x140]
mov qword [r10], rcx
jmp 0x14000f98a
shl r8d, 8
movzx r10d, byte [rcx]
or r8d, r10d
inc rcx
cmp r8d, 0x800000
jb 0x1400105c4
jmp 0x1400105b4
mov rcx, qword [rsp + 0x140]
shl r8d, 8
mov rcx, qword [rcx]
movzx r10d, byte [rcx]
or r8d, r10d
inc rcx
cmp r8d, 0x800000
jb 0x14001060f
mov r10, qword [rsp + 0x140]
mov qword [r10], rcx
jmp 0x14000f81f
shl r8d, 8
movzx r10d, byte [rcx]
or r8d, r10d
inc rcx
cmp r8d, 0x800000
jb 0x14001060f
jmp 0x1400105ff
mov rcx, qword [rsp + 0x140]
shl r8d, 8
mov rcx, qword [rcx]
movzx r9d, byte [rcx]
or r8d, r9d
inc rcx
cmp r8d, 0x800000
jb 0x14001065a
mov r9, qword [rsp + 0x140]
mov qword [r9], rcx
jmp 0x14000f6bf
shl r8d, 8
movzx r9d, byte [rcx]
or r8d, r9d
inc rcx
cmp r8d, 0x800000
jb 0x14001065a
jmp 0x14001064a
mov rcx, qword [rsp + 0x140]
shl r8d, 8
mov rcx, qword [rcx]
movzx r11d, byte [rcx]
or r8d, r11d
inc rcx
cmp r8d, 0x800000
jb 0x1400106a5
mov r11, qword [rsp + 0x140]
mov qword [r11], rcx
jmp 0x14000f56a
shl r8d, 8
movzx r11d, byte [rcx]
or r8d, r11d
inc rcx
cmp r8d, 0x800000
jb 0x1400106a5
jmp 0x140010695
mov rcx, qword [rsp + 0x140]
shl r8d, 8
mov rcx, qword [rcx]
movzx ebx, byte [rcx]
or r8d, ebx
inc rcx
cmp r8d, 0x800000
jb 0x1400106ef
mov rbx, qword [rsp + 0x140]
mov qword [rbx], rcx
jmp 0x14000f418
shl r8d, 8
movzx ebx, byte [rcx]
or r8d, ebx
inc rcx
cmp r8d, 0x800000
jb 0x1400106ef
jmp 0x1400106df
mov rcx, qword [rsp + 0x140]
shl r8d, 8
mov rcx, qword [rcx]
movzx r14d, byte [rcx]
or r8d, r14d
inc rcx
cmp r8d, 0x800000
jb 0x140010739
mov r14, qword [rsp + 0x140]
mov qword [r14], rcx
jmp 0x14000f2cd
shl r8d, 8
movzx r14d, byte [rcx]
or r8d, r14d
inc rcx
cmp r8d, 0x800000
jb 0x140010739
jmp 0x140010729
mov rax, qword [rsp + 0x148]
lea r8, [rsp + 0x20]
movzx ecx, word [rax + 0x1c]
movzx edx, word [rax + 0x1e]
call fcn.14001eb00
mov rbx, qword [rsp + 0x148]
lea rax, [rsp + 0x35]
movzx ebp, byte [rax]
movzx esi, byte [rax - 5]
movzx r10d, byte [rbx + 0x23]
mov r8, r10
mov r12d, r10d
mov r9d, r10d
shr r12d, 4
and r8, 3
shr r9d, 2
and r12, 3
and r9, 3
shr r10d, 6
movzx edi, byte [rax - 2]
movzx r14d, byte [rsp + r12 + 0x20]
movzx r9d, byte [rsp + r9 + 0x20]
movzx r10d, byte [rsp + r10 + 0x20]
movzx ecx, byte [rax - 3]
movzx ebx, byte [rsp + r8 + 0x20]
mov r8d, ebx
mov dword [rsp + 0x70], r14d
mov byte [rax - 6], r14b
mov byte [rax - 0xa], r14b
mov dword [rsp + 0x58], ebp
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x60], edi
lea rdi, [rsp + 0x26]
mov byte [rdi], r8b
mov byte [rdi + 3], r8b
mov byte [rdi - 1], r8b
mov byte [rdi + 6], r9b
mov byte [rdi + 2], r9b
mov byte [rdi + 8], r10b
movzx r12d, byte [rsp + 0x39]
movzx r14d, byte [rdi - 2]
movzx edi, byte [rsp + 0x3a]
movzx esi, byte [rsp + 0x3b]
movzx ebp, byte [rsp + 0x3c]
mov dword [rsp + 0x48], ecx
jmp 0x14000f195
add r9d, r8d
shr r9d, 1
mov byte [rsp + 0x22], r9b
mov byte [rsp + 0x23], 0
jmp 0x14000f0df
xor r9d, r9d
jmp 0x14000f063
xor ebp, ebp
lea esi, [r12 + rdi]
shr esi, 1
mov byte [rsp + 0x3b], sil
jmp 0x14000f047