Function at 0x1401c1010
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 0x1401c1447
cmp r9d, 0x18
je 0x1401c129f
cmp r9d, 0x24
jne 0x1401c1295
mov r9d, dword [rsp + 0x58]
xor esi, esi
test r9d, r9d
jle 0x1401c1295
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 0x1401c1270
mov r8d, 0x7fff
jmp 0x1401c1277
cmp r8d, r12d
cmovl r8d, r12d
add esi, r10d
mov word [rdi], r8w
add rdi, 2
cmp esi, r9d
jl 0x1401c1060
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 0x1401c1295
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 0x1401c1422
mov r8d, 0x7fff
jmp 0x1401c1429
cmp r8d, r12d
cmovl r8d, r12d
add esi, r10d
mov word [rdi], r8w
add rdi, 2
cmp esi, r9d
jl 0x1401c12c0
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 0x1401c166e
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 0x1401c1645
mov eax, 0x7fff
jmp 0x1401c164c
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 0x1401c1480
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