Function at 0x1401f1f10
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, 0x1f8
mov rsi, r9
mov qword [rsp + 0x58], r8
mov dword [rsp + 0x2c], edx
mov rbp, rcx
mov ebx, dword [rcx + 0x28]
mov r14d, dword [rcx + 0x68]
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movups xmm2, xmmword [r9 + 0x20]
movaps xmmword [rsp + 0x180], xmm2
movaps xmmword [rsp + 0x170], xmm1
movaps xmmword [rsp + 0x160], xmm0
movups xmm0, xmmword [r9 + 0x30]
movaps xmmword [rsp + 0x190], xmm0
mov rax, qword [r9 + 0x40]
mov qword [rsp + 0x1a0], rax
lea rdx, [rsp + 0x160]
call fcn.1401fba90
test r14d, r14d
jle 0x1401f2536
mov rdi, rax
test ebx, ebx
jle 0x1401f24b3
lea eax, [r14 - 1]
mov dword [rsp + 0x6c], eax
mov rax, qword [rsp + 0x58]
shr rax, 0x20
mov qword [rsp + 0x90], rax
lea eax, [rbx - 1]
mov qword [rsp + 0x98], rax
xor r13d, r13d
xor eax, eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x88], r14
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x78], rbx
jmp 0x1401f1ffa
add r13, 1
mov r14, qword [rsp + 0x88]
cmp r13, r14
mov rsi, qword [rsp + 0x70]
je 0x1401f24a0
mov rax, qword [rdi]
lea rcx, [r13*2]
add rcx, r13
shl rcx, 4
lea rdx, [rax + rcx]
add rdx, 0xc
mov qword [rsp + 0x40], rdx
mov rax, qword [rax + rcx + 0xc]
mov qword [rsi + 0x40], rax
mov r15b, 1
xor r14d, r14d
mov rsi, qword [rsp + 0x58]
jmp 0x1401f206a
mov dword [r12 + 0x88], ebp
mov rdi, r15
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x30]
add eax, ebp
add eax, 1
mov qword [rsp + 0x30], rax
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x78]
add r14, 1
cmp r14, rbx
setb r15b
je 0x1401f1fe0
mov rax, qword [rbp + 0xf8]
mov rax, qword [rax + r13*8]
lea rcx, [r14 + r14*2]
cmp byte [rax + rcx*4], 0
je 0x1401f2059
mov rax, qword [rbp + 0x60]
mov rax, qword [rax + r13*8]
mov rax, qword [rax + 8]
mov r12, qword [rax + r14*8]
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x14]
mov ecx, dword [r12 + 0x38]
mov rbx, r13
add ecx, r13d
mov edx, dword [rsp + 0x6c]
cmp edx, ecx
cmovl ecx, edx
mov rdx, qword [rdi]
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 4
mov r13, qword [rdx + rcx + 0x14]
cmp esi, r13d
jl 0x1401f20d6
jne 0x1401f211f
mov rcx, r13
shr rcx, 0x20
cmp dword [rsp + 0x90], ecx
jge 0x1401f211f
test r14, r14
je 0x1401f20f8
lea rcx, [r14 + r14*8]
lea rcx, [rcx + rcx*2]
add rcx, r14
mov ecx, dword [rax + rcx + 8]
mov rdx, qword [rsp + 0x48]
sub ecx, dword [rdx + 0x18]
cmp ecx, dword [rsp + 0x2c]
jg 0x1401f211f
lea rcx, [r14 + r14*8]
lea rcx, [rcx + rcx*2]
add rcx, r14
mov ebp, dword [rax + rcx + 0xc]
cmp r14, qword [rsp + 0x98]
je 0x1401f21e0
cmp ebp, dword [rsp + 0x2c]
jg 0x1401f21e0
mov ebp, dword [r12 + 0x88]
test ebp, ebp
mov r13, rbx
jns 0x1401f2040
mov r15, rdi
mov eax, dword [r12 + 0x50]
lea ebp, [rax - 1]
test eax, eax
jle 0x1401f2030
mov esi, 8
xor edi, edi
jmp 0x1401f216f
mov rax, qword [rax + rsi]
mov eax, dword [rax + 0x28]
add ebp, eax
add rdi, 1
movsxd rax, dword [r12 + 0x50]
add rsi, 0x10
cmp rdi, rax
jge 0x1401f2030
mov rax, qword [r12 + 0x48]
mov rcx, qword [rax + rsi]
test rcx, rcx
je 0x1401f2150
mov ebx, dword [rcx + 8]
movzx eax, byte [0x140602980]
test al, al
je 0x1401f21a7
mov rax, qword [r12 + 0x48]
cmp ebx, dword [0x140602eac]
jne 0x1401f2150
mov rcx, qword [rax + rsi]
add rcx, 0x10
call fcn.1401ea5c0
jmp 0x1401f2157
lea rcx, [0x140602980]
call fcn.14035f9c4
test eax, eax
je 0x1401f218b
lea rcx, str.N3Upp9RichTableE
call fcn.14027a7e0
mov dword [0x140602eac], eax
lea rcx, [0x140602980]
call fcn.14035fa9b
jmp 0x1401f218b
mov rcx, qword [rsp + 0x40]
mov r9, qword [rcx]
mov rcx, qword [rsp + 0x48]
cmp r9d, dword [rcx + 0xc0]
jne 0x1401f2220
mov r11d, dword [rcx + 0xcc]
mov r10d, dword [rcx + 0xd4]
mov edx, dword [rcx + 0xdc]
sub edx, r11d
mov dword [rsp + 0x28], edx
mov edx, r10d
sub edx, dword [rcx + 0xe4]
mov dword [rsp + 0x24], edx
jmp 0x1401f223e
mov r11d, dword [rcx + 0xdc]
mov r10d, dword [rcx + 0xe4]
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x24], 0
mov ecx, r14d
mov r8, qword [rsp + 0x70]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
lea rdx, [rcx + rcx*8]
lea rdx, [rdx + rdx*2]
add rdx, rcx
mov ecx, dword [rax + rdx + 8]
add ecx, dword [r12 + 0x14]
add ecx, dword [r12 + 4]
mov eax, dword [r12 + 0x1c]
add eax, dword [r12 + 0xc]
sub ebp, eax
mov dword [rsp + 0x3c], ecx
cmp ebp, ecx
jle 0x1401f254c
mov ecx, dword [r12 + 8]
mov r14d, dword [r12 + 0x18]
lea eax, [rcx + r14]
add r11d, eax
mov edx, dword [r12 + 0x20]
add edx, dword [r12 + 0x10]
sub r10d, edx
cmp r10d, r11d
jle 0x1401f254c
mov rdx, r9
shr rdx, 0x20
add eax, edx
cmp r9d, r13d
jne 0x1401f23f0
mov qword [rsp + 0x50], rax
shr r13, 0x20
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0xc4], eax
mov qword [rsp + 0xc8], 0
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0xd4], r11d
mov dword [rsp + 0xd8], ebp
mov dword [rsp + 0xdc], r10d
mov qword [rsp + 0xe0], r9
cmp dword [r12 + 0x50], 0
jle 0x1401f23ab
mov dword [rsp + 0x64], r11d
mov dword [rsp + 0x68], r10d
mov qword [rsp + 0x80], r9
lea rax, [r12 + 0x40]
mov qword [rsp + 0x40], rax
xor r14d, r14d
nop
mov rcx, qword [rsp + 0x40]
mov edx, r14d
lea r8, [rsp + 0xa0]
lea r9, [rsp + 0x1b0]
call fcn.1401e9850
add r14d, 1
cmp r14d, dword [r12 + 0x50]
jl 0x1401f2360
mov edx, dword [rsp + 0xe4]
mov ecx, dword [r12 + 8]
mov r14d, dword [r12 + 0x18]
mov r9, qword [rsp + 0x80]
mov r10d, dword [rsp + 0x68]
mov r11d, dword [rsp + 0x64]
add edx, ecx
add edx, r14d
add edx, dword [r12 + 0x20]
add edx, dword [r12 + 0x10]
sub r13d, edx
mov eax, dword [r12 + 0x24]
cmp eax, 3
je 0x1401f23d6
cmp eax, 2
jne 0x1401f23e7
add r13d, dword [rsp + 0x50]
mov eax, r13d
jmp 0x1401f23f0
mov eax, r13d
shr eax, 0x1f
add eax, r13d
sar eax, 1
add eax, dword [rsp + 0x50]
jmp 0x1401f23f0
mov rax, qword [rsp + 0x50]
nop dword [rax]
shl rax, 0x20
add r12, 0x40
movaps xmm0, xmmword [rsp + 0x140]
movaps xmm1, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0x100], xmm1
mov rcx, rax
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0x110], eax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x114], eax
mov qword [rsp + 0x118], 0
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x120], eax
mov dword [rsp + 0x124], r11d
mov dword [rsp + 0x128], ebp
mov dword [rsp + 0x12c], r10d
mov eax, r9d
or rax, rcx
mov qword [rsp + 0x130], rax
mov rcx, r12
mov edx, dword [rsp + 0x2c]
mov r8, rsi
lea r9, [rsp + 0xf0]
call fcn.1401f1b50
test r15b, 1
jne 0x1401f2553
mov r13, rbx
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x78]
jmp 0x1401f1fe0
mov rax, qword [rsp + 0x30]
sub eax, 1
jb 0x1401f2536
jmp 0x1401f2538
lea rcx, [r14 - 1]
mov eax, r14d
and eax, 3
cmp rcx, 3
jae 0x1401f24c7
xor ecx, ecx
jmp 0x1401f2513
and r14d, 0xfffffffc
xor edx, edx
xor ecx, ecx
nop
mov rbp, qword [rdi]
mov rbp, qword [rbp + rdx + 0xc]
mov qword [rsi + 0x40], rbp
mov rbp, qword [rdi]
mov rbp, qword [rbp + rdx + 0x3c]
mov qword [rsi + 0x40], rbp
mov rbp, qword [rdi]
mov rbp, qword [rbp + rdx + 0x6c]
mov qword [rsi + 0x40], rbp
mov rbp, qword [rdi]
mov rbp, qword [rbp + rdx + 0x9c]
mov qword [rsi + 0x40], rbp
add rcx, 4
add rdx, 0xc0
cmp r14, rcx
jne 0x1401f24d0
test rax, rax
je 0x1401f2536
shl rcx, 4
lea rcx, [rcx + rcx*2]
mov rdx, qword [rdi]
mov rdx, qword [rdx + rcx + 0xc]
mov qword [rsi + 0x40], rdx
add rcx, 0x30
add rax, 0xffffffffffffffff
jne 0x1401f2520
xor eax, eax
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x30]
jmp 0x1401f2538
add eax, dword [rsp + 0x30]
jmp 0x1401f2538