Function at 0x1401f3b70
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, 0x1b8
mov qword [rsp + 0x30], r9
mov r14, r8
mov qword [rsp + 0x80], rdx
mov rdi, rcx
mov eax, dword [rcx + 0x28]
mov qword [rsp + 0x48], rax
mov esi, dword [rcx + 0x68]
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
movups xmm2, xmmword [r8 + 0x20]
movaps xmmword [rsp + 0x190], xmm2
movaps xmmword [rsp + 0x180], xmm1
movaps xmmword [rsp + 0x170], xmm0
movups xmm0, xmmword [r8 + 0x30]
movaps xmmword [rsp + 0x1a0], xmm0
mov rax, qword [r8 + 0x40]
mov qword [rsp + 0x1b0], rax
lea rdx, [rsp + 0x170]
call fcn.1401fba90
test esi, esi
jle 0x1401f4077
mov r12, rax
cmp dword [rsp + 0x48], 0
jle 0x1401f3fe4
lea eax, [rsi - 1]
mov dword [rsp + 0x44], eax
xor ebx, ebx
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x88], rdi
jmp 0x1401f3c42
add rbx, 1
mov rsi, qword [rsp + 0x50]
cmp rbx, rsi
je 0x1401f4077
mov rax, qword [r12]
lea rcx, [rbx + rbx*2]
shl rcx, 4
mov rdx, qword [rax + rcx + 0xc]
mov qword [r14 + 0x40], rdx
add rax, rcx
add rax, 0x20
mov qword [rsp + 0x90], rax
xor r15d, r15d
mov qword [rsp + 0x98], rbx
jmp 0x1401f3cb5
mov dword [r13 + 0x88], esi
mov rax, qword [rsp + 0x30]
add eax, esi
add eax, 1
mov qword [rsp + 0x30], rax
mov rdi, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x98]
add r15, 1
cmp r15, qword [rsp + 0x48]
je 0x1401f3c30
mov rax, qword [rdi + 0xf8]
mov rax, qword [rax + rbx*8]
lea rcx, [r15 + r15*2]
cmp byte [rax + rcx*4], 0
je 0x1401f3ca6
mov rax, qword [rdi + 0x60]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax + 8]
mov r13, qword [rax + r15*8]
mov rax, qword [rsp + 0x90]
mov rax, qword [rax]
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmm2, xmmword [r14 + 0x20]
movaps xmmword [rsp + 0x160], xmm2
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
lea rcx, [r15 + r15*8]
lea rcx, [rcx + rcx*2]
add rcx, r15
mov ebp, dword [rax + rcx + 8]
mov edx, dword [r13 + 0x38]
add edx, ebx
mov ebx, dword [rsp + 0x44]
cmp ebx, edx
cmovl edx, ebx
add ebp, dword [r13 + 0x14]
mov ebx, dword [rax + rcx + 0xc]
add ebp, dword [r13 + 4]
mov eax, dword [r13 + 0x1c]
add eax, dword [r13 + 0xc]
sub ebx, eax
cmp ebx, ebp
jle 0x1401f3f2d
mov r9d, dword [r14 + 0x3c]
mov r11d, dword [r13 + 8]
mov r8d, dword [r13 + 0x18]
lea esi, [r11 + r8]
mov edi, dword [r14 + 0x34]
add edi, esi
mov eax, dword [r13 + 0x20]
add eax, dword [r13 + 0x10]
sub r9d, eax
cmp r9d, edi
jle 0x1401f3f2d
mov r10, qword [r14 + 0x40]
mov rax, qword [r12]
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
shl rdx, 4
mov rcx, qword [rax + rdx + 0x14]
mov rdx, r10
shr rdx, 0x20
add esi, edx
cmp r10d, ecx
jne 0x1401f3ea5
shr rcx, 0x20
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmm2, xmmword [r14 + 0x20]
movaps xmmword [rsp + 0x110], xmm2
movaps xmmword [rsp + 0x100], xmm1
movaps xmmword [rsp + 0xf0], xmm0
mov dword [rsp + 0x120], ebp
mov dword [rsp + 0x124], edi
mov dword [rsp + 0x128], ebx
mov dword [rsp + 0x12c], r9d
mov qword [rsp + 0x130], r10
cmp dword [r13 + 0x50], 0
jle 0x1401f3e6c
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], r10
mov dword [rsp + 0x3c], ebx
mov qword [rsp + 0x78], rsi
mov dword [rsp + 0x40], r9d
lea r12, [r13 + 0x40]
xor r14d, r14d
lea rbx, [rsp + 0xf0]
lea rsi, [rsp + 0xa0]
mov rcx, r12
mov edx, r14d
mov r8, rbx
mov r9, rsi
call fcn.1401e9850
add r14d, 1
cmp r14d, dword [r13 + 0x50]
jl 0x1401f3e20
mov edx, dword [rsp + 0x134]
mov r11d, dword [r13 + 8]
mov r8d, dword [r13 + 0x18]
mov r14, qword [rsp + 0x60]
mov r12, qword [rsp + 0x58]
mov r9d, dword [rsp + 0x40]
mov rsi, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x3c]
mov r10, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
add edx, r11d
add edx, r8d
add edx, dword [r13 + 0x20]
add edx, dword [r13 + 0x10]
sub ecx, edx
mov eax, dword [r13 + 0x24]
cmp eax, 3
je 0x1401f3e98
cmp eax, 2
lea r8, [rsp + 0xa0]
jne 0x1401f3ead
add ecx, esi
mov esi, ecx
jmp 0x1401f3ead
mov eax, ecx
shr eax, 0x1f
add eax, ecx
sar eax, 1
add eax, esi
mov esi, eax
lea r8, [rsp + 0xa0]
shl rsi, 0x20
lea rcx, [r13 + 0x40]
movaps xmm0, xmmword [rsp + 0x140]
movaps xmm1, xmmword [rsp + 0x150]
movaps xmm2, xmmword [rsp + 0x160]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xc0], xmm2
mov dword [rsp + 0xd0], ebp
mov dword [rsp + 0xd4], edi
mov dword [rsp + 0xd8], ebx
mov dword [rsp + 0xdc], r9d
mov eax, r10d
or rax, rsi
mov qword [rsp + 0xe0], rax
mov eax, dword [rsp + 0x220]
mov dword [rsp + 0x20], eax
mov rdx, qword [rsp + 0x80]
mov r9, qword [rsp + 0x30]
call fcn.1401f3610
mov esi, dword [r13 + 0x88]
test esi, esi
jns 0x1401f3c87
mov eax, dword [r13 + 0x50]
lea esi, [rax - 1]
test eax, eax
jle 0x1401f3c80
mov ebp, 8
xor ebx, ebx
jmp 0x1401f3f7e
mov rax, qword [rax + rbp]
mov eax, dword [rax + 0x28]
add esi, eax
add rbx, 1
movsxd rax, dword [r13 + 0x50]
add rbp, 0x10
cmp rbx, rax
jge 0x1401f3c80
mov rax, qword [r13 + 0x48]
mov rcx, qword [rax + rbp]
test rcx, rcx
je 0x1401f3f60
mov edi, dword [rcx + 8]
movzx eax, byte [0x140602980]
test al, al
je 0x1401f3fb4
mov rax, qword [r13 + 0x48]
cmp edi, dword [0x140602eac]
jne 0x1401f3f60
mov rcx, qword [rax + rbp]
add rcx, 0x10
call fcn.1401ea5c0
jmp 0x1401f3f67
lea rcx, [0x140602980]
call fcn.14035f9c4
test eax, eax
je 0x1401f3f99
lea rcx, str.N3Upp9RichTableE
call fcn.14027a7e0
mov dword [0x140602eac], eax
lea rcx, [0x140602980]
call fcn.14035fa9b
jmp 0x1401f3f99
lea rcx, [rsi - 1]
mov eax, esi
and eax, 3
cmp rcx, 3
jae 0x1401f3ff7
xor ecx, ecx
jmp 0x1401f4047
and esi, 0xfffffffc
xor edx, edx
xor ecx, ecx
nop
mov rbp, qword [r12]
mov rbp, qword [rbp + rdx + 0xc]
mov qword [r14 + 0x40], rbp
mov rbp, qword [r12]
mov rbp, qword [rbp + rdx + 0x3c]
mov qword [r14 + 0x40], rbp
mov rbp, qword [r12]
mov rbp, qword [rbp + rdx + 0x6c]
mov qword [r14 + 0x40], rbp
mov rbp, qword [r12]
mov rbp, qword [rbp + rdx + 0x9c]
mov qword [r14 + 0x40], rbp
add rcx, 4
add rdx, 0xc0
cmp rsi, rcx
jne 0x1401f4000
test rax, rax
je 0x1401f4077
shl rcx, 4
lea rcx, [rcx + rcx*2]
nop word cs:[rax + rax]
nop
mov rdx, qword [r12]
mov rdx, qword [rdx + rcx + 0xc]
mov qword [r14 + 0x40], rdx
add rcx, 0x30
add rax, 0xffffffffffffffff
jne 0x1401f4060
add rsp, 0x1b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret