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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
mov rbp, r8
mov rbx, rdx
mov rdi, rcx
cmp r9d, 0x12
je 0x1401be5f7
cmp r9d, 0x18
je 0x1401be44f
cmp r9d, 0x24
jne 0x1401be445
mov r9d, dword [rsp + 0x58]
xor esi, esi
test r9d, r9d
jle 0x1401be445
mov r10d, dword [rsp + 0x60]
mov r12d, 0xffff8000
nop dword [rax]
movsxd rdx, esi
sar rdx, 0x10
mov eax, dword [rbx + rdx*4 + 0x50]
add eax, dword [rbx + rdx*4 + 0x3c]
movsxd r8, eax
movsx rax, word [rbp + 0x1e]
imul r8, rax
mov eax, dword [rbx + rdx*4 + 0x58]
add eax, dword [rbx + rdx*4 + 0x34]
sar r8, 0x10
movsxd rcx, eax
movsx rax, word [rbp + 0x1a]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x60]
add eax, dword [rbx + rdx*4 + 0x2c]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x16]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x68]
add eax, dword [rbx + rdx*4 + 0x24]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x12]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x70]
add eax, dword [rbx + rdx*4 + 0x1c]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0xe]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x78]
add eax, dword [rbx + rdx*4 + 0x14]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0xa]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x80]
add eax, dword [rbx + rdx*4 + 0xc]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 6]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x88]
add eax, dword [rbx + rdx*4 + 4]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 2]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x48]
add eax, dword [rbx + rdx*4 + 0x44]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x22]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x4c]
add eax, dword [rbx + rdx*4 + 0x40]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x20]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x54]
add eax, dword [rbx + rdx*4 + 0x38]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x1c]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x5c]
sar rcx, 0x10
add r8d, ecx
add eax, dword [rbx + rdx*4 + 0x30]
movsxd rcx, eax
movsx rax, word [rbp + 0x18]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x64]
add eax, dword [rbx + rdx*4 + 0x28]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x14]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x6c]
add eax, dword [rbx + rdx*4 + 0x20]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x10]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x74]
add eax, dword [rbx + rdx*4 + 0x18]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0xc]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x7c]
add eax, dword [rbx + rdx*4 + 0x10]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 8]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x84]
add eax, dword [rbx + rdx*4 + 8]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 4]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x8c]
add eax, dword [rbx + rdx*4]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp]
imul rcx, rax
sar rcx, 0x10
add r8d, ecx
sar r8d, 5
inc r8d
sar r8d, 1
cmp r8d, 0x7fff
jle 0x1401be420
mov r8d, 0x7fff
jmp 0x1401be427
cmp r8d, r12d
cmovl r8d, r12d
add esi, r10d
mov word [rdi], r8w
add rdi, 2
cmp esi, r9d
jl 0x1401be210
mov rax, rdi
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, rcx
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov r9d, dword [rsp + 0x58]
xor esi, esi
test r9d, r9d
jle 0x1401be445
mov r10d, dword [rsp + 0x60]
mov r12d, 0xffff8000
nop word [rax + rax]
movsxd rdx, esi
sar rdx, 0x10
mov eax, dword [rbx + rdx*4 + 0x30]
add eax, dword [rbx + rdx*4 + 0x2c]
movsxd r8, eax
movsx rax, word [rbp + 0x16]
imul r8, rax
mov eax, dword [rbx + rdx*4 + 0x38]
add eax, dword [rbx + rdx*4 + 0x24]
sar r8, 0x10
movsxd rcx, eax
movsx rax, word [rbp + 0x12]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x40]
add eax, dword [rbx + rdx*4 + 0x1c]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0xe]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x48]
add eax, dword [rbx + rdx*4 + 0x14]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0xa]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x50]
add eax, dword [rbx + rdx*4 + 0xc]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 6]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x58]
add eax, dword [rbx + rdx*4 + 4]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 2]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x34]
add eax, dword [rbx + rdx*4 + 0x28]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x14]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x3c]
add eax, dword [rbx + rdx*4 + 0x20]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0x10]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x44]
add eax, dword [rbx + rdx*4 + 0x18]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 0xc]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x4c]
add eax, dword [rbx + rdx*4 + 0x10]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 8]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x54]
add eax, dword [rbx + rdx*4 + 8]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, eax
movsx rax, word [rbp + 4]
imul rcx, rax
mov eax, dword [rbx + rdx*4 + 0x5c]
sar rcx, 0x10
add r8d, ecx
add eax, dword [rbx + rdx*4]
movsxd rcx, eax
movsx rax, word [rbp]
imul rcx, rax
sar rcx, 0x10
add r8d, ecx
sar r8d, 5
inc r8d
sar r8d, 1
cmp r8d, 0x7fff
jle 0x1401be5d2
mov r8d, 0x7fff
jmp 0x1401be5d9
cmp r8d, r12d
cmovl r8d, r12d
add esi, r10d
mov word [rdi], r8w
add rdi, 2
cmp esi, r9d
jl 0x1401be470
mov rax, rdi
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x38], r13
mov r13d, dword [rsp + 0x58]
xor esi, esi
test r13d, r13d
jle 0x1401be81e
mov qword [rsp + 0x40], r14
mov r14d, dword [rsp + 0x60]
mov qword [rsp + 0x48], r15
movsxd r15, dword [rsp + 0x50]
mov r12d, 0xffff8000
movsx rcx, r15w
mov qword [rsp + 0x30], rcx
nop
movsxd rax, esi
movzx r8d, ax
mov r11, rax
sar r11, 0x10
imul r8, rcx
sar r8, 0x10
lea eax, [r8 + r8*8]
movsxd rdx, eax
movsxd rax, dword [rbx + r11*4 + 0x20]
movsx r10, word [rbp + rdx*2 + 0x10]
movsx rcx, word [rbp + rdx*2 + 0xe]
imul r10, rax
movsxd rax, dword [rbx + r11*4 + 0x1c]
sar r10, 0x10
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 0x18]
sar rcx, 0x10
add r10d, ecx
movsx rcx, word [rbp + rdx*2 + 0xc]
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 0x14]
sar rcx, 0x10
add r10d, ecx
movsx rcx, word [rbp + rdx*2 + 0xa]
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 0x10]
sar rcx, 0x10
add r10d, ecx
movsx rcx, word [rbp + rdx*2 + 8]
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 0xc]
sar rcx, 0x10
add r10d, ecx
movsx rcx, word [rbp + rdx*2 + 6]
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 8]
sar rcx, 0x10
add r10d, ecx
movsx rcx, word [rbp + rdx*2 + 4]
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 4]
sar rcx, 0x10
add r10d, ecx
movsx rcx, word [rbp + rdx*2 + 2]
movsx rdx, word [rbp + rdx*2]
imul rcx, rax
movsxd rax, dword [rbx + r11*4]
sar rcx, 0x10
add r10d, ecx
movsxd rcx, dword [rbx + r11*4 + 0x3c]
imul rdx, rax
sar rdx, 0x10
mov eax, r15d
sub eax, r8d
movsxd r8, dword [rbx + r11*4 + 0x38]
add edx, r10d
lea eax, [rax + rax*8 - 9]
movsxd r9, eax
movsx rax, word [rbp + r9*2 + 6]
imul r8, rax
movsx rax, word [rbp + r9*2 + 4]
imul rcx, rax
movsx rax, word [rbp + r9*2 + 2]
sar r8, 0x10
sar rcx, 0x10
add edx, ecx
movsxd rcx, dword [rbx + r11*4 + 0x40]
add r8d, edx
movsx rdx, word [rbp + r9*2 + 8]
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 0x34]
sar rcx, 0x10
add r8d, ecx
movsx rcx, word [rbp + r9*2 + 0xa]
imul rdx, rax
movsxd rax, dword [rbx + r11*4 + 0x30]
sar rdx, 0x10
imul rcx, rax
sar rcx, 0x10
add edx, r8d
movsx r8, word [rbp + r9*2 + 0xc]
movsxd rax, dword [rbx + r11*4 + 0x2c]
add edx, ecx
movsx rcx, word [rbp + r9*2 + 0xe]
imul r8, rax
movsxd rax, dword [rbx + r11*4 + 0x28]
sar r8, 0x10
add r8d, edx
movsx rdx, word [rbp + r9*2 + 0x10]
imul rcx, rax
movsxd rax, dword [rbx + r11*4 + 0x24]
sar rcx, 0x10
add r8d, ecx
movsxd rcx, dword [rbx + r11*4 + 0x44]
imul rdx, rax
movsx rax, word [rbp + r9*2]
sar rdx, 0x10
imul rcx, rax
lea eax, [r8 + rdx]
sar rcx, 0x10
add eax, ecx
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0x7fff
jle 0x1401be7f5
mov eax, 0x7fff
jmp 0x1401be7fc
cmp eax, r12d
cmovl eax, r12d
mov rcx, qword [rsp + 0x30]
add esi, r14d
mov word [rdi], ax
add rdi, 2
cmp esi, r13d
jl 0x1401be630
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
mov rax, rdi
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret