Function at 0x1401f5ef0
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, 0x7f8
movaps xmmword [rsp + 0x7e0], xmm6
xor r15d, r15d
mov eax, dword [rsp + 0x860]
lea r14d, [rax*4]
mov rbx, rcx
mov dword [rsp + 0x34], r14d
mov rsi, r8
mov rdi, r9
mov qword [rsp + 0x848], rdx
mov edx, eax
lea rax, [rsp + 0x3e0]
shl edx, 6
mov rcx, rax
mov qword [rsp + 0x68], rax
call fcn.14020b750
test eax, eax
jle 0x1401f6494
lea rax, [rsp + 0x7e0]
mov edx, edi
mov r11, qword [rsp + 0x848]
and rax, 0xffffffffffffffe0
sub rax, 0x640
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x860]
lea ecx, [rax + 1]
shr edx, cl
add edi, edx
mov eax, edx
mov dword [rsp + 0x28], edx
shl eax, cl
mov ecx, edi
mov edi, edx
sub ecx, eax
cmp edx, ecx
mov dword [rsp + 0x30], ecx
jb 0x1401f64b3
mov edi, dword [rsp + 0x28]
lea rdx, [r11 + 0x15]
mov r8, qword [rsp + 0x3e0]
mov qword [rsp + 0x100], rsi
mov r9, qword [rsp + 0x3e8]
mov qword [rsp + 0x2a8], rdx
lea eax, [rdi + 0x30]
mov edx, dword [rsp + 0x34]
mov qword [r11 + 5], r8
and eax, 0xfffffff0
mov qword [rsp + 0x2a0], rsi
mov qword [r11 + 0xd], r9
add eax, 0x15
mov qword [rsp + 0x2b8], r8
mov qword [rsp + 0x2c0], r9
cmp edx, 1
jle 0x1401f6395
mov r10d, edx
mov esi, edi
mov rdi, qword [rsp + 0x68]
mov r9d, eax
shl r10, 4
lea rax, [rsp + 0x100]
lea rdx, [rsp + 0x3f0]
mov qword [rsp + 0x38], rax
mov rcx, rax
add r10, rdi
lea rax, [rsp + 0x2a8]
mov r8, qword [rcx]
movdqa xmm5, xmmword [rdx]
add rdx, 0x10
add rcx, 0x10
add rax, 0x28
add r8, rsi
mov qword [rcx], r8
mov qword [rax - 8], r8
mov r8, qword [rax - 0x28]
add r8, r9
mov qword [rax], r8
movups xmmword [r8 - 0x10], xmm5
movdqa xmm5, xmmword [rdx - 0x10]
movups xmmword [rax + 0x10], xmm5
cmp rdx, r10
jne 0x1401f6030
mov rdi, qword [rbx + 0x1fc]
mov esi, dword [rsp + 0x28]
mov eax, dword [rsp + 0x30]
mov qword [rsp + 0x3e0], rdi
bswap rdi
cmp esi, eax
cmovbe eax, esi
sub eax, 0x33
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x34]
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0x840], rbx
xor r9d, r9d
mov ecx, dword [rbx + 0x1f0]
movzx r8d, byte [rbx + 0x204]
mov qword [rsp + 0x848], r11
lea r12, [rsp + 0x80]
sub eax, 1
mov qword [rsp + 0x78], r10
mov r15d, dword [rbx + 0x1e4]
lea rsi, [rsp + 0x88]
mov dword [rsp + 0x2c], eax
mov rdx, qword [rsp + 0x68]
mov ebp, r8d
mov eax, dword [rbx + 0x1d4]
mov dword [rsp + 0x70], ecx
movzx r14d, byte [rbx + 0x206]
movzx r13d, byte [rbx + 0x205]
mov dword [rsp + 0x48], eax
mov eax, dword [rbx + 0x1d8]
mov dword [rsp + 0x4c], eax
mov eax, dword [rbx + 0x1dc]
mov dword [rsp + 0x50], eax
mov eax, dword [rbx + 0x1e0]
mov dword [rsp + 0x58], eax
mov eax, dword [rbx + 0x1e8]
mov dword [rsp + 0x60], eax
mov eax, dword [rbx + 0x1ec]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x40]
nop word [rax + rax]
mov r11d, dword [rsp + 0x48]
cmp dword [rsp + 0x2c], r9d
lea r8, [r9 + rdi]
mov dword [rax + 0x80], r15d
mov ecx, dword [rsp + 0x28]
cmove ecx, dword [rsp + 0x30]
add rax, 4
add r10, 0x10
mov dword [rax - 4], r11d
mov r11d, dword [rsp + 0x4c]
bswap r8
mov qword [rdx], r8
mov r8d, ecx
mov ebx, dword [rsp + 0x70]
mov dword [rax + 0x1c], r11d
and r8d, 0xff00
mov r11d, dword [rsp + 0x50]
or r8d, r14d
mov byte [rdx + 0xc], cl
sub ecx, 0x33
mov dword [rax + 0x3c], r11d
shl r8d, 8
mov r11d, dword [rsp + 0x58]
shr ecx, 6
or r8d, r13d
mov dword [rax + 0xdc], ebx
mov dword [rax + 0x5c], r11d
shl r8d, 8
mov r11d, dword [rsp + 0x60]
or r8d, ebp
mov dword [rdx + 8], r8d
mov r8, qword [r10 - 0x10]
mov dword [rax + 0x9c], r11d
mov r11d, dword [rsp + 0x64]
add r8, 0x33
mov dword [rax + 0xbc], r11d
movdqu xmm4, xmmword [r8 - 0x33]
movups xmmword [rdx + 0xd], xmm4
movdqu xmm5, xmmword [r8 - 0x23]
movups xmmword [rdx + 0x1d], xmm5
movdqu xmm4, xmmword [r8 - 0x13]
movups xmmword [rdx + 0x2d], xmm4
mov ebx, dword [r8 - 4]
mov dword [r10 - 8], ecx
mov rcx, r9
add r9, 1
shl rcx, 4
mov dword [rdx + 0x3c], ebx
mov qword [r10 - 0x10], r8
mov qword [r12 + rcx], rdx
mov ebx, dword [rsp + 0x34]
sub rdx, 0xffffffffffffff80
mov dword [rsi + rcx], 1
cmp r9d, ebx
jb 0x1401f6140
mov r8d, dword [rsp + 0x860]
mov rcx, qword [rsp + 0x40]
mov rdx, r12
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x840]
call fcn.1402e8a00
cmp dword [rsp + 0x74], 0x83f
mov r11, qword [rsp + 0x848]
ja 0x1401f64dd
mov rcx, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x860]
mov qword [rsp + 0x848], r11
mov rdx, qword [rsp + 0x38]
call fcn.1402e8a00
mov rdi, qword [rsp + 0x68]
xor eax, eax
mov ecx, pe_nt_image_headers64
mov dword [rsp + 0x48], 0
mov r11, qword [rsp + 0x848]
rep stosq qword [rdi], rax
lea rax, [rsp + 0x2a0]
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x48]
mov r13d, 0xffffffcd
xor r14d, r14d
xor edi, edi
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x840], rbx
mov ebp, r14d
sub r13d, eax
mov qword [rsp + 0x848], r11
mov dword [rsp + 0x4c], r13d
lea r13, [rsp + 0x108]
mov r15, r13
mov qword [rsp + 0x58], rcx
mov r13, rsi
jmp 0x1401f6328
mov dword [rcx + 0x3c], eax
mov eax, 1
mov dword [r13 + rdi], eax
lea eax, [rbp + 1]
mov qword [r12 + rdi], rcx
sub rcx, 0xffffffffffffff80
add rdi, 0x10
cmp dword [rsp + 0x34], eax
je 0x1401f6660
mov ebp, eax
mov eax, dword [rsp + 0x2c]
mov edx, dword [r15 + rdi]
mov ebx, dword [rsp + 0x4c]
mov r14d, dword [rsp + 0x28]
cmp ebp, eax
cmove r14d, dword [rsp + 0x30]
shl edx, 6
mov rax, qword [rsp + 0x38]
sub ebx, edx
lea esi, [rbx + r14]
add rdx, qword [rax + rdi]
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rcx, rax
mov eax, ebp
shl rax, 7
add rax, 0x7e0
add rax, rsp
mov byte [rsi + rax - 0x400], 0x80
lea eax, [r14*8 + 0x268]
bswap eax
cmp esi, 0x37
jbe 0x1401f6300
mov dword [rcx + 0x7c], eax
mov eax, 2
jmp 0x1401f6308
mov rdi, qword [rbx + 0x1fc]
mov esi, dword [rsp + 0x28]
mov eax, dword [rsp + 0x30]
mov edx, dword [rsp + 0x860]
mov qword [rsp + 0x3e0], rdi
bswap rdi
cmp esi, eax
cmovbe eax, esi
sub eax, 0x33
mov dword [rsp + 0x74], eax
test edx, edx
jne 0x1401f69c1
mov rcx, qword [rsp + 0x40]
lea r12, [rsp + 0x80]
xor r8d, r8d
mov qword [rsp + 0x848], r11
mov rdx, r12
call fcn.1402e8a00
cmp dword [rsp + 0x74], 0x83f
ja 0x1401f699c
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x100]
xor r8d, r8d
call fcn.1402e8a00
mov rdi, qword [rsp + 0x68]
xor eax, eax
mov ecx, pe_nt_image_headers64
rep stosq qword [rdi], rax
lea rax, [rsp + 0x2a0]
mov qword [rsp + 0x50], rax
mov rsi, qword [rsp + 0x40]
xor r8d, r8d
mov rdx, r12
xor r15d, r15d
mov rcx, rsi
call fcn.1402e8a00
mov rdi, qword [rsp + 0x68]
xor eax, eax
xor r8d, r8d
mov ecx, pe_nt_image_headers64
mov rdx, r12
rep stosq qword [rdi], rax
mov rcx, rsi
call fcn.1402e8a00
nop dword [rax]
mov r8d, dword [rsp + 0x860]
mov rcx, qword [rsp + 0x50]
mov rdx, rbx
call fcn.1402f6080
mov rcx, qword [rsp + 0x68]
mov edx, 0x400
call fcn.1402f5e00
mov rcx, qword [rsp + 0x40]
mov edx, 0x100
call fcn.1402f5e00
nop
movaps xmm6, xmmword [rsp + 0x7e0]
mov rax, r15
add rsp, 0x7f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea eax, [rcx + 0x16]
lea edx, [r14 - 1]
and eax, 0x3f
cmp eax, edx
jae 0x1401f5f9e
mov eax, ecx
add edi, 1
sub eax, r14d
mov dword [rsp + 0x28], edi
add eax, 1
mov dword [rsp + 0x30], eax
jmp 0x1401f5f9e
mov ecx, dword [rsp + 0x2c]
mov rax, r12
lea rdx, [rsp + 0x2b0]
shl rcx, 4
lea rcx, [rsp + rcx + 0x90]
nop dword [rax + rax]
mov r8, qword [rbp]
add rax, 0x10
add rbp, 0x10
add rdx, 0x28
mov dword [rax - 8], 0x20
mov qword [rax - 0x10], r8
mov dword [rdx - 0x28], 0x80
cmp rcx, rax
jne 0x1401f6500
mov eax, dword [rsp + 0x2c]
mov edi, dword [rsp + 0x74]
lea r14, [rsp + 0x2a0]
mov qword [rsp + 0x848], r11
mov qword [rsp + 0x50], r14
movdqa xmm6, xmmword [0x140431490]
xor r13d, r13d
shl rax, 4
mov ebp, dword [rsp + 0x860]
shr edi, 6
lea rsi, [rsp + rax + 0x110]
mov r15, rsi
mov rsi, qword [rsp + 0x38]
nop dword [rax]
mov rcx, qword [rsp + 0x40]
mov r8d, ebp
mov rdx, r12
call fcn.1402e8a00
mov r8d, ebp
mov rdx, rbx
mov rcx, r14
call fcn.1402f6080
mov r8, r12
mov rdx, r14
mov rax, rsi
test ebp, ebp
je 0x1401f65fb
nop dword [rax + rax]
mov rcx, qword [rax]
sub dword [rax + 8], 0x20
add rax, 0x10
add r8, 0x10
mov dword [r8 - 8], 0x20
add rdx, 0x28
add rcx, 0x800
mov qword [rax - 0x10], rcx
mov qword [r8 - 0x10], rcx
movdqu xmm0, xmmword [rdx - 0x28]
mov dword [rdx - 0x18], 0x80
movdqa xmm1, xmm0
movhlps xmm2, xmm0
paddq xmm1, xmm6
movq rcx, xmm2
movups xmmword [rdx - 0x28], xmm1
movdqu xmm3, xmmword [rcx + 0x7f0]
movups xmmword [rdx - 0x10], xmm3
cmp rax, r15
jne 0x1401f65a0
sub edi, 0x20
add r13d, 0x800
cmp edi, 0x20
ja 0x1401f6570
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov dword [rsp + 0x48], r13d
mov r8d, dword [rsp + 0x860]
call fcn.1402e8a00
mov rdi, qword [rsp + 0x68]
xor eax, eax
mov ecx, pe_nt_image_headers64
rep stosq qword [rdi], rax
mov eax, dword [rsp + 0x860]
test eax, eax
je 0x1401f6429
mov r11, qword [rsp + 0x848]
lea rsi, [rsp + 0x88]
jmp 0x1401f62b4
mov rsi, qword [rsp + 0x40]
mov rdx, r12
mov r14d, ebp
mov r8d, dword [rsp + 0x860]
mov rbx, qword [rsp + 0x840]
mov rcx, rsi
call fcn.1402e8a00
mov rdi, qword [rsp + 0x68]
xor eax, eax
mov ecx, pe_nt_image_headers64
mov dword [rsp + 0x4c], r14d
mov r11d, dword [rbx + 0x168]
mov r8d, 0x300
rep stosq qword [rdi], rax
mov eax, dword [rbx + 0x16c]
mov edi, dword [rbx + 0x170]
mov qword [rsp + 0x840], rbx
mov rdx, qword [rsp + 0x58]
mov r15d, dword [rbx + 0x164]
mov rcx, r12
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x38], edi
mov r14d, dword [rsp + 0x38]
lea r9, [rsi + rax*4 + 4]
mov qword [rsp + 0x38], rsi
mov rax, rsi
mov esi, dword [rsp + 0x34]
mov r13d, dword [rbx + 0x174]
mov ebp, dword [rbx + 0x178]
mov edi, dword [rbx + 0x17c]
mov r10d, dword [rbx + 0x180]
mov ebx, r11d
bswap r8d
nop dword [rax]
mov r11d, dword [rax]
mov dword [rax], r15d
add rax, 4
add rcx, 0x10
bswap r11d
mov dword [rdx], r11d
mov r11d, dword [rax + 0x1c]
bswap r11d
mov dword [rdx + 4], r11d
mov r11d, dword [rax + 0x3c]
bswap r11d
mov dword [rdx + 8], r11d
mov r11d, dword [rax + 0x5c]
bswap r11d
mov dword [rdx + 0xc], r11d
mov r11d, dword [rax + 0x7c]
bswap r11d
mov dword [rdx + 0x10], r11d
mov r11d, dword [rax + 0x9c]
bswap r11d
mov dword [rdx + 0x14], r11d
mov r11d, dword [rax + 0xbc]
bswap r11d
mov dword [rdx + 0x18], r11d
mov r11d, dword [rax + 0xdc]
mov qword [rcx - 0x10], rdx
sub rdx, 0xffffffffffffff80
bswap r11d
mov dword [rax + 0x1c], ebx
mov dword [rax + 0x3c], esi
mov dword [rax + 0x5c], r14d
mov dword [rax + 0x7c], r13d
mov dword [rax + 0x9c], ebp
mov dword [rax + 0xbc], edi
mov dword [rdx - 0x64], r11d
mov dword [rax + 0xdc], r10d
mov byte [rdx - 0x60], 0x80
mov dword [rdx - 0x44], r8d
mov dword [rcx - 8], 1
cmp rax, r9
jne 0x1401f6710
mov r8d, dword [rsp + 0x860]
mov rdx, r12
xor r15d, r15d
xor ebp, ebp
mov rcx, qword [rsp + 0x40]
mov r14d, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x840]
call fcn.1402e8a00
mov edi, dword [rsp + 0x48]
mov eax, 1
mov dword [rsp + 0x38], r14d
mov r12, qword [rsp + 0x848]
sub eax, edi
mov rdi, qword [rsp + 0x50]
mov dword [rsp + 0x34], eax
jmp 0x1401f6890
test r11b, 4
jne 0x1401f6983
test r11d, r11d
je 0x1401f682c
and ecx, 2
mov byte [rax + 0x20], r9b
jne 0x1401f6991
mov eax, dword [rsp + 0x34]
add edx, r8d
mov ecx, dword [rsp + 0x38]
add r11, r13
add rdi, 0x28
add rsi, 4
add eax, edx
shr eax, 4
mov dword [rdi - 0x18], eax
movzx eax, byte [rbx + 0x204]
mov byte [r12], al
movzx eax, byte [rbx + 0x205]
mov byte [r12 + 1], al
movzx eax, byte [rbx + 0x206]
mov byte [r12 + 2], al
lea eax, [rdx + 0x11]
rol ax, 8
mov word [r12 + 3], ax
lea eax, [rdx + 0x16]
add r15, rax
lea eax, [rbp + 1]
cmp ebp, ecx
je 0x1401f6460
mov ebp, eax
mov r12, r11
mov eax, dword [rsp + 0x2c]
mov r14d, dword [rsp + 0x28]
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi]
cmp ebp, eax
cmove r14d, dword [rsp + 0x30]
mov eax, dword [rsp + 0x48]
mov r8d, r14d
sub r8d, eax
call sub.msvcrt.dll_memcpy
mov rax, qword [rdi + 8]
lea r8d, [r14 + 0x20]
mov edx, dword [rsi]
bswap edx
movabs r10, 0x101010101010101
mov qword [rdi], rax
lea eax, [r14 + 0x15]
add rax, r12
mov dword [rax], edx
mov edx, dword [rsi + 0x20]
lea r13, [rax + 0x20]
bswap edx
mov dword [rax + 4], edx
mov edx, dword [rsi + 0x40]
bswap edx
mov dword [rax + 8], edx
mov edx, dword [rsi + 0x60]
bswap edx
mov dword [rax + 0xc], edx
mov edx, dword [rsi + 0x80]
bswap edx
mov dword [rax + 0x10], edx
mov edx, dword [rsi + 0xa0]
bswap edx
mov dword [rax + 0x14], edx
mov edx, dword [rsi + 0xc0]
bswap edx
mov dword [rax + 0x18], edx
mov edx, dword [rsi + 0xe0]
bswap edx
mov dword [rax + 0x1c], edx
mov edx, r8d
not edx
and edx, 0xf
lea r11d, [rdx + 1]
movzx r9d, dl
imul r9, r10
mov rcx, r11
cmp r11d, 8
jb 0x1401f6810
mov qword [rax + 0x20], r9
add rax, 0x28
mov r10, r13
and rax, 0xfffffffffffffff8
mov qword [r13 + r11 - 8], r9
sub r10, rax
add ecx, r10d
and ecx, 0xfffffff8
cmp ecx, 8
jb 0x1401f682c
and ecx, 0xfffffff8
xor r10d, r10d
mov r14d, r10d
add r10d, 8
mov qword [rax + r14], r9
cmp r10d, ecx
jb 0x1401f696e
jmp 0x1401f682c
mov dword [rax + 0x20], r9d
mov dword [r13 + r11 - 4], r9d
jmp 0x1401f682c
mov word [r13 + r11 - 2], r9w
jmp 0x1401f682c
mov eax, dword [rsp + 0x34]
mov r11, qword [rsp + 0x848]
sub eax, 1
mov dword [rsp + 0x2c], eax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x38], rax
jmp 0x1401f6527
lea rax, [rsp + 0x100]
mov qword [rsp + 0x38], rax
jmp 0x1401f6090