Function at 0x1402f2710
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, 0x58
movaps xmmword [rsp + 0x40], xmm6
cmp byte [rcx + 0x1e], 0
mov rdi, rcx
jne 0x1402f2c7d
mov r12d, dword [rcx + 0x30]
mov rbp, qword [rcx]
test r12d, r12d
jne 0x1402f2c93
mov rsi, qword [rcx + 0x10]
test rsi, rsi
je 0x1402f3059
cmp byte [rdi + 0xe1], 0
jne 0x1402f2f86
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x1402f3096
lea edx, [rax + 1]
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov dword [rsi + 0x90], edx
lea rax, [rax + rcx*8]
mov qword [rax], 0x46
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov rcx, qword [rsi]
lea rax, [0x140397be0]
cmp byte [rcx + 0x67], 0
je 0x1402f2f7a
mov dword [rax + 8], edx
xor ebx, ebx
mov r13d, 1
jmp 0x1402f285d
lea edx, [rax + 1]
mov dword [rsi + 0x90], edx
movsxd rdx, eax
lea r8, [rdx + rdx*2]
mov rdx, qword [rsi + 0x88]
lea rdx, [rdx + r8*8]
movq qword [rdx + 4], xmm1
mov dword [rdx + 0xc], ecx
mov qword [rdx + 0x10], 0
mov dword [rdx], 2
mov rdx, qword [rsi]
cmp byte [rdx + 0x67], 0
jne 0x1402f281b
cdqe
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rdx*8]
mov byte [rax + 1], 0xfd
mov dword [rax + 0x10], r14d
cmp byte [rbp + 0xc5], 0
jne 0x1402f2850
movsxd rax, dword [rsi + 0x90]
test eax, eax
jle 0x1402f2850
mov rdx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov ecx, 1
lea rax, [rdx + rax*8]
mov word [rax - 0x16], cx
nop word [rax + rax]
add rbx, 1
cmp dword [rbp + 0x28], ebx
jle 0x1402f2ca8
mov eax, r13d
mov ecx, ebx
movd xmm0, ebx
shl eax, cl
mov edx, eax
and edx, dword [rdi + 0x7c]
je 0x1402f2850
or dword [rsi + 0xcc], eax
mov rdx, rbx
shl rdx, 5
cmp rbx, 1
je 0x1402f289a
mov rcx, qword [rsi]
mov rcx, qword [rcx + 0x20]
mov rcx, qword [rcx + rdx + 8]
cmp byte [rcx + 0x11], 0
je 0x1402f289a
or dword [rsi + 0xd0], eax
mov rcx, qword [rbp + 0x20]
xor r9d, r9d
movdqa xmm1, xmm0
and eax, dword [rdi + 0x78]
mov eax, dword [rsi + 0x90]
mov rdx, qword [rcx + rdx + 0x18]
setne r9b
cmp eax, dword [rsi + 0x94]
movd xmm3, r9d
punpckldq xmm1, xmm3
mov r14d, dword [rdx + 4]
mov ecx, dword [rdx]
jl 0x1402f27c8
mov dword [rsp + 0x20], ecx
movd r8d, xmm0
mov edx, 2
mov rcx, rsi
call fcn.140297360
jmp 0x1402f27f9
mov rbx, qword [rdi + 0x10]
movabs r13, 0x5e00000000
mov rax, qword [rdi]
mov r15, qword [rdi + 0xa0]
movq xmm6, qword [0x140475a30]
mov qword [rsp + 0x30], rax
test r15, r15
je 0x1402f2bd4
nop
movsxd rax, dword [r15 + 0x10]
xor edx, edx
mov rcx, qword [rsp + 0x30]
mov ebp, dword [r15 + 0x14]
mov r8, rax
shl rax, 5
add rax, qword [rcx + 0x20]
mov rcx, rdi
lea r14d, [rbp - 1]
mov rax, qword [rax + 0x18]
mov r9, qword [rax + 0x68]
mov dword [rsp + 0x20], 0x70
call fcn.140313690
mov rax, qword [r15 + 8]
mov r11, qword [rax]
mov eax, dword [rbx + 0x90]
cmp eax, dword [rbx + 0x94]
jge 0x1402f2f20
lea edx, [rax + 1]
mov dword [rbx + 0x90], edx
movsxd rdx, eax
lea rcx, [rdx + rdx*2]
mov rdx, qword [rbx + 0x88]
lea rdx, [rdx + rcx*8]
mov dword [rdx + 8], r14d
mov dword [rdx + 0xc], 0
mov qword [rdx + 0x10], 0
mov qword [rdx], 0x75
mov rdx, qword [rbx]
cmp byte [rdx + 0x67], 0
jne 0x1402f29d9
test eax, eax
jns 0x1402f29ba
mov eax, dword [rbx + 0x90]
sub eax, 1
cdqe
xor r9d, r9d
mov r8, r11
lea rdx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
mov rcx, rbx
lea rdx, [rax + rdx*8]
call fcn.140373be0
mov edx, dword [rbx + 0x90]
lea ecx, [rdx + 0xc]
cmp ecx, dword [rbx + 0x94]
jg 0x1402f2ef8
movsxd rax, edx
xor r10d, r10d
movd xmm0, ebp
lea r8, [rax + rax*2]
mov r9d, 0x7a
mov r11d, 0x10
mov rax, qword [rbx + 0x88]
lea rax, [rax + r8*8]
lea r8d, [rdx + 0xa]
mov qword [rax], 0x4b
mov dword [rax + 0x20], r8d
lea r8d, [rdx + 9]
mov dword [rax + 0x50], r8d
mov r8d, 0x34
mov word [rax + 0x48], r8w
lea r8d, [rdx + 0xb]
add edx, 2
mov dword [rax + 0xe0], edx
lea edx, [rbp + 2]
movd xmm2, edx
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0x24
punpckldq xmm0, xmm2
mov qword [rax + 0x24], 0
mov qword [rax + 0x2c], r13
mov qword [rax + 0x34], 0
mov qword [rax + 0x40], 0
mov qword [rax + 0x58], 0
mov qword [rax + 0x60], 0x87
mov qword [rax + 0x6c], 0
mov qword [rax + 0x74], r13
movq qword [rax + 0x7c], xmm6
mov qword [rax + 0x88], 0
mov dword [rax + 0x90], 0x56
mov qword [rax + 0x98], 0
mov qword [rax + 0xa0], 0
mov dword [rax + 0xa8], 0x50
mov dword [rax + 0xc8], r8d
mov dword [rax + 0xb4], 0
mov qword [rax + 0xb8], 0
mov qword [rax + 0xc0], 9
mov dword [rax + 0xcc], 0
mov qword [rax + 0xd0], 0
mov qword [rax + 0xd8], 0x27
mov dword [rax + 0xe4], 0
mov qword [rax + 0xe8], 0
mov qword [rax + 0xf0], 0x47
mov qword [rax + 0x10c], 0
mov word [rax + 0x108], r9w
mov dword [rax + 0x114], 0
mov dword [rax + 0xfc], 0
mov qword [rax + 0x100], 0
mov qword [rax + 0x118], 0
mov word [rax + 0x10a], r10w
mov dword [rbx + 0x90], ecx
lea ecx, [rbp + 1]
mov dword [rax + 8], ebp
mov dword [rax + 0x3c], ebp
mov dword [rax + 0x54], ebp
mov dword [rax + 0x84], ebp
mov dword [rax + 0x94], ebp
movq qword [rax + 0xac], xmm0
mov dword [rax + 0xf8], ebp
mov ebp, dword [rdi + 0x34]
mov dword [rax + 0xc], edx
mov dword [rax + 0x4c], r14d
mov word [rax + 0x4a], r11w
test ebp, ebp
mov dword [rax + 0x68], ecx
jne 0x1402f2ee0
mov r15, qword [r15]
mov dword [rdi + 0x34], 1
test r15, r15
jne 0x1402f2920
mov rbp, qword [rdi + 0x58]
test rbp, rbp
je 0x1402f2c1c
mov byte [rdi + 0x23], 0
mov edx, dword [rbp]
test edx, edx
jle 0x1402f2c1c
cmp qword [rdi + 0x10], 0
lea rbx, [rbp + 8]
je 0x1402f2c1c
nop dword [rax + rax]
mov rdx, qword [rbx]
mov rcx, rdi
add r12d, 1
mov r8d, dword [rbx + 0x18]
call fcn.1402e9210
cmp r12d, dword [rbp]
jge 0x1402f2c1c
add rbx, 0x20
cmp qword [rdi + 0x10], 0
jne 0x1402f2bf8
cmp byte [rdi + 0xe1], 0
jne 0x1402f2f4a
movsxd rax, dword [rsi + 0x90]
cmp eax, dword [rsi + 0x94]
jge 0x1402f30bc
lea edx, [rax + 1]
mov dword [rsi + 0x90], edx
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rdx*8]
mov qword [rax], 9
mov qword [rax + 8], 1
mov qword [rax + 0x10], 0
mov eax, dword [rdi + 0x30]
test eax, eax
je 0x1402f307f
mov dword [rdi + 0x18], 1
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rbp + 0x67], 0
je 0x1402f2c7d
mov dword [rcx + 0x18], 7
jmp 0x1402f2c7d
mov r15d, dword [rdi + 0x138]
xor r13d, r13d
test r15d, r15d
jle 0x1402f2d85
nop dword [rax + rax]
mov rax, qword [rdi + 0x190]
mov rax, qword [rax + r13*8]
mov rbx, qword [rax + 0x50]
test rbx, rbx
jne 0x1402f2ce9
jmp 0x1402f2cee
mov rbx, qword [rbx + 0x28]
test rbx, rbx
je 0x1402f2cee
cmp rbp, qword [rbx]
jne 0x1402f2ce0
mov eax, dword [rsi + 0x90]
cmp eax, dword [rsi + 0x94]
jge 0x1402f2ea0
lea edx, [rax + 1]
mov dword [rsi + 0x90], edx
movsxd rdx, eax
lea rcx, [rdx + rdx*2]
mov rdx, qword [rsi + 0x88]
lea rdx, [rdx + rcx*8]
mov qword [rdx], 0xaa
mov qword [rdx + 8], 0
mov qword [rdx + 0x10], 0
mov rdx, qword [rsi]
cmp byte [rdx + 0x67], 0
jne 0x1402f2d74
test eax, eax
jns 0x1402f2d48
mov eax, dword [rsi + 0x90]
sub eax, 1
cdqe
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rdx, [rax + rdx*8]
cmp byte [rdx + 1], 0
jne 0x1402f2e80
test rbx, rbx
je 0x1402f2d74
mov qword [rdx + 0x10], rbx
mov byte [rdx + 1], 0xf5
add dword [rbx + 0x18], 1
add r13, 1
cmp dword [rdi + 0x138], r13d
jg 0x1402f2cc0
mov r14d, dword [rdi + 0x90]
xor r13d, r13d
xor ebp, ebp
mov dword [rdi + 0x138], 0
mov rbx, qword [rdi + 0x10]
test r14d, r14d
jg 0x1402f2dd2
jmp 0x1402f28f4
test r14, r14
je 0x1402f2dbd
mov qword [rdx + 0x10], r14
mov byte [rdx + 1], 0xff
add r13d, 1
add rbp, 0x18
cmp r13d, dword [rdi + 0x90]
jge 0x1402f28f0
mov rax, qword [rdi + 0x98]
add rax, rbp
mov r10, qword [rax]
mov r8d, dword [rax]
mov r14, qword [rax + 0x10]
movzx ecx, byte [rax + 8]
mov r9d, dword [rax + 4]
mov eax, dword [rbx + 0x90]
cmp eax, dword [rbx + 0x94]
jge 0x1402f2ec0
lea edx, [rax + 1]
mov dword [rbx + 0x90], edx
movsxd rdx, eax
lea r8, [rdx + rdx*2]
mov rdx, qword [rbx + 0x88]
lea rdx, [rdx + r8*8]
mov qword [rdx + 4], r10
mov dword [rdx + 0xc], ecx
mov qword [rdx + 0x10], 0
mov dword [rdx], 0xa9
mov rdx, qword [rbx]
cmp byte [rdx + 0x67], 0
jne 0x1402f2dbd
test eax, eax
jns 0x1402f2e46
mov eax, dword [rbx + 0x90]
sub eax, 1
cdqe
lea rdx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
lea rdx, [rax + rdx*8]
cmp byte [rdx + 1], 0
je 0x1402f2db0
mov r9d, 0xffffffff
mov r8, r14
mov rcx, rbx
call fcn.140373be0
jmp 0x1402f2dbd
mov r9d, 0xfffffff5
mov r8, rbx
mov rcx, rsi
call fcn.140373be0
jmp 0x1402f2d74
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0xaa
mov rcx, rsi
call fcn.140297360
jmp 0x1402f2d32
mov dword [rsp + 0x20], ecx
mov edx, 0xa9
mov rcx, rbx
call fcn.140297360
jmp 0x1402f2e30
mov r15, qword [r15]
test r15, r15
jne 0x1402f2920
jmp 0x1402f2bd4
mov rcx, rbx
call fcn.140297560
test eax, eax
jne 0x1402f2bd4
mov edx, dword [rbx + 0x90]
lea ecx, [rdx + 0xc]
jmp 0x1402f29ee
mov r9d, r14d
xor r8d, r8d
mov edx, 0x75
mov qword [rsp + 0x38], r11
mov dword [rsp + 0x20], 0
mov rcx, rbx
call fcn.140297360
mov r11, qword [rsp + 0x38]
jmp 0x1402f29a4
mov rax, qword [rdi + 0xc8]
mov r9d, dword [rax + 0xbc]
test r9d, r9d
je 0x1402f2c29
mov r8d, dword [rax + 0xb8]
mov edx, 0x76
mov rcx, rsi
call fcn.140330e60
jmp 0x1402f2c29
mov rax, qword [rsi + 0x88]
jmp 0x1402f27b2
mov r13, qword [rdi + 0xc8]
mov r9d, dword [r13 + 0xbc]
test r9d, r9d
je 0x1402f275c
xor r9d, r9d
xor r8d, r8d
mov edx, 0x53
mov rcx, rsi
xor ebx, ebx
call fcn.140330e60
xor r9d, r9d
mov edx, 0x24
mov rcx, rsi
mov r8d, dword [r13 + 0xb8]
call fcn.140330e60
mov r8d, dword [r13 + 0xbc]
mov r15d, dword [r13 + 0xc0]
movsxd r14, eax
test r8d, r8d
jle 0x1402f300b
nop
mov r8d, dword [r13 + 0xb8]
lea eax, [r15 + rbx]
mov r9d, ebx
mov rcx, rsi
mov dword [rsp + 0x20], eax
mov edx, 0x5e
add ebx, 1
call fcn.140330de0
cmp dword [r13 + 0xbc], ebx
jg 0x1402f2fe0
mov r9d, ebx
mov r8d, r15d
mov edx, 0x54
mov rcx, rsi
call fcn.140330e60
mov r8d, dword [r13 + 0xb8]
lea r9d, [r14 + 1]
mov rcx, rsi
mov edx, 0x27
call fcn.140330e60
mov rcx, qword [rsi]
lea rdx, [0x140397be0]
movsxd rax, dword [rsi + 0x90]
cmp byte [rcx + 0x67], 0
je 0x1402f30df
mov dword [rdx + 8], eax
jmp 0x1402f2763
cmp byte [rbp + 0xc5], 0
jne 0x1402f308a
call fcn.14030bbf0
test rax, rax
mov rsi, rax
jne 0x1402f274f
mov dword [rdi + 0x18], 1
jmp 0x1402f2c6b
mov rdx, rdi
mov rcx, rsi
call fcn.14033f380
mov dword [rdi + 0x18], 0x65
jmp 0x1402f2c7d
mov edx, 0x46
mov dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.140297360
mov edx, dword [rsi + 0x90]
jmp 0x1402f279e
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov edx, 9
mov rcx, rsi
mov r9d, 1
call fcn.140297360
jmp 0x1402f2c6b
mov rdx, qword [rsi + 0x88]
lea rcx, [r14 + r14*2]
lea rdx, [rdx + rcx*8]
jmp 0x1402f3051