Function at 0x14001e760
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Hash data using murmur3
Hash data using sha256

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x14e0]
mov eax, 0x15e0
call fcn.14010a690
sub rsp, rax
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x1620], rbx
mov rax, qword [0x14017da30]
xor rax, rsp
mov qword [rbp + 0x14d0], rax
mov r12, r9
mov r15, r8
mov qword [rbp - 0x80], rdx
mov r13, qword [rbp + 0x1540]
mov qword [rsp + 0x30], r13
xor ebx, ebx
mov dword [rsp + 0x78], ebx
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [rbp + 0x1384], 0xffffffff
mov dword [rbp + 4], eax
mov edi, 1
mov edx, edi
nop word [rax + rax]
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edi
mov dword [rbp + rdx*4 + 4], ecx
inc edi
inc rdx
cmp rdx, 0x270
jl 0x14001e7e0
mov dword [rbp], 0x270
xor eax, eax
mov qword [rbp + 0x1490], rax
mov qword [rbp + 0x1498], rax
mov qword [rbp + 0x14a0], rax
mov qword [rbp + 0x14a8], rax
mov qword [rbp + 0x14b0], rax
mov qword [rbp + 0x14b8], rax
mov qword [rbp + 0x14c0], rax
mov dword [rbp + 0x14c8], eax
mov dword [rbp + 0x1490], 0x5c
mov dword [rbp + 0x14b4], ebx
mov rdx, qword [r15 + 0x10]
add edx, 0x20
mov dword [rbp + 0x14b8], edx
mov edi, edx
mov dword [rbp + 0x14bc], edx
mov rcx, qword [r12 + 0x10]
add ecx, 0x20
mov dword [rbp + 0x14c0], ecx
add edx, ecx
mov esi, edx
mov dword [rbp + 0x14c4], edx
mov rax, qword [r13 + 0x10]
add eax, 0x20
mov dword [rsp + 0x20], eax
add eax, 0x7c
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rbx
add edx, eax
lea rcx, [rsp + 0x58]
call fcn.140014680
mov r14d, ebx
mov rax, qword [rsp + 0x60]
sub rax, qword [rsp + 0x58]
mov qword [rsp + 0x70], rax
je 0x14001e924
mov rsi, rbx
or r13d, 0xffffffff
mov dword [rsp + 0x38], ebx
mov edi, ebx
lea rcx, [rbp]
call fcn.1400154b0
cmp eax, r13d
ja 0x14001e8c7
or edi, eax
mov edx, 0xff
cmp r13d, edx
jb 0x14001e8c5
mov ecx, r13d
and ecx, 0xffffff00
mov eax, edi
and eax, 0xffffff00
cmp eax, ecx
jb 0x14001e8fa
cmp r13b, dl
jne 0x14001e8c1
and di, dx
mov rax, qword [rsp + 0x58]
mov byte [rsi + rax], dil
inc r14d
mov esi, r14d
cmp rsi, qword [rsp + 0x70]
jb 0x14001e8c1
mov r13, qword [rsp + 0x30]
mov edi, dword [rbp + 0x14bc]
mov esi, dword [rbp + 0x14c4]
mov r14, qword [rsp + 0x58]
lea rcx, [r14 + 0x60]
mov rax, qword [r15 + 0x10]
mov dword [r14 + 0x5c], eax
mov r8, qword [r15 + 0x10]
cmp qword [r15 + 0x18], 0x10
jb 0x14001e943
mov r15, qword [r15]
mov rdx, r15
call sub.MSVCR120.dll_memcpy
mov ecx, edi
mov rax, qword [r12 + 0x10]
mov dword [rcx + r14 + 0x5c], eax
mov r8, qword [r12 + 0x10]
cmp qword [r12 + 0x18], 0x10
jb 0x14001e968
mov r12, qword [r12]
mov rdx, r12
add rcx, 0x60
add rcx, r14
call sub.MSVCR120.dll_memcpy
mov ecx, esi
mov rax, qword [r13 + 0x10]
mov dword [rcx + r14 + 0x5c], eax
mov r8, qword [r13 + 0x10]
cmp qword [r13 + 0x18], 0x10
jb 0x14001e991
mov r13, qword [r13]
mov rdx, r13
add rcx, 0x60
add rcx, r14
call sub.MSVCR120.dll_memcpy
movups xmm0, xmmword [rbp + 0x1490]
movups xmmword [r14 + 4], xmm0
movups xmm1, xmmword [rbp + 0x14a0]
movups xmmword [r14 + 0x14], xmm1
movups xmm0, xmmword [rbp + 0x14b0]
movups xmmword [r14 + 0x24], xmm0
movsd xmm1, qword [rbp + 0x14c0]
movsd qword [r14 + 0x34], xmm1
mov eax, dword [rsp + 0x20]
mov dword [r14 + 0x3c], eax
mov ecx, ebx
mov dword [rbp - 0x30], ecx
mov qword [rbp - 0x28], rbx
mov dword [rbp - 0x20], 0x6a09e667
mov dword [rbp - 0x1c], 0xbb67ae85
mov dword [rbp - 0x18], 0x3c6ef372
mov dword [rbp - 0x14], 0xa54ff53a
mov dword [rbp - 0x10], 0x510e527f
mov dword [rbp - 0xc], 0x9b05688c
mov dword [rbp - 8], 0x1f83d9ab
mov dword [rbp - 4], 0x5be0cd19
xor eax, eax
mov qword [rbp + 0x1491], rax
mov dword [rbp + 0x1499], eax
mov word [rbp + 0x149d], ax
mov byte [rbp + 0x149f], al
mov qword [rbp + 0x1491], rax
mov dword [rbp + 0x1499], eax
mov word [rbp + 0x149d], ax
mov byte [rbp + 0x149f], al
movdqa xmm0, xmmword [0x140144a30]
movdqu xmmword [rbp + 0x1490], xmm0
lea rax, [rbp + 0x1490]
mov qword [rsp + 0x38], rax
mov edx, 0x10
mov r8d, edx
mov qword [rsp + 0x30], rdx
lea edi, [rdx - 0xe]
nop dword [rax]
movzx eax, byte [rax]
mov byte [rbp + rcx - 0x70], al
mov ecx, dword [rbp - 0x30]
inc ecx
mov dword [rbp - 0x30], ecx
cmp ecx, 0x40
jne 0x14001ec86
lea r8, [rbp + 0x1390]
mov r10, rdx
mov r9d, edx
nop word [rax + rax]
lea eax, [rdi - 2]
movzx edx, byte [rbp + rax - 0x70]
shl edx, 8
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
shl edx, 8
mov eax, edi
movzx ecx, byte [rbp + rax - 0x70]
or edx, ecx
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
mov dword [r8], edx
lea r8, [r8 + 4]
add edi, 4
dec r10
jne 0x14001eab0
lea r10, [rbp + 0x13d0]
nop dword [rax]
nop dword [rax + rax]
lea eax, [r9 - 0xf]
mov edi, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x1390]
mov r8d, edx
rol r8d, 0xf
mov eax, edx
rol eax, 0xd
xor r8d, eax
shr edx, 0xa
xor r8d, edx
mov ecx, edi
rol ecx, 0xe
mov eax, edi
ror eax, 7
xor ecx, eax
shr edi, 3
xor ecx, edi
add r8d, ecx
lea eax, [r9 - 0x10]
add r8d, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 7]
add r8d, dword [rbp + rax*4 + 0x1390]
mov dword [r10], r8d
inc r9d
lea r10, [r10 + 4]
cmp r9d, 0x40
jb 0x14001eb00
mov r13d, dword [rbp - 0x20]
mov r8d, dword [rbp - 0x1c]
mov r10d, dword [rbp - 0x18]
mov r11d, dword [rbp - 0x14]
mov dword [rsp + 0x28], r11d
mov esi, dword [rbp - 0x10]
mov dword [rsp + 0x24], esi
mov r11d, dword [rbp - 0xc]
mov esi, dword [rbp - 8]
mov r15d, dword [rbp - 4]
mov r9, rbx
mov r12d, 0x40
mov ebx, dword [rsp + 0x24]
mov r14d, dword [rsp + 0x28]
mov edi, ebx
ror edi, 0xb
mov eax, ebx
rol eax, 7
xor edi, eax
mov eax, ebx
ror eax, 6
xor edi, eax
mov ecx, ebx
not ecx
and ecx, esi
mov eax, r11d
and eax, ebx
xor ecx, eax
add edi, ecx
add edi, dword [rbp + r9 + 0x1390]
lea rax, [0x14013dad0]
add edi, dword [r9 + rax]
add edi, r15d
mov edx, r13d
ror edx, 0xd
mov eax, r13d
rol eax, 0xa
xor edx, eax
mov eax, r13d
ror eax, 2
xor edx, eax
mov ecx, r8d
xor ecx, r13d
and ecx, r10d
mov eax, r8d
and eax, r13d
xor ecx, eax
add edx, ecx
mov r15d, esi
mov esi, r11d
mov r11d, ebx
lea ebx, [rdi + r14]
mov r14d, r10d
mov r10d, r8d
mov r8d, r13d
lea r13d, [rdx + rdi]
lea r9, [r9 + 4]
dec r12
jne 0x14001eba0
mov dword [rsp + 0x48], r15d
add dword [rbp - 0x20], r13d
mov r9d, dword [rbp - 0x1c]
add r9d, r8d
mov dword [rbp - 0x1c], r9d
mov eax, r10d
add dword [rbp - 0x18], eax
add dword [rbp - 0x14], r14d
add dword [rbp - 0x10], ebx
mov r14d, dword [rbp - 0xc]
add r14d, r11d
mov dword [rbp - 0xc], r14d
mov r15d, dword [rbp - 8]
add r15d, esi
mov dword [rbp - 8], r15d
mov r12d, dword [rbp - 4]
add r12d, dword [rsp + 0x48]
mov dword [rbp - 4], r12d
add qword [rbp - 0x28], 0x200
xor ebx, ebx
mov ecx, ebx
mov dword [rbp - 0x30], ecx
lea edx, [rbx + 0x10]
lea edi, [rbx + 2]
mov r8, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
dec r8
mov qword [rsp + 0x30], r8
jne 0x14001ea80
movdqa xmm0, xmmword [0x140144a20]
movdqu xmmword [rbp + 0x1490], xmm0
mov r8, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
sub r8d, eax
je 0x14001eef4
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r8
nop
movzx eax, byte [rax]
mov byte [rbp + rcx - 0x70], al
mov ecx, dword [rbp - 0x30]
inc ecx
mov dword [rbp - 0x30], ecx
cmp ecx, 0x40
jne 0x14001eed1
lea r8, [rbp + 0x1390]
mov r10, rdx
mov r9d, edx
nop word [rax + rax]
lea eax, [rdi - 2]
movzx edx, byte [rbp + rax - 0x70]
shl edx, 8
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
shl edx, 8
mov eax, edi
movzx ecx, byte [rbp + rax - 0x70]
or edx, ecx
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
mov dword [r8], edx
lea r8, [r8 + 4]
add edi, 4
dec r10
jne 0x14001ed00
lea r10, [rbp + 0x13d0]
nop dword [rax]
nop dword [rax + rax]
lea eax, [r9 - 0xf]
mov edi, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x1390]
mov r8d, edx
rol r8d, 0xf
mov eax, edx
rol eax, 0xd
xor r8d, eax
shr edx, 0xa
xor r8d, edx
mov ecx, edi
rol ecx, 0xe
mov eax, edi
ror eax, 7
xor ecx, eax
shr edi, 3
xor ecx, edi
add r8d, ecx
lea eax, [r9 - 0x10]
add r8d, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 7]
add r8d, dword [rbp + rax*4 + 0x1390]
mov dword [r10], r8d
inc r9d
lea r10, [r10 + 4]
cmp r9d, 0x40
jb 0x14001ed50
mov r8d, dword [rbp - 0x20]
mov r11d, dword [rbp - 0x1c]
mov dword [rsp + 0x20], r11d
mov r11d, dword [rbp - 0x18]
mov r14d, dword [rbp - 0x14]
mov dword [rsp + 0x24], r14d
mov r9d, dword [rbp - 0x10]
mov esi, dword [rbp - 0xc]
mov r14d, dword [rbp - 8]
mov r12d, dword [rbp - 4]
mov r10, rbx
mov r13d, 0x40
mov ebx, dword [rsp + 0x20]
mov r15d, dword [rsp + 0x24]
mov edi, r9d
ror edi, 0xb
mov eax, r9d
rol eax, 7
xor edi, eax
mov eax, r9d
ror eax, 6
xor edi, eax
mov ecx, r9d
not ecx
and ecx, r14d
mov eax, esi
and eax, r9d
xor ecx, eax
add edi, ecx
add edi, dword [rbp + r10 + 0x1390]
lea rax, [0x14013dad0]
add edi, dword [r10 + rax]
add edi, r12d
mov edx, r8d
ror edx, 0xd
mov eax, r8d
rol eax, 0xa
xor edx, eax
mov eax, r8d
ror eax, 2
xor edx, eax
mov ecx, ebx
xor ecx, r8d
and ecx, r11d
mov eax, ebx
and eax, r8d
xor ecx, eax
add edx, ecx
mov r12d, r14d
mov r14d, esi
mov esi, r9d
lea r9d, [rdi + r15]
mov r15d, r11d
mov r11d, ebx
mov ebx, r8d
lea r8d, [rdx + rdi]
lea r10, [r10 + 4]
dec r13
jne 0x14001edf2
mov dword [rsp + 0x2c], r12d
mov dword [rsp + 0x24], esi
add dword [rbp - 0x20], r8d
add dword [rbp - 0x1c], ebx
mov esi, dword [rbp - 0x18]
add esi, r11d
mov dword [rbp - 0x18], esi
add dword [rbp - 0x14], r15d
add dword [rbp - 0x10], r9d
mov r12d, dword [rbp - 0xc]
add r12d, dword [rsp + 0x24]
mov dword [rbp - 0xc], r12d
mov r13d, dword [rbp - 8]
add r13d, r14d
mov dword [rbp - 8], r13d
mov eax, dword [rsp + 0x2c]
add dword [rbp - 4], eax
add qword [rbp - 0x28], 0x200
xor ebx, ebx
mov ecx, ebx
mov dword [rbp - 0x30], ecx
mov r8, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
dec r8
mov qword [rsp + 0x30], r8
mov edx, 0x10
lea edi, [rdx - 0xe]
jne 0x14001ecd0
lea rax, [rbp + 0x1490]
mov qword [rsp + 0x38], rax
mov r11d, setsockopt
mov edx, r11d
mov qword [rsp + 0x30], rdx
nop
movzx eax, byte [rax]
mov byte [rbp + rcx - 0x70], al
mov ecx, dword [rbp - 0x30]
inc ecx
mov dword [rbp - 0x30], ecx
cmp ecx, 0x40
jne 0x14001f115
mov edi, 2
lea r8, [rbp + 0x1390]
mov r10, r11
mov r9d, r11d
nop word [rax + rax]
lea eax, [rdi - 2]
movzx edx, byte [rbp + rax - 0x70]
shl edx, 8
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
shl edx, 8
mov eax, edi
movzx ecx, byte [rbp + rax - 0x70]
or edx, ecx
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
mov dword [r8], edx
lea r8, [r8 + 4]
add edi, 4
dec r10
jne 0x14001ef40
lea r10, [rbp + 0x13d0]
nop dword [rax]
nop dword [rax + rax]
lea eax, [r9 - 0xf]
mov edi, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x1390]
mov r8d, edx
rol r8d, 0xf
mov eax, edx
rol eax, 0xd
xor r8d, eax
shr edx, 0xa
xor r8d, edx
mov ecx, edi
rol ecx, 0xe
mov eax, edi
ror eax, 7
xor ecx, eax
shr edi, 3
xor ecx, edi
add r8d, ecx
lea eax, [r9 - 0x10]
add r8d, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 7]
add r8d, dword [rbp + rax*4 + 0x1390]
mov dword [r10], r8d
inc r9d
lea r10, [r10 + 4]
cmp r9d, 0x40
jb 0x14001ef90
mov r8d, dword [rbp - 0x20]
mov r11d, dword [rbp - 0x1c]
mov dword [rsp + 0x20], r11d
mov r11d, dword [rbp - 0x18]
mov r14d, dword [rbp - 0x14]
mov dword [rsp + 0x24], r14d
mov r9d, dword [rbp - 0x10]
mov esi, dword [rbp - 0xc]
mov r14d, dword [rbp - 8]
mov r12d, dword [rbp - 4]
mov r10, rbx
mov r13d, 0x40
mov ebx, dword [rsp + 0x20]
mov r15d, dword [rsp + 0x24]
mov edi, r9d
ror edi, 0xb
mov eax, r9d
rol eax, 7
xor edi, eax
mov eax, r9d
ror eax, 6
xor edi, eax
mov ecx, r9d
not ecx
and ecx, r14d
mov eax, esi
and eax, r9d
xor ecx, eax
add edi, ecx
add edi, dword [rbp + r10 + 0x1390]
lea rax, [0x14013dad0]
add edi, dword [r10 + rax]
add edi, r12d
mov edx, r8d
ror edx, 0xd
mov eax, r8d
rol eax, 0xa
xor edx, eax
mov eax, r8d
ror eax, 2
xor edx, eax
mov ecx, ebx
xor ecx, r8d
and ecx, r11d
mov eax, ebx
and eax, r8d
xor ecx, eax
add edx, ecx
mov r12d, r14d
mov r14d, esi
mov esi, r9d
lea r9d, [rdi + r15]
mov r15d, r11d
mov r11d, ebx
mov ebx, r8d
lea r8d, [rdx + rdi]
lea r10, [r10 + 4]
dec r13
jne 0x14001f032
mov dword [rsp + 0x2c], r12d
mov dword [rsp + 0x24], esi
add dword [rbp - 0x20], r8d
add dword [rbp - 0x1c], ebx
mov esi, dword [rbp - 0x18]
add esi, r11d
mov dword [rbp - 0x18], esi
add dword [rbp - 0x14], r15d
add dword [rbp - 0x10], r9d
mov r12d, dword [rbp - 0xc]
add r12d, dword [rsp + 0x24]
mov dword [rbp - 0xc], r12d
mov r13d, dword [rbp - 8]
add r13d, r14d
mov dword [rbp - 8], r13d
mov eax, dword [rsp + 0x2c]
add dword [rbp - 4], eax
add qword [rbp - 0x28], 0x200
xor ebx, ebx
mov ecx, ebx
mov dword [rbp - 0x30], ebx
lea r11d, [rbx + 0x10]
mov rdx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
dec rdx
mov qword [rsp + 0x30], rdx
jne 0x14001ef10
mov byte [rbp + rcx - 0x70], pe_nt_image_headers64
lea edx, [rcx + 1]
cmp ecx, 0x38
jae 0x14001f182
cmp edx, 0x38
jae 0x14001f156
mov ecx, gethostname
sub ecx, edx
mov eax, edx
lea rdi, [rbp - 0x70]
add rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov r10d, dword [rbp - 4]
mov esi, dword [rbp - 8]
mov r14d, dword [rbp - 0xc]
mov r15d, dword [rbp - 0x10]
mov r12d, dword [rbp - 0x14]
mov r13d, dword [rbp - 0x18]
mov eax, dword [rbp - 0x1c]
mov dword [rsp + 0x50], eax
mov r9d, dword [rbp - 0x20]
mov dword [rsp + 0x4c], r9d
jmp 0x14001f422
cmp edx, 0x40
jae 0x14001f19b
mov ecx, 0x40
sub ecx, edx
mov eax, edx
lea rdi, [rbp - 0x70]
add rdi, rax
xor eax, eax
rep stosb byte [rdi], al
mov edi, 2
lea r8, [rbp + 0x1390]
mov r10, r11
mov r9d, r11d
nop dword [rax]
lea eax, [rdi - 2]
movzx edx, byte [rbp + rax - 0x70]
shl edx, 8
lea eax, [rdi - 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
shl edx, 8
mov eax, edi
movzx ecx, byte [rbp + rax - 0x70]
or edx, ecx
shl edx, 8
lea eax, [rdi + 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
mov dword [r8], edx
lea r8, [r8 + 4]
add edi, 4
dec r10
jne 0x14001f1b0
lea r10, [rbp + 0x13d0]
nop dword [rax]
nop dword [rax + rax]
lea eax, [r9 - 0xf]
mov edi, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x1390]
mov r8d, edx
rol r8d, 0xf
mov eax, edx
rol eax, 0xd
xor r8d, eax
shr edx, 0xa
xor r8d, edx
mov ecx, edi
rol ecx, 0xe
mov eax, edi
ror eax, 7
xor ecx, eax
shr edi, 3
xor ecx, edi
add r8d, ecx
lea eax, [r9 - 0x10]
add r8d, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 7]
add r8d, dword [rbp + rax*4 + 0x1390]
mov dword [r10], r8d
inc r9d
lea r10, [r10 + 4]
cmp r9d, 0x40
jb 0x14001f200
mov r9d, dword [rbp - 0x20]
mov dword [rsp + 0x4c], r9d
mov r11d, r9d
mov r8d, dword [rbp - 0x1c]
mov dword [rsp + 0x50], r8d
mov dword [rsp + 0x40], r8d
mov r13d, dword [rbp - 0x18]
mov dword [rsp + 0x54], r13d
mov dword [rsp + 0x30], r13d
mov r12d, dword [rbp - 0x14]
mov dword [rsp + 0x48], r12d
mov r13d, r12d
mov r15d, dword [rbp - 0x10]
mov dword [rsp + 0x2c], r15d
mov dword [rbp + 0x1490], r15d
mov r14d, dword [rbp - 0xc]
mov dword [rsp + 0x28], r14d
mov r15d, r14d
mov esi, dword [rbp - 8]
mov dword [rsp + 0x24], esi
mov r12d, esi
mov r10d, dword [rbp - 4]
mov dword [rsp + 0x20], r10d
mov r8d, r10d
mov rsi, rbx
mov r9d, 0x40
mov ebx, dword [rbp + 0x1490]
mov r10d, dword [rsp + 0x40]
mov r14d, dword [rsp + 0x30]
nop word [rax + rax]
mov edi, ebx
ror edi, 0xb
mov eax, ebx
rol eax, 7
xor edi, eax
mov eax, ebx
ror eax, 6
xor edi, eax
mov ecx, ebx
not ecx
and ecx, r12d
mov eax, r15d
and eax, ebx
xor ecx, eax
add edi, ecx
add edi, dword [rbp + rsi + 0x1390]
lea rax, [0x14013dad0]
add edi, dword [rsi + rax]
add edi, r8d
mov edx, r11d
ror edx, 0xd
mov eax, r11d
rol eax, 0xa
xor edx, eax
mov eax, r11d
ror eax, 2
xor edx, eax
mov ecx, r10d
xor ecx, r11d
and ecx, r14d
mov eax, r10d
and eax, r11d
xor ecx, eax
add edx, ecx
mov r8d, r12d
mov r12d, r15d
mov r15d, ebx
lea ebx, [rdi + r13]
mov r13d, r14d
mov r14d, r10d
mov r10d, r11d
lea r11d, [rdx + rdi]
lea rsi, [rsi + 4]
dec r9
jne 0x14001f2f0
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], r13d
mov dword [rbp + 0x1490], r12d
mov dword [rsp + 0x40], r15d
mov r9d, dword [rsp + 0x4c]
add r9d, r11d
mov dword [rsp + 0x4c], r9d
mov dword [rbp - 0x20], r9d
mov r8d, dword [rsp + 0x50]
add r8d, r10d
mov dword [rsp + 0x50], r8d
mov dword [rbp - 0x1c], r8d
mov r13d, dword [rsp + 0x54]
add r13d, r14d
mov dword [rbp - 0x18], r13d
mov r12d, dword [rsp + 0x48]
add r12d, dword [rsp + 0x30]
mov dword [rbp - 0x14], r12d
mov r15d, dword [rsp + 0x2c]
add r15d, ebx
mov dword [rbp - 0x10], r15d
mov r14d, dword [rsp + 0x28]
add r14d, dword [rsp + 0x40]
mov dword [rbp - 0xc], r14d
mov esi, dword [rsp + 0x24]
add esi, dword [rbp + 0x1490]
mov dword [rbp - 8], esi
mov r10d, dword [rsp + 0x20]
add r10d, dword [rsp + 0x38]
mov dword [rbp - 4], r10d
xor eax, eax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
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
xor ebx, ebx
lea r11d, [rax + 0x10]
mov dword [rsp + 0x54], r13d
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x2c], r15d
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x24], esi
mov dword [rsp + 0x20], r10d
mov eax, dword [rbp - 0x30]
lea ecx, [rax*8]
mov rdx, qword [rbp - 0x28]
add rdx, rcx
mov qword [rbp - 0x28], rdx
movzx eax, dl
mov byte [rbp - 0x31], dl
mov rax, rdx
shr rax, 8
mov byte [rbp - 0x32], al
mov rax, rdx
shr rax, 0x10
mov byte [rbp - 0x33], al
mov rax, rdx
shr rax, 0x18
mov byte [rbp - 0x34], al
mov rax, rdx
shr rax, 0x20
mov byte [rbp - 0x35], al
mov rax, rdx
shr rax, 0x28
mov byte [rbp - 0x36], al
mov rax, rdx
shr rax, 0x30
mov byte [rbp - 0x37], al
shr rdx, 0x38
mov byte [rbp - 0x38], dl
lea rdi, [rbp + 0x1390]
mov r9d, r11d
mov r8d, 2
nop dword [rax]
lea eax, [r8 - 2]
movzx edx, byte [rbp + rax - 0x70]
shl edx, 8
lea eax, [r8 - 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
shl edx, 8
mov eax, r8d
movzx ecx, byte [rbp + rax - 0x70]
or edx, ecx
shl edx, 8
lea eax, [r8 + 1]
movzx eax, byte [rbp + rax - 0x70]
or edx, eax
mov dword [rdi], edx
lea rdi, [rdi + 4]
add r8d, 4
dec r11
jne 0x14001f4b0
lea r11, [rbp + 0x13d0]
nop dword [rax + rax]
lea eax, [r9 - 0xf]
mov edi, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 2]
mov edx, dword [rbp + rax*4 + 0x1390]
mov r8d, edx
rol r8d, 0xf
mov eax, edx
rol eax, 0xd
xor r8d, eax
shr edx, 0xa
xor r8d, edx
mov ecx, edi
rol ecx, 0xe
mov eax, edi
ror eax, 7
xor ecx, eax
shr edi, 3
xor ecx, edi
add r8d, ecx
lea eax, [r9 - 7]
add r8d, dword [rbp + rax*4 + 0x1390]
lea eax, [r9 - 0x10]
add r8d, dword [rbp + rax*4 + 0x1390]
mov dword [r11], r8d
inc r9d
lea r11, [r11 + 4]
cmp r9d, 0x40
jb 0x14001f500
mov r11d, dword [rsp + 0x4c]
mov r9d, dword [rsp + 0x50]
mov dword [rsp + 0x40], r12d
mov r8d, r15d
mov dword [rsp + 0x30], r14d
mov r14d, esi
mov r12d, r10d
mov r10d, r13d
mov esi, dword [rsp + 0x30]
mov r15d, dword [rsp + 0x40]
mov r13d, 0x40
nop word [rax + rax]
mov edi, r8d
ror edi, 0xb
mov eax, r8d
rol eax, 7
xor edi, eax
mov eax, r8d
ror eax, 6
xor edi, eax
mov ecx, r8d
not ecx
and ecx, r14d
mov eax, esi
and eax, r8d
xor ecx, eax
add edi, ecx
add edi, dword [rbp + rbx + 0x1390]
lea rax, [0x14013dad0]
add edi, dword [rbx + rax]
add edi, r12d
mov edx, r11d
ror edx, 0xd
mov eax, r11d
rol eax, 0xa
xor edx, eax
mov eax, r11d
ror eax, 2
xor edx, eax
mov ecx, r9d
xor ecx, r11d
and ecx, r10d
mov eax, r9d
and eax, r11d
xor ecx, eax
add edx, ecx
mov r12d, r14d
mov r14d, esi
mov esi, r8d
lea r8d, [rdi + r15]
mov r15d, r10d
mov r10d, r9d
mov r9d, r11d
lea r11d, [rdx + rdi]
lea rbx, [rbx + 4]
dec r13
jne 0x14001f5a0
mov dword [rbp + 0x1490], r12d
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x38], r9d
mov dword [rsp + 0x30], r8d
mov r9d, dword [rsp + 0x4c]
add r9d, r11d
mov r8d, dword [rsp + 0x50]
add r8d, dword [rsp + 0x38]
mov r13d, dword [rsp + 0x54]
add r13d, r10d
mov r12d, dword [rsp + 0x48]
add r12d, r15d
mov r15d, dword [rsp + 0x2c]
add r15d, dword [rsp + 0x30]
mov r14d, dword [rsp + 0x28]
add r14d, esi
mov esi, dword [rsp + 0x24]
add esi, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x20]
add r10d, dword [rbp + 0x1490]
xor ebx, ebx
mov edi, ebx
mov r11, qword [rsp + 0x58]
add r11, 8
lea rdx, [r11 + 8]
nop word [rax + rax]
mov ecx, 3
sub ecx, edi
shl ecx, 3
mov eax, r9d
shr eax, cl
mov byte [r11], al
mov eax, r8d
shr eax, cl
mov byte [rdx - 4], al
mov eax, r13d
shr eax, cl
mov byte [rdx], al
mov eax, r12d
shr eax, cl
mov byte [rdx + 4], al
mov eax, r15d
shr eax, cl
mov byte [rdx + 8], al
mov eax, r14d
shr eax, cl
mov byte [rdx + 0xc], al
mov eax, esi
shr eax, cl
mov byte [rdx + 0x10], al
mov eax, r10d
shr eax, cl
mov byte [rdx + 0x14], al
inc edi
lea rdx, [rdx + 1]
lea r11, [r11 + 1]
cmp edi, 4
jb 0x14001f6a0
movdqa xmm0, xmmword [0x140144a50]
movdqu xmmword [rbp + 0x1490], xmm0
movdqa xmm1, xmmword [0x140144a10]
movdqu xmmword [rbp + 0x14a0], xmm1
mov r14, qword [rsp + 0x70]
test r14, r14
je 0x14001f7c4
mov byte [rsp + 0x44], 1
mov esi, 0x20
mov ecx, esi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + rbx + 0x1490]
mov byte [rbp + rbx - 0x30], al
mov byte [rbp + rbx - 0x50], al
lea rbx, [rbx + 1]
dec rcx
jne 0x14001f740
mov dil, 7
nop dword [rax]
lea rdx, [rsp + 0x44]
lea rcx, [rbp - 0x30]
call fcn.14001b310
add dil, 0xff
jne 0x14001f760
shr r14, 4
mov rdi, qword [rsp + 0x58]
test r14d, r14d
je 0x14001f7a5
mov ebx, r14d
nop word [rax + rax]
mov rdx, rdi
lea rcx, [rbp - 0x70]
call fcn.14001b760
add rdi, 0x10
dec rbx
jne 0x14001f790
lea rdx, [rbp - 0x50]
nop dword [rax]
mov byte [rdx + 0x20], 0
mov byte [rdx], 0
mov byte [rdx - 0x20], 0
lea rdx, [rdx + 1]
dec rsi
jne 0x14001f7b0
lea rdx, [rsp + 0x58]
mov rdi, qword [rbp - 0x80]
mov rcx, rdi
call fcn.140020290
nop
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14001f7e9
mov rcx, rax
call qword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void____ptr64_]
mov rax, rdi
mov rcx, qword [rbp + 0x14d0]
xor rcx, rsp
call fcn.14010a480
mov rbx, qword [rsp + 0x1620]
add rsp, 0x15e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret