Function at 0x515180
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x48
mov qword [rsp + 0x40], rbp
lea rbp, [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
shr rdx, 6
shl rdx, 6
lea rdi, [rsi + rdx]
mov eax, dword [rbp]
mov ebx, dword [rbp + 4]
mov ecx, dword [rbp + 8]
mov edx, dword [rbp + 0xc]
mov ebp, dword [rbp + 0x10]
cmp rsi, rdi
je 0x5164d6
mov r11d, eax
mov r12d, ebx
mov r13d, ecx
mov r14d, edx
mov r15d, ebp
mov r10d, dword [rsi]
bswap r10d
mov dword [rsp], r10d
mov r9d, edx
xor r9d, ecx
and r9d, ebx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x5a827999]
add ebp, r8d
mov r10d, dword [rsi + 4]
bswap r10d
mov dword [rsp + 4], r10d
mov r9d, ecx
xor r9d, ebx
and r9d, eax
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x5a827999]
add edx, r8d
mov r10d, dword [rsi + 8]
bswap r10d
mov dword [rsp + 8], r10d
mov r9d, ebx
xor r9d, eax
and r9d, ebp
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x5a827999]
add ecx, r8d
mov r10d, dword [rsi + 0xc]
bswap r10d
mov dword [rsp + 0xc], r10d
mov r9d, eax
xor r9d, ebp
and r9d, edx
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x5a827999]
add ebx, r8d
mov r10d, dword [rsi + 0x10]
bswap r10d
mov dword [rsp + 0x10], r10d
mov r9d, ebp
xor r9d, edx
and r9d, ecx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x5a827999]
add eax, r8d
mov r10d, dword [rsi + 0x14]
bswap r10d
mov dword [rsp + 0x14], r10d
mov r9d, edx
xor r9d, ecx
and r9d, ebx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x5a827999]
add ebp, r8d
mov r10d, dword [rsi + 0x18]
bswap r10d
mov dword [rsp + 0x18], r10d
mov r9d, ecx
xor r9d, ebx
and r9d, eax
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x5a827999]
add edx, r8d
mov r10d, dword [rsi + 0x1c]
bswap r10d
mov dword [rsp + 0x1c], r10d
mov r9d, ebx
xor r9d, eax
and r9d, ebp
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x5a827999]
add ecx, r8d
mov r10d, dword [rsi + 0x20]
bswap r10d
mov dword [rsp + 0x20], r10d
mov r9d, eax
xor r9d, ebp
and r9d, edx
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x5a827999]
add ebx, r8d
mov r10d, dword [rsi + 0x24]
bswap r10d
mov dword [rsp + 0x24], r10d
mov r9d, ebp
xor r9d, edx
and r9d, ecx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x5a827999]
add eax, r8d
mov r10d, dword [rsi + 0x28]
bswap r10d
mov dword [rsp + 0x28], r10d
mov r9d, edx
xor r9d, ecx
and r9d, ebx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x5a827999]
add ebp, r8d
mov r10d, dword [rsi + 0x2c]
bswap r10d
mov dword [rsp + 0x2c], r10d
mov r9d, ecx
xor r9d, ebx
and r9d, eax
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x5a827999]
add edx, r8d
mov r10d, dword [rsi + 0x30]
bswap r10d
mov dword [rsp + 0x30], r10d
mov r9d, ebx
xor r9d, eax
and r9d, ebp
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x5a827999]
add ecx, r8d
mov r10d, dword [rsi + 0x34]
bswap r10d
mov dword [rsp + 0x34], r10d
mov r9d, eax
xor r9d, ebp
and r9d, edx
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x5a827999]
add ebx, r8d
mov r10d, dword [rsi + 0x38]
bswap r10d
mov dword [rsp + 0x38], r10d
mov r9d, ebp
xor r9d, edx
and r9d, ecx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x5a827999]
add eax, r8d
mov r10d, dword [rsi + 0x3c]
bswap r10d
mov dword [rsp + 0x3c], r10d
mov r9d, edx
xor r9d, ecx
and r9d, ebx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x5a827999]
add ebp, r8d
mov r10d, dword [rsp]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 8]
rol r10d, 1
mov dword [rsp], r10d
mov r9d, ecx
xor r9d, ebx
and r9d, eax
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x5a827999]
add edx, r8d
mov r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0xc]
rol r10d, 1
mov dword [rsp + 4], r10d
mov r9d, ebx
xor r9d, eax
and r9d, ebp
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x5a827999]
add ecx, r8d
mov r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x10]
rol r10d, 1
mov dword [rsp + 8], r10d
mov r9d, eax
xor r9d, ebp
and r9d, edx
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x5a827999]
add ebx, r8d
mov r10d, dword [rsp + 0xc]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x14]
rol r10d, 1
mov dword [rsp + 0xc], r10d
mov r9d, ebp
xor r9d, edx
and r9d, ecx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x5a827999]
add eax, r8d
mov r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x18]
rol r10d, 1
mov dword [rsp + 0x10], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x6ed9eba1]
add ebp, r8d
mov r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x1c]
rol r10d, 1
mov dword [rsp + 0x14], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x6ed9eba1]
add edx, r8d
mov r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x20]
rol r10d, 1
mov dword [rsp + 0x18], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x6ed9eba1]
add ecx, r8d
mov r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x24]
rol r10d, 1
mov dword [rsp + 0x1c], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x6ed9eba1]
add ebx, r8d
mov r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x28]
rol r10d, 1
mov dword [rsp + 0x20], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x6ed9eba1]
add eax, r8d
mov r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x2c]
rol r10d, 1
mov dword [rsp + 0x24], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x6ed9eba1]
add ebp, r8d
mov r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x30]
rol r10d, 1
mov dword [rsp + 0x28], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x6ed9eba1]
add edx, r8d
mov r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x34]
rol r10d, 1
mov dword [rsp + 0x2c], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x6ed9eba1]
add ecx, r8d
mov r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x38]
rol r10d, 1
mov dword [rsp + 0x30], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x6ed9eba1]
add ebx, r8d
mov r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 0x3c]
rol r10d, 1
mov dword [rsp + 0x34], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x6ed9eba1]
add eax, r8d
mov r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp]
rol r10d, 1
mov dword [rsp + 0x38], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x6ed9eba1]
add ebp, r8d
mov r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 4]
rol r10d, 1
mov dword [rsp + 0x3c], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x6ed9eba1]
add edx, r8d
mov r10d, dword [rsp]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 8]
rol r10d, 1
mov dword [rsp], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x6ed9eba1]
add ecx, r8d
mov r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0xc]
rol r10d, 1
mov dword [rsp + 4], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x6ed9eba1]
add ebx, r8d
mov r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x10]
rol r10d, 1
mov dword [rsp + 8], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x6ed9eba1]
add eax, r8d
mov r10d, dword [rsp + 0xc]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x14]
rol r10d, 1
mov dword [rsp + 0xc], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 + 0x6ed9eba1]
add ebp, r8d
mov r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x18]
rol r10d, 1
mov dword [rsp + 0x10], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 + 0x6ed9eba1]
add edx, r8d
mov r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x1c]
rol r10d, 1
mov dword [rsp + 0x14], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 + 0x6ed9eba1]
add ecx, r8d
mov r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x20]
rol r10d, 1
mov dword [rsp + 0x18], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 + 0x6ed9eba1]
add ebx, r8d
mov r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x24]
rol r10d, 1
mov dword [rsp + 0x1c], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 + 0x6ed9eba1]
add eax, r8d
mov r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x28]
rol r10d, 1
mov dword [rsp + 0x20], r10d
mov r8d, ebx
or r8d, ecx
and r8d, edx
mov r9d, ebx
and r9d, ecx
or r9d, r8d
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x70e44324]
add ebp, r8d
mov r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x2c]
rol r10d, 1
mov dword [rsp + 0x24], r10d
mov r8d, eax
or r8d, ebx
and r8d, ecx
mov r9d, eax
and r9d, ebx
or r9d, r8d
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x70e44324]
add edx, r8d
mov r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x30]
rol r10d, 1
mov dword [rsp + 0x28], r10d
mov r8d, ebp
or r8d, eax
and r8d, ebx
mov r9d, ebp
and r9d, eax
or r9d, r8d
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x70e44324]
add ecx, r8d
mov r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x34]
rol r10d, 1
mov dword [rsp + 0x2c], r10d
mov r8d, edx
or r8d, ebp
and r8d, eax
mov r9d, edx
and r9d, ebp
or r9d, r8d
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x70e44324]
add ebx, r8d
mov r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x38]
rol r10d, 1
mov dword [rsp + 0x30], r10d
mov r8d, ecx
or r8d, edx
and r8d, ebp
mov r9d, ecx
and r9d, edx
or r9d, r8d
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x70e44324]
add eax, r8d
mov r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 0x3c]
rol r10d, 1
mov dword [rsp + 0x34], r10d
mov r8d, ebx
or r8d, ecx
and r8d, edx
mov r9d, ebx
and r9d, ecx
or r9d, r8d
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x70e44324]
add ebp, r8d
mov r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp]
rol r10d, 1
mov dword [rsp + 0x38], r10d
mov r8d, eax
or r8d, ebx
and r8d, ecx
mov r9d, eax
and r9d, ebx
or r9d, r8d
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x70e44324]
add edx, r8d
mov r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 4]
rol r10d, 1
mov dword [rsp + 0x3c], r10d
mov r8d, ebp
or r8d, eax
and r8d, ebx
mov r9d, ebp
and r9d, eax
or r9d, r8d
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x70e44324]
add ecx, r8d
mov r10d, dword [rsp]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 8]
rol r10d, 1
mov dword [rsp], r10d
mov r8d, edx
or r8d, ebp
and r8d, eax
mov r9d, edx
and r9d, ebp
or r9d, r8d
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x70e44324]
add ebx, r8d
mov r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0xc]
rol r10d, 1
mov dword [rsp + 4], r10d
mov r8d, ecx
or r8d, edx
and r8d, ebp
mov r9d, ecx
and r9d, edx
or r9d, r8d
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x70e44324]
add eax, r8d
mov r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x10]
rol r10d, 1
mov dword [rsp + 8], r10d
mov r8d, ebx
or r8d, ecx
and r8d, edx
mov r9d, ebx
and r9d, ecx
or r9d, r8d
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x70e44324]
add ebp, r8d
mov r10d, dword [rsp + 0xc]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x14]
rol r10d, 1
mov dword [rsp + 0xc], r10d
mov r8d, eax
or r8d, ebx
and r8d, ecx
mov r9d, eax
and r9d, ebx
or r9d, r8d
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x70e44324]
add edx, r8d
mov r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x18]
rol r10d, 1
mov dword [rsp + 0x10], r10d
mov r8d, ebp
or r8d, eax
and r8d, ebx
mov r9d, ebp
and r9d, eax
or r9d, r8d
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x70e44324]
add ecx, r8d
mov r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x1c]
rol r10d, 1
mov dword [rsp + 0x14], r10d
mov r8d, edx
or r8d, ebp
and r8d, eax
mov r9d, edx
and r9d, ebp
or r9d, r8d
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x70e44324]
add ebx, r8d
mov r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x20]
rol r10d, 1
mov dword [rsp + 0x18], r10d
mov r8d, ecx
or r8d, edx
and r8d, ebp
mov r9d, ecx
and r9d, edx
or r9d, r8d
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x70e44324]
add eax, r8d
mov r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x24]
rol r10d, 1
mov dword [rsp + 0x1c], r10d
mov r8d, ebx
or r8d, ecx
and r8d, edx
mov r9d, ebx
and r9d, ecx
or r9d, r8d
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x70e44324]
add ebp, r8d
mov r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x28]
rol r10d, 1
mov dword [rsp + 0x20], r10d
mov r8d, eax
or r8d, ebx
and r8d, ecx
mov r9d, eax
and r9d, ebx
or r9d, r8d
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x70e44324]
add edx, r8d
mov r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x2c]
rol r10d, 1
mov dword [rsp + 0x24], r10d
mov r8d, ebp
or r8d, eax
and r8d, ebx
mov r9d, ebp
and r9d, eax
or r9d, r8d
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x70e44324]
add ecx, r8d
mov r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x30]
rol r10d, 1
mov dword [rsp + 0x28], r10d
mov r8d, edx
or r8d, ebp
and r8d, eax
mov r9d, edx
and r9d, ebp
or r9d, r8d
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x70e44324]
add ebx, r8d
mov r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x34]
rol r10d, 1
mov dword [rsp + 0x2c], r10d
mov r8d, ecx
or r8d, edx
and r8d, ebp
mov r9d, ecx
and r9d, edx
or r9d, r8d
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x70e44324]
add eax, r8d
mov r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x38]
rol r10d, 1
mov dword [rsp + 0x30], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x359d3e2a]
add ebp, r8d
mov r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 0x3c]
rol r10d, 1
mov dword [rsp + 0x34], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x359d3e2a]
add edx, r8d
mov r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp]
rol r10d, 1
mov dword [rsp + 0x38], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x359d3e2a]
add ecx, r8d
mov r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 4]
rol r10d, 1
mov dword [rsp + 0x3c], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x359d3e2a]
add ebx, r8d
mov r10d, dword [rsp]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 8]
rol r10d, 1
mov dword [rsp], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x359d3e2a]
add eax, r8d
mov r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0xc]
rol r10d, 1
mov dword [rsp + 4], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x359d3e2a]
add ebp, r8d
mov r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x10]
rol r10d, 1
mov dword [rsp + 8], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x359d3e2a]
add edx, r8d
mov r10d, dword [rsp + 0xc]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x14]
rol r10d, 1
mov dword [rsp + 0xc], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x359d3e2a]
add ecx, r8d
mov r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x18]
rol r10d, 1
mov dword [rsp + 0x10], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x359d3e2a]
add ebx, r8d
mov r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x1c]
rol r10d, 1
mov dword [rsp + 0x14], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x359d3e2a]
add eax, r8d
mov r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x20]
rol r10d, 1
mov dword [rsp + 0x18], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x359d3e2a]
add ebp, r8d
mov r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x24]
rol r10d, 1
mov dword [rsp + 0x1c], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x359d3e2a]
add edx, r8d
mov r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp]
xor r10d, dword [rsp + 0x28]
rol r10d, 1
mov dword [rsp + 0x20], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x359d3e2a]
add ecx, r8d
mov r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp + 4]
xor r10d, dword [rsp + 0x2c]
rol r10d, 1
mov dword [rsp + 0x24], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x359d3e2a]
add ebx, r8d
mov r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 8]
xor r10d, dword [rsp + 0x30]
rol r10d, 1
mov dword [rsp + 0x28], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x359d3e2a]
add eax, r8d
mov r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x20]
xor r10d, dword [rsp + 0xc]
xor r10d, dword [rsp + 0x34]
rol r10d, 1
mov dword [rsp + 0x2c], r10d
mov r9d, ebx
xor r9d, ecx
xor r9d, edx
rol ebx, 0x1e
add ebp, r9d
mov r8d, eax
rol r8d, 5
lea ebp, [rbp + r10 - 0x359d3e2a]
add ebp, r8d
mov r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x24]
xor r10d, dword [rsp + 0x10]
xor r10d, dword [rsp + 0x38]
rol r10d, 1
mov dword [rsp + 0x30], r10d
mov r9d, eax
xor r9d, ebx
xor r9d, ecx
rol eax, 0x1e
add edx, r9d
mov r8d, ebp
rol r8d, 5
lea edx, [rdx + r10 - 0x359d3e2a]
add edx, r8d
mov r10d, dword [rsp + 0x34]
xor r10d, dword [rsp + 0x28]
xor r10d, dword [rsp + 0x14]
xor r10d, dword [rsp + 0x3c]
rol r10d, 1
mov dword [rsp + 0x34], r10d
mov r9d, ebp
xor r9d, eax
xor r9d, ebx
rol ebp, 0x1e
add ecx, r9d
mov r8d, edx
rol r8d, 5
lea ecx, [rcx + r10 - 0x359d3e2a]
add ecx, r8d
mov r10d, dword [rsp + 0x38]
xor r10d, dword [rsp + 0x2c]
xor r10d, dword [rsp + 0x18]
xor r10d, dword [rsp]
rol r10d, 1
mov dword [rsp + 0x38], r10d
mov r9d, edx
xor r9d, ebp
xor r9d, eax
rol edx, 0x1e
add ebx, r9d
mov r8d, ecx
rol r8d, 5
lea ebx, [rbx + r10 - 0x359d3e2a]
add ebx, r8d
mov r10d, dword [rsp + 0x3c]
xor r10d, dword [rsp + 0x30]
xor r10d, dword [rsp + 0x1c]
xor r10d, dword [rsp + 4]
rol r10d, 1
mov dword [rsp + 0x3c], r10d
mov r9d, ecx
xor r9d, edx
xor r9d, ebp
rol ecx, 0x1e
add eax, r9d
mov r8d, ebx
rol r8d, 5
lea eax, [rax + r10 - 0x359d3e2a]
add eax, r8d
add eax, r11d
add ebx, r12d
add ecx, r13d
add edx, r14d
add ebp, r15d
add rsi, 0x40
cmp rsi, rdi
jb 0x5151c1
mov rdi, qword [rsp + 0x50]
mov dword [rdi], eax
mov dword [rdi + 4], ebx
mov dword [rdi + 8], ecx
mov dword [rdi + 0xc], edx
mov dword [rdi + 0x10], ebp
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
ret