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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x198
mov rax, qword [rcx + 0x38]
mov rbx, qword [rcx + 8]
mov r15, qword [rcx + 0x70]
mov qword [rsp + 0x40], rax
mov eax, dword [rcx + 0x18]
mov r10, rcx
mov r14, rdx
mov qword [rsp + 0x1f0], r8
mov r8, rdx
mov edi, dword [r10 + 0x1c]
mov qword [rsp + 0x1f8], r9
mov r9d, dword [rcx + 0x34]
sub r8, rbx
mov ecx, dword [rcx + 0x100]
mov dword [rsp + 0x88], eax
add rax, rbx
mov edx, edi
mov qword [rsp + 0x70], rax
mov eax, 1
shl eax, cl
mov ecx, r8d
mov dword [rsp + 0x48], r8d
sub ecx, edi
mov dword [rsp + 0x3c], edi
cmp eax, ecx
jae 0x140131560
mov edx, r8d
sub edx, eax
cmp dword [r10 + 0x28], 0
cmovne edx, dword [rsp + 0x3c]
mov ecx, 4
mov r11d, 1
mov rax, qword [r10 + 0x60]
mov r13, qword [r10 + 0xf8]
mov dword [rsp + 0x3c], edx
mov edx, dword [r10 + 0x10c]
mov qword [rsp + 0x78], rax
mov eax, r11d
cmp edx, 4
cmovbe ecx, edx
shl eax, cl
mov ecx, 0x42
sub ecx, dword [r13 + 0x108]
mov dword [rsp + 0x60], eax
movabs rax, 0xcf1bbcdcbf9b0000
imul rax, qword [r14]
mov rdi, rax
shr rdi, cl
mov rcx, rdi
shl rcx, 4
mov qword [rsp + 0x58], rcx
add rcx, qword [r13 + 0x70]
prefetcht0 byte [rcx]
mov dword [rsp + 0x8c], 0
cmp edx, 4
jbe 0x1401315f0
lea ecx, [rdx - 4]
shl r11d, cl
mov dword [rsp + 0x8c], r11d
mov edx, 0x38
sub edx, r9d
cmp dword [r10 + 0x12c], 0
mov dword [rsp + 0x68], edx
jne 0x140131844
lea rax, [r10 + 0x40]
mov edx, r8d
mov qword [rsp + 0x50], rax
mov eax, dword [r10 + 0x2c]
sub edx, eax
cmp edx, 0x180
jbe 0x14013174c
movabs rdi, 0xcf1bbcdcbf9b0000
cmp eax, 0xffffffa0
sbb edx, edx
and edx, 0x60
lea esi, [rax + rdx]
cmp eax, esi
je 0x1401316bc
mov edx, eax
mov r11, qword [rsp + 0x40]
mov rcx, qword [rbx + rdx + 8]
mov rdx, qword [r10 + 0x60]
imul rcx, rdi
xor rdx, rcx
mov cl, byte [rsp + 0x68]
shr rdx, cl
mov ecx, edx
shr ecx, 8
shl ecx, 4
prefetcht0 byte [r11 + rcx]
prefetcht0 byte [r15 + rcx*4]
mov r11, qword [rsp + 0x50]
mov ecx, eax
and ecx, 7
lea rcx, [r11 + rcx*4]
mov ebp, dword [rcx]
mov dword [rcx], edx
mov rdx, qword [rsp + 0x40]
mov ecx, ebp
shr ecx, 8
shl ecx, 4
lea r9, [rdx + rcx]
movzx edx, byte [r9]
dec edx
and edx, 0xf
cmp edx, 1
sbb r11d, r11d
and r11d, 0xf
add edx, r11d
mov byte [r9], dl
mov byte [r9 + rdx], bpl
add rdx, rcx
mov dword [r15 + rdx*4], eax
inc eax
jmp 0x14013163d
lea edx, [r8 - 0x20]
lea rcx, [r14 + 1]
mov rbp, qword [r10 + 0x70]
mov r12, qword [r10 + 0x38]
mov rax, rdx
add rdx, rbx
mov r11d, dword [r10 + 0x34]
xor r9d, r9d
cmp rcx, rdx
jb 0x1401316e5
sub rcx, rdx
lea r9d, [rcx + 1]
cmp r9d, 8
mov ecx, 8
cmova r9d, ecx
mov ecx, 0x38
sub ecx, r11d
lea edi, [r9 + rax]
movabs r9, 0xcf1bbcdcbf9b0000
mov dword [rsp + 0x80], edi
mov edi, eax
cmp dword [rsp + 0x80], edi
jbe 0x14013174c
mov r11, qword [rdx]
inc rdx
imul r11, r9
xor r11, qword [r10 + 0x60]
shr r11, cl
mov esi, r11d
shr esi, 8
shl esi, 4
prefetcht0 byte [rbp + rsi*4]
prefetcht0 byte [r12 + rsi]
mov esi, edi
inc edi
and esi, 7
mov dword [r10 + rsi*4 + 0x40], r11d
jmp 0x140131711
mov rbp, qword [r10 + 0x70]
mov r12, qword [r10 + 0x38]
mov r11d, eax
mov ecx, 0x38
add r11, qword [r10 + 8]
sub ecx, dword [r10 + 0x34]
cmp dword [rsp + 0x48], eax
jbe 0x1401317f7
movabs rdx, 0xcf1bbcdcbf9b0000
imul rdx, qword [r11 + 8]
xor rdx, qword [r10 + 0x60]
shr rdx, cl
mov rdi, qword [rsp + 0x50]
mov r9d, edx
shr r9d, 8
shl r9d, 4
prefetcht0 byte [rbp + r9*4]
prefetcht0 byte [r12 + r9]
mov r9d, eax
and r9d, 7
lea r9, [rdi + r9*4]
mov edi, dword [r9]
mov dword [r9], edx
mov r9d, edi
mov dword [rsp + 0x80], edi
shr r9d, 8
shl r9d, 4
lea rsi, [r12 + r9]
movzx edx, byte [rsi]
dec edx
and edx, 0xf
cmp edx, 1
sbb edi, edi
inc r11
and edi, 0xf
add edx, edi
mov dil, byte [rsp + 0x80]
mov byte [rsi], dl
mov byte [rsi + rdx], dil
add rdx, r9
mov dword [rbp + rdx*4], eax
inc eax
jmp 0x140131764
mov edx, r8d
mov cl, byte [rsp + 0x68]
mov rsi, qword [rsp + 0x40]
mov dword [r10 + 0x2c], r8d
movabs rax, 0xcf1bbcdcbf9b0000
imul rax, qword [rbx + rdx + 8]
xor rax, qword [rsp + 0x78]
and r8d, 7
shr rax, cl
mov rdx, rax
shr eax, 8
shl eax, 4
prefetcht0 byte [r15 + rax*4]
prefetcht0 byte [rsi + rax]
mov rax, qword [rsp + 0x50]
lea rcx, [rax + r8*4]
mov eax, dword [rcx]
mov dword [rcx], edx
jmp 0x140131854
mov cl, byte [rsp + 0x68]
xor rax, qword [rsp + 0x78]
mov dword [r10 + 0x2c], r8d
shr rax, cl
mov r8d, eax
movd xmm0, eax
add dword [r10 + 0x68], eax
mov ebp, eax
shr r8d, 8
punpcklbw xmm0, xmm0
xor esi, esi
shl r8d, 4
punpcklwd xmm0, xmm0
lea r11, [r15 + r8*4]
add r8, qword [rsp + 0x40]
pshufd xmm0, xmm0, 0
movups xmm1, xmmword [r8]
mov r9b, byte [r8]
pcmpeqb xmm0, xmm1
mov ecx, r9d
mov edi, r9d
and ecx, 0xf
and edi, 0xf
pmovmskb eax, xmm0
ror ax, cl
movzx ecx, ax
test rcx, rcx
je 0x1401318e3
cmp dword [rsp + 0x60], 0
je 0x1401318e3
call fcn.14015d700
add eax, edi
and eax, 0xf
je 0x1401318da
mov eax, eax
mov eax, dword [r11 + rax*4]
cmp eax, dword [rsp + 0x3c]
jb 0x1401318e3
mov edx, eax
prefetcht0 byte [rbx + rdx]
dec dword [rsp + 0x60]
mov dword [rsp + rsi*4 + 0x90], eax
inc rsi
lea rax, [rcx - 1]
and rcx, rax
jmp 0x1401318a2
lea eax, [r9 + 0xf]
and eax, 0xf
cmp eax, 1
sbb edx, edx
xor r15d, r15d
and edx, 0xf
add eax, edx
mov byte [r8], al
mov byte [r8 + rax], bpl
mov edx, dword [r10 + 0x2c]
mov ebp, 3
lea ecx, [rdx + 1]
mov dword [r10 + 0x2c], ecx
mov dword [r11 + rax*4], edx
mov eax, dword [rsp + 0x48]
add eax, 3
mov dword [rsp + 0x3c], eax
cmp rsi, r15
je 0x140131975
mov edx, dword [rsp + r15*4 + 0x90]
mov eax, dword [r14 + rbp - 3]
mov rdi, rdx
add rdx, rbx
cmp dword [rdx + rbp - 3], eax
jne 0x140131970
mov r8, qword [rsp + 0x1f0]
mov rcx, r14
call fcn.14015d470
mov r12, rax
cmp rbp, rax
jae 0x140131970
mov eax, dword [rsp + 0x3c]
sub eax, edi
mov rdi, qword [rsp + 0x1f8]
mov qword [rdi], rax
lea rax, [r14 + r12]
cmp r8, rax
je 0x140131978
mov rbp, r12
inc r15
jmp 0x14013191d
mov r12, rbp
mov r9, qword [r13]
mov rdi, qword [r13 + 8]
mov eax, dword [rsp + 0x60]
add eax, dword [rsp + 0x8c]
mov r15d, r9d
mov dword [rsp + 0x3c], eax
mov rdx, qword [r13 + 0x70]
sub r15d, edi
cmp eax, 3
mov eax, 3
cmovbe eax, dword [rsp + 0x3c]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x58]
lea r11, [rdx + rax]
xor eax, eax
mov ecx, dword [r11 + rax*4]
inc rax
prefetcht0 byte [rdi + rcx]
cmp rax, 3
jne 0x1401319b5
mov rax, qword [rsp + 0x58]
xor ebp, ebp
mov ebx, dword [rdx + rax + 0xc]
mov rax, qword [r13 + 0x80]
mov esi, ebx
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
shr esi, 8
mov eax, esi
lea r10, [rcx + rax*4]
mov eax, dword [rsp + 0x48]
sub eax, dword [rsp + 0x88]
lea rcx, [r14 + 4]
lea eax, [r15 + rax + 3]
prefetcht0 byte [r10]
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x50], ebp
jbe 0x140131aae
mov edx, dword [r11 + rbp*4]
mov r13, rdx
add rdx, rdi
test r13d, r13d
je 0x140131b63
mov eax, dword [r14]
cmp dword [rdx], eax
jne 0x140131aa6
mov rax, qword [rsp + 0x70]
mov r8, qword [rsp + 0x1f0]
add rdx, 4
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x60], rcx
call fcn.14015d7e0
mov rcx, qword [rsp + 0x60]
mov r9, qword [rsp + 0x68]
add rax, 4
mov r10, qword [rsp + 0x78]
mov r11, qword [rsp + 0x80]
cmp rax, r12
jbe 0x140131aa6
mov edx, dword [rsp + 0x58]
mov r8, qword [rsp + 0x1f8]
mov r12, rax
sub edx, r13d
mov qword [r8], rdx
lea rdx, [r14 + rax]
cmp qword [rsp + 0x1f0], rdx
je 0x140131b63
inc rbp
jmp 0x140131a09
mov edx, dword [rsp + 0x3c]
movzx ebx, bl
sub edx, ebp
cmp ebx, edx
cmova ebx, edx
xor eax, eax
cmp ebx, eax
jbe 0x140131acf
mov edx, dword [r10 + rax*4]
inc rax
prefetcht0 byte [rdi + rdx]
jmp 0x140131abe
lea eax, [rsi + rbx]
mov r13, r12
lea rbx, [r14 + 4]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x48]
sub eax, dword [rsp + 0x88]
lea ebp, [r15 + rax + 3]
cmp esi, dword [rsp + 0x3c]
je 0x140131b60
mov rcx, qword [rsp + 0x40]
mov eax, esi
mov edx, dword [rcx + rax*4]
mov eax, dword [r14]
mov r15, rdx
add rdx, rdi
cmp dword [rdx], eax
jne 0x140131b5c
mov rax, qword [rsp + 0x70]
add rdx, 4
mov rcx, rbx
mov qword [rsp + 0x48], r9
mov r8, qword [rsp + 0x1f0]
mov qword [rsp + 0x20], rax
call fcn.14015d7e0
mov r9, qword [rsp + 0x48]
lea r12, [rax + 4]
cmp r12, r13
jbe 0x140131b5c
mov rcx, qword [rsp + 0x1f8]
mov eax, ebp
sub eax, r15d
mov qword [rcx], rax
lea rax, [r14 + r12]
cmp qword [rsp + 0x1f0], rax
je 0x140131b63
mov r13, r12
inc esi
jmp 0x140131aed
mov r12, r13
mov rax, r12
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret