Function at 0x1402eb5b0
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 r11, rdx
mov r12, rcx
movzx eax, word [rsp + 0x1e0]
mov rcx, qword [0x14040b018]
xor rcx, rsp
mov qword [rsp + 0x148], rcx
test ax, ax
je 0x1402eb60d
mov rcx, qword [r12]
mov rcx, qword [rcx]
test byte [rcx + 0x60], 0x40
jne 0x1402eb616
movzx esi, word [r11]
cmp esi, 0x3f
jbe 0x1402eb64e
xor edi, edi
mov rcx, qword [rsp + 0x148]
xor rcx, rsp
call fcn.140334bf0
mov eax, edi
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
mov rdx, 0xffffffffffffffff
mov ecx, esi
shl rdx, cl
not rdx
mov qword [rsp + 0x70], rdx
movzx r13d, r9w
mov ecx, r13d
and ecx, 0x803
cmp ecx, 1
mov ecx, 0x183
sbb ecx, 0
mov dword [rsp + 0x5c], ecx
test esi, esi
je 0x1402ec02c
lea rcx, [r12 + 0x70]
mov qword [rsp + 0xb8], rcx
lea rcx, [r12 + 0x258]
mov qword [rsp + 0xc0], rcx
movzx ecx, ax
movaps xmm6, xmmword [0x1403df810]
xorps xmm7, xmm7
xor edx, edx
xor r8d, r8d
xor eax, eax
mov qword [rsp + 0x88], rax
xor ebp, ebp
xor r9d, r9d
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x68], r12
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0xa8], rcx
test rdx, rdx
je 0x1402eb6e4
or r8, qword [r9 + 8]
mov r9, qword [rsp + 0x1e8]
cmp rdx, rcx
jae 0x1402eb70c
bt r13d, 0xb
mov rax, qword [rsp + 0xb0]
mov rax, qword [rax + 0x18]
mov r9, qword [rax + rdx*8]
jb 0x1402ec006
test byte [r9 + 0x39], 4
jne 0x1402ec030
mov qword [rsp + 0x90], rdx
test r13b, r13b
jns 0x1402eb72b
mov word [r9 + 0x1e], 0
mov rax, qword [r12 + 8]
mov qword [rsp + 0x30], r9
movzx ecx, byte [r9 + 0x10]
imul rcx, rcx, 0x68
mov r14d, dword [rax + rcx + 0x4c]
mov qword [rsp + 0xc8], r8
mov r12, r8
not r12
xor edi, edi
mov r13d, 1
mov ecx, edi
shl r13, cl
bt rbp, rdi
jae 0x1402eb771
inc rdi
cmp rdi, rsi
jne 0x1402eb753
jmp 0x1402eb989
mov rax, rdi
shl rax, 5
mov rbx, qword [r11 + rax + 8]
test rbx, rbx
je 0x1402eb764
lea rcx, [r11 + rax]
add rcx, 8
mov eax, dword [rbx + 4]
test eax, 0x82000
je 0x1402eb7b2
bt eax, 0x13
jb 0x1402eb7a0
add rbx, 0x10
jmp 0x1402eb7a8
mov rbx, qword [rbx + 0x20]
add rbx, 8
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1402eb78a
jmp 0x1402eb764
movzx eax, byte [rbx]
cmp eax, 0x9c
je 0x1402eb7c3
cmp eax, 0x9a
jne 0x1402eb764
cmp dword [rbx + 0x2c], r14d
jne 0x1402eb764
mov qword [rsp + 0x50], rcx
movzx eax, word [rbx + 0x30]
lea rdx, [rsp + 0xe0]
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 + 0xb8]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], rcx
mov byte [rsp + 0xf8], 0
movups xmmword [rdx], xmm7
mov ecx, dword [rsp + 0x5c]
mov dword [rsp + 0xf4], ecx
mov dword [rsp + 0xf0], 0
mov dword [rsp + 0xfc], r14d
mov word [rsp + 0xf9], 0x101
cmp ax, 0xfffe
je 0x1402eb764
mov word [rsp + 0x128], ax
lea rcx, [rsp + 0xd0]
call fcn.1402e7310
mov r11, qword [rsp + 0x38]
test rax, rax
je 0x1402eb764
mov r15, rax
mov dword [rsp + 0x24], r14d
xor r14d, r14d
mov rax, qword [r15 + 0x28]
test rax, r12
jne 0x1402eb899
test rax, rax
jne 0x1402eb892
movzx eax, word [r15 + 0x14]
test al, 0x82
jne 0x1402eb8f3
test r14, r14
cmove r14, r15
lea rcx, [rsp + 0xd0]
call fcn.1402e7310
mov r15, rax
test rax, rax
mov r11, qword [rsp + 0x38]
jne 0x1402eb87b
test r14, r14
je 0x1402eb8e6
movzx eax, word [r14 + 0x14]
cmp ax, 1
jne 0x1402eb8f0
mov rdx, qword [rsp + 0x30]
movzx ecx, word [rdx + 0x3c]
test rcx, rcx
je 0x1402eb8e6
mov rdx, qword [rdx + 0x48]
xor r8d, r8d
cmp r14, qword [rdx + r8*8]
je 0x1402eb8f0
inc r8
cmp rcx, r8
jne 0x1402eb8d8
mov r14d, dword [rsp + 0x24]
jmp 0x1402eb764
mov r15, r14
test al, 0x82
mov r14d, dword [rsp + 0x24]
je 0x1402eb977
cmp word [rbx + 0x30], 0
js 0x1402eb977
mov rax, qword [rsp + 0x68]
mov rbx, qword [rax]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rax]
mov rcx, rbx
call fcn.1402893c0
mov rcx, rbx
mov rbx, rax
test rax, rax
jne 0x1402eb92d
mov rax, qword [rcx]
mov rbx, qword [rax + 0x10]
mov rdx, qword [r15]
call fcn.140250bf0
test rax, rax
je 0x1402eb97f
mov rax, qword [rax]
mov rcx, qword [rbx]
xor edx, edx
mov r11, qword [rsp + 0x38]
lea r10, [0x1403f1500]
movzx r8d, byte [rcx + rdx]
movzx r9d, byte [rax + rdx]
cmp r8b, r9b
jne 0x1402eb964
test r8, r8
jne 0x1402eb972
jmp 0x1402eb977
mov r8b, byte [r8 + r10]
cmp r8b, byte [r9 + r10]
jne 0x1402eb764
inc rdx
jmp 0x1402eb947
or rbp, r13
jmp 0x1402eb764
mov r11, qword [rsp + 0x38]
jmp 0x1402eb764
mov rdi, qword [rsp + 0x30]
mov r8d, dword [rdi + 0x38]
bt r8d, 0xc
jb 0x1402eb9eb
xor r15d, r15d
bt r8d, 8
mov rcx, qword [rsp + 0x90]
jb 0x1402eb9fa
mov r9, qword [rdi + 0x20]
test r9, r9
je 0x1402eb616
test byte [r9 + 0x64], 4
jne 0x1402eb616
movzx eax, word [r9 + 0x60]
cmp byte [r9 + 0x62], 0
setne dl
test r8w, r8w
setns r10b
and r10b, dl
test ax, ax
je 0x1402ec01f
movzx edx, word [r9 + 0x5e]
jmp 0x1402eba06
mov r12, qword [rsp + 0x68]
mov r13d, dword [rsp + 0x28]
jmp 0x1402ebe8d
mov r10b, 1
mov ax, 1
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x78], rdx
mov r13d, dword [rsp + 0x28]
lea rbx, [0x1403f1500]
mov qword [rsp + 0x50], r9
mov edx, 1
shl rdx, cl
mov qword [rsp + 0x98], rdx
movzx eax, ax
mov qword [rsp + 0xa0], rax
xor r12d, r12d
xor eax, eax
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x48], 0
xor r9d, r9d
movzx ecx, word [rdi + 0x18]
cmp r12, rcx
jae 0x1402eba62
movzx eax, word [rdi + 0x3e]
cmp r12, rax
jae 0x1402ebaf6
mov r13d, r10d
mov dword [rsp + 0x44], r9d
xor eax, eax
mov r10, qword [rsp + 0x50]
test r10, r10
mov qword [rsp + 0x80], r15
je 0x1402ebad5
mov rdx, qword [r10 + 8]
mov r8, qword [r10 + 0x18]
movzx edx, word [rdx + r12*2]
mov r9, qword [r10 + 0x38]
mov r9b, byte [r9 + r12]
and r9b, 1
mov dword [rsp + 0x4c], r9d
cmp dx, word [r8 + 0x34]
mov r9d, 0xffff
cmove edx, r9d
movsx r9d, dx
test r13b, r13b
je 0x1402ebb27
test dx, dx
js 0x1402ebb31
mov dl, 1
cmp r12, rcx
jb 0x1402ebaf2
mov rcx, qword [r8 + 8]
mov edx, r9d
lea rdx, [rdx + rdx*2]
test byte [rcx + rdx*8 + 8], 0xf
setne dl
jmp 0x1402ebaf2
mov dl, 1
mov r9d, 0xffffffff
mov dword [rsp + 0x4c], 0
test r13b, r13b
mov dword [rsp + 0x2c], 0
je 0x1402ebb3c
mov ecx, edx
jmp 0x1402ebb38
mov rdx, qword [rdi + 0x48]
mov rax, qword [rdx + r12*8]
movzx r8d, word [rax + 0x14]
test dword [rsp + 0x5c], r8d
je 0x1402ebdc9
test r8d, 0x180
movzx r10d, r10b
mov eax, 0
cmovne r10d, eax
jmp 0x1402ebdb0
mov dword [rsp + 0x2c], 0
jmp 0x1402ebb3c
cmp dx, 0xfffe
setne cl
mov dword [rsp + 0x2c], ecx
test al, al
jne 0x1402ebe54
mov r15b, 1
xor r13d, r13d
mov dword [rsp + 0x24], r9d
bt rbp, r13
jb 0x1402ebcde
mov rax, r13
shl rax, 5
mov rdx, qword [r11 + rax + 8]
test rdx, rdx
je 0x1402ebcde
lea rdi, [r11 + rax]
add rdi, 8
mov eax, dword [rdx + 4]
test eax, 0x82000
je 0x1402ebba1
bt eax, 0x13
jb 0x1402ebb8c
add rdx, 0x10
jmp 0x1402ebb94
mov rdx, qword [rdx + 0x20]
add rdx, 8
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1402ebb76
jmp 0x1402ebcd9
mov eax, dword [rsp + 0x28]
and eax, 0xc0
movzx r15d, r15b
cmove r15d, eax
cmp r9d, 0xffffffff
jl 0x1402ebc54
movzx eax, byte [rdx]
cmp eax, 0x9c
je 0x1402ebbd1
cmp eax, 0x9a
jne 0x1402ebcd9
cmp dword [rdx + 0x2c], r14d
jne 0x1402ebcd9
movsx eax, word [rdx + 0x30]
cmp r9d, eax
jne 0x1402ebcd9
cmp r9d, 0xffffffff
je 0x1402ebd04
mov rdx, qword [rdi]
mov rax, qword [rsp + 0x68]
mov rdi, qword [rax]
mov rcx, rdi
call fcn.1402893c0
test rax, rax
jne 0x1402ebc11
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
mov r10, qword [rsp + 0x50]
mov rcx, qword [r10 + 0x40]
mov rcx, qword [rcx + r12*8]
mov rax, qword [rax]
xor edx, edx
mov r11, qword [rsp + 0x38]
movzx r8d, byte [rax + rdx]
movzx r9d, byte [rcx + rdx]
cmp r8b, r9b
jne 0x1402ebc41
test r8, r8
jne 0x1402ebc4f
jmp 0x1402ebd04
mov r8b, byte [r8 + rbx]
cmp r8b, byte [r9 + rbx]
jne 0x1402ebcf8
inc rdx
jmp 0x1402ebc28
mov rax, qword [r10 + 0x50]
mov rcx, r12
shl rcx, 5
mov r8, qword [rax + rcx + 8]
test r8, r8
je 0x1402ebc8d
mov eax, dword [r8 + 4]
test eax, 0x82000
je 0x1402ebc90
bt eax, 0x13
jb 0x1402ebc80
add r8, 0x10
jmp 0x1402ebc88
mov r8, qword [r8 + 0x20]
add r8, 8
mov r8, qword [r8]
jmp 0x1402ebc64
xor r8d, r8d
mov eax, dword [rdx + 4]
test eax, 0x82000
je 0x1402ebcb8
bt eax, 0x13
jb 0x1402ebca6
add rdx, 0x10
jmp 0x1402ebcae
mov rdx, qword [rdx + 0x20]
add rdx, 8
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1402ebc90
xor edx, edx
xor ecx, ecx
mov r9d, r14d
call fcn.1402c7250
test eax, eax
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x24]
je 0x1402ebbe8
mov rdi, qword [rsp + 0x30]
test r15b, r15b
je 0x1402ebe54
inc r13
cmp r13, rsi
jb 0x1402ebb4f
jmp 0x1402ebe54
mov rdi, qword [rsp + 0x30]
mov r9d, dword [rsp + 0x24]
jmp 0x1402ebcde
mov ecx, dword [rsp + 0x28]
test cl, cl
mov rdi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x80]
jns 0x1402ebd1f
inc eax
mov word [rdi + 0x1e], ax
test cl, 0x40
mov r8d, dword [rsp + 0x24]
jne 0x1402ebd61
cmp byte [rsp + 0x60], 0
je 0x1402ebe07
mov r9d, dword [rsp + 0x4c]
xor r9b, byte [rsp + 0x48]
mov eax, r13d
mov rcx, rax
shl rcx, 5
mov cl, byte [r11 + rcx + 0x18]
and cl, 1
mov dl, 1
mov qword [rsp + 0x60], rdx
cmp r9b, cl
je 0x1402ebd64
jmp 0x1402ebe54
mov eax, r13d
mov rcx, rax
shl rcx, 5
test byte [r11 + rcx + 0x18], 2
je 0x1402ebd84
movzx ecx, word [rdi + 0x18]
cmp r12, rcx
jne 0x1402ebe54
or byte [rdi + 0x3a], 8
cmp r8d, 0xffffffff
mov r9d, dword [rsp + 0x44]
movzx r9d, r9b
mov ecx, 1
cmove r9d, ecx
bts rbp, rax
mov r13d, dword [rsp + 0x28]
mov r15, qword [rsp + 0x80]
mov r10d, dword [rsp + 0x2c]
inc r12
inc r15d
cmp r12, qword [rsp + 0xa0]
jne 0x1402eba4c
jmp 0x1402ebe7f
test r8b, 1
mov dword [rsp + 0x44], r9d
mov r13d, r10d
je 0x1402eba6a
mov r8, qword [rax]
lea r9d, [rcx - 1]
mov r10, r12
cmp r9, r10
je 0x1402eba6a
mov r11, qword [rdx + r10*8 + 8]
inc r10
mov al, 1
cmp qword [r11], r8
mov r11, qword [rsp + 0x38]
jne 0x1402ebde5
jmp 0x1402eba6c
mov eax, r13d
mov rcx, rax
shl rcx, 5
mov cl, byte [r11 + rcx + 0x18]
and cl, 1
xor cl, byte [rsp + 0x4c]
mov dword [rsp + 0x48], ecx
mov cl, 1
je 0x1402ebe42
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0x1f0]
mov rdx, qword [rsp + 0x98]
or qword [rcx], rdx
jmp 0x1402ebd64
mov qword [rsp + 0x60], rcx
mov dword [rsp + 0x48], 0
jmp 0x1402ebd64
movzx eax, word [rsp + 0x78]
cmp r12d, eax
mov r10d, dword [rsp + 0x2c]
movzx r10d, r10b
mov eax, 0
cmovb r10d, eax
test r12d, r12d
cmove r10d, r12d
mov r13d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x44]
or r9b, r10b
je 0x1402ec065
mov r12, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
or rbx, qword [rdi + 8]
mov rax, rbx
mov qword [rsp + 0x88], rbx
not rbx
xor edi, edi
mov r14d, 1
mov ecx, edi
shl r14, cl
bt rbp, rdi
jb 0x1402ebfdd
mov rax, rdi
shl rax, 5
mov r15, qword [r11 + rax + 8]
test r15, r15
je 0x1402ebf21
mov eax, dword [r15 + 4]
cmp byte [r15], 0x9a
jne 0x1402ebf28
mov ecx, eax
and ecx, 0x20
jne 0x1402ebf28
mov edx, dword [r15 + 0x2c]
mov eax, 1
cmp dword [r12 + 0x260], edx
je 0x1402ebfce
mov eax, dword [r12 + 0x25c]
cmp eax, 2
jl 0x1402ebf2f
dec rax
xor ecx, ecx
cmp dword [r12 + rcx*4 + 0x264], edx
je 0x1402ebfc4
inc rcx
cmp rax, rcx
jne 0x1402ebf09
jmp 0x1402ebf2f
xor eax, eax
jmp 0x1402ebfce
test eax, 0x810000
je 0x1402ebfa5
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xe0], xmm6
mov word [rsp + 0xf4], 1
lea rax, [0x1402c7d60]
mov qword [rsp + 0xd8], rax
lea rax, [0x1402c7ee0]
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0xf8], 0
lea rcx, [rsp + 0xd0]
mov rdx, r15
call fcn.1402c7ef0
cmp word [rsp + 0xf4], 0
je 0x1402ebf9e
xor eax, eax
mov r11, qword [rsp + 0x38]
jmp 0x1402ebfce
mov r11, qword [rsp + 0x38]
jmp 0x1402ebfdd
mov rcx, qword [rsp + 0xc0]
mov rdx, r15
call fcn.1402e6da0
mov r11, qword [rsp + 0x38]
test rax, rax
jne 0x1402ebfce
jmp 0x1402ebf2f
inc cl
mov eax, 1
shl rax, cl
test rax, rbx
mov eax, 0
cmovne r14, rax
or rbp, r14
inc rdi
cmp rdi, rsi
jne 0x1402ebea9
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0xc8]
mov r9, qword [rsp + 0x30]
cmp rbp, qword [rsp + 0x70]
jae 0x1402ec050
lea rax, [rdx + 1]
cmp rdx, rcx
mov rdx, rax
jb 0x1402eb6db
jmp 0x1402ec050
xor r9d, r9d
mov r13d, dword [rsp + 0x28]
jmp 0x1402ebe7f
xor ebp, ebp
jmp 0x1402ec050
and r13d, 0x280
cmp byte [r9 + 0x20], 0
mov rax, qword [rsp + 0x70]
cmove rax, rbp
cmp r13d, 0x80
cmovne rbp, rax
mov dil, 0xff
cmp rbp, qword [rsp + 0x70]
jne 0x1402eb618
mov edi, esi
jmp 0x1402eb618
cmp rbp, qword [rsp + 0x70]
je 0x1402ec05e
not rbp
mov rdi, rsi
cmp rdi, 2
jl 0x1402eb616
dec rdi
mov rax, 0xffffffffffffffff
mov ecx, edi
shl rax, cl
not rax
test rax, rbp
jne 0x1402ec072
jmp 0x1402eb618