Function at 0x14018a070
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, 0x188
mov rax, qword [rcx + 8]
mov rdi, qword [rcx + 0x70]
mov rsi, qword [rcx + 0x38]
mov ebp, dword [rcx + 0x34]
mov qword [rsp + 0x30], rax
mov eax, dword [rcx + 0x18]
mov r10, rcx
mov r15, rdx
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x1e0], r8
mov r8, rdx
mov ecx, dword [rcx + 0x100]
mov qword [rsp + 0x1e8], r9
mov edx, dword [r10 + 0x1c]
mov dword [rsp + 0x5c], eax
add rax, rbx
sub r8, rbx
mov qword [rsp + 0x70], rax
mov eax, 1
shl eax, cl
mov ecx, r8d
mov dword [rsp + 0x4c], r8d
sub ecx, edx
mov dword [rsp + 0x3c], edx
cmp eax, ecx
jae 0x14018a0f3
mov ebx, r8d
sub ebx, eax
mov dword [rsp + 0x3c], ebx
mov eax, 6
cmp dword [r10 + 0x28], 0
mov r9d, 0x18
mov ecx, dword [r10 + 0x10c]
mov rbx, qword [r10 + 0xf8]
cmove edx, dword [rsp + 0x3c]
cmp ecx, eax
mov dword [rsp + 0x3c], edx
cmova ecx, eax
mov eax, 1
mov r11, qword [rbx + 0x38]
mov r12, qword [rbx + 0x70]
shl eax, cl
mov ecx, r9d
sub ecx, dword [rbx + 0x34]
sub r9d, ebp
mov dword [rsp + 0x48], eax
imul eax, dword [r15], 0x9e3779b1
mov edx, eax
shr edx, cl
mov dword [rsp + 0x64], edx
shr edx, 8
shl edx, 6
cmp dword [r10 + 0x12c], 0
prefetcht0 byte [r11 + rdx + 0x20]
lea rcx, [r11 + rdx]
mov qword [rsp + 0x50], rcx
lea rcx, [rdx*4]
lea r14, [r12 + rcx]
prefetcht0 byte [r12 + rcx + 0x40]
mov rcx, qword [rsp + 0x50]
prefetcht0 byte [r14]
mov qword [rsp + 0x78], r14
prefetcht0 byte [rcx]
mov rcx, qword [r10 + 0x60]
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x68], rcx
jne 0x14018a409
lea rax, [r10 + 0x40]
mov edx, r8d
mov qword [rsp + 0x40], rax
mov eax, dword [r10 + 0x2c]
sub edx, eax
cmp edx, 0x180
jbe 0x14018a2f9
cmp eax, 0xffffffa0
sbb edx, edx
and edx, 0x60
lea ebp, [rax + rdx]
cmp eax, ebp
je 0x14018a258
mov rcx, qword [rsp + 0x30]
mov edx, eax
mov r14, qword [rsp + 0x40]
imul ecx, dword [rcx + rdx + 8], 0x9e3779b1
xor ecx, dword [r10 + 0x60]
mov edx, ecx
mov cl, byte [rsp + 0x58]
shr edx, cl
mov ecx, edx
shr edx, 8
shl edx, 6
prefetcht0 byte [rsi + rdx]
prefetcht0 byte [rsi + rdx + 0x20]
lea r9, [rdx*4]
mov edx, eax
and edx, 7
prefetcht0 byte [rdi + r9]
prefetcht0 byte [rdi + r9 + 0x40]
lea rdx, [r14 + rdx*4]
mov r12d, dword [rdx]
mov dword [rdx], ecx
mov ecx, r12d
shr ecx, 8
shl ecx, 6
lea r9, [rsi + rcx]
movzx edx, byte [r9]
dec edx
and edx, 0x3f
cmp edx, 1
sbb r11d, r11d
and r11d, 0x3f
add edx, r11d
add rcx, rdx
mov byte [r9], dl
mov byte [r9 + rdx], r12b
mov dword [rdi + rcx*4], eax
inc eax
jmp 0x14018a1c7
mov r9, qword [rsp + 0x30]
lea edx, [r8 - 0x20]
lea rcx, [r15 + 1]
mov rax, rdx
mov r13, qword [r10 + 0x70]
mov r14, qword [r10 + 0x38]
mov r11d, dword [r10 + 0x34]
add rdx, r9
xor r9d, r9d
cmp rcx, rdx
jb 0x14018a286
sub rcx, rdx
lea r9d, [rcx + 1]
mov ecx, 8
mov r12d, eax
cmp r9d, ecx
cmova r9d, ecx
lea ecx, [r9 + rax]
mov dword [rsp + 0x60], ecx
mov ecx, 0x18
sub ecx, r11d
mov r11d, dword [rsp + 0x60]
cmp r12d, r11d
jae 0x14018a2f9
imul ebp, dword [rdx], 0x9e3779b1
inc rdx
xor ebp, dword [r10 + 0x60]
shr ebp, cl
mov r11d, ebp
shr r11d, 8
shl r11d, 6
lea r9, [r11*4]
prefetcht0 byte [r14 + r11]
prefetcht0 byte [r14 + r11 + 0x20]
mov r11d, r12d
and r11d, 7
prefetcht0 byte [r13 + r9]
prefetcht0 byte [r13 + r9 + 0x40]
inc r12d
mov dword [r10 + r11*4 + 0x40], ebp
jmp 0x14018a2a5
mov r11d, eax
mov ecx, 0x18
mov rbp, qword [r10 + 0x70]
mov r12, qword [r10 + 0x38]
add r11, qword [r10 + 8]
sub ecx, dword [r10 + 0x34]
mov edx, dword [rsp + 0x4c]
cmp eax, edx
jae 0x14018a3b3
imul r9d, dword [r11 + 8], 0x9e3779b1
xor r9d, dword [r10 + 0x60]
mov r14, qword [rsp + 0x40]
shr r9d, cl
mov edx, r9d
shr edx, 8
shl edx, 6
prefetcht0 byte [r12 + rdx]
prefetcht0 byte [r12 + rdx + 0x20]
lea r13, [rdx*4]
mov edx, eax
and edx, 7
prefetcht0 byte [rbp + r13]
prefetcht0 byte [rbp + r13 + 0x40]
lea rdx, [r14 + rdx*4]
mov r14d, dword [rdx]
mov dword [rdx], r9d
mov r9d, r14d
mov dword [rsp + 0x60], r14d
shr r9d, 8
shl r9d, 6
lea r13, [r12 + r9]
movzx edx, byte [r13]
dec edx
and edx, 0x3f
cmp edx, 1
sbb r14d, r14d
inc r11
and r14d, 0x3f
add edx, r14d
mov r14b, byte [rsp + 0x60]
add r9, rdx
mov byte [r13], dl
mov byte [r13 + rdx], r14b
mov dword [rbp + r9*4], eax
inc eax
jmp 0x14018a311
mov rcx, qword [rsp + 0x30]
mov eax, r8d
mov dword [r10 + 0x2c], r8d
and r8d, 7
imul edx, dword [rcx + rax + 8], 0x9e3779b1
mov eax, dword [rsp + 0x68]
mov cl, byte [rsp + 0x58]
xor edx, eax
shr edx, cl
mov eax, edx
shr eax, 8
shl eax, 6
lea rcx, [rax*4]
prefetcht0 byte [rsi + rax]
prefetcht0 byte [rsi + rax + 0x20]
mov rax, qword [rsp + 0x40]
prefetcht0 byte [rdi + rcx]
prefetcht0 byte [rdi + rcx + 0x40]
lea rax, [rax + r8*4]
mov r9d, dword [rax]
mov dword [rax], edx
jmp 0x14018a41c
mov ecx, dword [rsp + 0x68]
mov dword [r10 + 0x2c], r8d
xor eax, ecx
mov cl, byte [rsp + 0x58]
shr eax, cl
mov r9d, eax
add dword [r10 + 0x68], r9d
mov r8d, r9d
xor ecx, ecx
movd xmm0, r9d
shr r8d, 8
mov qword [rsp + 0x80], rcx
xor eax, eax
punpcklbw xmm0, xmm0
shl r8d, 6
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
lea r11, [rdi + r8*4]
add r8, rsi
mov qword [rsp + 0x88], rcx
mov bpl, byte [r8]
mov edx, ebp
mov edi, ebp
and edx, 0x3f
and edi, 0x3f
mov rcx, rax
shl rcx, 4
movups xmm1, xmmword [r8 + rcx]
pcmpeqb xmm1, xmm0
pmovmskb ecx, xmm1
mov dword [rsp + rax*4 + 0x80], ecx
inc rax
cmp rax, 4
jne 0x14018a465
movsxd rcx, dword [rsp + 0x8c]
xor esi, esi
movsxd rax, dword [rsp + 0x88]
shl rcx, 0x30
shl rax, 0x20
or rax, rcx
movsxd rcx, dword [rsp + 0x80]
or rax, rcx
movsxd rcx, dword [rsp + 0x84]
shl rcx, 0x10
or rax, rcx
mov ecx, edx
ror rax, cl
mov rcx, rax
test rcx, rcx
je 0x14018a511
cmp dword [rsp + 0x48], 0
je 0x14018a511
call fcn.1401b4410
add eax, edi
and eax, 0x3f
mov edx, eax
mov edx, dword [r11 + rdx*4]
je 0x14018a508
mov eax, dword [rsp + 0x3c]
cmp edx, eax
jb 0x14018a511
mov r14, qword [rsp + 0x30]
mov eax, edx
prefetcht0 byte [r14 + rax]
dec dword [rsp + 0x48]
mov dword [rsp + rsi*4 + 0x80], edx
inc rsi
lea rax, [rcx - 1]
and rcx, rax
jmp 0x14018a4c8
lea eax, [rbp + 0x3f]
mov r12d, 3
and eax, 0x3f
cmp eax, 1
sbb edx, edx
xor r13d, r13d
and edx, 0x3f
add eax, edx
mov byte [r8], al
mov byte [r8 + rax], r9b
mov edx, dword [r10 + 0x2c]
lea ecx, [rdx + 1]
mov dword [r10 + 0x2c], ecx
mov dword [r11 + rax*4], edx
mov eax, dword [rsp + 0x4c]
lea ebp, [rax + 3]
cmp rsi, r13
je 0x14018a5a4
mov edx, dword [rsp + r13*4 + 0x80]
mov rax, qword [rsp + 0x30]
mov r14, rdx
add rdx, rax
mov eax, dword [r15 + r12 - 3]
cmp dword [rdx + r12 - 3], eax
jne 0x14018a59f
mov r8, qword [rsp + 0x1e0]
mov rcx, r15
call fcn.1401b4180
cmp r12, rax
mov rdi, rax
jae 0x14018a59f
mov rcx, qword [rsp + 0x1e8]
mov eax, ebp
sub eax, r14d
mov qword [rcx], rax
lea rax, [r15 + rdi]
cmp r8, rax
je 0x14018a5a7
mov r12, rdi
inc r13
jmp 0x14018a547
mov rdi, r12
mov rax, qword [rsp + 0x50]
movd xmm0, dword [rsp + 0x64]
mov rsi, qword [rbx + 8]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm0, xmm0, 0
mov r10d, dword [rbx + 0x18]
mov rbx, qword [rbx]
mov r9b, byte [rax]
xor eax, eax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rax
xor eax, eax
mov r8d, ebx
mov ecx, r9d
sub r8d, esi
and r9d, 0x3f
and ecx, 0x3f
mov r14, qword [rsp + 0x50]
mov rdx, rax
shl rdx, 4
movups xmm1, xmmword [r14 + rdx]
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
mov dword [rsp + rax*4 + 0x80], edx
inc rax
cmp rax, 4
jne 0x14018a5f1
movsxd rdx, dword [rsp + 0x8c]
xor ebp, ebp
movsxd rax, dword [rsp + 0x88]
shl rdx, 0x30
shl rax, 0x20
or rax, rdx
movsxd rdx, dword [rsp + 0x80]
or rax, rdx
movsxd rdx, dword [rsp + 0x84]
shl rdx, 0x10
or rax, rdx
ror rax, cl
mov rcx, rax
test rcx, rcx
jne 0x14018a679
lea rax, [r15 + 4]
mov ecx, dword [rsp + 0x5c]
xor r14d, r14d
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x4c]
sub eax, ecx
lea r13d, [r8 + rax + 3]
jmp 0x14018a6d2
cmp dword [rsp + 0x48], 0
je 0x14018a65c
call fcn.1401b4410
mov r14, qword [rsp + 0x78]
add eax, r9d
and eax, 0x3f
mov edx, eax
mov edx, dword [r14 + rdx*4]
je 0x14018a6b1
cmp edx, r10d
jb 0x14018a65c
mov eax, edx
prefetcht0 byte [rsi + rax]
dec dword [rsp + 0x48]
mov dword [rsp + rbp*4 + 0x80], edx
inc rbp
lea rax, [rcx - 1]
and rcx, rax
jmp 0x14018a657
mov edx, dword [rsp + r14*4 + 0x80]
mov eax, dword [r15]
mov r12, rdx
add rdx, rsi
cmp dword [rdx], eax
je 0x14018a6d9
inc r14
cmp rbp, r14
jne 0x14018a6ba
jmp 0x14018a72b
mov rax, qword [rsp + 0x70]
add rdx, 4
mov r9, rbx
mov r8, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
call fcn.1401b44f0
add rax, 4
cmp rdi, rax
jae 0x14018a6cf
mov edx, r13d
mov rdi, qword [rsp + 0x1e8]
sub edx, r12d
mov ecx, edx
lea rdx, [r15 + rax]
cmp qword [rsp + 0x1e0], rdx
mov qword [rdi], rcx
je 0x14018a72e
mov rdi, rax
jmp 0x14018a6cf
mov rax, rdi
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret