Function at 0x14009ea70
Capabilities:
Encode data using xor
Hash data using murmur3
Hash data using sha256

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x140]
sub rsp, 0x240
mov rax, qword [0x14017da30]
xor rax, rsp
mov qword [rbp + 0x130], rax
mov eax, dword [r8 + 8]
xor esi, esi
mov r14, rdx
sub eax, dword [r8]
mov rbx, r8
mov qword [rbp - 0x78], rdx
add eax, 0x34
mov qword [rdx], rsi
mov qword [rdx + 8], rsi
mov qword [rdx + 0x10], rsi
lea r8, [rsp + 0x34]
mov rcx, r14
mov edx, eax
mov dword [rbp - 0x70], esi
mov edi, esi
mov dword [rbp - 0x20], esi
mov qword [rbp - 0x18], rsi
mov dword [rbp - 0x10], 0x6a09e667
mov dword [rbp - 0xc], 0xbb67ae85
mov dword [rbp - 8], 0x3c6ef372
mov dword [rbp - 4], 0xa54ff53a
mov dword [rbp], 0x510e527f
mov dword [rbp + 4], 0x9b05688c
mov dword [rbp + 8], 0x1f83d9ab
mov dword [rbp + 0xc], 0x5be0cd19
mov dword [rsp + 0x70], eax
mov byte [rsp + 0x34], 0xcf
call fcn.140052630
mov rcx, qword [r14]
mov eax, dword [rbx + 8]
sub eax, dword [rbx]
mov qword [rsp + 0x78], rcx
add rcx, 0x24
mov dword [rcx - 0x24], eax
mov rdx, qword [rbx]
mov r8, qword [rbx + 8]
sub r8, rdx
mov qword [rsp + 0x48], rcx
call sub.MSVCR120.dll_memcpy
movabs rax, 0x7d9768cb7b7062b
mov r9d, 8
mov qword [rbp + 0x10], rax
movabs rax, 0x9c375b79155c7355
lea edx, [rsi + 0x10]
mov qword [rbp + 0x18], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], r9
lea r8d, [rsi + 2]
mov qword [rbp - 0x80], 0x40
mov qword [rsp + 0x68], rax
nop dword [rax]
movzx eax, byte [rax]
mov ecx, edi
mov byte [rbp + rcx - 0x60], al
mov edi, dword [rbp - 0x20]
inc edi
mov dword [rbp - 0x20], edi
cmp edi, 0x40
jne 0x14009ed88
mov edi, r8d
mov r10, rdx
mov r9d, edx
lea r8, [rbp + 0x30]
nop word [rax + rax]
lea eax, [rdi - 2]
lea r8, [r8 + 4]
movzx edx, byte [rbp + rax - 0x60]
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x60]
shl edx, 8
or edx, eax
mov eax, edi
movzx ecx, byte [rbp + rax - 0x60]
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x60]
or edx, ecx
add edi, 4
shl edx, 8
or edx, eax
mov dword [r8 - 4], edx
dec r10
jne 0x14009ebc0
lea r10, [rbp + 0x70]
nop dword [rax]
nop word [rax + rax]
lea eax, [r9 - 0xf]
lea r10, [r10 + 4]
mov edi, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x30]
mov ecx, edi
mov eax, edx
rol ecx, 0xe
mov r8d, edx
shr edx, 0xa
rol eax, 0xd
rol r8d, 0xf
xor r8d, eax
mov eax, edi
shr edi, 3
xor r8d, edx
ror eax, 7
xor ecx, eax
lea eax, [r9 - 0x10]
xor ecx, edi
add r8d, ecx
add r8d, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 7]
inc r9d
add r8d, dword [rbp + rax*4 + 0x30]
mov dword [r10 - 4], r8d
cmp r9d, 0x40
jb 0x14009ec10
mov r11d, dword [rbp - 4]
mov r12d, dword [rbp - 0x10]
mov r8d, dword [rbp - 0xc]
mov r10d, dword [rbp - 8]
mov r13d, dword [rbp]
mov ebx, dword [rbp + 8]
mov r14d, dword [rbp + 0xc]
mov dword [rsp + 0x20], r11d
mov r11d, dword [rbp + 4]
mov esi, dword [rsp + 0x20]
xor r9d, r9d
lea r15d, [r9 + 0x40]
nop dword [rax + rax]
mov eax, r13d
mov edi, r13d
mov ecx, r13d
rol eax, 7
not ecx
mov edx, r12d
ror edi, 0xb
and ecx, ebx
lea r9, [r9 + 4]
ror edx, 0xd
xor edi, eax
mov eax, r13d
ror eax, 6
xor edi, eax
mov eax, r11d
and eax, r13d
xor ecx, eax
lea rax, [0x140130d50]
add edi, ecx
mov ecx, r8d
add edi, dword [rbp + r9 + 0x2c]
xor ecx, r12d
add edi, dword [r9 + rax - 4]
and ecx, r10d
mov eax, r12d
add edi, r14d
mov r14d, ebx
rol eax, 0xa
xor edx, eax
mov eax, r12d
mov ebx, r11d
mov r11d, r13d
lea r13d, [rdi + rsi]
mov esi, r10d
ror eax, 2
mov r10d, r8d
xor edx, eax
mov eax, r8d
mov r8d, r12d
and eax, r12d
xor ecx, eax
add edx, ecx
lea r12d, [rdx + rdi]
dec r15
jne 0x14009eca0
add dword [rbp - 4], esi
mov esi, dword [rbp + 4]
mov r9d, dword [rbp - 0xc]
mov r15d, dword [rbp + 0xc]
add dword [rbp - 0x10], r12d
add dword [rbp], r13d
add qword [rbp - 0x18], 0x200
add r9d, r8d
mov dword [rsp + 0x2c], r14d
mov r14d, dword [rbp + 8]
add r15d, dword [rsp + 0x2c]
add esi, r11d
add r14d, ebx
mov eax, r10d
mov dword [rbp + 4], esi
add dword [rbp - 8], eax
xor esi, esi
mov dword [rbp - 0xc], r9d
mov r9, qword [rsp + 0x58]
mov dword [rbp + 8], r14d
mov dword [rbp + 0xc], r15d
lea edx, [rsi + 0x10]
lea r8d, [rsi + 2]
mov edi, esi
mov dword [rbp - 0x20], esi
mov rax, qword [rsp + 0x68]
inc rax
dec r9
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x68], rax
jne 0x14009eb90
mov rax, qword [rsp + 0x78]
mov eax, dword [rax]
test eax, eax
je 0x14009efd6
mov r9d, eax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x48]
nop
movzx eax, byte [rax]
mov ecx, edi
mov byte [rbp + rcx - 0x60], al
mov edi, dword [rbp - 0x20]
inc edi
mov dword [rbp - 0x20], edi
cmp edi, 0x40
jne 0x14009efb2
mov edi, r8d
mov r10, rdx
mov r9d, edx
lea r8, [rbp + 0x30]
nop word [rax + rax]
lea eax, [rdi - 2]
lea r8, [r8 + 4]
movzx edx, byte [rbp + rax - 0x60]
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x60]
shl edx, 8
or edx, eax
mov eax, edi
movzx ecx, byte [rbp + rax - 0x60]
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x60]
or edx, ecx
add edi, 4
shl edx, 8
or edx, eax
mov dword [r8 - 4], edx
dec r10
jne 0x14009edf0
lea r10, [rbp + 0x70]
nop dword [rax]
nop word [rax + rax]
lea eax, [r9 - 0xf]
lea r10, [r10 + 4]
mov edi, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x30]
mov ecx, edi
mov eax, edx
rol ecx, 0xe
mov r8d, edx
shr edx, 0xa
rol eax, 0xd
rol r8d, 0xf
xor r8d, eax
mov eax, edi
shr edi, 3
xor r8d, edx
ror eax, 7
xor ecx, eax
lea eax, [r9 - 0x10]
xor ecx, edi
add r8d, ecx
add r8d, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 7]
inc r9d
add r8d, dword [rbp + rax*4 + 0x30]
mov dword [r10 - 4], r8d
cmp r9d, 0x40
jb 0x14009ee40
mov esi, dword [rbp - 4]
mov r8d, dword [rbp - 0x10]
mov r10d, dword [rbp - 0xc]
mov ebx, dword [rbp - 8]
mov r9d, dword [rbp]
mov r14d, dword [rbp + 8]
mov r12d, dword [rbp + 0xc]
mov dword [rsp + 0x20], esi
mov esi, dword [rbp + 4]
mov r15d, dword [rsp + 0x20]
xor r11d, r11d
lea r13d, [r11 + 0x40]
nop dword [rax]
mov eax, r9d
mov edi, r9d
mov ecx, r9d
rol eax, 7
not ecx
mov edx, r8d
ror edi, 0xb
and ecx, r14d
lea r11, [r11 + 4]
ror edx, 0xd
xor edi, eax
mov eax, r9d
ror eax, 6
xor edi, eax
mov eax, esi
and eax, r9d
xor ecx, eax
lea rax, [0x140130d50]
add edi, ecx
mov ecx, r10d
add edi, dword [rbp + r11 + 0x2c]
xor ecx, r8d
add edi, dword [r11 + rax - 4]
and ecx, ebx
mov eax, r8d
add edi, r12d
mov r12d, r14d
rol eax, 0xa
xor edx, eax
mov eax, r8d
mov r14d, esi
mov esi, r9d
lea r9d, [rdi + r15]
mov r15d, ebx
ror eax, 2
mov ebx, r10d
xor edx, eax
mov eax, r10d
mov r10d, r8d
and eax, r8d
xor ecx, eax
add edx, ecx
lea r8d, [rdx + rdi]
dec r13
jne 0x14009eed0
add dword [rbp - 4], r15d
mov r13d, dword [rbp + 0xc]
mov r11d, dword [rbp - 0xc]
mov r15d, dword [rbp + 4]
add dword [rbp], r9d
add dword [rbp - 0x10], r8d
add dword [rbp - 8], ebx
add qword [rbp - 0x18], 0x200
mov r9, qword [rsp + 0x68]
mov dword [rsp + 0x2c], r12d
mov r12d, dword [rbp + 8]
add r13d, dword [rsp + 0x2c]
add r11d, r10d
add r15d, esi
add r12d, r14d
xor esi, esi
mov dword [rbp + 0xc], r13d
mov eax, ebx
mov dword [rbp - 0xc], r11d
mov dword [rbp + 4], r15d
mov dword [rbp + 8], r12d
mov edi, esi
mov dword [rbp - 0x20], esi
mov rax, qword [rsp + 0x48]
mov edx, 0x10
inc rax
dec r9
lea r8d, [rdx - 0xe]
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x48], rax
jne 0x14009edc0
lea rax, [rbp + 0x18]
mov qword [rsp + 0x48], rax
nop
movzx eax, byte [rax]
mov ecx, edi
mov byte [rbp + rcx - 0x60], al
mov edi, dword [rbp - 0x20]
inc edi
mov dword [rbp - 0x20], edi
cmp edi, 0x40
jne 0x14009f1cd
mov eax, 0x10
mov edi, 2
lea r8, [rbp + 0x30]
mov r10d, eax
mov r9d, eax
nop
lea eax, [rdi - 2]
lea r8, [r8 + 4]
movzx edx, byte [rbp + rax - 0x60]
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x60]
shl edx, 8
or edx, eax
mov eax, edi
movzx ecx, byte [rbp + rax - 0x60]
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x60]
or edx, ecx
add edi, 4
shl edx, 8
or edx, eax
mov dword [r8 - 4], edx
dec r10
jne 0x14009f010
lea r10, [rbp + 0x70]
nop dword [rax]
nop word [rax + rax]
lea eax, [r9 - 0xf]
lea r10, [r10 + 4]
mov edx, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 2]
mov edi, dword [rbp + rax*4 + 0x30]
mov eax, edx
mov r8d, edx
ror eax, 7
mov ecx, edi
shr edx, 3
rol r8d, 0xe
xor r8d, eax
mov eax, edi
rol ecx, 0xf
xor r8d, edx
shr edi, 0xa
rol eax, 0xd
xor ecx, eax
lea eax, [r9 - 0x10]
xor ecx, edi
add r8d, ecx
add r8d, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 7]
inc r9d
add r8d, dword [rbp + rax*4 + 0x30]
mov dword [r10 - 4], r8d
cmp r9d, 0x40
jb 0x14009f060
mov esi, dword [rbp - 4]
mov r8d, dword [rbp - 0x10]
mov r10d, dword [rbp - 0xc]
mov ebx, dword [rbp - 8]
mov r9d, dword [rbp]
mov r14d, dword [rbp + 8]
mov r12d, dword [rbp + 0xc]
mov dword [rsp + 0x20], esi
mov esi, dword [rbp + 4]
mov r15d, dword [rsp + 0x20]
xor r11d, r11d
lea r13d, [r11 + 0x40]
nop dword [rax]
mov eax, r9d
mov edi, r9d
mov ecx, r9d
rol eax, 7
not ecx
mov edx, r8d
ror edi, 0xb
and ecx, r14d
lea r11, [r11 + 4]
ror edx, 0xd
xor edi, eax
mov eax, r9d
ror eax, 6
xor edi, eax
mov eax, esi
and eax, r9d
xor ecx, eax
lea rax, [0x140130d50]
add edi, ecx
mov ecx, r10d
add edi, dword [rbp + r11 + 0x2c]
xor ecx, r8d
add edi, dword [r11 + rax - 4]
and ecx, ebx
mov eax, r8d
add edi, r12d
mov r12d, r14d
rol eax, 0xa
xor edx, eax
mov eax, r8d
mov r14d, esi
mov esi, r9d
lea r9d, [rdi + r15]
mov r15d, ebx
ror eax, 2
mov ebx, r10d
xor edx, eax
mov eax, r10d
mov r10d, r8d
and eax, r8d
xor ecx, eax
add edx, ecx
lea r8d, [rdx + rdi]
dec r13
jne 0x14009f0f0
add dword [rbp - 4], r15d
mov r13d, dword [rbp + 0xc]
mov r11d, dword [rbp - 0xc]
mov r15d, dword [rbp + 4]
add dword [rbp - 0x10], r8d
add dword [rbp - 8], ebx
add dword [rbp], r9d
add qword [rbp - 0x18], 0x200
mov dword [rsp + 0x2c], r12d
mov r12d, dword [rbp + 8]
add r13d, dword [rsp + 0x2c]
add r11d, r10d
add r15d, esi
add r12d, r14d
xor esi, esi
mov dword [rbp + 0xc], r13d
mov dword [rbp - 0xc], r11d
mov eax, ebx
mov dword [rbp + 4], r15d
mov dword [rbp + 8], r12d
mov edi, esi
mov dword [rbp - 0x20], esi
mov rax, qword [rsp + 0x48]
inc rax
dec qword [rsp + 0x60]
mov qword [rsp + 0x48], rax
jne 0x14009efe0
mov eax, edi
cmp edi, 0x38
inc edi
mov byte [rbp + rax - 0x60], pe_nt_image_headers64
jae 0x14009f233
cmp edi, 0x38
jae 0x14009f20c
mov eax, edi
mov ecx, gethostname
sub ecx, edi
lea rdi, [rbp - 0x60]
add rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov eax, dword [rbp - 0x10]
mov r10d, dword [rbp + 0xc]
mov r11d, dword [rbp + 8]
mov ebx, dword [rbp + 4]
mov r14d, dword [rbp]
mov r15d, dword [rbp - 4]
mov r12d, dword [rbp - 8]
mov r13d, dword [rbp - 0xc]
mov dword [rsp + 0x38], eax
jmp 0x14009f4b8
cmp edi, 0x40
jae 0x14009f24c
mov eax, edi
mov ecx, 0x40
sub ecx, edi
lea rdi, [rbp - 0x60]
add rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov eax, 0x10
mov edi, 2
lea r8, [rbp + 0x30]
mov r10d, eax
mov r9d, eax
lea eax, [rdi - 2]
lea r8, [r8 + 4]
movzx edx, byte [rbp + rax - 0x60]
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x60]
shl edx, 8
or edx, eax
mov eax, edi
movzx ecx, byte [rbp + rax - 0x60]
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x60]
or edx, ecx
add edi, 4
shl edx, 8
or edx, eax
mov dword [r8 - 4], edx
dec r10
jne 0x14009f260
lea r10, [rbp + 0x70]
nop dword [rax]
nop word [rax + rax]
lea eax, [r9 - 0xf]
lea r10, [r10 + 4]
mov edi, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x30]
mov ecx, edi
mov eax, edx
rol ecx, 0xe
mov r8d, edx
shr edx, 0xa
rol eax, 0xd
rol r8d, 0xf
xor r8d, eax
mov eax, edi
shr edi, 3
xor r8d, edx
ror eax, 7
xor ecx, eax
lea eax, [r9 - 0x10]
xor ecx, edi
add r8d, ecx
add r8d, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 7]
inc r9d
add r8d, dword [rbp + rax*4 + 0x30]
mov dword [r10 - 4], r8d
cmp r9d, 0x40
jb 0x14009f2b0
mov r8d, dword [rbp - 0x10]
mov r13d, dword [rbp - 0xc]
mov r12d, dword [rbp - 8]
mov r15d, dword [rbp - 4]
mov r10d, dword [rbp + 0xc]
mov r14d, dword [rbp]
mov ebx, dword [rbp + 4]
mov r11d, dword [rbp + 8]
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x60], r12d
mov dword [rsp + 0x38], r8d
mov r9d, r8d
mov dword [rsp + 0x3c], r13d
mov r8d, r10d
mov dword [rsp + 0x40], r12d
mov r13d, r15d
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0x24], r10d
mov r15d, ebx
mov r10d, r14d
mov dword [rsp + 0x50], r14d
mov r14d, dword [rsp + 0x60]
mov dword [rsp + 0x2c], ebx
mov dword [rsp + 0x30], r11d
mov r12d, r11d
mov r11d, dword [rsp + 0x28]
mov rbx, rsi
mov qword [rsp + 0x48], 0x40
nop dword [rax]
nop dword [rax + rax]
mov eax, r10d
mov edi, r10d
mov ecx, r10d
rol eax, 7
not ecx
mov edx, r9d
ror edi, 0xb
and ecx, r12d
lea rbx, [rbx + 4]
ror edx, 0xd
xor edi, eax
mov eax, r10d
ror eax, 6
xor edi, eax
mov eax, r15d
and eax, r10d
xor ecx, eax
lea rax, [0x140130d50]
add edi, ecx
mov ecx, r11d
add edi, dword [rbp + rbx + 0x2c]
xor ecx, r9d
add edi, dword [rbx + rax - 4]
and ecx, r14d
mov eax, r9d
add edi, r8d
mov r8d, r12d
rol eax, 0xa
xor edx, eax
mov eax, r9d
mov r12d, r15d
mov r15d, r10d
lea r10d, [rdi + r13]
mov r13d, r14d
ror eax, 2
mov r14d, r11d
xor edx, eax
mov eax, r11d
mov r11d, r9d
and eax, r9d
xor ecx, eax
add edx, ecx
dec qword [rsp + 0x48]
lea r9d, [rdx + rdi]
jne 0x14009f390
mov ebx, dword [rsp + 0x2c]
mov dword [rsp + 0x28], r12d
mov r12d, dword [rsp + 0x40]
add r12d, r14d
mov r14d, dword [rsp + 0x50]
mov dword [rsp + 0x60], r13d
mov r13d, dword [rsp + 0x3c]
add r14d, r10d
mov r10d, dword [rsp + 0x24]
add r13d, r11d
mov r11d, dword [rsp + 0x30]
mov dword [rsp + 0x20], r15d
add ebx, dword [rsp + 0x20]
add r11d, dword [rsp + 0x28]
mov r15d, dword [rsp + 0x44]
add r15d, dword [rsp + 0x60]
mov dword [rsp + 0x58], r8d
mov r8d, dword [rsp + 0x38]
add r10d, dword [rsp + 0x58]
add r8d, r9d
xor eax, eax
mov dword [rbp - 0xc], r13d
mov dword [rbp - 8], r12d
mov dword [rbp - 4], r15d
mov dword [rbp + 0xc], r10d
mov dword [rsp + 0x38], r8d
mov dword [rbp - 0x10], r8d
mov dword [rbp], r14d
mov dword [rbp + 4], ebx
mov dword [rbp + 8], r11d
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov eax, dword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
mov edi, 0x10
lea ecx, [rax*8]
mov dword [rsp + 0x3c], r13d
mov dword [rsp + 0x40], r12d
add rdx, rcx
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0x50], r14d
movzx eax, dl
mov rax, rdx
mov qword [rbp - 0x18], rdx
shr rax, 8
mov byte [rbp - 0x21], dl
mov dword [rsp + 0x2c], ebx
mov byte [rbp - 0x22], al
mov rax, rdx
mov dword [rsp + 0x30], r11d
shr rax, 0x10
mov dword [rsp + 0x24], r10d
lea r8, [rbp + 0x30]
mov byte [rbp - 0x23], al
mov rax, rdx
mov dword [rsp + 0x58], edi
shr rax, 0x18
mov r9d, 2
mov byte [rbp - 0x24], al
mov rax, rdx
shr rax, 0x20
mov byte [rbp - 0x25], al
mov rax, rdx
shr rax, 0x28
mov byte [rbp - 0x26], al
mov rax, rdx
shr rax, 0x30
shr rdx, 0x38
mov byte [rbp - 0x28], dl
mov byte [rbp - 0x27], al
nop dword [rax + rax]
lea eax, [r9 - 2]
lea r8, [r8 + 4]
movzx edx, byte [rbp + rax - 0x60]
lea eax, [r9 - 1]
movzx eax, byte [rbp + rax - 0x60]
shl edx, 8
or edx, eax
mov eax, r9d
movzx ecx, byte [rbp + rax - 0x60]
shl edx, 8
lea eax, [r9 + 1]
movzx eax, byte [rbp + rax - 0x60]
or edx, ecx
add r9d, 4
shl edx, 8
or edx, eax
mov dword [r8 - 4], edx
dec rdi
jne 0x14009f550
mov r9d, dword [rsp + 0x58]
lea r13, [rbp + 0x70]
nop dword [rax]
lea eax, [r9 - 0xf]
lea r13, [r13 + 4]
mov edi, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x30]
mov ecx, edi
mov eax, edx
rol ecx, 0xe
mov r8d, edx
shr edx, 0xa
rol eax, 0xd
rol r8d, 0xf
xor r8d, eax
mov eax, edi
shr edi, 3
xor r8d, edx
ror eax, 7
xor ecx, eax
lea eax, [r9 - 0x10]
xor ecx, edi
add r8d, ecx
add r8d, dword [rbp + rax*4 + 0x30]
lea eax, [r9 - 7]
inc r9d
add r8d, dword [rbp + rax*4 + 0x30]
mov dword [r13 - 4], r8d
cmp r9d, 0x40
jb 0x14009f5a0
mov r9d, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x3c]
mov dword [rsp + 0x58], r12d
mov r13d, r14d
mov r12d, r10d
mov r14d, r11d
mov r11d, dword [rsp + 0x58]
mov r10, rsi
nop dword [rax]
mov eax, r13d
mov edi, r13d
mov ecx, r13d
rol eax, 7
not ecx
mov edx, r9d
ror edi, 0xb
and ecx, r14d
lea r10, [r10 + 4]
ror edx, 0xd
xor edi, eax
mov eax, r13d
ror eax, 6
xor edi, eax
mov eax, ebx
and eax, r13d
xor ecx, eax
lea rax, [0x140130d50]
add edi, ecx
mov ecx, r8d
add edi, dword [rbp + r10 + 0x2c]
xor ecx, r9d
add edi, dword [r10 + rax - 4]
and ecx, r11d
mov eax, r9d
add edi, r12d
mov r12d, r14d
rol eax, 0xa
xor edx, eax
mov eax, r9d
mov r14d, ebx
mov ebx, r13d
lea r13d, [rdi + r15]
mov r15d, r11d
ror eax, 2
mov r11d, r8d
xor edx, eax
mov eax, r8d
mov r8d, r9d
and eax, r9d
xor ecx, eax
add edx, ecx
dec qword [rbp - 0x80]
lea r9d, [rdx + rdi]
jne 0x14009f620
mov r10d, dword [rsp + 0x24]
mov rdi, qword [rsp + 0x78]
mov dword [rsp + 0x48], r12d
mov r12d, dword [rsp + 0x40]
add r10d, dword [rsp + 0x48]
mov dword [rsp + 0x68], r14d
mov r14d, dword [rsp + 0x50]
add r12d, r11d
mov r11d, dword [rsp + 0x30]
add r11d, dword [rsp + 0x68]
mov dword [rsp + 0x58], r8d
mov r8d, dword [rsp + 0x38]
mov dword [rsp + 0x60], r13d
mov r13d, dword [rsp + 0x3c]
mov dword [rsp + 0x28], r15d
mov r15d, dword [rsp + 0x44]
add r14d, dword [rsp + 0x60]
add r13d, dword [rsp + 0x58]
add r15d, dword [rsp + 0x28]
mov dword [rsp + 0x20], ebx
mov ebx, dword [rsp + 0x2c]
add ebx, dword [rsp + 0x20]
add r8d, r9d
add rdi, 4
lea rdx, [rdi + 8]
mov ecx, 3
mov eax, r8d
lea rdx, [rdx + 1]
sub ecx, esi
inc esi
lea rdi, [rdi + 1]
shl ecx, 3
shr eax, cl
mov byte [rdi - 1], al
mov eax, r13d
shr eax, cl
mov byte [rdx - 5], al
mov eax, r12d
shr eax, cl
mov byte [rdx - 1], al
mov eax, r15d
shr eax, cl
mov byte [rdx + 3], al
mov eax, r14d
shr eax, cl
mov byte [rdx + 7], al
mov eax, ebx
shr eax, cl
mov byte [rdx + 0xb], al
mov eax, r11d
shr eax, cl
mov byte [rdx + 0xf], al
mov eax, r10d
shr eax, cl
mov byte [rdx + 0x13], al
cmp esi, 4
jb 0x14009f720
movabs rax, 0xa87127955022c66b
lea rdx, [rbp + 0x10]
lea rcx, [rbp - 0x60]
mov qword [rbp + 0x10], rax
movabs rax, 0x567a1d1df16321ff
mov qword [rbp + 0x18], rax
movabs rax, 0x47cd23cec0490e9e
mov qword [rbp + 0x20], rax
movabs rax, 0x97da0f7b6b2d46ab
mov qword [rbp + 0x28], rax
call fcn.140012420
mov eax, dword [rsp + 0x70]
mov rsi, qword [rbp - 0x78]
shr eax, 4
mov rdi, qword [rsi]
test eax, eax
je 0x14009f7e6
mov ebx, eax
lea rcx, [rbp - 0x60]
mov rdx, rdi
call fcn.1400124b0
add rdi, 0x10
dec rbx
jne 0x14009f7d1
lea rcx, [rbp - 0x40]
mov edx, 0x20
nop
mov byte [rcx + 0x20], 0
mov byte [rcx], 0
mov byte [rcx - 0x20], 0
lea rcx, [rcx + 1]
dec rdx
jne 0x14009f7f0
mov rax, rsi
mov rcx, qword [rbp + 0x130]
xor rcx, rsp
call fcn.14010a480
mov rbx, qword [rsp + 0x280]
add rsp, 0x240
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret