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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movaps xmmword [rsp + 0x160], xmm7
movaps xmmword [rsp + 0x150], xmm6
mov qword [rsp + 0xb0], r8
mov rbx, rdx
mov r8, rcx
movzx eax, word [rsp + 0x1e0]
mov rcx, qword [0x140516040]
xor rcx, rsp
mov qword [rsp + 0x148], rcx
test ax, ax
jne 0x1401d475a
movzx r11d, word [rbx]
cmp r11d, 0x3f
ja 0x1401d4474
mov r10, 0xffffffffffffffff
mov ecx, r11d
shl r10, cl
not r10
movzx ecx, r9w
mov dword [rsp + 0x2c], ecx
and ecx, 0x803
cmp ecx, 1
mov ecx, 0x183
sbb ecx, 0
mov dword [rsp + 0x6c], ecx
test r11d, r11d
je 0x1401d4752
mov rsi, qword [rsp + 0x1e8]
add rbx, 8
lea rcx, [r8 + 0x70]
mov qword [rsp + 0xc8], rcx
lea rcx, [r8 + 0x258]
mov qword [rsp + 0xa8], rcx
movzx edi, ax
movaps xmm6, xmmword [0x140484a40]
xorps xmm7, xmm7
xor r15d, r15d
mov qword [rsp + 0x80], 0
mov qword [rsp + 0xa0], 0
xor r9d, r9d
xor r13d, r13d
mov qword [rsp + 0x30], r11
test r15, r15
jne 0x1401d4718
mov r13, rsi
cmp r15, rdi
jb 0x1401d4731
test byte [r13 + 0x39], 4
jne 0x1401d48ca
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0x90], r10
cmp byte [rsp + 0x2c], 0
js 0x1401d470c
mov qword [rsp + 0x78], r8
mov rax, qword [r8 + 8]
movzx ecx, byte [r13 + 0x10]
imul rcx, rcx, 0x68
mov eax, dword [rax + rcx + 0x4c]
mov dword [rsp + 0x4c], eax
mov rsi, qword [rsp + 0x80]
not rsi
xor edi, edi
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x40], r13
mov r14d, 1
mov ecx, edi
shl r14, cl
bt r9, rdi
jb 0x1401d41d9
mov r12, rdi
shl r12, 5
mov r13, qword [rbx + r12]
test r13, r13
je 0x1401d41d9
add r12, rbx
mov rbp, r9
mov eax, dword [r13 + 4]
test eax, 0x82000
jne 0x1401d482a
mov al, byte [r13]
mov r8d, dword [rsp + 0x4c]
cmp al, 0x9a
jne 0x1401d47bc
cmp dword [r13 + 0x2c], r8d
jne 0x1401d41d1
movzx eax, word [r13 + 0x30]
lea rdx, [rsp + 0xe8]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rdx + 0x58], rcx
movups xmmword [rdx + 0x48], xmm6
movups xmmword [rdx + 0x38], xmm6
movups xmmword [rdx + 0x28], xmm6
movups xmmword [rdx + 0x18], xmm6
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rcx
mov byte [rsp + 0x100], 0
movups xmmword [rdx], xmm7
mov ecx, dword [rsp + 0x6c]
mov dword [rsp + 0xfc], ecx
mov dword [rsp + 0xf8], 0
mov dword [rsp + 0x104], r8d
mov word [rsp + 0x101], 0x101
cmp ax, 0xfffe
je 0x1401d41d1
mov word [rsp + 0x130], ax
lea rcx, [rsp + 0xd8]
call fcn.140298e40
test rax, rax
jne 0x1401d46c6
mov r11, qword [rsp + 0x30]
mov r9, rbp
inc rdi
cmp rdi, r11
mov rcx, qword [rsp + 0x70]
mov r13, qword [rsp + 0x40]
jne 0x1401d40de
mov r8d, dword [r13 + 0x38]
bt r8d, 0xc
jb 0x1401d43c1
bt r8d, 8
jae 0x1401d454b
mov ax, 1
mov r12b, 1
xor edi, edi
mov qword [rsp + 0x88], 0
mov edx, 1
shl rdx, cl
mov qword [rsp + 0xb8], rdx
movzx eax, ax
mov qword [rsp + 0xd0], rax
xor ebp, ebp
xor r14d, r14d
mov qword [rsp + 0x98], 0
xor r10d, r10d
mov qword [rsp + 0x60], rdi
mov dword [rsp + 0x5c], r10d
mov qword [rsp + 0x38], r9
movzx ecx, word [r13 + 0x18]
mov al, 1
mov r15b, 1
cmp rbp, rcx
jb 0x1401d4609
test rdi, rdi
jne 0x1401d4592
test r12b, r12b
setne r12b
mov r13d, 0xffffffff
xor r8d, r8d
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x2c]
test al, al
je 0x1401d4493
xor edi, edi
bt r9, rdi
jb 0x1401d447c
mov rsi, r14
mov rax, rbx
mov r14d, r12d
mov r12, rdi
shl r12, 5
mov rdx, qword [rbx + r12]
test rdx, rdx
je 0x1401d4791
mov rbx, rax
add r12, rax
mov rcx, rdx
mov eax, dword [rcx + 4]
test eax, 0x82000
jne 0x1401d47cf
mov eax, r10d
and eax, 0xc0
movzx r15d, r15b
cmove r15d, eax
cmp r13d, 0xffffffff
jl 0x1401d486f
movzx eax, byte [rcx]
cmp eax, 0x9a
jne 0x1401d4777
mov eax, dword [rsp + 0x4c]
cmp dword [rcx + 0x2c], eax
mov r12d, r14d
jne 0x1401d4479
movsx eax, word [rcx + 0x30]
cmp r13d, eax
mov r14, rsi
jne 0x1401d447c
cmp r13d, 0xffffffff
jne 0x1401d4652
test r10b, r10b
js 0x1401d46b5
test r10b, 0x40
jne 0x1401d478a
test r14b, r14b
jne 0x1401d4522
mov eax, edi
mov rcx, rax
shl rcx, 5
mov cl, byte [rbx + rcx + 0x10]
and cl, 1
mov edx, ecx
xor dl, r8b
mov qword [rsp + 0x98], rdx
mov r14b, 1
cmp r8b, cl
jne 0x1401d44c1
mov rcx, rax
shl rcx, 5
test byte [rbx + rcx + 0x10], 2
jne 0x1401d479c
cmp r13d, 0xffffffff
mov r10d, dword [rsp + 0x5c]
movzx r10d, r10b
mov ecx, 1
cmove r10d, ecx
bts r9, rax
mov r13, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x60]
inc rbp
cmp rbp, qword [rsp + 0xd0]
jne 0x1401d4252
or r10b, r12b
je 0x1401d4460
mov rsi, qword [rsp + 0xa0]
or rsi, qword [r13 + 8]
mov qword [rsp + 0xa0], rsi
not rsi
mov r14, rbx
xor edi, edi
mov r15, qword [rsp + 0x70]
mov r12d, 1
mov ecx, edi
shl r12, cl
bt r9, rdi
jae 0x1401d4a05
inc rdi
add r14, 0x20
cmp r11, rdi
jne 0x1401d43e2
mov r8, qword [rsp + 0x78]
mov r10, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x1e8]
mov rdi, qword [rsp + 0xc0]
cmp r9, r10
setb al
cmp r15, rdi
lea r15, [r15 + 1]
setb dl
test al, dl
jne 0x1401d4072
cmp r9, r10
jne 0x1401d445b
mov rcx, qword [rsp + 0x148]
xor rcx, rsp
cmp rcx, qword [0x140516040]
je 0x1401d44d9
call fcn.14029bbb0
int3
mov r11b, 0xff
jmp 0x1401d443d
cmp r9, qword [rsp + 0x90]
je 0x1401d443d
cmp r11, 2
jge 0x1401d4500
xor r11d, r11d
jmp 0x1401d443d
mov r14, rsi
inc rdi
test r15b, r15b
setne al
cmp rdi, r11
setb cl
test al, cl
jne 0x1401d429c
movzx eax, word [rsp + 0x88]
cmp rbp, rax
movzx r12d, r12b
mov eax, 0
cmovb r12d, eax
test rbp, rbp
cmove r12d, eax
mov r13, qword [rsp + 0x40]
mov r10d, dword [rsp + 0x5c]
jmp 0x1401d43b8
mov rcx, qword [rsp + 0x1f0]
mov rdx, qword [rsp + 0xb8]
or qword [rcx], rdx
jmp 0x1401d4371
mov eax, r11d
movaps xmm6, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
dec r11
mov rax, 0xffffffffffffffff
mov ecx, r11d
shl rax, cl
or rax, r9
cmp rax, 0xffffffffffffffff
jne 0x1401d446a
jmp 0x1401d443d
xor r8b, byte [rsp + 0x98]
mov eax, edi
mov rcx, rax
shl rcx, 5
mov cl, byte [rbx + rcx + 0x10]
and cl, 1
mov r14b, 1
cmp r8b, cl
je 0x1401d4371
jmp 0x1401d4493
mov rdi, qword [r13 + 0x20]
test rdi, rdi
je 0x1401d4474
test byte [rdi + 0x64], 4
jne 0x1401d4474
movzx eax, word [rdi + 0x60]
cmp byte [rdi + 0x62], 0
setne dl
test r8w, r8w
setns r12b
and r12b, dl
test ax, ax
je 0x1401d476f
movzx edx, word [rdi + 0x5e]
mov qword [rsp + 0x88], rdx
jmp 0x1401d421e
mov r8, qword [rdi + 8]
mov rdx, qword [rdi + 0x18]
movzx r8d, word [r8 + rbp*2]
mov r9, qword [rdi + 0x38]
mov sil, byte [r9 + rbp]
and sil, 1
cmp r8w, word [rdx + 0x34]
mov r9d, 0xffff
cmove r8d, r9d
movsx r13d, r8w
test r12b, r12b
mov r10d, dword [rsp + 0x2c]
je 0x1401d45e4
test r8w, r8w
mov r9, qword [rsp + 0x38]
jns 0x1401d45ee
cmp r8w, 0xfffe
setne r12b
mov r8d, esi
jmp 0x1401d4292
xor r12d, r12d
mov r9, qword [rsp + 0x38]
jmp 0x1401d45dc
cmp rbp, rcx
jb 0x1401d4b39
mov rcx, qword [rdx + 8]
mov edx, r13d
lea rdx, [rdx + rdx*2]
test byte [rcx + rdx*8 + 8], 0xf
jmp 0x1401d45d8
movzx eax, word [r13 + 0x3e]
cmp rbp, rax
jb 0x1401d4b41
mov rdx, qword [r13 + 0x48]
mov r8, qword [rdx + rbp*8]
movzx r9d, word [r8 + 0x14]
test dword [rsp + 0x6c], r9d
mov r10d, dword [rsp + 0x5c]
je 0x1401d4ad2
test r9d, 0x180
movzx r12d, r12b
mov eax, 0
cmovne r12d, eax
mov r9, qword [rsp + 0x38]
jmp 0x1401d43a7
mov esi, r8d
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax]
mov qword [rsp + 0x50], rcx
call fcn.1401b7fd0
test rax, rax
je 0x1401d4b28
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + 0x40]
mov rcx, qword [rcx + rbp*8]
mov rax, qword [rax]
xor edx, edx
mov r11, qword [rsp + 0x30]
mov r10d, dword [rsp + 0x2c]
movzx r8d, byte [rax + rdx]
movzx r9d, byte [rcx + rdx]
cmp r8b, r9b
jne 0x1401d4aab
test r8, r8
mov r9, qword [rsp + 0x38]
mov r8d, esi
je 0x1401d432c
inc rdx
jmp 0x1401d468c
lea eax, [rbp + 1]
mov rcx, qword [rsp + 0x40]
mov word [rcx + 0x1e], ax
jmp 0x1401d4335
mov r15, rax
mov qword [rsp + 0x38], 0
mov rax, qword [r15 + 0x28]
test rax, rsi
je 0x1401d48ef
lea rcx, [rsp + 0xd8]
call fcn.140298e40
mov r15, rax
test rax, rax
jne 0x1401d46d2
mov rax, qword [rsp + 0x38]
test rax, rax
mov r11, qword [rsp + 0x30]
je 0x1401d41d6
jmp 0x1401d4913
mov word [r13 + 0x1e], 0
jmp 0x1401d40ad
mov rax, qword [rsp + 0x80]
or rax, qword [r13 + 8]
mov qword [rsp + 0x80], rax
jmp 0x1401d407b
bt dword [rsp + 0x2c], 0xb
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax + 0x18]
mov r13, qword [rax + r15*8]
jb 0x1401d4420
jmp 0x1401d4087
xor r9d, r9d
jmp 0x1401d4438
mov rcx, qword [r8]
mov rcx, qword [rcx]
test byte [rcx + 0x60], 0x40
je 0x1401d3fd4
jmp 0x1401d4474
xor r10d, r10d
jmp 0x1401d43b8
cmp eax, 0x9c
je 0x1401d4302
mov r12d, r14d
jmp 0x1401d4479
mov eax, edi
jmp 0x1401d4371
mov r12d, r14d
mov rbx, rax
jmp 0x1401d4479
mov rcx, qword [rsp + 0x40]
movzx ecx, word [rcx + 0x18]
cmp rbp, rcx
jne 0x1401d4493
mov rcx, qword [rsp + 0x40]
or byte [rcx + 0x3a], 8
jmp 0x1401d4383
movzx eax, al
cmp eax, 0x9c
je 0x1401d412d
jmp 0x1401d41d1
mov dword [rsp + 0x50], r8d
bt eax, 0x13
jb 0x1401d47fd
cmp byte [rcx], 0x67
mov r11, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x2c]
mov r8d, dword [rsp + 0x50]
jne 0x1401d42da
add rcx, 0x10
jmp 0x1401d4805
mov rcx, qword [rcx + 0x20]
add rcx, 8
mov rcx, qword [rcx]
test rcx, rcx
mov r11, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x2c]
mov r8d, dword [rsp + 0x50]
jne 0x1401d42cc
jmp 0x1401d4782
mov rcx, rbx
bt eax, 0x13
jb 0x1401d484d
mov al, byte [r13]
cmp al, 0x67
mov r8d, dword [rsp + 0x4c]
mov rbx, rcx
jne 0x1401d4125
add r13, 0x10
jmp 0x1401d4855
mov r13, qword [r13 + 0x20]
add r13, 8
mov r13, qword [r13]
test r13, r13
mov r11, qword [rsp + 0x30]
mov rbx, rcx
jne 0x1401d410d
jmp 0x1401d41d6
mov dword [rsp + 0x50], r8d
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x50]
mov rdx, rbp
shl rdx, 5
mov rdx, qword [rax + rdx + 8]
mov r8d, dword [rsp + 0x4c]
call fcn.1404232d0
test eax, eax
je 0x1401d48b6
mov r11, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10d, dword [rsp + 0x2c]
mov r12d, r14d
mov r14, rsi
mov r8d, dword [rsp + 0x50]
jmp 0x1401d447c
mov rdx, qword [r12]
mov r12d, r14d
mov r14, rsi
mov r8d, dword [rsp + 0x50]
jmp 0x1401d4652
mov ecx, dword [rsp + 0x2c]
and ecx, 0x280
cmp byte [r13 + 0x20], 0
mov rax, r10
cmove rax, r9
cmp ecx, 0x80
cmovne r9, rax
jmp 0x1401d4438
test rax, rax
jne 0x1401d48fd
movzx eax, word [r15 + 0x14]
test al, 0x82
jne 0x1401d4958
mov rax, qword [rsp + 0x38]
test rax, rax
cmove rax, r15
mov qword [rsp + 0x38], rax
jmp 0x1401d46df
movzx eax, word [rax + 0x14]
cmp ax, 1
jne 0x1401d4953
mov rcx, qword [rsp + 0x40]
movzx ecx, word [rcx + 0x3c]
test rcx, rcx
je 0x1401d41d1
mov rdx, qword [rsp + 0x40]
mov rdx, qword [rdx + 0x48]
xor r8d, r8d
mov r9, qword [rsp + 0x38]
cmp r9, qword [rdx + r8*8]
je 0x1401d4953
inc r8
cmp rcx, r8
jne 0x1401d493b
jmp 0x1401d41d1
mov r15, qword [rsp + 0x38]
test al, 0x82
je 0x1401d49f5
cmp word [r13 + 0x30], 0
js 0x1401d49f5
mov rax, qword [rsp + 0x78]
mov r13, qword [rax]
mov rdx, qword [r12]
mov rcx, r13
call fcn.1401b7fd0
mov r12, rax
test rax, rax
jne 0x1401d4990
mov rax, qword [r13]
mov r12, qword [rax + 0x10]
mov rax, qword [r15]
mov ecx, 0x400
xor edx, edx
and ecx, dword [rax + 4]
sete dl
shr ecx, 7
mov r8, qword [rax + rdx*8 + 0x10]
mov rdx, qword [rax + rcx + 0x10]
mov rcx, r13
call fcn.140279ba0
test rax, rax
je 0x1401d41d1
mov rax, qword [rax]
mov rcx, qword [r12]
xor edx, edx
lea r8, [0x1404f3130]
jmp 0x1401d49e1
mov r9b, byte [r9 + r8]
cmp r9b, byte [r10 + r8]
jne 0x1401d41d1
inc rdx
movzx r9d, byte [rcx + rdx]
movzx r10d, byte [rax + rdx]
cmp r9b, r10b
jne 0x1401d49d0
test r9, r9
jne 0x1401d49de
mov r9, rbp
or r9, r14
mov r11, qword [rsp + 0x30]
jmp 0x1401d41d9
mov r13, r9
mov r15, qword [r14]
test r15, r15
je 0x1401d4a7d
mov rcx, qword [rsp + 0xa8]
mov rdx, r15
call fcn.140423030
test rax, rax
jne 0x1401d4a7f
lea rax, [rsp + 0xe8]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rax + 0x18], rcx
movups xmmword [rax + 8], xmm6
lea rbp, [rsp + 0xd8]
mov word [rbp + 0x24], 1
mov qword [rbp], 0
lea rax, [0x14028c340]
mov qword [rbp + 8], rax
lea rax, [0x1401c7790]
mov qword [rbp + 0x10], rax
mov rcx, rbp
mov rdx, r15
call fcn.14028c480
cmp word [rbp + 0x24], 0
je 0x1401d4aa1
xor eax, eax
test rax, rsi
je 0x1401d4a87
xor r12d, r12d
mov r9, r13
or r9, r12
mov r11, qword [rsp + 0x30]
mov r15, qword [rsp + 0x70]
mov r13, qword [rsp + 0x40]
jmp 0x1401d43f7
mov r11, qword [rsp + 0x30]
mov r9, r13
jmp 0x1401d4a92
lea r10, [0x1404f3130]
mov r8b, byte [r8 + r10]
cmp r8b, byte [r9 + r10]
mov r10d, dword [rsp + 0x2c]
mov r9, qword [rsp + 0x38]
je 0x1401d46b0
mov r8d, esi
jmp 0x1401d447c
mov al, 1
mov r15b, 1
test r9b, 1
je 0x1401d426f
mov r8, qword [r8]
lea r9d, [rcx - 1]
mov r10, rbp
cmp r9, r10
je 0x1401d4b14
mov r11, qword [rdx + r10*8 + 8]
inc r10
xor eax, eax
mov r15d, 0
cmp qword [r11], r8
mov r11, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x60]
jne 0x1401d4aeb
jmp 0x1401d426f
mov al, 1
mov r15b, 1
mov r11, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x60]
jmp 0x1401d426f
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov rax, qword [rax + 0x10]
jmp 0x1401d4670
mov r12b, 1
jmp 0x1401d45dc
mov al, 1
mov r15b, 1
jmp 0x1401d426f