Function at 0x1800589c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rdi
push r12
sub rsp, 0x50
mov rax, qword [0x180299d70]
mov rdi, r8
mov r12, rdx
mov rbx, rcx
test rax, rax
jne 0x18003c7e3
call fcn.180048ce0
mov rax, qword [0x180299d70]
bt rax, 0x14
jae 0x18003c801
lea rcx, [rbx + 0x40]
mov r8, rdi
mov rdx, r12
add rsp, 0x50
pop r12
pop rdi
pop rbx
jmp 0x180059d40
test rax, rax
jne 0x18003c812
call fcn.180048ce0
mov rax, qword [0x180299d70]
test al, 1
je 0x18003c82d
lea rcx, [rbx + 0x40]
mov r8, rdi
mov rdx, r12
add rsp, 0x50
pop r12
pop rdi
pop rbx
jmp 0x1800589c0
mov rax, qword [rbx + 0x40]
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x30], r15
lea r15, [rbx + 0x58]
mov ecx, dword [rax + 8]
mov edx, dword [rax + 0xc]
mov ebp, dword [rax]
mov esi, dword [rax + 4]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x20], ecx
mov rcx, r15
mov dword [rsp + 0x24], edx
mov edx, 0x50
mov dword [rsp + 0x88], eax
call fcn.180039a60
test rdi, rdi
je 0x18003d5ec
mov r11d, dword [rsp + 0x20]
mov r10d, dword [rsp + 0x24]
mov qword [rsp + 0x40], r13
mov r13d, dword [0x18028f9b0]
mov qword [rsp + 0x38], r14
movups xmm0, xmmword [r12]
mov rdx, qword [r15]
mov r8d, 4
movups xmmword [rdx], xmm0
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [r12 + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [r12 + 0x30]
movups xmmword [rdx + 0x30], xmm1
xor ecx, ecx
cmp r13d, 2
jl 0x18003c8e0
movdqu xmm0, xmmword [rdx]
pshufb xmm0, xmmword [0x1801e78b0]
movdqu xmmword [rdx], xmm0
jmp 0x18003c8f1
mov eax, dword [rdx + rcx*4]
bswap eax
mov dword [rdx + rcx*4], eax
inc rcx
cmp rcx, 4
jl 0x18003c8e0
add rdx, 0x10
sub r8, 1
jne 0x18003c8c1
mov eax, 8
mov r9d, eax
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [r15]
lea rax, [rax + 0x20]
mov ecx, dword [rdx + rax - 0x28]
xor ecx, dword [rdx + rax - 0x20]
xor ecx, dword [rdx + rax - 8]
xor ecx, dword [rdx + rax + 0xc]
rol ecx, 1
mov dword [rdx + rax + 0x18], ecx
mov rdx, qword [r15]
mov ecx, dword [rdx + rax - 4]
xor ecx, dword [rdx + rax + 0x10]
xor ecx, dword [rdx + rax - 0x1c]
xor ecx, dword [rdx + rax - 0x24]
rol ecx, 1
mov dword [rdx + rax + 0x1c], ecx
mov rdx, qword [r15]
mov ecx, dword [rdx + rax + 0x14]
xor ecx, dword [rdx + rax - 0x20]
xor ecx, dword [rdx + rax - 0x18]
xor ecx, dword [rdx + rax]
rol ecx, 1
mov dword [rdx + rax + 0x20], ecx
mov rdx, qword [r15]
mov ecx, dword [rdx + rax + 4]
xor ecx, dword [rdx + rax + 0x18]
xor ecx, dword [rdx + rax - 0x14]
xor ecx, dword [rdx + rax - 0x1c]
rol ecx, 1
mov dword [rdx + rax + 0x24], ecx
mov rdx, qword [r15]
mov ecx, dword [rdx + rax + 8]
xor ecx, dword [rdx + rax + 0x1c]
xor ecx, dword [rdx + rax - 0x10]
xor ecx, dword [rdx + rax - 0x18]
rol ecx, 1
mov dword [rdx + rax + 0x28], ecx
mov rdx, qword [r15]
mov ecx, dword [rdx + rax - 0xc]
xor ecx, dword [rdx + rax + 0x20]
xor ecx, dword [rdx + rax + 0xc]
xor ecx, dword [rdx + rax - 0x14]
rol ecx, 1
mov dword [rdx + rax + 0x2c], ecx
mov rdx, qword [r15]
mov ecx, dword [rdx + rax + 0x10]
xor ecx, dword [rdx + rax + 0x24]
xor ecx, dword [rdx + rax - 8]
xor ecx, dword [rdx + rax - 0x10]
rol ecx, 1
mov dword [rdx + rax + 0x30], ecx
mov rdx, qword [r15]
mov ecx, dword [rdx + rax + 0x14]
xor ecx, dword [rdx + rax + 0x28]
xor ecx, dword [rdx + rax - 4]
xor ecx, dword [rdx + rax - 0xc]
rol ecx, 1
mov dword [rdx + rax + 0x34], ecx
sub r9, 1
jne 0x18003c910
mov r14, qword [r15]
mov eax, r10d
xor eax, r11d
mov edx, ebp
and eax, esi
rol edx, 5
xor eax, r10d
ror esi, 2
add edx, eax
mov eax, dword [rsp + 0x88]
add edx, dword [r14]
add eax, 0x5a827999
add edx, eax
mov eax, r11d
xor eax, esi
mov r8d, edx
and eax, ebp
rol r8d, 5
xor eax, r11d
ror ebp, 2
add eax, 0x5a827999
add r11d, 0x5a827999
add r8d, eax
mov eax, esi
add r8d, dword [r14 + 4]
xor eax, ebp
and eax, edx
add r8d, r10d
xor eax, esi
ror edx, 2
mov r9d, r8d
rol r9d, 5
add r9d, eax
mov eax, edx
add r9d, dword [r14 + 8]
xor eax, ebp
and eax, r8d
add r9d, r11d
xor eax, ebp
ror r8d, 2
add eax, 0x5a827999
mov r10d, r9d
rol r10d, 5
add r10d, eax
mov eax, edx
add r10d, dword [r14 + 0xc]
xor eax, r8d
and eax, r9d
add r10d, esi
xor eax, edx
ror r9d, 2
add eax, 0x5a827999
mov r11d, r10d
rol r11d, 5
add r11d, eax
mov eax, r8d
add r11d, dword [r14 + 0x10]
xor eax, r9d
and eax, r10d
add r11d, ebp
xor eax, r8d
ror r10d, 2
add eax, 0x5a827999
mov ecx, r11d
rol ecx, 5
add ecx, eax
mov eax, r9d
add ecx, dword [r14 + 0x14]
xor eax, r10d
add edx, ecx
and eax, r11d
xor eax, r9d
ror r11d, 2
add eax, 0x5a827999
mov ecx, edx
rol ecx, 5
add ecx, eax
add ecx, dword [r14 + 0x18]
add r8d, ecx
mov ecx, r8d
rol ecx, 5
mov eax, r10d
xor eax, r11d
and eax, edx
ror edx, 2
xor eax, r10d
add eax, 0x5a827999
add ecx, eax
mov eax, edx
add ecx, dword [r14 + 0x1c]
xor eax, r11d
and eax, r8d
add r9d, ecx
xor eax, r11d
ror r8d, 2
add eax, 0x5a827999
mov ecx, r9d
rol ecx, 5
add ecx, eax
mov eax, edx
add ecx, dword [r14 + 0x20]
xor eax, r8d
and eax, r9d
add r10d, ecx
xor eax, edx
ror r9d, 2
add eax, 0x5a827999
add edx, 0x5a827999
mov ecx, r10d
rol ecx, 5
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x24]
xor eax, r9d
and eax, r10d
add r11d, ecx
xor eax, r8d
ror r10d, 2
mov ecx, r11d
rol ecx, 5
add ecx, eax
mov eax, r9d
add ecx, dword [r14 + 0x28]
xor eax, r10d
and eax, r11d
add edx, ecx
xor eax, r9d
ror r11d, 2
add eax, 0x5a827999
mov ebx, edx
rol ebx, 5
add ebx, eax
mov eax, r10d
add ebx, dword [r14 + 0x2c]
xor eax, r11d
and eax, edx
add ebx, r8d
xor eax, r10d
ror edx, 2
add eax, 0x5a827999
mov edi, ebx
rol edi, 5
add edi, eax
mov eax, edx
add edi, dword [r14 + 0x30]
xor eax, r11d
and eax, ebx
add edi, r9d
xor eax, r11d
ror ebx, 2
add eax, 0x5a827999
mov esi, edi
rol esi, 5
add esi, eax
mov eax, edx
add esi, dword [r14 + 0x34]
xor eax, ebx
add esi, r10d
and eax, edi
mov ebp, esi
rol ebp, 5
xor eax, edx
add eax, 0x5a827999
ror edi, 2
add ebp, eax
mov eax, ebx
add ebp, dword [r14 + 0x38]
xor eax, edi
and eax, esi
add ebp, r11d
xor eax, ebx
ror esi, 2
add eax, 0x5a827999
mov r8d, ebp
rol r8d, 5
add r8d, eax
mov eax, edi
add r8d, dword [r14 + 0x3c]
xor eax, esi
and eax, ebp
add r8d, edx
xor eax, edi
ror ebp, 2
add eax, 0x5a827999
mov r9d, r8d
rol r9d, 5
add r9d, eax
mov eax, esi
add r9d, dword [r14 + 0x40]
xor eax, ebp
and eax, r8d
add r9d, ebx
xor eax, esi
ror r8d, 2
add eax, 0x5a827999
mov r10d, r9d
rol r10d, 5
add r10d, eax
mov eax, r8d
add r10d, dword [r14 + 0x44]
xor eax, ebp
and eax, r9d
add r10d, edi
xor eax, ebp
ror r9d, 2
add eax, 0x5a827999
mov r11d, r10d
rol r11d, 5
add r11d, eax
mov eax, r8d
add r11d, dword [r14 + 0x48]
xor eax, r9d
and eax, r10d
add r11d, esi
xor eax, r8d
ror r10d, 2
add eax, 0x5a827999
mov edx, r11d
rol edx, 5
add edx, eax
mov eax, r9d
add edx, dword [r14 + 0x4c]
xor eax, r10d
xor eax, r11d
add edx, ebp
add eax, 0x6ed9eba1
ror r11d, 2
mov ecx, edx
rol ecx, 5
add ecx, eax
mov eax, r10d
add ecx, dword [r14 + 0x50]
xor eax, r11d
add r8d, ecx
xor eax, edx
add eax, 0x6ed9eba1
mov ecx, r8d
rol ecx, 5
add ecx, eax
add ecx, dword [r14 + 0x54]
add r9d, ecx
ror edx, 2
mov ecx, r9d
rol ecx, 5
mov eax, r8d
xor eax, r11d
ror r8d, 2
xor eax, edx
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x58]
xor eax, r9d
add r10d, ecx
ror r9d, 2
xor eax, edx
mov ecx, r10d
rol ecx, 5
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x5c]
xor eax, r9d
add r11d, ecx
xor eax, r10d
add eax, 0x6ed9eba1
ror r10d, 2
mov ecx, r11d
rol ecx, 5
add ecx, eax
mov eax, r9d
add ecx, dword [r14 + 0x60]
xor eax, r10d
add edx, ecx
xor eax, r11d
add eax, 0x6ed9eba1
ror r11d, 2
mov ecx, edx
rol ecx, 5
add ecx, eax
mov eax, r10d
add ecx, dword [r14 + 0x64]
xor eax, r11d
add r8d, ecx
xor eax, edx
add eax, 0x6ed9eba1
ror edx, 2
mov ecx, r8d
rol ecx, 5
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x68]
xor eax, r11d
add r9d, ecx
ror r8d, 2
xor eax, edx
mov ecx, r9d
rol ecx, 5
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x6c]
xor eax, r9d
add r10d, ecx
ror r9d, 2
xor eax, edx
mov ecx, r10d
rol ecx, 5
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x70]
xor eax, r9d
add r11d, ecx
xor eax, r10d
add eax, 0x6ed9eba1
ror r10d, 2
mov ecx, r11d
rol ecx, 5
add ecx, eax
add ecx, dword [r14 + 0x74]
add edx, ecx
mov ecx, edx
rol ecx, 5
mov eax, r9d
xor eax, r10d
xor eax, r11d
ror r11d, 2
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r10d
add ecx, dword [r14 + 0x78]
xor eax, r11d
add r8d, ecx
xor eax, edx
add eax, 0x6ed9eba1
ror edx, 2
mov ecx, r8d
rol ecx, 5
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x7c]
xor eax, r11d
add r9d, ecx
ror r8d, 2
xor eax, edx
mov ecx, r9d
rol ecx, 5
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x80]
xor eax, r9d
add r10d, ecx
ror r9d, 2
xor eax, edx
mov ecx, r10d
rol ecx, 5
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x84]
xor eax, r9d
add r11d, ecx
xor eax, r10d
add eax, 0x6ed9eba1
ror r10d, 2
mov ecx, r11d
rol ecx, 5
add ecx, eax
mov eax, r9d
add ecx, dword [r14 + 0x88]
xor eax, r10d
add edx, ecx
xor eax, r11d
add eax, 0x6ed9eba1
ror r11d, 2
mov ecx, edx
rol ecx, 5
add ecx, eax
mov eax, r10d
add ecx, dword [r14 + 0x8c]
xor eax, r11d
add r8d, ecx
xor eax, edx
add eax, 0x6ed9eba1
ror edx, 2
mov ecx, r8d
rol ecx, 5
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x90]
xor eax, r11d
add r9d, ecx
ror r8d, 2
xor eax, edx
mov ecx, r9d
rol ecx, 5
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x94]
add r10d, ecx
mov ecx, r10d
rol ecx, 5
xor eax, r9d
ror r9d, 2
xor eax, edx
add edx, 0x6ed9eba1
add eax, 0x6ed9eba1
add ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0x98]
xor eax, r9d
add r11d, ecx
xor eax, r10d
ror r10d, 2
mov ebx, r11d
rol ebx, 5
mov ecx, r10d
or ecx, r11d
add ebx, eax
add ebx, dword [r14 + 0x9c]
and ecx, r9d
add ebx, edx
mov eax, r10d
and eax, r11d
mov edx, ebx
or ecx, eax
rol edx, 5
add ecx, dword [r14 + 0xa0]
add ecx, r8d
ror r11d, 2
mov eax, r11d
and eax, ebx
lea r8d, [rdx - 0x70e44324]
add r8d, ecx
mov ecx, r11d
or ecx, ebx
mov edx, r8d
and ecx, r10d
rol edx, 5
or ecx, eax
ror ebx, 2
add ecx, dword [r14 + 0xa4]
mov eax, r8d
add ecx, r9d
and eax, ebx
lea r9d, [rdx - 0x70e44324]
add r9d, ecx
mov ecx, r8d
or ecx, ebx
ror r8d, 2
and ecx, r11d
mov edx, r9d
or ecx, eax
rol edx, 5
add ecx, dword [r14 + 0xa8]
mov eax, r8d
add ecx, r10d
and eax, r9d
lea r10d, [rdx - 0x70e44324]
add r10d, ecx
mov ecx, r8d
or ecx, r9d
mov edx, r10d
and ecx, ebx
rol edx, 5
or ecx, eax
ror r9d, 2
add ecx, dword [r14 + 0xac]
mov eax, r9d
add ecx, r11d
and eax, r10d
lea r11d, [rdx - 0x70e44324]
add r11d, ecx
mov ecx, r9d
or ecx, r10d
mov edx, r11d
and ecx, r8d
rol edx, 5
or ecx, eax
add ecx, dword [r14 + 0xb0]
add ecx, ebx
lea ebx, [rdx - 0x70e44324]
add ebx, ecx
ror r10d, 2
mov edx, ebx
rol edx, 5
mov ecx, r10d
or ecx, r11d
mov eax, r10d
and ecx, r9d
and eax, r11d
or ecx, eax
ror r11d, 2
add ecx, dword [r14 + 0xb4]
mov eax, r11d
add ecx, r8d
and eax, ebx
lea r8d, [rdx - 0x70e44324]
add r8d, ecx
mov ecx, r11d
or ecx, ebx
mov edx, r8d
and ecx, r10d
rol edx, 5
or ecx, eax
ror ebx, 2
add ecx, dword [r14 + 0xb8]
mov eax, r8d
add ecx, r9d
and eax, ebx
lea r9d, [rdx - 0x70e44324]
add r9d, ecx
mov ecx, r8d
or ecx, ebx
ror r8d, 2
and ecx, r11d
mov edx, r9d
or ecx, eax
rol edx, 5
add ecx, dword [r14 + 0xbc]
mov eax, r8d
add ecx, r10d
and eax, r9d
lea r10d, [rdx - 0x70e44324]
add r10d, ecx
mov ecx, r8d
or ecx, r9d
mov edx, r10d
and ecx, ebx
rol edx, 5
or ecx, eax
ror r9d, 2
add ecx, dword [r14 + 0xc0]
mov eax, r9d
add ecx, r11d
and eax, r10d
lea r11d, [rdx - 0x70e44324]
add r11d, ecx
mov ecx, r9d
or ecx, r10d
mov edx, r11d
and ecx, r8d
rol edx, 5
or ecx, eax
ror r10d, 2
add ecx, dword [r14 + 0xc4]
mov eax, r10d
add ecx, ebx
and eax, r11d
lea ebx, [rdx - 0x70e44324]
add ebx, ecx
mov ecx, r10d
or ecx, r11d
mov edx, ebx
and ecx, r9d
rol edx, 5
or ecx, eax
ror r11d, 2
add ecx, dword [r14 + 0xc8]
add ecx, r8d
lea r8d, [rdx - 0x70e44324]
add r8d, ecx
mov edx, r8d
rol edx, 5
mov ecx, r11d
mov eax, r11d
or ecx, ebx
and eax, ebx
and ecx, r10d
ror ebx, 2
or ecx, eax
mov eax, r8d
add ecx, dword [r14 + 0xcc]
and eax, ebx
add ecx, r9d
lea r9d, [rdx - 0x70e44324]
add r9d, ecx
mov ecx, r8d
or ecx, ebx
ror r8d, 2
and ecx, r11d
mov edx, r9d
or ecx, eax
rol edx, 5
add ecx, dword [r14 + 0xd0]
mov eax, r8d
add ecx, r10d
and eax, r9d
lea r10d, [rdx - 0x70e44324]
add r10d, ecx
mov ecx, r8d
or ecx, r9d
mov edx, r10d
and ecx, ebx
ror r9d, 2
or ecx, eax
rol edx, 5
add ecx, dword [r14 + 0xd4]
add ebx, 0x8f1bbcdc
add ecx, r11d
mov eax, r9d
and eax, r10d
lea r11d, [rdx - 0x70e44324]
add r11d, ecx
mov ecx, r9d
or ecx, r10d
mov edi, r11d
and ecx, r8d
ror r10d, 2
or ecx, eax
rol edi, 5
add ecx, dword [r14 + 0xd8]
mov eax, r10d
add ecx, ebx
and eax, r11d
add edi, ecx
mov ecx, r10d
or ecx, r11d
mov ebx, edi
and ecx, r9d
ror r11d, 2
or ecx, eax
rol ebx, 5
add ecx, 0x8f1bbcdc
mov eax, r11d
add ecx, dword [r14 + 0xdc]
and eax, edi
add ecx, r8d
add ebx, ecx
mov ecx, r11d
or ecx, edi
mov edx, ebx
and ecx, r10d
rol edx, 5
or ecx, eax
ror edi, 2
add ecx, dword [r14 + 0xe0]
add ecx, r9d
lea r9d, [rdx - 0x70e44324]
add r9d, ecx
mov ecx, ebx
mov edx, r9d
or ecx, edi
rol edx, 5
and ecx, r11d
mov eax, ebx
ror ebx, 2
and eax, edi
or ecx, eax
mov eax, ebx
add ecx, dword [r14 + 0xe4]
and eax, r9d
add ecx, r10d
lea r10d, [rdx - 0x70e44324]
add r10d, ecx
mov ecx, ebx
or ecx, r9d
mov edx, r10d
and ecx, edi
ror r9d, 2
or ecx, eax
rol edx, 5
add ecx, dword [r14 + 0xe8]
mov eax, r9d
and eax, r10d
add ecx, r11d
lea r11d, [rdx - 0x70e44324]
add r11d, ecx
mov ecx, r9d
or ecx, r10d
mov r8d, r11d
and ecx, ebx
ror r10d, 2
or ecx, eax
rol r8d, 5
add ecx, 0x8f1bbcdc
mov eax, r9d
add ecx, dword [r14 + 0xec]
xor eax, r10d
xor eax, r11d
add ecx, edi
add eax, 0xca62c1d6
ror r11d, 2
add eax, dword [r14 + 0xf0]
add r8d, ecx
add eax, ebx
mov edx, r8d
rol edx, 5
add edx, eax
mov eax, r10d
xor eax, r11d
mov ecx, edx
xor eax, r8d
rol ecx, 5
add eax, dword [r14 + 0xf4]
add eax, r9d
ror r8d, 2
lea r9d, [rcx - 0x359d3e2a]
add r9d, eax
mov eax, edx
xor eax, r11d
ror edx, 2
xor eax, r8d
mov ecx, r9d
add eax, dword [r14 + 0xf8]
add eax, r10d
rol ecx, 5
lea r10d, [rcx - 0x359d3e2a]
add r10d, eax
mov eax, edx
xor eax, r9d
mov ecx, r10d
xor eax, r8d
rol ecx, 5
add eax, dword [r14 + 0xfc]
add eax, r11d
ror r9d, 2
lea r11d, [rcx - 0x359d3e2a]
add r11d, eax
mov eax, edx
xor eax, r9d
mov ecx, r11d
xor eax, r10d
rol ecx, 5
add eax, dword [r14 + 0x100]
add eax, r8d
lea r8d, [rcx - 0x359d3e2a]
ror r10d, 2
add r8d, eax
mov eax, r9d
xor eax, r10d
mov ecx, r8d
xor eax, r11d
rol ecx, 5
add eax, dword [r14 + 0x104]
add eax, edx
ror r11d, 2
lea edx, [rcx - 0x359d3e2a]
add edx, eax
mov eax, r10d
xor eax, r11d
mov ecx, edx
xor eax, r8d
rol ecx, 5
add eax, dword [r14 + 0x108]
add eax, r9d
ror r8d, 2
lea r9d, [rcx - 0x359d3e2a]
add r9d, eax
mov eax, edx
xor eax, r11d
ror edx, 2
xor eax, r8d
mov ecx, r9d
add eax, dword [r14 + 0x10c]
add eax, r10d
rol ecx, 5
lea r10d, [rcx - 0x359d3e2a]
add r10d, eax
mov eax, edx
xor eax, r9d
mov ecx, r10d
xor eax, r8d
rol ecx, 5
add eax, dword [r14 + 0x110]
add eax, r11d
ror r9d, 2
lea r11d, [rcx - 0x359d3e2a]
add r11d, eax
mov eax, edx
xor eax, r9d
mov ecx, r11d
xor eax, r10d
rol ecx, 5
add eax, dword [r14 + 0x114]
add eax, r8d
ror r10d, 2
lea r8d, [rcx - 0x359d3e2a]
add r8d, eax
mov eax, r9d
xor eax, r10d
mov ecx, r8d
xor eax, r11d
rol ecx, 5
add eax, dword [r14 + 0x118]
add eax, edx
ror r11d, 2
lea edx, [rcx - 0x359d3e2a]
add edx, eax
mov eax, r10d
xor eax, r11d
mov ecx, edx
xor eax, r8d
rol ecx, 5
add eax, dword [r14 + 0x11c]
add eax, r9d
ror r8d, 2
lea r9d, [rcx - 0x359d3e2a]
add r9d, eax
mov eax, edx
xor eax, r11d
mov ebx, r9d
xor eax, r8d
rol ebx, 5
add eax, 0xca62c1d6
add eax, dword [r14 + 0x120]
add eax, r10d
add ebx, eax
ror edx, 2
mov ecx, ebx
mov eax, edx
xor eax, r9d
rol ecx, 5
xor eax, r8d
ror r9d, 2
add eax, 0xca62c1d6
add eax, dword [r14 + 0x124]
add r11d, eax
mov eax, edx
xor eax, r9d
add r11d, ecx
xor eax, ebx
mov edi, r11d
add eax, 0xca62c1d6
ror ebx, 2
add eax, dword [r14 + 0x128]
add eax, r8d
rol edi, 5
add edi, eax
mov eax, r9d
xor eax, ebx
add r9d, 0xca62c1d6
xor eax, r11d
mov esi, edi
add eax, 0xca62c1d6
ror r11d, 2
add eax, dword [r14 + 0x12c]
add eax, edx
rol esi, 5
add esi, eax
mov eax, ebx
xor eax, r11d
add ebx, 0xca62c1d6
xor eax, edi
mov r10d, esi
add eax, dword [r14 + 0x130]
add eax, r9d
ror edi, 2
rol r10d, 5
add r10d, eax
mov eax, esi
xor eax, r11d
ror esi, 2
xor eax, edi
mov r9d, r10d
add eax, dword [r14 + 0x134]
add r11d, 0xca62c1d6
add eax, ebx
rol r9d, 5
mov rbx, qword [rsp + 0x70]
add r9d, eax
mov eax, esi
mov r8d, r9d
xor eax, r10d
rol r8d, 5
xor eax, edi
ror r10d, 2
add eax, dword [r14 + 0x138]
mov rdx, qword [rbx + 0x40]
add eax, r11d
add r8d, eax
mov eax, esi
xor eax, r10d
mov ecx, r8d
xor eax, r9d
rol ecx, 5
add eax, dword [r14 + 0x13c]
add ecx, 0xca62c1d6
add ecx, edi
ror r9d, 2
add eax, ecx
add dword [rdx], eax
mov rax, qword [rbx + 0x40]
mov ebp, dword [rdx]
add dword [rax + 4], r8d
mov ecx, dword [rax + 4]
mov rax, qword [rbx + 0x40]
add dword [rax + 8], r9d
mov r11d, dword [rax + 8]
mov rax, qword [rbx + 0x40]
add dword [rax + 0xc], r10d
mov r10d, dword [rax + 0xc]
mov rax, qword [rbx + 0x40]
add dword [rax + 0x10], esi
mov esi, ecx
mov r14d, dword [rax + 0x10]
mov rax, qword [rbx + 0x10]
sub rax, qword [rbx + 8]
add r12, rax
mov dword [rsp + 0x88], r14d
sub qword [rsp + 0x80], 1
jne 0x18003c892
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x78]
mov r15, qword [rsp + 0x30]
add rsp, 0x50
pop r12
pop rdi
pop rbx
ret
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0xa0
mov rax, qword [rcx]
mov rbp, r8
movaps xmmword [rsp], xmm15
mov rsi, rcx
movdqa xmm15, xmmword [0x1801ec0c0]
mov edi, dword [rax]
mov r10d, dword [rax + 4]
mov r9d, dword [rax + 8]
mov ebx, dword [rax + 0xc]
mov r11d, dword [rax + 0x10]
test r8, r8
je 0x180059d1f
mov qword [rsp + 0xb0], r14
lea r14, [rdx + 0x20]
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x70], xmm8
movaps xmmword [rsp + 0x60], xmm9
movaps xmmword [rsp + 0x50], xmm10
movaps xmmword [rsp + 0x40], xmm11
movaps xmmword [rsp + 0x30], xmm12
movaps xmmword [rsp + 0x20], xmm13
movaps xmmword [rsp + 0x10], xmm14
xorps xmm14, xmm14
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [r14 - 0x20]
mov edx, ebx
mov ecx, edi
xor edx, r9d
rol ecx, 5
and edx, r10d
pshufhw xmm1, xmm0, 0xb1
movdqu xmm0, xmmword [r14 - 0x10]
xor edx, ebx
ror r10d, 2
pshuflw xmm2, xmm1, 0xb1
movdqa xmm4, xmm2
pshufhw xmm1, xmm0, 0xb1
movdqu xmm0, xmmword [r14]
psrlw xmm2, 8
psllw xmm4, 8
por xmm4, xmm2
pshuflw xmm2, xmm1, 0xb1
pshufhw xmm1, xmm0, 0xb1
movdqa xmm6, xmm2
movdqu xmm0, xmmword [r14 + 0x10]
psrlw xmm2, 8
movdqa xmm3, xmm4
paddd xmm3, xmm15
psllw xmm6, 8
por xmm6, xmm2
movd eax, xmm3
pshuflw xmm2, xmm1, 0xb1
movdqa xmm5, xmm6
pshufhw xmm1, xmm0, 0xb1
movdqa xmm8, xmm2
add ecx, eax
psrlw xmm2, 8
add edx, ecx
psllw xmm8, 8
add r11d, edx
por xmm8, xmm2
movdqa xmm0, xmm3
pshuflw xmm2, xmm1, 0xb1
psrldq xmm0, 4
mov edx, r9d
xor edx, r10d
movd eax, xmm0
and edx, edi
mov ecx, r11d
xor edx, r9d
rol ecx, 5
add ecx, eax
ror edi, 2
add edx, ecx
movdqa xmm0, xmm3
add ebx, edx
psrldq xmm0, 8
movd eax, xmm0
movdqa xmm11, xmm2
mov edx, r10d
psllw xmm11, 8
xor edx, edi
psrlw xmm2, 8
and edx, r11d
psrldq xmm3, 0xc
xor edx, r10d
ror r11d, 2
mov ecx, ebx
por xmm11, xmm2
rol ecx, 5
movdqa xmm7, xmm8
add ecx, eax
movdqa xmm9, xmm11
add edx, ecx
movd eax, xmm3
add r9d, edx
paddd xmm5, xmm15
mov edx, r11d
mov ecx, r9d
xor edx, edi
rol ecx, 5
and edx, ebx
paddd xmm7, xmm15
xor edx, edi
paddd xmm9, xmm15
add ecx, eax
ror ebx, 2
add edx, ecx
movd eax, xmm5
add r10d, edx
pshufd xmm1, xmm4, 0x4e
punpcklqdq xmm1, xmm6
mov edx, r11d
xor edx, ebx
pxor xmm1, xmm4
and edx, r9d
mov ecx, r10d
xor edx, r11d
rol ecx, 5
add ecx, eax
ror r9d, 2
add edx, ecx
movdqa xmm0, xmm11
add edi, edx
psrldq xmm0, 4
pxor xmm0, xmm8
mov edx, ebx
pxor xmm1, xmm0
xor edx, r9d
and edx, r10d
movdqa xmm13, xmm1
xor edx, ebx
ror r10d, 2
paddd xmm13, xmm1
movdqa xmm2, xmm1
mov ecx, edi
pslldq xmm2, 0xc
rol ecx, 5
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
movdqa xmm1, xmm2
psubd xmm13, xmm0
psrld xmm1, 0x1e
pxor xmm13, xmm1
pslld xmm2, 2
movdqa xmm0, xmm5
pshufd xmm1, xmm6, 0x4e
psrldq xmm0, 4
pxor xmm13, xmm2
movd eax, xmm0
movdqa xmm3, xmm13
movdqa xmm0, xmm5
punpcklqdq xmm1, xmm8
psrldq xmm0, 8
pxor xmm1, xmm6
add ecx, eax
psrldq xmm5, 0xc
add edx, ecx
movd eax, xmm0
add r11d, edx
movdqa xmm0, xmm13
mov edx, r9d
psrldq xmm0, 4
xor edx, r10d
mov ecx, r11d
and edx, edi
rol ecx, 5
xor edx, r9d
ror edi, 2
add ecx, eax
pxor xmm0, xmm11
add edx, ecx
movd eax, xmm5
add ebx, edx
paddd xmm3, xmm15
mov edx, r10d
mov ecx, ebx
xor edx, edi
rol ecx, 5
and edx, r11d
add ecx, eax
xor edx, r10d
pxor xmm1, xmm0
add edx, ecx
add r9d, edx
ror r11d, 2
movdqa xmm12, xmm1
movd eax, xmm7
paddd xmm12, xmm1
movdqa xmm2, xmm1
pslldq xmm2, 0xc
mov edx, r11d
xor edx, edi
mov ecx, r9d
and edx, ebx
rol ecx, 5
xor edx, edi
ror ebx, 2
add ecx, eax
movdqa xmm0, xmm14
add edx, ecx
pcmpgtd xmm0, xmm1
add r10d, edx
psubd xmm12, xmm0
movdqa xmm1, xmm2
movdqa xmm0, xmm7
psrldq xmm0, 4
mov edx, r11d
xor edx, ebx
movd eax, xmm0
and edx, r9d
psrld xmm1, 0x1e
xor edx, r11d
ror r9d, 2
pxor xmm12, xmm1
pslld xmm2, 2
pxor xmm12, xmm2
pshufd xmm1, xmm8, 0x4e
punpcklqdq xmm1, xmm11
mov ecx, r10d
rol ecx, 5
pxor xmm1, xmm8
add ecx, eax
movdqa xmm0, xmm7
add edx, ecx
psrldq xmm0, 8
add edi, edx
movd eax, xmm0
mov edx, ebx
psrldq xmm7, 0xc
xor edx, r9d
mov ecx, edi
and edx, r10d
rol ecx, 5
xor edx, ebx
ror r10d, 2
add ecx, eax
movdqa xmm0, xmm12
add edx, ecx
psrldq xmm0, 4
add r11d, edx
movd eax, xmm7
pxor xmm0, xmm13
mov edx, r9d
pxor xmm1, xmm0
xor edx, r10d
and edx, edi
movdqa xmm2, xmm1
movdqa xmm10, xmm1
pslldq xmm2, 0xc
paddd xmm10, xmm1
xor edx, r9d
mov ecx, r11d
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
rol ecx, 5
add ecx, eax
movdqa xmm1, xmm2
add edx, ecx
psrld xmm1, 0x1e
add ebx, edx
pslld xmm2, 2
movdqa xmm4, xmm12
ror edi, 2
paddd xmm4, xmmword [0x1801ec0d0]
psubd xmm10, xmm0
pxor xmm10, xmm1
movdqa xmm8, xmmword [0x1801ec0d0]
movdqa xmm0, xmm9
movd eax, xmm9
pxor xmm10, xmm2
psrldq xmm0, 4
mov edx, r10d
xor edx, edi
pshufd xmm1, xmm11, 0x4e
and edx, r11d
punpcklqdq xmm1, xmm13
xor edx, r10d
ror r11d, 2
pxor xmm1, xmm11
mov ecx, ebx
rol ecx, 5
movdqa xmm6, xmm10
add ecx, eax
paddd xmm6, xmm8
add edx, ecx
movd eax, xmm0
add r9d, edx
movdqa xmm0, xmm9
psrldq xmm0, 8
mov edx, r11d
xor edx, edi
psrldq xmm9, 0xc
and edx, ebx
mov ecx, r9d
xor edx, edi
rol ecx, 5
add ecx, eax
ror ebx, 2
add edx, ecx
movd eax, xmm0
add r10d, edx
movdqa xmm0, xmm10
psrldq xmm0, 4
mov edx, r11d
xor edx, ebx
pxor xmm0, xmm12
and edx, r9d
pxor xmm1, xmm0
xor edx, r11d
ror r9d, 2
movdqa xmm2, xmm1
mov ecx, r10d
rol ecx, 5
movdqa xmm0, xmm14
add ecx, eax
pslldq xmm2, 0xc
add edx, ecx
movd eax, xmm9
add edi, edx
movdqa xmm9, xmm1
paddd xmm9, xmm1
pcmpgtd xmm0, xmm1
movdqa xmm1, xmm2
psubd xmm9, xmm0
mov edx, ebx
psrld xmm1, 0x1e
xor edx, r9d
pslld xmm2, 2
and edx, r10d
mov ecx, edi
xor edx, ebx
rol ecx, 5
add ecx, eax
ror r10d, 2
add edx, ecx
movd eax, xmm3
add r11d, edx
pxor xmm9, xmm1
mov edx, r9d
pxor xmm9, xmm2
xor edx, r10d
mov ecx, r11d
and edx, edi
rol ecx, 5
movdqa xmm5, xmm9
xor edx, r9d
paddd xmm5, xmm8
add ecx, eax
ror edi, 2
add edx, ecx
pshufd xmm1, xmm13, 0x4e
add ebx, edx
punpcklqdq xmm1, xmm12
movdqa xmm0, xmm3
mov edx, r10d
xor edx, edi
psrldq xmm0, 4
and edx, r11d
movd eax, xmm0
xor edx, r10d
ror r11d, 2
movdqa xmm0, xmm3
pxor xmm1, xmm13
psrldq xmm0, 8
mov ecx, ebx
rol ecx, 5
add ecx, eax
psrldq xmm3, 0xc
add edx, ecx
movd eax, xmm0
add r9d, edx
movdqa xmm0, xmm9
psrldq xmm0, 4
mov edx, r11d
xor edx, edi
pxor xmm0, xmm10
and edx, ebx
pxor xmm1, xmm0
xor edx, edi
ror ebx, 2
movdqa xmm2, xmm1
movdqa xmm7, xmm1
paddd xmm7, xmm1
pslldq xmm2, 0xc
mov ecx, r9d
movdqa xmm0, xmm14
rol ecx, 5
pcmpgtd xmm0, xmm1
add ecx, eax
psubd xmm7, xmm0
add edx, ecx
movd eax, xmm3
add r10d, edx
movdqa xmm1, xmm2
mov edx, r11d
psrld xmm1, 0x1e
xor edx, ebx
pslld xmm2, 2
and edx, r9d
mov ecx, r10d
xor edx, r11d
rol ecx, 5
add ecx, eax
ror r9d, 2
add edx, ecx
movd eax, xmm4
add edi, edx
pxor xmm7, xmm1
mov ecx, edi
mov edx, ebx
xor edx, r9d
rol ecx, 5
add ecx, eax
xor edx, r10d
add edx, ecx
ror r10d, 2
add r11d, edx
pxor xmm7, xmm2
mov ecx, r11d
mov edx, r9d
movdqa xmm0, xmm4
rol ecx, 5
movdqa xmm3, xmm7
psrldq xmm0, 4
xor edx, r10d
movd eax, xmm0
xor edx, edi
paddd xmm3, xmm8
add ecx, eax
ror edi, 2
add edx, ecx
pshufd xmm1, xmm12, 0x4e
add ebx, edx
punpcklqdq xmm1, xmm10
movdqa xmm0, xmm4
mov ecx, ebx
rol ecx, 5
mov edx, r11d
xor edx, r10d
psrldq xmm0, 8
xor edx, edi
movd eax, xmm0
ror r11d, 2
pxor xmm1, xmm12
psrldq xmm4, 0xc
movdqa xmm0, xmm7
add ecx, eax
psrldq xmm0, 4
add edx, ecx
movd eax, xmm4
add r9d, edx
pxor xmm0, xmm9
pxor xmm1, xmm0
mov ecx, r9d
rol ecx, 5
movdqa xmm8, xmm1
add ecx, eax
paddd xmm8, xmm1
movdqa xmm2, xmm1
movd eax, xmm6
mov edx, r11d
pslldq xmm2, 0xc
xor edx, ebx
movdqa xmm0, xmm14
xor edx, edi
ror ebx, 2
add edx, ecx
pcmpgtd xmm0, xmm1
add r10d, edx
psubd xmm8, xmm0
mov ecx, r10d
mov edx, r11d
xor edx, ebx
rol ecx, 5
xor edx, r9d
add ecx, eax
add edx, ecx
ror r9d, 2
add edi, edx
movdqa xmm1, xmm2
mov edx, ebx
psrld xmm1, 0x1e
xor edx, r9d
pslld xmm2, 2
xor edx, r10d
movdqa xmm0, xmm6
psrldq xmm0, 4
mov ecx, edi
rol ecx, 5
pxor xmm8, xmm1
movd eax, xmm0
pxor xmm8, xmm2
ror r10d, 2
movdqa xmm0, xmm6
psrldq xmm0, 8
movdqa xmm4, xmm8
paddd xmm4, xmmword [0x1801ec0d0]
add ecx, eax
add edx, ecx
movd eax, xmm0
add r11d, edx
mov edx, r9d
xor edx, r10d
mov ecx, r11d
rol ecx, 5
xor edx, edi
add ecx, eax
add edx, ecx
add ebx, edx
movdqa xmm11, xmmword [0x1801ec0e0]
mov ecx, ebx
rol ecx, 5
mov edx, r11d
xor edx, r10d
pshufd xmm1, xmm10, 0x4e
punpcklqdq xmm1, xmm9
movdqa xmm0, xmm8
pxor xmm1, xmm10
psrldq xmm0, 4
pxor xmm0, xmm7
ror edi, 2
xor edx, edi
ror r11d, 2
pxor xmm1, xmm0
psrldq xmm6, 0xc
movdqa xmm10, xmm1
movd eax, xmm6
paddd xmm10, xmm1
movdqa xmm2, xmm1
pslldq xmm2, 0xc
movdqa xmm0, xmm14
add ecx, eax
pcmpgtd xmm0, xmm1
add edx, ecx
movd eax, xmm5
add r9d, edx
psubd xmm10, xmm0
mov ecx, r9d
mov edx, r11d
xor edx, ebx
rol ecx, 5
xor edx, edi
ror ebx, 2
add ecx, eax
movdqa xmm0, xmm5
add edx, ecx
psrldq xmm0, 4
add r10d, edx
movd eax, xmm0
mov ecx, r10d
mov edx, r11d
xor edx, ebx
rol ecx, 5
xor edx, r9d
add ecx, eax
add edx, ecx
ror r9d, 2
add edi, edx
movdqa xmm0, xmm5
mov ecx, edi
psrldq xmm0, 8
rol ecx, 5
mov edx, ebx
xor edx, r9d
movd eax, xmm0
xor edx, r10d
psrldq xmm5, 0xc
movdqa xmm1, xmm2
ror r10d, 2
add ecx, eax
psrld xmm1, 0x1e
add edx, ecx
movd eax, xmm5
add r11d, edx
pslld xmm2, 2
pxor xmm10, xmm1
mov ecx, r11d
rol ecx, 5
mov edx, r9d
xor edx, r10d
pshufd xmm1, xmm9, 0x4e
add ecx, eax
punpcklqdq xmm1, xmm7
xor edx, edi
pxor xmm10, xmm2
add edx, ecx
movdqa xmm6, xmm10
add ebx, edx
paddd xmm6, xmm11
ror edi, 2
pxor xmm1, xmm9
movd eax, xmm3
mov edx, r11d
mov ecx, ebx
xor edx, r10d
rol ecx, 5
xor edx, edi
ror r11d, 2
add ecx, eax
movdqa xmm0, xmm10
add edx, ecx
psrldq xmm0, 4
add r9d, edx
pxor xmm0, xmm8
pxor xmm1, xmm0
mov ecx, r9d
movdqa xmm9, xmm1
rol ecx, 5
paddd xmm9, xmm1
movdqa xmm2, xmm1
pslldq xmm2, 0xc
mov edx, r11d
xor edx, ebx
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
ror ebx, 2
psubd xmm9, xmm0
xor edx, edi
movdqa xmm1, xmm2
movdqa xmm0, xmm3
psrldq xmm0, 4
movd eax, xmm0
movdqa xmm0, xmm3
psrld xmm1, 0x1e
pxor xmm9, xmm1
psrldq xmm0, 8
add ecx, eax
pshufd xmm1, xmm7, 0x4e
add edx, ecx
movd eax, xmm0
add r10d, edx
punpcklqdq xmm1, xmm8
pxor xmm1, xmm7
pslld xmm2, 2
pxor xmm9, xmm2
psrldq xmm3, 0xc
mov ecx, r10d
mov edx, r11d
xor edx, ebx
rol ecx, 5
xor edx, r9d
add ecx, eax
add edx, ecx
ror r9d, 2
add edi, edx
movd eax, xmm3
movdqa xmm0, xmm9
mov ecx, edi
psrldq xmm0, 4
mov edx, ebx
pxor xmm0, xmm10
rol ecx, 5
pxor xmm1, xmm0
xor edx, r9d
movdqa xmm2, xmm1
movdqa xmm7, xmm1
paddd xmm7, xmm1
pslldq xmm2, 0xc
add ecx, eax
xor edx, r10d
add edx, ecx
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
add r11d, edx
movdqa xmm1, xmm2
ror r10d, 2
movdqa xmm5, xmm9
psrld xmm1, 0x1e
psubd xmm7, xmm0
paddd xmm5, xmm11
pxor xmm7, xmm1
movd eax, xmm4
movdqa xmm0, xmm4
psrldq xmm0, 4
mov edx, r9d
xor edx, r10d
pslld xmm2, 2
xor edx, edi
pshufd xmm1, xmm8, 0x4e
pxor xmm7, xmm2
ror edi, 2
punpcklqdq xmm1, xmm10
mov ecx, r11d
rol ecx, 5
pxor xmm1, xmm8
add ecx, eax
movdqa xmm3, xmm7
add edx, ecx
movd eax, xmm0
add ebx, edx
movdqa xmm0, xmm4
psrldq xmm0, 8
mov ecx, ebx
rol ecx, 5
mov edx, r11d
xor edx, r10d
ror r11d, 2
add ecx, eax
psrldq xmm4, 0xc
xor edx, edi
movd eax, xmm0
add edx, ecx
movdqa xmm0, xmm7
add r9d, edx
psrldq xmm0, 4
pxor xmm0, xmm9
mov ecx, r9d
rol ecx, 5
pxor xmm1, xmm0
add ecx, eax
movdqa xmm2, xmm1
movd eax, xmm4
movdqa xmm12, xmm1
paddd xmm12, xmm1
pslldq xmm2, 0xc
mov edx, r11d
movdqa xmm0, xmm14
xor edx, ebx
pcmpgtd xmm0, xmm1
xor edx, edi
ror ebx, 2
add edx, ecx
movdqa xmm1, xmm2
add r10d, edx
psrld xmm1, 0x1e
psubd xmm12, xmm0
pslld xmm2, 2
mov ecx, r10d
mov edx, r11d
xor edx, ebx
rol ecx, 5
add ecx, eax
xor edx, r9d
add edx, ecx
ror r9d, 2
add edi, edx
mov eax, r9d
and eax, r10d
mov edx, r9d
or edx, r10d
pxor xmm12, xmm1
and edx, ebx
mov ecx, edi
or edx, eax
rol ecx, 5
movd eax, xmm6
pxor xmm12, xmm2
movdqa xmm4, xmm12
paddd xmm3, xmm11
paddd xmm4, xmm11
add ecx, eax
add edx, ecx
add r11d, edx
ror r10d, 2
mov edx, r10d
pshufd xmm1, xmm10, 0x4e
or edx, edi
punpcklqdq xmm1, xmm9
and edx, r9d
pxor xmm1, xmm10
mov eax, r10d
movdqa xmm0, xmm6
and eax, edi
psrldq xmm0, 4
or edx, eax
ror edi, 2
movd eax, xmm0
mov ecx, r11d
rol ecx, 5
movdqa xmm0, xmm6
psrldq xmm0, 8
add ecx, eax
psrldq xmm6, 0xc
add edx, ecx
mov eax, r11d
add ebx, edx
and eax, edi
mov edx, r11d
mov ecx, ebx
or edx, edi
rol ecx, 5
and edx, r10d
ror r11d, 2
or edx, eax
movd eax, xmm0
movdqa xmm0, xmm12
psrldq xmm0, 4
add ecx, eax
pxor xmm0, xmm7
add edx, ecx
pxor xmm1, xmm0
add r9d, edx
movdqa xmm2, xmm1
movdqa xmm13, xmm1
pslldq xmm2, 0xc
paddd xmm13, xmm1
mov ecx, r9d
rol ecx, 5
mov edx, r11d
or edx, ebx
mov eax, r11d
and edx, edi
and eax, ebx
or edx, eax
ror ebx, 2
movd eax, xmm6
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
movdqa xmm1, xmm2
psubd xmm13, xmm0
psrld xmm1, 0x1e
add ecx, eax
pslld xmm2, 2
add edx, ecx
mov eax, ebx
add r10d, edx
and eax, r9d
mov edx, ebx
mov ecx, r10d
or edx, r9d
rol ecx, 5
and edx, r11d
pxor xmm13, xmm1
or edx, eax
pxor xmm13, xmm2
movd eax, xmm5
movdqa xmm10, xmm13
paddd xmm10, xmm11
add ecx, eax
add edx, ecx
add edi, edx
ror r9d, 2
mov ecx, edi
rol ecx, 5
movdqa xmm0, xmm5
psrldq xmm0, 4
mov edx, r9d
or edx, r10d
pshufd xmm1, xmm9, 0x4e
and edx, ebx
punpcklqdq xmm1, xmm7
pxor xmm1, xmm9
mov eax, r9d
and eax, r10d
ror r10d, 2
or edx, eax
movd eax, xmm0
movdqa xmm0, xmm5
psrldq xmm5, 0xc
psrldq xmm0, 8
add ecx, eax
mov eax, r10d
add edx, ecx
and eax, edi
add r11d, edx
mov edx, r10d
or edx, edi
mov ecx, r11d
and edx, r9d
rol ecx, 5
or edx, eax
ror edi, 2
movd eax, xmm0
movdqa xmm0, xmm13
psrldq xmm0, 4
pxor xmm0, xmm12
add ecx, eax
pxor xmm1, xmm0
add edx, ecx
movdqa xmm2, xmm1
add ebx, edx
pslldq xmm2, 0xc
movdqa xmm11, xmm1
mov edx, r11d
or edx, edi
paddd xmm11, xmm1
and edx, r10d
mov eax, r11d
and eax, edi
ror r11d, 2
or edx, eax
mov ecx, ebx
rol ecx, 5
movdqa xmm0, xmm14
movd eax, xmm5
pcmpgtd xmm0, xmm1
movdqa xmm5, xmmword [0x1801ec0f0]
movdqa xmm1, xmm2
psubd xmm11, xmm0
psrld xmm1, 0x1e
add ecx, eax
pslld xmm2, 2
add edx, ecx
mov eax, r11d
add r9d, edx
and eax, ebx
mov edx, r11d
mov ecx, r9d
or edx, ebx
rol ecx, 5
and edx, edi
ror ebx, 2
or edx, eax
pxor xmm11, xmm1
movd eax, xmm3
pxor xmm11, xmm2
movdqa xmm9, xmm11
paddd xmm9, xmm5
add ecx, eax
add edx, ecx
add r10d, edx
mov edx, ebx
mov ecx, r10d
rol ecx, 5
or edx, r9d
pshufd xmm1, xmm7, 0x4e
and edx, r11d
punpcklqdq xmm1, xmm12
mov eax, ebx
movdqa xmm0, xmm3
and eax, r9d
psrldq xmm0, 4
or edx, eax
ror r9d, 2
movd eax, xmm0
pxor xmm1, xmm7
movdqa xmm0, xmm3
psrldq xmm3, 0xc
psrldq xmm0, 8
add ecx, eax
mov eax, r9d
add edx, ecx
and eax, r10d
add edi, edx
mov edx, r9d
or edx, r10d
mov ecx, edi
and edx, ebx
rol ecx, 5
or edx, eax
ror r10d, 2
movd eax, xmm0
movdqa xmm0, xmm11
psrldq xmm0, 4
pxor xmm0, xmm13
add ecx, eax
pxor xmm1, xmm0
add edx, ecx
movdqa xmm2, xmm1
add r11d, edx
pslldq xmm2, 0xc
movdqa xmm6, xmm1
mov ecx, r11d
rol ecx, 5
paddd xmm6, xmm1
mov edx, r10d
mov eax, r10d
or edx, edi
and eax, edi
and edx, r9d
ror edi, 2
or edx, eax
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
movd eax, xmm3
movdqa xmm1, xmm2
psubd xmm6, xmm0
psrld xmm1, 0x1e
add ecx, eax
pslld xmm2, 2
add edx, ecx
mov eax, r11d
add ebx, edx
and eax, edi
mov edx, r11d
mov ecx, ebx
or edx, edi
rol ecx, 5
and edx, r10d
ror r11d, 2
or edx, eax
pxor xmm6, xmm1
movd eax, xmm4
pxor xmm6, xmm2
movdqa xmm8, xmm6
paddd xmm8, xmm5
add ecx, eax
mov eax, r11d
add edx, ecx
add r9d, edx
mov edx, r11d
mov ecx, r9d
or edx, ebx
rol ecx, 5
and edx, edi
and eax, ebx
pshufd xmm1, xmm12, 0x4e
or edx, eax
ror ebx, 2
movdqa xmm0, xmm4
punpcklqdq xmm1, xmm13
psrldq xmm0, 4
pxor xmm1, xmm12
movd eax, xmm0
movdqa xmm0, xmm4
psrldq xmm0, 8
psrldq xmm4, 0xc
add ecx, eax
mov eax, ebx
add edx, ecx
and eax, r9d
add r10d, edx
mov edx, ebx
or edx, r9d
mov ecx, r10d
and edx, r11d
rol ecx, 5
or edx, eax
ror r9d, 2
movd eax, xmm0
movdqa xmm0, xmm6
psrldq xmm0, 4
pxor xmm0, xmm11
add ecx, eax
pxor xmm1, xmm0
add edx, ecx
movdqa xmm2, xmm1
add edi, edx
pslldq xmm2, 0xc
mov ecx, edi
mov edx, r9d
or edx, r10d
rol ecx, 5
and edx, ebx
mov eax, r9d
and eax, r10d
movdqa xmm0, xmm14
or edx, eax
ror r10d, 2
movd eax, xmm4
pcmpgtd xmm0, xmm1
movdqa xmm4, xmm1
paddd xmm4, xmm1
movdqa xmm1, xmm2
add ecx, eax
psrld xmm1, 0x1e
add edx, ecx
pslld xmm2, 2
add r11d, edx
psubd xmm4, xmm0
mov edx, r10d
mov eax, r10d
or edx, edi
and eax, edi
and edx, r9d
ror edi, 2
or edx, eax
mov ecx, r11d
rol ecx, 5
pxor xmm4, xmm1
movd eax, xmm10
pxor xmm4, xmm2
movdqa xmm7, xmm4
movdqa xmm0, xmm10
paddd xmm7, xmm5
add ecx, eax
mov eax, r11d
add edx, ecx
and eax, edi
add ebx, edx
mov edx, r11d
or edx, edi
mov ecx, ebx
and edx, r10d
rol ecx, 5
or edx, eax
psrldq xmm0, 4
movd eax, xmm0
movdqa xmm0, xmm10
psrldq xmm0, 8
ror r11d, 2
add ecx, eax
psrldq xmm10, 0xc
add edx, ecx
pshufd xmm1, xmm13, 0x4e
add r9d, edx
punpcklqdq xmm1, xmm11
pxor xmm1, xmm13
mov edx, r11d
or edx, ebx
mov eax, r11d
and edx, edi
and eax, ebx
or edx, eax
ror ebx, 2
movd eax, xmm0
mov ecx, r9d
rol ecx, 5
movdqa xmm0, xmm4
psrldq xmm0, 4
add ecx, eax
pxor xmm0, xmm6
add edx, ecx
pxor xmm1, xmm0
add r10d, edx
movdqa xmm3, xmm1
paddd xmm3, xmm1
movdqa xmm2, xmm1
mov edx, ebx
pslldq xmm2, 0xc
or edx, r9d
mov eax, ebx
and edx, r11d
and eax, r9d
or edx, eax
ror r9d, 2
movd eax, xmm10
mov ecx, r10d
rol ecx, 5
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
movdqa xmm1, xmm2
add ecx, eax
psrld xmm1, 0x1e
add edx, ecx
movd eax, xmm9
add edi, edx
pslld xmm2, 2
psubd xmm3, xmm0
mov ecx, edi
rol ecx, 5
mov edx, ebx
xor edx, r9d
add ecx, eax
xor edx, r10d
movdqa xmm0, xmm9
add edx, ecx
ror r10d, 2
add r11d, edx
psrldq xmm0, 4
mov ecx, r11d
movd eax, xmm0
rol ecx, 5
mov edx, r9d
xor edx, r10d
pxor xmm3, xmm1
xor edx, edi
add ecx, eax
add edx, ecx
ror edi, 2
add ebx, edx
pxor xmm3, xmm2
mov ecx, ebx
movdqa xmm5, xmm3
paddd xmm5, xmmword [0x1801ec0f0]
mov edx, r11d
rol ecx, 5
xor edx, r10d
psrldq xmm3, 4
xor edx, edi
ror r11d, 2
pxor xmm3, xmm4
pshufd xmm1, xmm11, 0x4e
punpcklqdq xmm1, xmm6
movdqa xmm0, xmm9
psrldq xmm0, 8
pxor xmm1, xmm11
pxor xmm1, xmm3
movd eax, xmm0
movdqa xmm3, xmm1
psrldq xmm9, 0xc
paddd xmm3, xmm1
movdqa xmm2, xmm1
add ecx, eax
pslldq xmm2, 0xc
add edx, ecx
movd eax, xmm9
add r9d, edx
movdqa xmm0, xmm14
pcmpgtd xmm0, xmm1
mov ecx, r9d
rol ecx, 5
psubd xmm3, xmm0
add ecx, eax
mov edx, r11d
xor edx, ebx
movd eax, xmm8
xor edx, edi
ror ebx, 2
add edx, ecx
movdqa xmm0, xmm8
add r10d, edx
psrldq xmm0, 4
mov ecx, r10d
mov edx, r11d
xor edx, ebx
rol ecx, 5
xor edx, r9d
add ecx, eax
add edx, ecx
movd eax, xmm0
add edi, edx
ror r9d, 2
mov ecx, edi
mov edx, ebx
xor edx, r9d
rol ecx, 5
xor edx, r10d
add ecx, eax
add edx, ecx
ror r10d, 2
add r11d, edx
movdqa xmm0, xmm8
movdqa xmm1, xmm2
psrldq xmm0, 8
movd eax, xmm0
mov ecx, r11d
rol ecx, 5
mov edx, r9d
xor edx, r10d
psrld xmm1, 0x1e
xor edx, edi
psrldq xmm8, 0xc
add ecx, eax
ror edi, 2
add edx, ecx
pslld xmm2, 2
add ebx, edx
movd eax, xmm8
pxor xmm3, xmm1
mov edx, r11d
xor edx, r10d
mov ecx, ebx
xor edx, edi
rol ecx, 5
pxor xmm3, xmm2
add ecx, eax
paddd xmm3, xmmword [0x1801ec0f0]
add edx, ecx
ror r11d, 2
add r9d, edx
movd eax, xmm7
mov ecx, r9d
mov edx, r11d
xor edx, ebx
rol ecx, 5
xor edx, edi
ror ebx, 2
add ecx, eax
movdqa xmm0, xmm7
add edx, ecx
psrldq xmm0, 4
add r10d, edx
movd eax, xmm0
mov ecx, r10d
mov edx, r11d
xor edx, ebx
rol ecx, 5
xor edx, r9d
add ecx, eax
add edx, ecx
ror r9d, 2
add edi, edx
movdqa xmm0, xmm7
psrldq xmm0, 8
mov ecx, edi
rol ecx, 5
mov edx, ebx
xor edx, r9d
movd eax, xmm0
xor edx, r10d
psrldq xmm7, 0xc
ror r10d, 2
movdqa xmm0, xmm5
add ecx, eax
psrldq xmm0, 4
add edx, ecx
movd eax, xmm7
add r11d, edx
mov edx, r9d
xor edx, r10d
mov ecx, r11d
xor edx, edi
rol ecx, 5
add ecx, eax
ror edi, 2
add edx, ecx
movd eax, xmm5
add ebx, edx
mov edx, r11d
xor edx, r10d
ror r11d, 2
xor edx, edi
mov ecx, ebx
rol ecx, 5
add ecx, eax
movd eax, xmm0
add edx, ecx
movdqa xmm0, xmm5
add r9d, edx
psrldq xmm0, 8
mov ecx, r9d
mov edx, r11d
xor edx, ebx
rol ecx, 5
add ecx, eax
ror ebx, 2
xor edx, edi
movd eax, xmm0
add edx, ecx
add r10d, edx
mov edx, r11d
xor edx, ebx
mov ecx, r10d
rol ecx, 5
xor edx, r9d
add ecx, eax
add edx, ecx
add edi, edx
mov r8, qword [rsi]
lea r14, [r14 + 0x40]
ror r9d, 2
mov edx, ebx
xor edx, r9d
psrldq xmm5, 0xc
xor edx, r10d
movd eax, xmm5
ror r10d, 2
mov ecx, edi
rol ecx, 5
movdqa xmm0, xmm3
add ecx, eax
psrldq xmm0, 4
add edx, ecx
movd eax, xmm3
add r11d, edx
mov edx, r9d
xor edx, r10d
mov ecx, r11d
xor edx, edi
rol ecx, 5
add ecx, eax
ror edi, 2
add edx, ecx
movd eax, xmm0
add ebx, edx
movdqa xmm0, xmm3
mov ecx, ebx
psrldq xmm0, 8
rol ecx, 5
mov edx, r11d
xor edx, r10d
ror r11d, 2
add ecx, eax
psrldq xmm3, 0xc
xor edx, edi
movd eax, xmm0
add edx, ecx
add r9d, edx
mov edx, r11d
xor edx, ebx
mov ecx, r9d
xor edx, edi
rol ecx, 5
add ecx, eax
ror ebx, 2
add edx, ecx
movd eax, xmm3
add r10d, edx
mov edx, r11d
xor edx, ebx
mov ecx, r10d
xor edx, r9d
rol ecx, 5
add ecx, eax
ror r9d, 2
add edx, ecx
add edx, edi
add dword [r8], edx
mov rax, qword [rsi]
mov edi, dword [r8]
add dword [rax + 4], r10d
mov r10d, dword [rax + 4]
mov rax, qword [rsi]
add dword [rax + 8], r9d
mov r9d, dword [rax + 8]
mov rax, qword [rsi]
add dword [rax + 0xc], ebx
mov ebx, dword [rax + 0xc]
mov rax, qword [rsi]
add dword [rax + 0x10], r11d
mov r11d, dword [rax + 0x10]
sub rbp, 1
jne 0x180058a60
movaps xmm14, xmmword [rsp + 0x10]
movaps xmm13, xmmword [rsp + 0x20]
movaps xmm12, xmmword [rsp + 0x30]
movaps xmm11, xmmword [rsp + 0x40]
movaps xmm10, xmmword [rsp + 0x50]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov r14, qword [rsp + 0xb0]
movaps xmm15, xmmword [rsp]
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
sub rsp, 0x68
mov rax, qword [rcx]
xorps xmm4, xmm4
xor ecx, ecx
movaps xmmword [rsp + 0x10], xmm10
movaps xmmword [rsp], xmm11
movdqa xmm11, xmmword [0x1801ec100]
movd xmm0, dword [rax + 0x10]
movd xmm1, ecx
punpckldq xmm1, xmm0
punpckldq xmm4, xmm1
movdqu xmm0, xmmword [rax]
pshufd xmm10, xmm0, 0x1b
test r8, r8
je 0x18005a013
movaps xmmword [rsp + 0x50], xmm6
add rdx, 0x20
movaps xmmword [rsp + 0x40], xmm7
movaps xmmword [rsp + 0x30], xmm8
movaps xmmword [rsp + 0x20], xmm9
nop
movdqu xmm2, xmmword [rdx - 0x20]
movdqu xmm3, xmmword [rdx - 0x10]
movdqu xmm7, xmmword [rdx]
movdqu xmm6, xmmword [rdx + 0x10]
movdqa xmm1, xmm10
movdqa xmm9, xmm10
pshufb xmm7, xmm11
pshufb xmm6, xmm11
pshufb xmm2, xmm11
pshufb xmm3, xmm11
movdqa xmm0, xmm2
movdqa xmm8, xmm4
paddd xmm0, xmm4
movdqa xmm4, xmm7
sha1rnds4 xmm10, xmm0, 0
sha1nexte xmm1, xmm3
sha1msg1 xmm2, xmm3
movdqa xmm0, xmm10
pxor xmm4, xmm2
sha1rnds4 xmm10, xmm1, 0
sha1nexte xmm0, xmm7
sha1msg1 xmm3, xmm7
sha1msg1 xmm7, xmm6
movdqa xmm1, xmm10
movdqa xmm2, xmm6
sha1rnds4 xmm10, xmm0, 0
sha1nexte xmm1, xmm6
movdqa xmm0, xmm10
pxor xmm2, xmm3
sha1rnds4 xmm10, xmm1, 0
sha1msg2 xmm4, xmm6
sha1nexte xmm0, xmm4
movdqa xmm1, xmm10
pxor xmm7, xmm4
sha1rnds4 xmm10, xmm0, 0
sha1msg2 xmm2, xmm4
sha1nexte xmm1, xmm2
sha1msg2 xmm7, xmm2
movdqa xmm0, xmm10
movdqa xmm3, xmm7
sha1rnds4 xmm10, xmm1, 1
sha1nexte xmm0, xmm7
movdqa xmm1, xmm10
sha1rnds4 xmm10, xmm0, 1
sha1msg1 xmm6, xmm4
pxor xmm6, xmm2
movdqa xmm0, xmm10
sha1msg2 xmm6, xmm7
sha1nexte xmm1, xmm6
sha1rnds4 xmm10, xmm1, 1
sha1msg1 xmm4, xmm2
sha1msg1 xmm2, xmm7
sha1msg1 xmm7, xmm6
movdqa xmm1, xmm10
movdqa xmm5, xmm6
pxor xmm5, xmm2
pxor xmm3, xmm4
sha1msg2 xmm3, xmm6
sha1nexte xmm0, xmm3
sha1rnds4 xmm10, xmm0, 1
sha1msg2 xmm5, xmm3
sha1nexte xmm1, xmm5
movdqa xmm0, xmm10
pxor xmm7, xmm3
sha1msg2 xmm7, xmm5
sha1rnds4 xmm10, xmm1, 1
sha1msg1 xmm6, xmm3
sha1nexte xmm0, xmm7
movdqa xmm1, xmm10
pxor xmm6, xmm5
sha1msg2 xmm6, xmm7
sha1msg1 xmm3, xmm5
movdqa xmm2, xmm7
sha1rnds4 xmm10, xmm0, 2
sha1nexte xmm1, xmm6
pxor xmm2, xmm3
movdqa xmm0, xmm10
sha1msg1 xmm5, xmm7
sha1rnds4 xmm10, xmm1, 2
sha1msg2 xmm2, xmm6
sha1msg1 xmm7, xmm6
lea rdx, [rdx + 0x40]
movdqa xmm1, xmm10
pxor xmm7, xmm2
movdqa xmm4, xmm6
pxor xmm4, xmm5
sha1nexte xmm0, xmm2
sha1rnds4 xmm10, xmm0, 2
movdqa xmm0, xmm10
sha1msg2 xmm4, xmm2
sha1nexte xmm1, xmm4
sha1rnds4 xmm10, xmm1, 2
movdqa xmm1, xmm10
sha1msg1 xmm6, xmm2
pxor xmm6, xmm4
sha1msg2 xmm7, xmm4
movdqa xmm3, xmm7
sha1msg2 xmm6, xmm7
sha1nexte xmm0, xmm7
sha1rnds4 xmm10, xmm0, 2
movdqa xmm0, xmm10
sha1nexte xmm1, xmm6
sha1rnds4 xmm10, xmm1, 3
movdqa xmm1, xmm10
sha1msg1 xmm2, xmm4
pxor xmm3, xmm2
movdqa xmm2, xmm6
sha1msg1 xmm4, xmm7
pxor xmm2, xmm4
sha1msg2 xmm3, xmm6
sha1msg1 xmm7, xmm6
pxor xmm7, xmm3
sha1nexte xmm0, xmm3
sha1rnds4 xmm10, xmm0, 3
movdqa xmm0, xmm10
sha1msg2 xmm2, xmm3
sha1nexte xmm1, xmm2
sha1rnds4 xmm10, xmm1, 3
movdqa xmm1, xmm10
sha1msg1 xmm6, xmm3
pxor xmm6, xmm2
sha1msg2 xmm7, xmm2
sha1nexte xmm0, xmm7
sha1rnds4 xmm10, xmm0, 3
movdqa xmm4, xmm10
sha1msg2 xmm6, xmm7
sha1nexte xmm1, xmm6
sha1rnds4 xmm10, xmm1, 3
paddd xmm10, xmm9
sha1nexte xmm4, xmm8
sub r8, 1
jne 0x180059da0
movaps xmm9, xmmword [rsp + 0x20]
movaps xmm8, xmmword [rsp + 0x30]
movaps xmm7, xmmword [rsp + 0x40]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm11, xmmword [rsp]
pshufd xmm0, xmm10, 0x1b
movaps xmm10, xmmword [rsp + 0x10]
movdqu xmmword [rax], xmm0
pextrd dword [rax + 0x10], xmm4, 3
add rsp, 0x68
ret