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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
movups xmmword [rsp + 0xe0], xmm6
movups xmmword [rsp + 0xf0], xmm7
movdqu xmm0, xmmword [0x140553550]
movdqu xmm1, xmmword [0x1405535a0]
movdqu xmm2, xmmword [0x1405535b0]
mov rsi, r8
mov rbp, rdx
mov rbx, rcx
movups xmmword [r8], xmm0
movups xmmword [r8 + 0x10], xmm1
mov rdx, rsi
lea r8, [r8 + 0x34]
mov rcx, rbp
mov dword [r8 - 4], 0xcff
mov r15, rbx
movups xmmword [r8 - 0x14], xmm2
mov dword [rsp + 0x168], r9d
call fcn.1400469f0
movdqu xmm7, xmmword [rsi]
pxor xmm0, xmm0
mov eax, dword [rsi + 0x30]
movdqa xmm1, xmm0
movdqa xmm2, xmm0
movd xmm3, dword [rsp + 0x168]
mov edx, dword [rsp + 0x168]
movdqa xmm5, xmm7
movdqa xmm6, xmm7
mov r14d, eax
mov qword [rsp + 0x20], 0
pshufd xmm4, xmm3, 0
movdqu xmm3, xmmword [0x140553590]
sub r14d, 0xff
mov dword [rsp + 0x3c], edx
paddd xmm7, xmm4
cmovs r14d, eax
mov qword [rsp + 0x150], rbx
add eax, dword [rsp + 0x168]
paddd xmm5, xmm3
movups xmmword [rsi], xmm7
pcmpgtd xmm1, xmm5
sar r14d, 8
mov dword [rsi + 0x30], eax
mov rax, rsi
mov dword [rsp + 0x90], r14d
mov r11d, r14d
pand xmm6, xmm1
pandn xmm1, xmm5
movdqu xmm5, xmmword [rsi + 0x10]
por xmm1, xmm6
movdqa xmm6, xmm5
psrad xmm1, 8
movdqa xmm7, xmm5
paddd xmm6, xmm3
paddd xmm5, xmm4
movups xmmword [rsp + 0x60], xmm1
movd r9d, xmm1
pcmpgtd xmm2, xmm6
movups xmmword [rsi + 0x10], xmm5
pand xmm7, xmm2
pandn xmm2, xmm6
movdqu xmm6, xmmword [rsi + 0x20]
por xmm2, xmm7
paddd xmm3, xmm6
movdqa xmm5, xmm6
paddd xmm4, xmm6
pcmpgtd xmm0, xmm3
psrad xmm2, 8
movups xmmword [rsi + 0x20], xmm4
movups xmmword [rsp + 0x70], xmm2
movdqu xmm2, xmmword [0x140553580]
pand xmm5, xmm0
pandn xmm0, xmm3
movdqu xmm3, xmmword [0x1405535c0]
por xmm0, xmm5
psrad xmm0, 8
movups xmmword [rsp + 0x80], xmm0
nop word [rax + rax]
mov r10d, r9d
mov r12d, r11d
mov rdi, qword [rsp + 0x20]
shl r10d, 8
shl r12d, 8
movsxd rcx, r10d
movsxd r13, r12d
sub rcx, rdi
sub r13, rdi
mov r8d, dword [rbp + rcx + 0xff]
mov ebx, dword [rbp + r13 + 0xff]
mov ecx, 0xff
sub ecx, edi
and r8d, 0xffffff
and ebx, 0xffffff
mov dword [r15], r8d
cmp r8d, ebx
je 0x1403f1620
mov esi, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x3c]
lea r14, [rsp + 0x60]
lea rdi, [rsp + 0xa0]
mov r10d, esi
mov dword [r15 + 4], r9d
shl r10d, 8
add r10d, ecx
lea r11d, [rdx + r10]
movsxd r12, r10d
mov dword [rax], r11d
mov r11d, dword [rbp + r12 - 1]
mov r13d, r11d
shr r11d, 8
shl r13d, 0x18
add esi, r13d
mov dword [rsp + 0xa0], esi
cmp r11d, r8d
je 0x1403f1db0
mov ebx, dword [rsp + 0x3c]
mov dword [r15 + 8], r11d
add r15, 8
mov dword [r15 + 4], ebx
mov r8d, ebx
mov r10d, dword [rsp + 0x3c]
mov ebx, 1
jmp 0x1403f1498
lea r13d, [r10 + r12]
mov dword [r15 + 8], ebx
add r15, 8
mov dword [r15 + 4], r13d
lea r8, [r12 + 1]
add r13d, 0x20000
mov r9d, dword [r14 + r8*4]
mov dword [r15 + 4], r13d
mov r11d, r9d
shl r11d, 8
add r11d, ecx
lea esi, [rdx + r11]
movsxd r13, r11d
mov dword [rax + r8*4], esi
mov esi, r8d
mov r11d, dword [rbp + r13 - 1]
shl esi, 0x10
add esi, r9d
mov r9d, r11d
shr r11d, 8
shl r9d, 0x18
add esi, r9d
mov dword [rdi + r8*4], esi
cmp r11d, ebx
je 0x1403f1560
add r8d, r10d
mov dword [r15 + 8], r11d
lea rbx, [r12 + 2]
add r15, 8
mov dword [r15 + 4], r8d
cmp r12, 0xb
je 0x1403f1573
mov r9d, dword [r14 + rbx*4]
add r8d, 0x20000
mov dword [r15 + 4], r8d
mov r8d, r9d
shl r8d, 8
add r8d, ecx
lea esi, [rdx + r8]
movsxd r12, r8d
mov r8d, ebx
mov dword [rax + rbx*4], esi
mov r13d, dword [rbp + r12 - 1]
shl r8d, 0x10
add r8d, r9d
mov r9d, r13d
shr r13d, 8
shl r9d, 0x18
add r8d, r9d
mov dword [rdi + rbx*4], r8d
cmp r13d, r11d
je 0x1403f1550
lea r11d, [r10 + rbx]
mov dword [r15 + 8], r13d
add r15, 8
mov dword [r15 + 4], r11d
lea r12, [rbx + 1]
add r11d, 0x20000
mov esi, dword [r14 + r12*4]
mov dword [r15 + 4], r11d
mov r8d, esi
shl r8d, 8
add r8d, ecx
lea ebx, [rdx + r8]
movsxd r9, r8d
mov r8d, r12d
mov dword [rax + r12*4], ebx
mov ebx, dword [rbp + r9 - 1]
shl r8d, 0x10
add r8d, esi
mov r11d, ebx
shr ebx, 8
shl r11d, 0x18
add r8d, r11d
mov dword [rdi + r12*4], r8d
cmp ebx, r13d
jne 0x1403f1418
mov r13d, dword [r15 + 4]
jmp 0x1403f1428
mov r11d, dword [r15 + 4]
jmp 0x1403f14f1
mov r8d, dword [r15 + 4]
lea rbx, [r12 + 2]
cmp r12, 0xb
jne 0x1403f1498
mov r14d, dword [rsp + 0xa4]
mov edi, dword [rsp + 0xa8]
mov dword [rsp + 0x3c], r10d
add r8d, 0x20000
mov r10d, dword [rsp + 0xb8]
mov ecx, dword [rsp + 0xa0]
mov dword [r15 + 4], r8d
mov r12d, dword [rsp + 0xbc]
mov r13d, dword [rsp + 0xc0]
mov dword [rsp + 0x30], r14d
mov r11d, dword [rsp + 0xc4]
mov esi, dword [rsp + 0xcc]
mov dword [rsp + 0x34], edi
mov r9d, dword [rsp + 0xd0]
mov dword [rsp + 0x48], r10d
mov dword [rsp + 0x2c], ecx
mov r14d, dword [rsp + 0xac]
mov dword [rsp + 0x4c], r12d
mov edi, dword [rsp + 0xb0]
mov dword [rsp + 0x50], r13d
mov r8d, dword [rsp + 0xb4]
mov dword [rsp + 0x54], r11d
movdqu xmm0, xmmword [rsp + 0xb8]
mov dword [rsp + 0x38], esi
mov r10d, dword [rsp + 0xc8]
mov dword [rsp + 0x40], r9d
jmp 0x1403f18b6
mov r8d, dword [rsp + 0x3c]
add r10d, ecx
mov esi, dword [rsp + 0x64]
lea r14d, [rdx + r10]
movsxd rdi, r10d
lea ebx, [r8 + 0x1a0000]
mov dword [r15 + 4], ebx
mov dword [rax], r14d
movzx r10d, byte [rbp + rdi - 1]
shl r10d, 0x18
lea r13d, [r10 + r9]
mov r9d, esi
mov r10d, dword [rsp + 0x68]
shl r9d, 8
mov dword [rsp + 0x2c], r13d
add r9d, ecx
mov r13d, r10d
lea r8d, [rdx + r9]
movsxd rbx, r9d
shl r13d, 8
mov dword [rax + 4], r8d
movzx r14d, byte [rbp + rbx - 1]
add r13d, ecx
movsxd r9, r13d
shl r14d, 0x18
lea edi, [rsi + r14 + 0x10000]
mov r14d, dword [rsp + 0x6c]
lea esi, [rdx + r13]
mov dword [rax + 8], esi
movzx r8d, byte [rbp + r9 - 1]
mov dword [rsp + 0x30], edi
mov edi, r14d
mov r9d, dword [rsp + 0x70]
shl edi, 8
shl r8d, 0x18
add edi, ecx
lea ebx, [r10 + r8 + 0x20000]
mov r8d, r9d
lea r10d, [rdx + rdi]
movsxd r13, edi
shl r8d, 8
mov dword [rsp + 0x34], ebx
mov dword [rax + 0xc], r10d
movzx esi, byte [rbp + r13 - 1]
add r8d, ecx
mov r13d, dword [rsp + 0x74]
lea ebx, [rdx + r8]
movsxd rdi, r8d
shl esi, 0x18
mov dword [rax + 0x10], ebx
movzx r10d, byte [rbp + rdi - 1]
lea r14d, [r14 + rsi + 0x30000]
mov esi, r13d
shl esi, 8
shl r10d, 0x18
add esi, ecx
lea edi, [r9 + r10 + 0x40000]
mov r10d, dword [rsp + 0x78]
lea r9d, [rdx + rsi]
movsxd r8, esi
mov dword [rax + 0x14], r9d
movzx ebx, byte [rbp + r8 - 1]
shl ebx, 0x18
lea r8d, [r13 + rbx + 0x50000]
mov r13d, r10d
shl r13d, 8
add r13d, ecx
lea esi, [rdx + r13]
movsxd r9, r13d
mov dword [rax + 0x18], esi
movzx r13d, byte [rbp + r9 - 1]
mov ebx, r13d
movd xmm0, r13d
shl ebx, 0x18
lea r10d, [r10 + rbx + 0x60000]
mov ebx, dword [rsp + 0x7c]
mov dword [rsp + 0x48], r10d
mov r9d, ebx
shl r9d, 8
add r9d, ecx
lea esi, [rdx + r9]
movsxd r10, r9d
mov dword [rax + 0x1c], esi
movzx esi, byte [rbp + r10 - 1]
mov r10d, dword [rsp + 0x80]
mov r9d, esi
movd xmm7, esi
shl r9d, 0x18
shl r10d, 8
punpckldq xmm0, xmm7
add r10d, ecx
lea ebx, [rbx + r9 + 0x70000]
mov dword [rsp + 0x4c], ebx
lea r9d, [rdx + r10]
movsxd rbx, r10d
mov dword [rax + 0x20], r9d
movzx r9d, byte [rbp + rbx - 1]
mov r10d, dword [rsp + 0x80]
mov r13d, dword [rsp + 0x88]
mov dword [rsp + 0x38], r9d
shl r9d, 0x18
movd xmm1, dword [rsp + 0x38]
lea ebx, [r10 + r9 + 0x80000]
mov r9d, dword [rsp + 0x84]
movdqu xmm6, xmmword [rsp + 0x78]
mov dword [rsp + 0x50], ebx
shl r9d, 8
add r9d, ecx
lea r10d, [rdx + r9]
movsxd rbx, r9d
mov dword [rax + 0x24], r10d
movzx r9d, byte [rbp + rbx - 1]
mov r10d, r13d
shl r10d, 8
movd xmm4, r9d
shl r9d, 0x18
add r9d, 0x90000
add r9d, dword [rsp + 0x84]
add r10d, ecx
add r12d, ecx
lea esi, [rdx + r10]
movsxd rbx, r10d
mov dword [rsp + 0x54], r9d
punpckldq xmm1, xmm4
mov dword [rax + 0x28], esi
movzx r9d, byte [rbp + rbx - 1]
punpcklqdq xmm0, xmm1
pslld xmm0, 0x18
shl r9d, 0x18
paddd xmm0, xmm3
lea r10d, [r13 + r9 + 0xa0000]
mov r13d, dword [rsp + 0x8c]
paddd xmm0, xmm6
mov ebx, r13d
shl ebx, 8
add ebx, ecx
lea ecx, [rdx + r12]
movsxd r12, r12d
lea esi, [rdx + rbx]
movsxd r9, ebx
mov dword [rax + 0x2c], esi
movzx ebx, byte [rbp + r9 - 1]
mov dword [rax + 0x30], ecx
movzx esi, byte [rbp + r12 - 1]
shl ebx, 0x18
shl esi, 0x18
lea r13d, [r13 + rbx + 0xb0000]
lea r11d, [r11 + rsi + 0xc0000]
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x40], r11d
mov ebx, dword [rsp + 0x2c]
mov r9d, dword [rsp + 0x30]
pshufd xmm5, xmm0, 0xff
movd r12d, xmm0
movd r13d, xmm5
add r15, 8
shr ebx, 0x18
shr r9d, 0x18
cmp ebx, r9d
jne 0x1403f1a68
mov ecx, dword [rsp + 0x34]
shr ecx, 0x18
cmp ebx, ecx
jne 0x1403f1a68
mov esi, r14d
shr esi, 0x18
cmp ebx, esi
jne 0x1403f1a68
mov r11d, edi
shr r11d, 0x18
cmp ebx, r11d
jne 0x1403f1a68
mov r9d, r8d
shr r9d, 0x18
cmp ebx, r9d
jne 0x1403f1a68
mov ecx, r12d
shr ecx, 0x18
cmp ebx, ecx
jne 0x1403f1a68
pshufd xmm1, xmm0, 0x55
movd esi, xmm1
shr esi, 0x18
cmp ebx, esi
jne 0x1403f1a68
movdqa xmm4, xmm0
punpckhdq xmm4, xmm0
movd r11d, xmm4
shr r11d, 0x18
cmp ebx, r11d
jne 0x1403f1a68
mov r9d, r13d
shr r9d, 0x18
cmp ebx, r9d
jne 0x1403f1a68
mov ecx, r10d
shr ecx, 0x18
cmp ebx, ecx
jne 0x1403f1a68
mov esi, dword [rsp + 0x38]
shr esi, 0x18
cmp ebx, esi
jne 0x1403f1a68
mov r11d, dword [rsp + 0x40]
shr r11d, 0x18
cmp ebx, r11d
jne 0x1403f1a68
movzx r11d, byte [rsp + 0x38]
add qword [rsp + 0x20], 1
movzx r13d, dil
and r14d, 0xff
movzx r9d, byte [rsp + 0x2c]
movzx ecx, byte [rsp + 0x30]
mov dword [rsp + 0x6c], r14d
and r8d, 0xff
mov dword [rsp + 0x8c], r11d
pand xmm0, xmm2
movzx r14d, r10b
add rax, 0x34
movzx r12d, byte [rsp + 0x34]
movzx r11d, byte [rsp + 0x40]
mov dword [rsp + 0x60], r9d
mov rsi, qword [rsp + 0x20]
add dword [rsp + 0x3c], 0xd
mov dword [rsp + 0x64], ecx
mov dword [rsp + 0x68], r12d
mov dword [rsp + 0x70], r13d
mov dword [rsp + 0x74], r8d
mov dword [rsp + 0x88], r14d
mov dword [rsp + 0x90], r11d
movups xmmword [rsp + 0x78], xmm0
cmp rsi, 0x100
jne 0x1403f1350
mov rdx, qword [rsp + 0x150]
mov rax, r15
movups xmm6, xmmword [rsp + 0xe0]
movups xmm7, xmmword [rsp + 0xf0]
sub rax, rdx
sar rax, 3
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, dword [rsp + 0x30]
mov r9d, dword [rsp + 0x34]
mov esi, dword [rsp + 0x2c]
cmp ebx, r9d
mov ecx, r9d
cmovae r9d, ebx
cmovbe ecx, ebx
mov ebx, esi
cmp esi, r9d
cmova ebx, r9d
cmovae r9d, esi
mov r11d, ebx
cmp ecx, ebx
cmovbe r11d, ecx
cmovb ecx, ebx
cmp edi, r8d
mov ebx, r8d
cmovae r8d, edi
cmovbe ebx, edi
mov edi, r14d
cmp r8d, r14d
cmovbe edi, r8d
cmovb r8d, r14d
mov esi, edi
cmp ebx, edi
cmovbe esi, ebx
cmovae edi, ebx
mov ebx, r8d
cmp r11d, esi
mov r14d, esi
cmovbe r14d, r11d
cmovae esi, r11d
cmp ecx, edi
mov r11d, edi
cmovbe r11d, ecx
cmovb ecx, edi
mov edi, dword [rsp + 0x4c]
cmp r9d, r8d
cmovbe ebx, r9d
cmovae r8d, r9d
cmp ecx, ebx
mov dword [rsp + 0x44], r8d
mov r8d, ebx
cmovbe r8d, ecx
cmovae ebx, ecx
cmp esi, r11d
mov ecx, r11d
cmovbe ecx, esi
cmovb esi, r11d
mov r11d, dword [rsp + 0x50]
mov dword [rsp + 0x58], ebx
mov ebx, dword [rsp + 0x40]
cmp r8d, esi
mov r9d, esi
mov dword [rsp + 0x30], ecx
mov ecx, dword [rsp + 0x48]
cmovbe r9d, r8d
cmovae esi, r8d
cmp edi, r11d
mov dword [rsp + 0x34], r9d
mov r9d, r11d
cmovae r11d, edi
cmovbe r9d, edi
mov dword [rsp + 0x5c], esi
mov esi, ebx
cmp r11d, ecx
cmovbe ecx, r11d
cmp r11d, r12d
cmovb r11d, r12d
mov r8d, ecx
cmp r9d, ecx
cmovbe r8d, r9d
cmovb r9d, ecx
mov ecx, dword [rsp + 0x54]
cmp ecx, r10d
cmova ecx, r10d
cmp r10d, r13d
cmovb r10d, r13d
mov r13d, dword [rsp + 0x38]
cmp r13d, ebx
cmovbe esi, r13d
cmovae ebx, r13d
mov r12d, esi
cmp ecx, esi
mov edi, ebx
cmovbe r12d, ecx
cmovae esi, ecx
cmp r10d, ebx
cmovbe edi, r10d
cmovb r10d, ebx
mov ebx, r12d
cmp esi, edi
mov r13d, edi
cmovbe r13d, esi
cmovb esi, edi
mov ecx, r13d
cmp r8d, r13d
cmovbe ecx, r8d
cmovb r8d, r13d
cmp ecx, r12d
cmovbe ebx, ecx
cmovb ecx, r12d
cmp r9d, esi
mov r12d, esi
cmovbe r12d, r9d
cmovb r9d, esi
cmp r11d, r10d
mov esi, r10d
cmovbe esi, r11d
cmovb r11d, r10d
cmp r9d, esi
mov edi, esi
cmovbe esi, r9d
cmovb r9d, edi
cmp ecx, r12d
mov edi, r12d
cmovbe edi, ecx
cmovb ecx, r12d
mov r10d, esi
cmp r8d, esi
cmovbe r10d, r8d
cmovb r8d, esi
mov r13d, edi
cmp ecx, r10d
mov esi, r10d
cmovbe esi, ecx
cmovb ecx, r10d
cmp r14d, edi
mov r10d, dword [rsp + 0x30]
cmovbe r13d, r14d
cmovae edi, r14d
mov r12d, r10d
cmp ebx, r13d
mov r14d, r13d
cmovbe r14d, ebx
cmovb ebx, r13d
mov r13d, dword [rsp + 0x34]
cmp r10d, esi
cmova r12d, esi
cmovae esi, r10d
mov dword [rsp + 0x2c], r14d
cmp r13d, ecx
mov r14d, r13d
cmova r14d, ecx
cmovae ecx, r13d
mov r13d, r12d
cmp esi, r14d
mov r10d, r14d
cmovbe r10d, esi
cmovb esi, r14d
cmp ebx, r12d
cmovbe r13d, ebx
cmovb ebx, r12d
cmp edi, r10d
mov r12d, r10d
cmovbe r12d, edi
cmovb edi, r10d
mov r10d, dword [rsp + 0x5c]
mov dword [rsp + 0x30], r13d
cmp ebx, r12d
mov r14d, r12d
cmovbe r14d, ebx
cmovb ebx, r12d
cmp r10d, r8d
mov r12d, r10d
cmova r12d, r8d
cmovae r8d, r10d
mov dword [rsp + 0x34], r14d
mov r14d, dword [rsp + 0x58]
cmp r14d, r9d
mov r13d, r14d
cmova r13d, r9d
cmovae r9d, r14d
mov r14d, dword [rsp + 0x44]
cmp r14d, r11d
cmova r14d, r11d
cmovae r11d, dword [rsp + 0x44]
mov r10d, r14d
cmp r9d, r14d
mov dword [rsp + 0x40], r11d
mov r11d, ecx
cmovbe r10d, r9d
cmovae r14d, r9d
cmp r8d, r13d
mov r9d, r13d
cmovbe r9d, r8d
cmovb r8d, r13d
mov dword [rsp + 0x38], r14d
mov r14d, ebx
cmp r10d, r8d
mov r13d, r8d
cmovae r8d, r10d
cmovbe r13d, r10d
cmp r12d, edi
mov r10d, r8d
mov r8d, edi
cmovbe r8d, r12d
cmovb r12d, edi
cmp r8d, ebx
cmovbe r14d, r8d
cmovb r8d, ebx
cmp r9d, esi
mov ebx, esi
cmovbe ebx, r9d
cmovae esi, r9d
cmp r13d, ecx
cmovbe r11d, r13d
mov dword [rsp + 0x44], esi
mov edi, ebx
cmp esi, r11d
cmova esi, r11d
cmp r8d, ebx
cmovae ebx, r8d
cmovbe edi, r8d
mov r9d, esi
cmp r12d, esi
cmovbe r9d, r12d
cmp ebx, r9d
mov r8d, r9d
cmovbe r8d, ebx
cmovae r9d, ebx
mov ebx, dword [rsp + 0x44]
cmp r12d, esi
cmovb r12d, esi
cmp ebx, r11d
movd xmm0, r9d
cmovae r11d, ebx
cmp r13d, ecx
movd xmm6, r12d
cmovb r13d, ecx
punpckldq xmm0, xmm6
movd xmm5, r11d
movd xmm7, r13d
punpckldq xmm5, xmm7
punpcklqdq xmm0, xmm5
jmp 0x1403f199a
mov r8d, dword [r15 + 4]
jmp 0x1403f1403