Function at 0x140156fe0
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, 0x48
mov eax, edx
mov dword [rsp + 0x98], edx
add eax, 0x11f
add edx, 0x100
cmovns eax, edx
sar eax, 5
test rcx, rcx
je 0x140157a60
test r8, r8
je 0x140157a60
mov edi, dword [rsp + 0x98]
and edi, 0xffffffbf
cmp dword [rsp + 0x98], 0x100
mov dword [rsp + 0x2c], edi
je 0x140157043
cmp edi, 0x80
jne 0x140157a54
mov dword [r8 + 0x110], eax
mov eax, dword [rsp + 0x98]
lea r15, [0x1402b8be0]
lea r11, [0x1402b87e0]
mov ebx, dword [rcx + 0xc]
mov edi, dword [rcx + 4]
lea r10d, [rax - 0x80]
lea rax, [0x1402b93e0]
mov esi, dword [rcx + 8]
sar r10d, 6
mov dword [rsp + 0x30], ebx
bswap ebx
movsxd r10, r10d
mov dword [rsp + 0x14], ebx
shl r10, 4
mov dword [rsp + 0x38], edi
bswap edi
add r10, rax
mov eax, dword [rcx]
mov dword [rsp + 0x1c], edi
xor ebx, dword [r10 + 0xc]
mov dword [rsp + 0x34], esi
bswap esi
mov dword [rsp + 0x3c], eax
bswap eax
mov ebp, ebx
mov dword [rsp + 0x18], eax
xor eax, dword [r10]
mov r12d, eax
mov eax, dword [r10 + 4]
mov dword [rsp + 0x20], esi
mov ebx, r12d
xor esi, dword [r10 + 8]
mov r9d, r12d
xor eax, edi
movzx edi, bh
movzx ebx, r12b
shr r12d, 0x10
mov edx, esi
mov r13, rdi
lea rsi, [0x1402b83e0]
shr r9d, 0x18
lea rdi, [0x1402b8fe0]
movzx r12d, r12b
movzx r14d, al
mov r9d, dword [rdi + r9*4]
xor r9d, dword [rsi + rbx*4]
movzx ebx, ah
xor r9d, dword [r15 + r12*4]
mov r12d, eax
shr eax, 0x10
xor r9d, dword [r11 + r13*4]
shr r12d, 0x18
movzx eax, al
mov r12d, dword [rdi + r12*4]
xor r12d, dword [rsi + r14*4]
movzx r14d, dl
xor r12d, dword [r15 + rax*4]
movzx eax, dh
xor r12d, dword [r11 + rbx*4]
mov r13, rax
mov eax, edx
shr edx, 0x10
shr eax, 0x18
movzx edx, dl
mov eax, dword [rdi + rax*4]
xor eax, dword [rsi + r14*4]
movzx r14d, bpl
xor eax, dword [r15 + rdx*4]
mov edx, ebp
xor eax, dword [r11 + r13*4]
movzx edx, dh
xor r12d, eax
mov r13, rdx
mov edx, ebp
shr ebp, 0x10
xor r9d, r12d
shr edx, 0x18
movzx ebp, bpl
mov edx, dword [rdi + rdx*4]
xor edx, dword [rsi + r14*4]
xor edx, dword [r15 + rbp*4]
xor edx, dword [r11 + r13*4]
mov r13d, r12d
xor eax, edx
xor eax, r9d
xor r13d, eax
mov ebp, r13d
shl ebp, 8
shr r13d, 8
xor edx, r12d
and ebp, 0xff00ff00
and r13d, 0xff00ff
rol eax, 0x10
bswap edx
or ebp, r13d
xor ebp, eax
xor eax, edx
xor r9d, ebp
mov r14d, eax
mov eax, ebp
xor edx, ebp
xor r14d, r9d
mov dword [rsp + 0x28], edx
mov ebx, edx
xor eax, r14d
mov dword [rsp + 8], r14d
cmp dword [rsp + 0x98], 0x80
mov dword [rsp + 0x24], eax
je 0x140157204
mov ebp, dword [rcx + 0x10]
mov edx, dword [rcx + 0x14]
bswap ebp
bswap edx
xor r9d, ebp
xor eax, edx
cmp dword [rsp + 0x2c], 0x80
mov dword [rsp + 0x24], eax
je 0x140157204
mov edx, dword [rcx + 0x18]
mov ecx, dword [rcx + 0x1c]
bswap edx
bswap ecx
xor r14d, edx
xor ebx, ecx
mov dword [rsp + 8], r14d
mov dword [rsp + 0x28], ebx
mov edx, dword [r10 + 0x10]
mov eax, dword [rsp + 8]
xor eax, dword [r10 + 0x18]
mov ecx, dword [rsp + 0x24]
xor edx, r9d
mov ebp, eax
xor ecx, dword [r10 + 0x14]
mov r12d, dword [rsp + 0x28]
mov eax, edx
movzx ebx, dh
movzx r15d, dl
shr edx, 0x10
shr eax, 0x18
mov r14, rbx
movzx edx, dl
xor r12d, dword [r10 + 0x1c]
lea rbx, [0x1402b8be0]
movsxd r13, eax
mov eax, ebp
mov r13d, dword [r11 + r13*4]
xor r13d, dword [rbx + r15*4]
movzx r15d, cl
shr eax, 0x18
xor r13d, dword [rsi + rdx*4]
movzx edx, ch
xor r13d, dword [rdi + r14*4]
mov r14, rdx
mov edx, ecx
shr ecx, 0x10
shr edx, 0x18
movzx ecx, cl
mov edx, dword [r11 + rdx*4]
xor edx, dword [rbx + r15*4]
movzx r15d, bpl
xor edx, dword [rsi + rcx*4]
mov ecx, ebp
xor edx, dword [rdi + r14*4]
shr ebp, 0x10
movzx ecx, ch
movzx ebp, bpl
mov r14, rcx
movsxd rcx, eax
mov eax, r12d
mov ecx, dword [r11 + rcx*4]
xor ecx, dword [rbx + r15*4]
mov ebx, r12d
shr eax, 0x18
movzx r15d, r12b
movzx ebx, bh
shr r12d, 0x10
xor ecx, dword [rsi + rbp*4]
movzx r12d, r12b
xor ecx, dword [rdi + r14*4]
movsxd rbp, eax
mov r14, rbx
lea rbx, [0x1402b8be0]
xor edx, ecx
mov ebp, dword [r11 + rbp*4]
xor ebp, dword [rbx + r15*4]
xor ebp, dword [rsi + r12*4]
xor r13d, edx
xor ebp, dword [rdi + r14*4]
mov ebx, dword [rsp + 0x18]
xor ecx, ebp
xor ebp, edx
mov eax, ebp
xor ecx, r13d
shl eax, 8
xor edx, ecx
mov r12d, eax
mov eax, edx
mov r14d, edx
and r12d, 0xff00ff00
shr ebp, 8
bswap eax
shl edx, 8
and ebp, 0xff00ff
shr r14d, 8
or ebp, r12d
mov r12d, eax
mov eax, dword [rsp + 0x14]
rol r13d, 0x10
and r12d, 0xff0000ff
and edx, 0xff0000
and r14d, 0xff00
xor r12d, ecx
xor ecx, ebp
xor ebp, eax
xor edx, r12d
xor edx, r14d
mov r14d, dword [rsp + 0x1c]
xor r13d, edx
xor r14d, edx
xor ebx, r13d
xor edx, ebp
xor ecx, r13d
mov r12d, ebx
mov r15d, r14d
mov ebx, dword [rsp + 0x20]
mov r14d, edx
mov edx, dword [r10 + 0x20]
xor r15d, ecx
xor ecx, ebx
mov dword [rsp + 0x10], r15d
xor edx, r12d
mov dword [rsp + 0xc], ecx
xor ecx, dword [r10 + 0x28]
mov ebp, edx
mov edx, dword [r10 + 0x24]
mov r13d, ecx
mov ecx, dword [r10 + 0x2c]
mov r10d, ebp
mov ebx, ebp
xor edx, r15d
shr r10d, 0x18
movzx r15d, bpl
movzx ebx, bh
shr ebp, 0x10
mov r10d, dword [rdi + r10*4]
xor r10d, dword [rsi + r15*4]
xor ecx, r14d
movzx ebp, bpl
lea r15, [0x1402b8be0]
xor r10d, dword [r15 + rbp*4]
mov ebp, edx
movzx r15d, dl
xor r10d, dword [r11 + rbx*4]
shr ebp, 0x18
movzx ebx, dh
mov ebp, dword [rdi + rbp*4]
xor ebp, dword [rsi + r15*4]
shr edx, 0x10
lea r15, [0x1402b8be0]
movzx edx, dl
xor ebp, dword [r15 + rdx*4]
mov edx, r13d
xor ebp, dword [r11 + rbx*4]
movzx r15d, r13b
movzx ebx, dh
shr r13d, 0x10
shr edx, 0x18
movzx r13d, r13b
mov edx, dword [rdi + rdx*4]
xor edx, dword [rsi + r15*4]
lea r15, [0x1402b8be0]
xor edx, dword [r15 + r13*4]
mov r13d, ecx
xor edx, dword [r11 + rbx*4]
movzx r15d, cl
movzx ebx, ch
shr r13d, 0x18
xor ebp, edx
shr ecx, 0x10
mov edi, dword [rdi + r13*4]
xor edi, dword [rsi + r15*4]
xor r10d, ebp
movzx esi, cl
lea r13, [0x1402b8be0]
mov r15d, dword [rsp + 0x18]
xor edi, dword [r13 + rsi*4]
xor edi, dword [r11 + rbx*4]
mov r11d, ebp
xor edx, edi
xor edi, ebp
mov ebp, dword [rsp + 0x24]
mov r13d, dword [rsp + 0x28]
xor edx, r10d
bswap edi
mov esi, dword [rsp + 0x1c]
xor r11d, edx
rol edx, 0x10
mov ecx, r11d
shr r11d, 8
shl ecx, 8
and r11d, 0xff00ff
mov ebx, ecx
mov ecx, dword [rsp + 8]
and ebx, 0xff00ff00
or ebx, r11d
mov r11d, ebp
xor ebx, edx
xor edx, edi
xor r10d, ebx
xor r11d, ebx
xor edx, r10d
xor r10d, r9d
xor r11d, edx
xor edx, ecx
xor edi, r13d
xor edi, ebx
mov ebx, r13d
shld ebx, r9d, 0xd
xor ebx, r15d
mov dword [r8], ebx
mov ebx, r9d
shld ebx, ebp, 0xd
xor ebx, esi
mov esi, dword [rsp + 0x20]
mov dword [r8 + 4], ebx
mov ebx, ebp
shld ebx, ecx, 0xd
xor ebx, esi
mov dword [r8 + 8], ebx
mov ebx, ecx
mov ecx, r12d
shld ebx, r13d, 0xd
shr ecx, 0x13
xor ebx, eax
mov dword [r8 + 0xc], ebx
mov ebx, r14d
shl ebx, 0xd
xor ebx, r9d
xor ebx, ecx
mov ecx, dword [rsp + 0x10]
mov dword [r8 + 0x10], ebx
mov ebx, r12d
shl ebx, 0xd
shr ecx, 0x13
xor ebx, ebp
xor ebx, ecx
mov ecx, dword [rsp + 0xc]
mov dword [r8 + 0x14], ebx
mov ebx, dword [rsp + 0x10]
mov esi, dword [rsp + 8]
shld ebx, ecx, 0xd
shl ecx, 0xd
xor ebx, esi
mov esi, dword [rsp + 0x10]
mov dword [r8 + 0x18], ebx
mov ebx, r14d
shr ebx, 0x13
xor ebx, r13d
xor ebx, ecx
mov ecx, r10d
mov dword [r8 + 0x1c], ebx
mov ebx, edi
shr ecx, 0x13
shl ebx, 0xd
xor ebx, r12d
xor ebx, ecx
mov ecx, r11d
mov dword [r8 + 0x20], ebx
mov ebx, r10d
shr ecx, 0x13
shl ebx, 0xd
xor ebx, esi
mov esi, dword [rsp + 0x1c]
xor ebx, ecx
mov ecx, dword [rsp + 0xc]
mov dword [r8 + 0x24], ebx
mov ebx, r11d
shld ebx, edx, 0xd
xor ebx, ecx
mov ecx, edx
mov dword [r8 + 0x28], ebx
mov ebx, edi
shl ecx, 0xd
shr ebx, 0x13
xor ebx, r14d
xor ebx, ecx
mov ecx, dword [rsp + 0x20]
mov dword [r8 + 0x2c], ebx
mov ebx, eax
shld ebx, r15d, 0xd
xor ebx, r10d
mov dword [r8 + 0x30], ebx
mov ebx, r15d
shld ebx, esi, 0xd
xor ebx, r11d
mov dword [r8 + 0x34], ebx
mov ebx, esi
shld ebx, ecx, 0xd
xor ebx, edx
mov dword [r8 + 0x38], ebx
mov ebx, ecx
shld ebx, eax, 0xd
mov eax, dword [rsp + 0x14]
xor ebx, edi
mov dword [r8 + 0x3c], ebx
mov ebx, r13d
shld ebx, r9d, 1
xor ebx, r15d
mov r15d, esi
mov dword [r8 + 0x40], ebx
mov ebx, r9d
shld ebx, ebp, 1
xor ebx, esi
mov esi, dword [rsp + 8]
mov dword [r8 + 0x44], ebx
mov ebx, ebp
shld ebx, esi, 1
xor ebx, ecx
mov ecx, r12d
mov dword [r8 + 0x48], ebx
mov ebx, esi
shr ecx, 0x1f
mov esi, dword [rsp + 8]
shld ebx, r13d, 1
xor ebx, eax
mov dword [r8 + 0x4c], ebx
lea ebx, [r14 + r14]
xor ebx, r9d
xor ebx, ecx
mov ecx, dword [rsp + 0x10]
mov dword [r8 + 0x50], ebx
lea ebx, [r12 + r12]
shr ecx, 0x1f
xor ebx, ebp
xor ebx, ecx
mov ecx, dword [rsp + 0xc]
mov dword [r8 + 0x54], ebx
mov ebx, dword [rsp + 0x10]
shld ebx, ecx, 1
xor ebx, esi
lea esi, [rcx + rcx]
mov ecx, r10d
mov dword [r8 + 0x58], ebx
mov ebx, r14d
shr ebx, 0x1f
xor ebx, r13d
shr ecx, 0x1f
xor ebx, esi
mov esi, dword [rsp + 0x10]
mov dword [r8 + 0x5c], ebx
lea ebx, [rdi + rdi]
xor ebx, r12d
xor ebx, ecx
mov ecx, r11d
mov dword [r8 + 0x60], ebx
lea ebx, [r10 + r10]
shr ecx, 0x1f
xor ebx, esi
lea esi, [rdx + rdx]
xor ebx, ecx
mov dword [r8 + 0x64], ebx
mov ecx, dword [rsp + 0xc]
mov ebx, r11d
shld ebx, edx, 1
xor ebx, ecx
mov ecx, dword [rsp + 0x20]
mov dword [r8 + 0x68], ebx
mov ebx, edi
shr ebx, 0x1f
xor ebx, r14d
xor ebx, esi
lea esi, [rax + rax]
mov eax, dword [rsp + 0x18]
mov dword [r8 + 0x6c], ebx
movzx ebx, byte [rsp + 0x3c]
shr bl, 7
movzx ebx, bl
xor ebx, esi
lea esi, [rax + rax]
xor ebx, r10d
mov dword [r8 + 0x70], ebx
movzx ebx, byte [rsp + 0x38]
shr bl, 7
movzx ebx, bl
xor ebx, esi
mov esi, r15d
xor ebx, r11d
add esi, esi
mov dword [r8 + 0x74], ebx
movzx ebx, byte [rsp + 0x34]
shr bl, 7
movzx ebx, bl
xor ebx, esi
lea esi, [rcx + rcx]
xor ebx, edx
mov dword [r8 + 0x78], ebx
movzx ebx, byte [rsp + 0x30]
shr bl, 7
movzx ebx, bl
xor ebx, esi
mov esi, dword [rsp + 8]
xor ebx, edi
mov dword [r8 + 0x7c], ebx
mov ebx, ebp
shld ebx, esi, 0x1d
xor ebx, eax
mov eax, dword [rsp + 0x14]
mov dword [r8 + 0x80], ebx
mov ebx, esi
mov esi, dword [rsp + 8]
shld ebx, r13d, 0x1d
xor ebx, r15d
mov r15d, ecx
mov dword [r8 + 0x84], ebx
mov ebx, r13d
shld ebx, r9d, 0x1d
xor ebx, ecx
mov ecx, dword [rsp + 0xc]
mov dword [r8 + 0x88], ebx
mov ebx, r9d
shld ebx, ebp, 0x1d
xor ebx, eax
mov dword [r8 + 0x8c], ebx
mov ebx, dword [rsp + 0x10]
shld ebx, ecx, 0x1d
shl ecx, 0x1d
xor ebx, r9d
mov dword [r8 + 0x90], ebx
mov ebx, r14d
shr ebx, 3
xor ebx, ebp
xor ebx, ecx
mov ecx, dword [rsp + 0x10]
mov dword [r8 + 0x94], ebx
mov ebx, r14d
shl ebx, 0x1d
xor ebx, esi
mov esi, r12d
shr esi, 3
xor ebx, esi
mov esi, ecx
mov dword [r8 + 0x98], ebx
mov ebx, r12d
shr esi, 3
shl ebx, 0x1d
xor ebx, r13d
xor ebx, esi
mov esi, edx
mov dword [r8 + 0x9c], ebx
mov ebx, r11d
shl esi, 0x1d
shld ebx, edx, 0x1d
xor ebx, r12d
mov dword [r8 + 0xa0], ebx
mov ebx, edi
shr ebx, 3
xor ebx, ecx
mov ecx, dword [rsp + 0xc]
xor ebx, esi
mov esi, r10d
mov dword [r8 + 0xa4], ebx
mov ebx, edi
shr esi, 3
shl ebx, 0x1d
xor ebx, ecx
mov ecx, r15d
xor ebx, esi
mov esi, r11d
mov dword [r8 + 0xa8], ebx
mov ebx, r10d
shr esi, 3
shl ebx, 0x1d
xor ebx, r14d
xor ebx, esi
mov dword [r8 + 0xac], ebx
mov esi, dword [rsp + 0x1c]
mov ebx, esi
shld ebx, r15d, 0x1d
xor ebx, r10d
mov dword [r8 + 0xb0], ebx
mov ebx, r15d
mov r15d, dword [rsp + 0x18]
shld ebx, eax, 0x1d
xor ebx, r11d
mov dword [r8 + 0xb4], ebx
mov ebx, eax
mov eax, dword [rsp + 8]
shld ebx, r15d, 0x1d
xor ebx, edx
mov dword [r8 + 0xb8], ebx
mov ebx, r15d
shld ebx, esi, 0x1d
xor ebx, edi
mov dword [r8 + 0xbc], ebx
mov ebx, r9d
shld ebx, ebp, 0x1f
xor ebx, r15d
mov dword [r8 + 0xc0], ebx
mov ebx, ebp
shld ebx, eax, 0x1f
xor ebx, esi
mov dword [r8 + 0xc4], ebx
mov ebx, eax
mov eax, dword [rsp + 0x14]
shld ebx, r13d, 0x1f
xor ebx, ecx
mov dword [r8 + 0xc8], ebx
mov ebx, r13d
shld ebx, r9d, 0x1f
xor ebx, eax
cmp dword [rsp + 0x98], 0x80
mov dword [r8 + 0xcc], ebx
je 0x140157a41
mov r13d, dword [rsp + 0x10]
mov ebx, r12d
mov r15d, dword [rsp + 0xc]
mov eax, ebp
shl ebx, 0x1f
mov esi, r13d
xor ebx, r9d
mov ecx, r15d
shr esi, 1
shl ecx, 0x1f
xor ebx, esi
mov esi, dword [rsp + 8]
mov dword [r8 + 0xd0], ebx
mov ebx, r13d
shld ebx, r15d, 0x1f
xor ebx, ebp
mov ebp, dword [rsp + 0x28]
mov dword [r8 + 0xd4], ebx
mov ebx, r14d
shr ebx, 1
xor ebx, esi
mov esi, r12d
xor ebx, ecx
shr esi, 1
mov ecx, r15d
mov dword [r8 + 0xd8], ebx
mov ebx, r14d
shl ebx, 0x1f
xor ebx, ebp
xor ebx, esi
mov esi, r11d
mov dword [r8 + 0xdc], ebx
mov ebx, r10d
shr esi, 1
shl ebx, 0x1f
xor ebx, r12d
xor ebx, esi
mov dword [r8 + 0xe0], ebx
mov ebx, r11d
shld ebx, edx, 0x1f
xor ebx, r13d
mov dword [r8 + 0xe4], ebx
mov ebx, edi
shr ebx, 1
xor ecx, ebx
mov ebx, edx
shl ebx, 0x1f
xor ecx, ebx
mov ebx, r10d
mov dword [r8 + 0xe8], ecx
mov ecx, edi
shr ebx, 1
shl ecx, 0x1f
xor ecx, r14d
xor ecx, ebx
cmp dword [rsp + 0x2c], 0x80
mov dword [r8 + 0xec], ecx
je 0x140157a41
mov esi, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x18]
movd xmm3, edx
movd xmm4, dword [rsp + 0x14]
movd xmm5, dword [rsp + 0x1c]
movd xmm0, esi
movd xmm2, ecx
punpckldq xmm0, xmm4
punpckldq xmm2, xmm5
movdqa xmm1, xmm4
punpcklqdq xmm2, xmm0
movd xmm4, ecx
movdqa xmm0, xmm5
movd xmm5, esi
punpckldq xmm1, xmm4
movd xmm4, edi
punpckldq xmm0, xmm5
movd xmm5, r11d
punpckldq xmm3, xmm4
punpcklqdq xmm0, xmm1
movdqa xmm1, xmm2
movd xmm4, r9d
pslld xmm1, 0x1f
psrld xmm0, 1
pxor xmm0, xmm1
movd xmm1, r10d
punpckldq xmm1, xmm5
movd xmm5, dword [rsp + 8]
punpcklqdq xmm1, xmm3
pxor xmm0, xmm1
movd xmm1, ebp
movdqa xmm3, xmm5
movups xmmword [r8 + 0xf0], xmm0
movd xmm0, eax
punpckldq xmm1, xmm4
movd xmm4, ebp
punpckldq xmm0, xmm5
movd xmm5, eax
punpckldq xmm3, xmm4
punpcklqdq xmm0, xmm1
movdqa xmm1, xmm0
movd xmm0, r9d
punpckldq xmm0, xmm5
psrld xmm1, 0xd
punpcklqdq xmm0, xmm3
pslld xmm0, 0x13
pxor xmm0, xmm1
pxor xmm0, xmm2
movups xmmword [r8 + 0x100], xmm0
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 0xfffffffe
jmp 0x140157a43
mov eax, 0xffffffff
jmp 0x140157a43