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

Disassembly:
push rsi
sub rsp, 0xd0
movdqa xmmword [rsp + 0xc0], xmm15
movdqa xmmword [rsp + 0xb0], xmm14
movdqa xmmword [rsp + 0xa0], xmm13
movdqa xmmword [rsp + 0x90], xmm12
movdqa xmmword [rsp + 0x80], xmm11
movdqa xmmword [rsp + 0x70], xmm10
movdqa xmmword [rsp + 0x60], xmm9
movdqa xmmword [rsp + 0x50], xmm8
movdqa xmmword [rsp + 0x40], xmm7
movdqa xmmword [rsp + 0x30], xmm6
mov rax, qword [rcx]
mov rax, qword [rax + 0x38]
lea r9, [method.nnue::LinearLayer_unsigned_char__signed_char__int__int__15__32__32_.virtual_56]
cmp rax, r9
jne 0x140038a09
mov eax, dword [rcx + 0x20]
mov dword [r8], eax
mov eax, dword [rcx + 0x24]
mov dword [r8 + 4], eax
mov eax, dword [rcx + 0x28]
mov dword [r8 + 8], eax
mov eax, dword [rcx + 0x2c]
mov dword [r8 + 0xc], eax
mov eax, dword [rcx + 0x30]
mov dword [r8 + 0x10], eax
mov eax, dword [rcx + 0x34]
mov dword [r8 + 0x14], eax
mov eax, dword [rcx + 0x38]
mov dword [r8 + 0x18], eax
mov eax, dword [rcx + 0x3c]
mov dword [r8 + 0x1c], eax
mov eax, dword [rcx + 0x40]
mov dword [r8 + 0x20], eax
mov eax, dword [rcx + 0x44]
mov dword [r8 + 0x24], eax
mov eax, dword [rcx + 0x48]
mov dword [r8 + 0x28], eax
mov eax, dword [rcx + 0x4c]
mov dword [r8 + 0x2c], eax
mov eax, dword [rcx + 0x50]
mov dword [r8 + 0x30], eax
mov eax, dword [rcx + 0x54]
mov dword [r8 + 0x34], eax
mov eax, dword [rcx + 0x58]
mov dword [r8 + 0x38], eax
mov eax, dword [rcx + 0x5c]
mov dword [r8 + 0x3c], eax
mov eax, dword [rcx + 0x60]
mov dword [r8 + 0x40], eax
mov eax, dword [rcx + 0x64]
mov dword [r8 + 0x44], eax
mov eax, dword [rcx + 0x68]
mov dword [r8 + 0x48], eax
mov eax, dword [rcx + 0x6c]
mov dword [r8 + 0x4c], eax
mov eax, dword [rcx + 0x70]
mov dword [r8 + 0x50], eax
mov eax, dword [rcx + 0x74]
mov dword [r8 + 0x54], eax
mov eax, dword [rcx + 0x78]
mov dword [r8 + 0x58], eax
mov eax, dword [rcx + 0x7c]
mov dword [r8 + 0x5c], eax
mov eax, dword [rcx + 0x80]
mov dword [r8 + 0x60], eax
mov eax, dword [rcx + 0x84]
mov dword [r8 + 0x64], eax
mov eax, dword [rcx + 0x88]
mov dword [r8 + 0x68], eax
mov eax, dword [rcx + 0x8c]
mov dword [r8 + 0x6c], eax
mov eax, dword [rcx + 0x90]
mov dword [r8 + 0x70], eax
mov eax, dword [rcx + 0x94]
mov dword [r8 + 0x74], eax
mov eax, dword [rcx + 0x98]
mov dword [r8 + 0x78], eax
mov eax, dword [rcx + 0x9c]
mov dword [r8 + 0x7c], eax
lea rax, [rdx + 0xf]
cmp rax, r8
seta r10b
lea r9, [r8 + 0x80]
cmp r9, rdx
seta r11b
lea rax, [rcx + 0x48f]
cmp rax, r8
seta al
lea rsi, [rcx + 0xa0]
cmp rsi, r9
setb r9b
test r10b, r11b
jne 0x14003882e
and al, r9b
jne 0x14003882e
movzx eax, byte [rdx]
movd xmm0, eax
movdqa xmm15, xmmword [0x1400c8b70]
pshufb xmm0, xmm15
movdqa xmmword [rsp + 0x20], xmm0
movzx eax, byte [rdx + 1]
movd xmm0, eax
pshufb xmm0, xmm15
movdqa xmmword [rsp + 0x10], xmm0
movzx eax, byte [rdx + 2]
movd xmm0, eax
pshufb xmm0, xmm15
movdqa xmmword [rsp], xmm0
movzx eax, byte [rdx + 3]
movd xmm3, eax
pshufb xmm3, xmm15
movzx eax, byte [rdx + 4]
movd xmm4, eax
pshufb xmm4, xmm15
movzx eax, byte [rdx + 5]
movd xmm5, eax
pshufb xmm5, xmm15
movzx eax, byte [rdx + 6]
movd xmm6, eax
pshufb xmm6, xmm15
movzx eax, byte [rdx + 7]
movd xmm7, eax
pshufb xmm7, xmm15
movzx eax, byte [rdx + 8]
movd xmm8, eax
pshufb xmm8, xmm15
movzx eax, byte [rdx + 9]
movd xmm9, eax
pshufb xmm9, xmm15
movzx eax, byte [rdx + 0xa]
movd xmm10, eax
pshufb xmm10, xmm15
movzx eax, byte [rdx + 0xb]
movd xmm11, eax
pshufb xmm11, xmm15
movzx eax, byte [rdx + 0xc]
movd xmm12, eax
pshufb xmm12, xmm15
movzx eax, byte [rdx + 0xd]
movd xmm13, eax
pshufb xmm13, xmm15
movzx eax, byte [rdx + 0xe]
movd xmm14, eax
pshufb xmm14, xmm15
add rcx, 0x10e
xor eax, eax
nop word [rax + rax]
movd xmm0, dword [rcx + rax*8 - 0x6e]
pinsrb xmm0, byte [rcx + rax*8 - 0x4e], 1
pinsrb xmm0, byte [rcx + rax*8 - 0x2e], 2
movdqu xmm15, xmmword [r8 + rax]
pinsrb xmm0, byte [rcx + rax*8 - 0xe], 3
pmovsxbd xmm0, xmm0
pmaddwd xmm0, xmmword [rsp + 0x20]
paddd xmm0, xmm15
movzx edx, byte [rcx + rax*8 - 0x6d]
movd xmm15, edx
pinsrb xmm15, byte [rcx + rax*8 - 0x4d], 1
pinsrb xmm15, byte [rcx + rax*8 - 0x2d], 2
pinsrb xmm15, byte [rcx + rax*8 - 0xd], 3
pmovsxbd xmm15, xmm15
pmaddwd xmm15, xmmword [rsp + 0x10]
movzx edx, byte [rcx + rax*8 - 0x6c]
movd xmm1, edx
pinsrb xmm1, byte [rcx + rax*8 - 0x4c], 1
pinsrb xmm1, byte [rcx + rax*8 - 0x2c], 2
pinsrb xmm1, byte [rcx + rax*8 - 0xc], 3
paddd xmm15, xmm0
pmovsxbd xmm1, xmm1
movzx edx, byte [rcx + rax*8 - 0x6b]
movd xmm0, edx
pinsrb xmm0, byte [rcx + rax*8 - 0x4b], 1
pinsrb xmm0, byte [rcx + rax*8 - 0x2b], 2
pmaddwd xmm1, xmmword [rsp]
pinsrb xmm0, byte [rcx + rax*8 - 0xb], 3
pmovsxbd xmm0, xmm0
pmaddwd xmm0, xmm3
paddd xmm0, xmm1
paddd xmm0, xmm15
movd xmm1, dword [rcx + rax*8 - 0x6a]
pinsrb xmm1, byte [rcx + rax*8 - 0x4a], 1
pinsrb xmm1, byte [rcx + rax*8 - 0x2a], 2
pinsrb xmm1, byte [rcx + rax*8 - 0xa], 3
pmovsxbd xmm1, xmm1
pmaddwd xmm1, xmm4
movzx edx, byte [rcx + rax*8 - 0x69]
movd xmm15, edx
pinsrb xmm15, byte [rcx + rax*8 - 0x49], 1
pinsrb xmm15, byte [rcx + rax*8 - 0x29], 2
pinsrb xmm15, byte [rcx + rax*8 - 9], 3
pmovsxbd xmm2, xmm15
pmaddwd xmm2, xmm5
movzx edx, byte [rcx + rax*8 - 0x68]
movd xmm15, edx
pinsrb xmm15, byte [rcx + rax*8 - 0x48], 1
pinsrb xmm15, byte [rcx + rax*8 - 0x28], 2
paddd xmm2, xmm1
pinsrb xmm15, byte [rcx + rax*8 - 8], 3
pmovsxbd xmm15, xmm15
pmaddwd xmm15, xmm6
paddd xmm15, xmm2
movzx edx, byte [rcx + rax*8 - 0x67]
movd xmm1, edx
pinsrb xmm1, byte [rcx + rax*8 - 0x47], 1
pinsrb xmm1, byte [rcx + rax*8 - 0x27], 2
paddd xmm15, xmm0
pinsrb xmm1, byte [rcx + rax*8 - 7], 3
pmovsxbd xmm0, xmm1
pmaddwd xmm0, xmm7
movd xmm1, dword [rcx + rax*8 - 0x66]
pinsrb xmm1, byte [rcx + rax*8 - 0x46], 1
pinsrb xmm1, byte [rcx + rax*8 - 0x26], 2
pinsrb xmm1, byte [rcx + rax*8 - 6], 3
pmovsxbd xmm1, xmm1
pmaddwd xmm1, xmm8
movzx edx, byte [rcx + rax*8 - 0x65]
movd xmm2, edx
pinsrb xmm2, byte [rcx + rax*8 - 0x45], 1
pinsrb xmm2, byte [rcx + rax*8 - 0x25], 2
paddd xmm1, xmm0
pinsrb xmm2, byte [rcx + rax*8 - 5], 3
pmovsxbd xmm2, xmm2
pmaddwd xmm2, xmm9
paddd xmm2, xmm1
movzx edx, byte [rcx + rax*8 - 0x64]
movd xmm0, edx
pinsrb xmm0, byte [rcx + rax*8 - 0x44], 1
pinsrb xmm0, byte [rcx + rax*8 - 0x24], 2
pinsrb xmm0, byte [rcx + rax*8 - 4], 3
pmovsxbd xmm0, xmm0
pmaddwd xmm0, xmm10
paddd xmm0, xmm2
paddd xmm0, xmm15
movzx edx, byte [rcx + rax*8 - 0x63]
movd xmm1, edx
pinsrb xmm1, byte [rcx + rax*8 - 0x43], 1
pinsrb xmm1, byte [rcx + rax*8 - 0x23], 2
pinsrb xmm1, byte [rcx + rax*8 - 3], 3
pmovsxbd xmm1, xmm1
movd xmm2, dword [rcx + rax*8 - 0x62]
pinsrb xmm2, byte [rcx + rax*8 - 0x42], 1
pinsrb xmm2, byte [rcx + rax*8 - 0x22], 2
pmaddwd xmm1, xmm11
pinsrb xmm2, byte [rcx + rax*8 - 2], 3
pmovsxbd xmm2, xmm2
pmaddwd xmm2, xmm12
paddd xmm2, xmm1
movzx edx, byte [rcx + rax*8 - 0x61]
movd xmm1, edx
pinsrb xmm1, byte [rcx + rax*8 - 0x41], 1
pinsrb xmm1, byte [rcx + rax*8 - 0x21], 2
pinsrb xmm1, byte [rcx + rax*8 - 1], 3
pmovsxbd xmm1, xmm1
pmaddwd xmm1, xmm13
movzx edx, byte [rcx + rax*8 - 0x60]
movd xmm15, edx
pinsrb xmm15, byte [rcx + rax*8 - 0x40], 1
pinsrb xmm15, byte [rcx + rax*8 - 0x20], 2
pinsrb xmm15, byte [rcx + rax*8], 3
paddd xmm1, xmm2
pmovsxbd xmm2, xmm15
pmaddwd xmm2, xmm14
paddd xmm2, xmm1
paddd xmm2, xmm0
movdqu xmmword [r8 + rax], xmm2
add rax, 0x10
cmp rax, 0x80
jne 0x140038540
jmp 0x1400389b7
xor eax, eax
movzx r9d, byte [rdx]
movsx r10d, byte [rcx + rax*8 + 0xa0]
imul r10d, r9d
add r10d, dword [r8 + rax]
mov dword [r8 + rax], r10d
movzx r9d, byte [rdx + 1]
movsx r11d, byte [rcx + rax*8 + 0xa1]
imul r11d, r9d
add r11d, r10d
mov dword [r8 + rax], r11d
movzx r9d, byte [rdx + 2]
movsx r10d, byte [rcx + rax*8 + 0xa2]
imul r10d, r9d
add r10d, r11d
mov dword [r8 + rax], r10d
movzx r9d, byte [rdx + 3]
movsx r11d, byte [rcx + rax*8 + 0xa3]
imul r11d, r9d
add r11d, r10d
mov dword [r8 + rax], r11d
movzx r9d, byte [rdx + 4]
movsx r10d, byte [rcx + rax*8 + 0xa4]
imul r10d, r9d
add r10d, r11d
mov dword [r8 + rax], r10d
movzx r9d, byte [rdx + 5]
movsx r11d, byte [rcx + rax*8 + 0xa5]
imul r11d, r9d
add r11d, r10d
mov dword [r8 + rax], r11d
movzx r9d, byte [rdx + 6]
movsx r10d, byte [rcx + rax*8 + 0xa6]
imul r10d, r9d
add r10d, r11d
mov dword [r8 + rax], r10d
movzx r9d, byte [rdx + 7]
movsx r11d, byte [rcx + rax*8 + 0xa7]
imul r11d, r9d
add r11d, r10d
mov dword [r8 + rax], r11d
movzx r9d, byte [rdx + 8]
movsx r10d, byte [rcx + rax*8 + 0xa8]
imul r10d, r9d
add r10d, r11d
mov dword [r8 + rax], r10d
movzx r9d, byte [rdx + 9]
movsx r11d, byte [rcx + rax*8 + 0xa9]
imul r11d, r9d
add r11d, r10d
mov dword [r8 + rax], r11d
movzx r9d, byte [rdx + 0xa]
movsx r10d, byte [rcx + rax*8 + 0xaa]
imul r10d, r9d
add r10d, r11d
mov dword [r8 + rax], r10d
movzx r9d, byte [rdx + 0xb]
movsx r11d, byte [rcx + rax*8 + 0xab]
imul r11d, r9d
add r11d, r10d
mov dword [r8 + rax], r11d
movzx r9d, byte [rdx + 0xc]
movsx r10d, byte [rcx + rax*8 + 0xac]
imul r10d, r9d
add r10d, r11d
mov dword [r8 + rax], r10d
movzx r9d, byte [rdx + 0xd]
movsx r11d, byte [rcx + rax*8 + 0xad]
imul r11d, r9d
add r11d, r10d
mov dword [r8 + rax], r11d
movzx r9d, byte [rdx + 0xe]
movsx r10d, byte [rcx + rax*8 + 0xae]
imul r10d, r9d
add r10d, r11d
mov dword [r8 + rax], r10d
add rax, 4
cmp rax, 0x80
jne 0x140038830
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm12, xmmword [rsp + 0x90]
movaps xmm13, xmmword [rsp + 0xa0]
movaps xmm14, xmmword [rsp + 0xb0]
movaps xmm15, xmmword [rsp + 0xc0]
add rsp, 0xd0
pop rsi
ret
movaps xmm6, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm12, xmmword [rsp + 0x90]
movaps xmm13, xmmword [rsp + 0xa0]
movaps xmm14, xmmword [rsp + 0xb0]
movaps xmm15, xmmword [rsp + 0xc0]
add rsp, 0xd0
pop rsi
jmp rax