Function at 0x180042770
Capabilities:
Encode data using xor
Hash data using fnv
Hash data using murmur3

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2d0]
sub rsp, 0x3d0
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x428], rbx
mov rax, qword [0x1800cc218]
xor rax, rsp
mov qword [rbp + 0x2c0], rax
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x60], rdx
mov rbx, rcx
mov edx, 3
lea r8d, [rdx - 2]
lea rcx, [rbp - 0x80]
call fcn.180014ed0
nop
mov rcx, rbx
shr rcx, 0x20
mov eax, ebx
xor eax, 0x811c9dc5
imul r13d, eax, 0x1000193
mov eax, r13d
xor eax, ecx
imul r14d, eax, 0x1000193
mov eax, r14d
xor eax, ebx
imul r15d, eax, 0x1000193
mov eax, r15d
xor eax, ecx
imul r12d, eax, 0x1000193
xor esi, esi
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x44], esi
movdqa xmm2, xmmword [0x180099ab0]
mov edx, 8
xor ecx, ecx
nop
lea eax, [rdx - 8]
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
movdqu xmmword [rbp + rcx + 0x1c0], xmm0
movdqu xmmword [rbp + rcx + 0x240], xmm0
lea eax, [rdx - 4]
movd xmm1, eax
pshufd xmm1, xmm1, 0
paddd xmm1, xmm2
movdqu xmmword [rbp + rcx + 0x1d0], xmm1
movdqu xmmword [rbp + rcx + 0x250], xmm1
movd xmm0, edx
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
movdqu xmmword [rbp + rcx + 0x1e0], xmm0
movdqu xmmword [rbp + rcx + 0x260], xmm0
lea eax, [rdx + 4]
movd xmm1, eax
pshufd xmm1, xmm1, 0
paddd xmm1, xmm2
movdqu xmmword [rbp + rcx + 0x1f0], xmm1
movdqu xmmword [rbp + rcx + 0x270], xmm1
add edx, 0x10
lea rcx, [rcx + 0x40]
lea eax, [rdx - 8]
cmp eax, 0x20
jl 0x180042820
mov edi, 0x20
xor ebx, ebx
nop
movzx edx, r13w
imul r8d, edx, 0x9069
mov eax, r13d
shr eax, 0x10
add r8d, eax
movzx eax, r14w
imul r11d, eax, 0x4650
shr r14d, 0x10
add r11d, r14d
and r13d, 0xffff0000
imul eax, edx, 0x6f970000
sub r13d, eax
add r13d, r11d
mov eax, r15d
shl eax, 0x11
xor eax, r15d
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r9d, ecx
shl r9d, 5
xor r9d, ecx
imul r10d, r12d, 0x10dcd
add r10d, 0x12d687
mov eax, r10d
xor eax, r13d
add eax, r9d
xor edx, edx
div edi
movsxd rax, edx
lea rdx, [rbp + 0x1c0]
lea rdx, [rdx + rax*4]
mov ecx, dword [rbp + rbx + 0x23c]
mov eax, dword [rdx]
mov dword [rbp + rbx + 0x23c], eax
mov dword [rdx], ecx
movzx eax, r8w
imul r13d, eax, 0x9069
shr r8d, 0x10
add r13d, r8d
movzx eax, r11w
imul r14d, eax, 0x4650
shr r11d, 0x10
add r14d, r11d
mov r8d, r13d
shl r8d, 0x10
add r8d, r14d
mov eax, r9d
shl eax, 0x11
xor eax, r9d
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r15d, ecx
shl r15d, 5
xor r15d, ecx
imul r12d, r10d, 0x10dcd
add r12d, 0x12d687
xor r8d, r12d
lea eax, [r15 + r8]
xor edx, edx
div edi
mov r8d, dword [rbp + rbx + 0x2bc]
movsxd rax, edx
lea rcx, [rbp + 0x240]
lea rcx, [rcx + rax*4]
mov eax, dword [rcx]
mov dword [rbp + rbx + 0x2bc], eax
mov dword [rcx], r8d
dec edi
sub rbx, 4
cmp rbx, 0xffffffffffffff84
jg 0x1800428c0
mov dword [rsp + 0x40], r12d
mov dword [rsp + 0x3c], r15d
mov dword [rsp + 0x38], r14d
mov dword [rsp + 0x48], r13d
xor ebx, ebx
mov edi, ebx
mov dword [rsp + 0x34], edi
cmp edi, 0x11
jg 0x180043e22
cmp edi, 0xb
jge 0x18004322f
mov eax, dword [rsp + 0x44]
and eax, 0x8000001f
jge 0x180042a21
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov r8d, dword [rbp + rax*4 + 0x240]
lea r9, [rbp + 0x115]
test r8d, r8d
jns 0x180042a80
neg r8d
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x180042a40
dec r9
mov byte [r9], 0x2d
jmp 0x180042aaa
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x180042a80
mov qword [rbp + 0x130], rbx
mov qword [rbp + 0x138], 0xf
mov byte [rbp + 0x120], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x180042ae9
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0x120]
call fcn.180018da0
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0x120]
call fcn.1800208e0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xa0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xb0], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rcx, qword [rbp + 0xb0]
mov rdx, qword [rbp + 0xb8]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x180042b95
lea rax, [rcx + 1]
mov qword [rbp + 0xb0], rax
lea rbx, [rbp + 0xa0]
cmp rdx, 0x10
cmovae rbx, qword [rbp + 0xa0]
add rbx, rcx
mov r8d, 1
lea rdx, [0x180097238]
mov rcx, rbx
call fcn.18004a220
mov byte [rbx + 1], 0
lea rax, [rbp + 0xa0]
xor ebx, ebx
jmp 0x180042bb8
mov qword [rsp + 0x20], 1
lea r9, [0x180097238]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0xa0]
call fcn.1800136e0
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xe0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf0], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
inc dword [rsp + 0x44]
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x180042c2f
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180042c2a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443a5
call fcn.1800467e0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0x138]
cmp rdx, 0x10
jb 0x180042c89
inc rdx
mov rcx, qword [rbp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180042c84
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443ab
call fcn.1800467e0
mov qword [rbp + 0x130], rbx
mov qword [rbp + 0x138], 0xf
mov byte [rbp + 0x120], 0
mov eax, esi
and eax, 0x8000001f
jge 0x180042cb2
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov ecx, dword [rbp + rax*4 + 0x1c0]
lea r9, [rbp + 0x115]
test ecx, ecx
jns 0x180042d10
neg ecx
nop dword [rax + rax]
dec r9
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dl
shl al, 2
lea r8d, [rax + rdx]
add r8b, r8b
sub cl, r8b
add cl, 0x30
mov byte [r9], cl
mov ecx, edx
test edx, edx
jne 0x180042cd0
dec r9
mov byte [r9], 0x2d
jmp 0x180042d39
dec r9
mov eax, 0xcccccccd
mul ecx
shr edx, 3
movzx eax, dl
shl al, 2
lea r8d, [rax + rdx]
add r8b, r8b
sub cl, r8b
add cl, 0x30
mov byte [r9], cl
mov ecx, edx
test edx, edx
jne 0x180042d10
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x180042d78
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0xc0]
call fcn.180018da0
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0xc0]
call fcn.1800208e0
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x90], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x98]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x180042e24
lea rax, [rcx + 1]
mov qword [rbp + 0x90], rax
lea rbx, [rbp + 0x80]
cmp rdx, 0x10
cmovae rbx, qword [rbp + 0x80]
add rbx, rcx
mov r8d, 1
lea rdx, [0x180097238]
mov rcx, rbx
call fcn.18004a220
mov byte [rbx + 1], 0
lea rax, [rbp + 0x80]
xor ebx, ebx
jmp 0x180042e47
mov qword [rsp + 0x20], 1
lea r9, [0x180097238]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0x80]
call fcn.1800136e0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x140], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x150], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
inc esi
mov dword [rsp + 0x30], esi
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x180042eb2
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180042ead
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443b1
call fcn.1800467e0
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x180042f0c
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180042f07
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443b7
call fcn.1800467e0
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
movzx eax, r13w
imul ecx, eax, 0x9069
shr r13d, 0x10
add r13d, ecx
mov dword [rsp + 0x48], r13d
movzx eax, r14w
imul ecx, eax, 0x4650
shr r14d, 0x10
add ecx, r14d
mov dword [rsp + 0x38], ecx
mov edx, r13d
shl edx, 0x10
add edx, ecx
mov eax, r15d
shl eax, 0x11
xor eax, r15d
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r8d, ecx
shl r8d, 5
xor r8d, ecx
mov dword [rsp + 0x3c], r8d
imul eax, r12d, 0x10dcd
add eax, 0x12d687
mov dword [rsp + 0x40], eax
mov r12d, eax
xor r12d, edx
add r12d, r8d
lea rdx, str.___cache_load
lea rcx, [rbp - 0x70]
call fcn.180012d60
mov rcx, rax
mov edx, edi
call fcn.180040a30
mov rcx, rax
lea rdx, [0x180097244]
call fcn.180012d60
lea rdx, str.offset_
lea rcx, [rbp - 0x70]
call fcn.180012d60
lea rdx, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0x10
cmovae rdx, qword [rbp + 0xe0]
mov r8, qword [rbp + 0xf0]
mov rcx, rax
call fcn.1800401f0
mov rcx, rax
lea rdx, str.___PROGPOW_CACHE_WORDS__n
call fcn.180012d60
lea rdx, str.data__c_dag_offset___n
lea rcx, [rbp - 0x70]
call fcn.180012d60
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x70], rax
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov r8d, 4
lea rdx, str.data
lea rcx, [rbp + 0xa0]
call fcn.180018da0
nop
mov qword [rbp + 0x130], rbx
mov qword [rbp + 0x138], rbx
lea r14, [rbp + 0x140]
mov rdi, qword [rbp + 0x140]
mov r15, qword [rbp + 0x158]
cmp r15, 0x10
cmovae r14, rdi
mov rsi, qword [rbp + 0x150]
cmp rsi, 0x10
jae 0x1800430a0
movups xmm0, xmmword [r14]
movups xmmword [rbp + 0x120], xmm0
mov qword [rbp + 0x138], 0xf
jmp 0x180043121
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rax, [rbx + 1]
cmp rax, 0x1000
jb 0x1800430f5
lea rcx, [rax + 0x27]
cmp rcx, rax
mov rax, 0xffffffffffffffff
cmovbe rcx, rax
call fcn.1800467a4
mov rcx, rax
test rax, rax
je 0x1800443bd
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x180043102
test rax, rax
je 0x180043102
mov rcx, rax
call fcn.1800467a4
mov qword [rbp + 0x120], rax
lea r8, [rsi + 1]
mov rdx, r14
mov rcx, rax
call fcn.18004a220
mov qword [rbp + 0x138], rbx
xor ebx, ebx
mov qword [rbp + 0x130], rsi
mov r9d, r12d
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0x120]
lea rcx, [rbp + 0x100]
call fcn.1800454a0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x180043154
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1800401f0
nop
mov rdx, qword [rbp + 0x118]
cmp rdx, 0x10
jb 0x1800431a3
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004319d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443c3
call fcn.1800467e0
nop
cmp r15, 0x10
jb 0x1800431db
lea rdx, [r15 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x1800431d2
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443c9
mov rcx, rdi
call fcn.1800467e0
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x18004321c
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043217
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443cf
call fcn.1800467e0
mov edi, dword [rsp + 0x34]
mov r12d, dword [rsp + 0x40]
mov r15d, dword [rsp + 0x3c]
mov r14d, dword [rsp + 0x38]
cmp edi, 0x12
jge 0x180043e0b
movzx eax, r13w
imul esi, eax, 0x9069
shr r13d, 0x10
add esi, r13d
movzx eax, r14w
imul ecx, eax, 0x4650
shr r14d, 0x10
add r14d, ecx
mov r8d, esi
shl r8d, 0x10
add r8d, r14d
mov eax, r15d
shl eax, 0x11
xor eax, r15d
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r15d, ecx
shl r15d, 5
xor r15d, ecx
imul r12d, r12d, 0x10dcd
add r12d, 0x12d687
xor r8d, r12d
add r8d, r15d
mov eax, 0x8421085
mul r8d
mov ecx, r8d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 9
imul ecx, ecx, 0x3e0
sub r8d, ecx
mov eax, r8d
cdq
and edx, 0x1f
add eax, edx
mov ecx, eax
and eax, 0x1f
sub eax, edx
sar ecx, 5
mov r8d, eax
lea edi, [rcx + 1]
cmp ecx, eax
cmovl edi, ecx
lea r9, [rbp + 0x115]
test eax, eax
jns 0x180043320
neg r8d
nop dword [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x1800432e0
dec r9
mov byte [r9], 0x2d
jmp 0x18004334a
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x180043320
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x180043389
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0xe0]
call fcn.180018da0
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0xe0]
call fcn.1800208e0
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x90], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rcx, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x98]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x180043435
lea rax, [rcx + 1]
mov qword [rbp + 0x90], rax
lea rbx, [rbp + 0x80]
cmp rdx, 0x10
cmovae rbx, qword [rbp + 0x80]
add rbx, rcx
mov r8d, 1
lea rdx, [0x180097238]
mov rcx, rbx
call fcn.18004a220
mov byte [rbx + 1], 0
lea rax, [rbp + 0x80]
xor ebx, ebx
jmp 0x180043458
mov qword [rsp + 0x20], 1
lea r9, [0x180097238]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0x80]
call fcn.1800136e0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x160], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x170], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x1800434bd
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800434b8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443d5
call fcn.1800467e0
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], 0
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x180043517
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043512
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443db
call fcn.1800467e0
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
lea r9, [rbp + 0x115]
test edi, edi
jns 0x180043580
neg edi
nop dword [rax]
dec r9
mov eax, 0xcccccccd
mul edi
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub dil, cl
add dil, 0x30
mov byte [r9], dil
mov edi, edx
test edx, edx
jne 0x180043540
dec r9
mov byte [r9], 0x2d
jmp 0x1800435a8
dec r9
mov eax, 0xcccccccd
mul edi
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub dil, cl
add dil, 0x30
mov byte [r9], dil
mov edi, edx
test edx, edx
jne 0x180043580
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x1800435e7
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0xc0]
call fcn.180018da0
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0xc0]
call fcn.1800208e0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rbx
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xa0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xb0], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rcx, qword [rbp + 0xb0]
mov rdx, qword [rbp + 0xb8]
mov rax, rdx
sub rax, rcx
cmp rax, 1
jb 0x180043693
lea rax, [rcx + 1]
mov qword [rbp + 0xb0], rax
lea rbx, [rbp + 0xa0]
cmp rdx, 0x10
cmovae rbx, qword [rbp + 0xa0]
add rbx, rcx
mov r8d, 1
lea rdx, [0x180097238]
mov rcx, rbx
call fcn.18004a220
mov byte [rbx + 1], 0
lea rax, [rbp + 0xa0]
xor ebx, ebx
jmp 0x1800436b6
mov qword [rsp + 0x20], 1
lea r9, [0x180097238]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0xa0]
call fcn.1800136e0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x180], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x190], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x18004371b
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043716
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443e1
call fcn.1800467e0
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x180043775
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043770
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443e7
call fcn.1800467e0
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
movzx eax, si
imul edi, eax, 0x9069
shr esi, 0x10
add edi, esi
movzx eax, r14w
imul esi, eax, 0x4650
shr r14d, 0x10
add esi, r14d
mov edx, edi
shl edx, 0x10
add edx, esi
mov eax, r15d
shl eax, 0x11
xor eax, r15d
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov ebx, ecx
shl ebx, 5
xor ebx, ecx
imul r12d, r12d, 0x10dcd
add r12d, 0x12d687
mov r15d, r12d
xor r15d, edx
add r15d, ebx
mov r14d, dword [rsp + 0x30]
mov eax, r14d
and eax, 0x8000001f
jge 0x1800437f8
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov r8d, dword [rbp + rax*4 + 0x1c0]
lea r9, [rbp + 0x115]
test r8d, r8d
jns 0x180043850
neg r8d
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x180043811
dec r9
mov byte [r9], 0x2d
jmp 0x18004387a
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x180043850
xor r13d, r13d
mov qword [rbp + 0x130], r13
mov qword [rbp + 0x138], 0xf
mov byte [rbp + 0x120], r13b
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x1800438bc
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0x120]
call fcn.180018da0
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0x120]
call fcn.1800208e0
mov qword [rbp + 0xf0], r13
mov qword [rbp + 0xf8], r13
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xe0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf0], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8d, 1
lea rdx, [0x180097238]
lea rcx, [rbp + 0xe0]
call fcn.180018d10
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x1a0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x1b0], xmm1
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
inc r14d
mov dword [rsp + 0x30], r14d
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x18004398f
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004398a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443ed
call fcn.1800467e0
mov qword [rbp + 0xf0], r13
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
mov rdx, qword [rbp + 0x138]
cmp rdx, 0x10
jb 0x1800439e9
inc rdx
mov rcx, qword [rbp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800439e4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443f3
call fcn.1800467e0
mov qword [rbp + 0x130], r13
mov qword [rbp + 0x138], 0xf
mov byte [rbp + 0x120], 0
movzx eax, di
imul r13d, eax, 0x9069
shr edi, 0x10
add r13d, edi
mov dword [rsp + 0x48], r13d
movzx eax, si
imul ecx, eax, 0x4650
shr esi, 0x10
add ecx, esi
mov dword [rsp + 0x38], ecx
mov r14d, r13d
shl r14d, 0x10
add r14d, ecx
mov eax, ebx
shl eax, 0x11
xor eax, ebx
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r8d, ecx
shl r8d, 5
xor r8d, ecx
mov dword [rsp + 0x3c], r8d
imul r12d, r12d, 0x10dcd
add r12d, 0x12d687
mov dword [rsp + 0x40], r12d
xor r14d, r12d
add r14d, r8d
lea rdx, str.___random_math
lea rcx, [rbp - 0x70]
call fcn.180012d60
mov rcx, rax
mov edx, dword [rsp + 0x34]
call fcn.180040a30
mov rcx, rax
lea rdx, [0x180097244]
call fcn.180012d60
lea rax, [rbp + 0x80]
mov qword [rsp + 0x50], rax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x70], rax
xor ebx, ebx
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rbx
lea rsi, [rbp + 0x180]
cmp qword [rbp + 0x198], 0x10
cmovae rsi, qword [rbp + 0x180]
mov rdi, qword [rbp + 0x190]
cmp rdi, 0x10
jae 0x180043af7
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x98], 0xf
jmp 0x180043b3e
mov rbx, rdi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp + 0x80]
call fcn.180018cb0
mov qword [rbp + 0x80], rax
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.18004a220
mov qword [rbp + 0x98], rbx
xor ebx, ebx
mov qword [rbp + 0x90], rdi
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], rbx
lea rsi, [rbp + 0x160]
cmp qword [rbp + 0x178], 0x10
cmovae rsi, qword [rbp + 0x160]
mov rdi, qword [rbp + 0x170]
cmp rdi, 0x10
jae 0x180043b8e
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xb8], 0xf
jmp 0x180043bd5
mov rbx, rdi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp + 0xa0]
call fcn.180018cb0
mov qword [rbp + 0xa0], rax
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.18004a220
mov qword [rbp + 0xb8], rbx
xor ebx, ebx
mov qword [rbp + 0xb0], rdi
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
mov r8d, 4
lea rdx, str.data
lea rcx, [rbp + 0xc0]
call fcn.180018da0
nop
mov dword [rsp + 0x20], r15d
lea r9, [rbp + 0x80]
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x100]
call fcn.180044400
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x180043c44
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1800401f0
nop
mov rdx, qword [rbp + 0x118]
cmp rdx, 0x10
jb 0x180043c92
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043c8d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800443f9
call fcn.1800467e0
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x58], rax
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
mov r8d, 4
lea rdx, str.data
lea rcx, [rbp + 0xc0]
call fcn.180018da0
nop
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], rbx
lea rsi, [rbp + 0x1a0]
cmp qword [rbp + 0x1b8], 0x10
cmovae rsi, qword [rbp + 0x1a0]
mov rdi, qword [rbp + 0x1b0]
cmp rdi, 0x10
jae 0x180043d1a
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x98], 0xf
jmp 0x180043d5f
mov rbx, rdi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp + 0x80]
call fcn.180018cb0
mov qword [rbp + 0x80], rax
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.18004a220
mov qword [rbp + 0x98], rbx
mov qword [rbp + 0x90], rdi
mov r9d, r14d
lea r8, [rbp + 0xc0]
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0xa0]
call fcn.1800454a0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x180043d92
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1800401f0
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x180043de1
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043ddb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004439f
call fcn.1800467e0
nop
lea rcx, [rbp + 0x1a0]
call fcn.180015960
nop
lea rcx, [rbp + 0x180]
call fcn.180015960
nop
lea rcx, [rbp + 0x160]
call fcn.180015960
mov edi, dword [rsp + 0x34]
inc edi
mov r14d, dword [rsp + 0x38]
mov r15d, dword [rsp + 0x3c]
mov esi, dword [rsp + 0x30]
xor ebx, ebx
jmp 0x1800429f9
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x80]
call fcn.180046520
mov rdx, rax
mov rcx, qword [rsp + 0x60]
call fcn.1800409e0
lea rcx, [rbp + 0x140]
call fcn.180015960
movdqa xmm0, xmmword [0x180091910]
movdqu xmmword [rbp + 0x150], xmm0
mov byte [rbp + 0x140], 0
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x80]
call fcn.1800463f0
nop
lea rcx, [rbp + 0x140]
call fcn.180015960
lea rax, [rbp + 0x140]
mov qword [rsp + 0x58], rax
mov qword [rbp + 0x150], rbx
mov qword [rbp + 0x158], 0xf
mov byte [rbp + 0x140], 0
mov r8d, 0xd
lea rdx, str.data_dag.s_0_
lea rcx, [rbp + 0x140]
call fcn.180018da0
nop
mov qword [rbp + 0x170], rbx
mov qword [rbp + 0x178], 0xf
mov byte [rbp + 0x160], 0
mov r8d, 6
lea rdx, str.mix_0_
lea rcx, [rbp + 0x160]
call fcn.180018da0
movzx eax, r13w
imul r13d, eax, 0x9069
mov eax, dword [rsp + 0x48]
shr eax, 0x10
add r13d, eax
movzx eax, r14w
imul ebx, eax, 0x4650
shr r14d, 0x10
add ebx, r14d
mov edx, r13d
shl edx, 0x10
add edx, ebx
mov eax, r15d
shl eax, 0x11
xor eax, r15d
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r12d, ecx
shl r12d, 5
xor r12d, ecx
imul edi, dword [rsp + 0x40], 0x10dcd
add edi, 0x12d687
mov r9d, edi
xor r9d, edx
add r9d, r12d
lea r8, [rbp + 0x140]
lea rdx, [rbp + 0x160]
lea rcx, [rbp + 0x180]
call fcn.1800454a0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x180043f78
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1800401f0
nop
lea rcx, [rbp + 0x180]
call fcn.180015960
mov esi, 1
nop word [rax + rax]
mov r14d, dword [rsp + 0x30]
mov eax, r14d
and eax, 0x8000001f
jge 0x180043fb6
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov edx, dword [rbp + rax*4 + 0x1c0]
lea rcx, [rbp + 0x115]
test edx, edx
jns 0x180043fd9
neg edx
call fcn.18001d480
dec rax
mov byte [rax], 0x2d
jmp 0x180043fde
call fcn.18001d480
xor r15d, r15d
mov qword [rbp + 0x190], r15
mov qword [rbp + 0x198], 0xf
mov byte [rbp + 0x180], r15b
lea rcx, [rbp + 0x115]
cmp rax, rcx
je 0x180044020
lea r8, [rbp + 0x115]
sub r8, rax
mov rdx, rax
lea rcx, [rbp + 0x180]
call fcn.180018da0
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0x180]
call fcn.1800208e0
mov qword [rbp + 0x150], r15
mov qword [rbp + 0x158], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x140], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x150], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8d, 1
lea rdx, [0x180097238]
lea rcx, [rbp + 0x140]
call fcn.180018d10
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x160], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x170], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
inc r14d
mov dword [rsp + 0x30], r14d
lea rcx, [rbp + 0x140]
call fcn.180015960
nop
lea rcx, [rbp + 0x180]
call fcn.180015960
movzx eax, r13w
imul ecx, eax, 0x9069
shr r13d, 0x10
add r13d, ecx
movzx eax, bx
imul ecx, eax, 0x4650
shr ebx, 0x10
add ecx, ebx
mov ebx, ecx
mov dword [rsp + 0x48], ecx
mov r14d, r13d
shl r14d, 0x10
add r14d, ecx
mov eax, r12d
shl eax, 0x11
xor eax, r12d
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
mov r12d, ecx
shl r12d, 5
xor r12d, ecx
imul eax, edi, 0x10dcd
add eax, 0x12d687
mov dword [rsp + 0x44], eax
xor r14d, eax
add r14d, r12d
lea rax, [rbp + 0x1a0]
mov qword [rsp + 0x58], rax
mov edx, esi
lea rcx, [rbp + 0x115]
test esi, esi
jns 0x180044151
neg edx
call fcn.18001d480
dec rax
mov byte [rax], 0x2d
jmp 0x180044156
call fcn.18001d480
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
lea rcx, [rbp + 0x115]
cmp rax, rcx
je 0x180044195
lea r8, [rbp + 0x115]
sub r8, rax
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.180018da0
nop
mov r9d, 0xb
lea r8, str.data_dag.s_
xor edx, edx
lea rcx, [rbp + 0xc0]
call fcn.1800208e0
mov qword [rbp + 0xf0], r15
mov qword [rbp + 0xf8], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xe0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf0], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8d, 1
lea rdx, [0x180097238]
lea rcx, [rbp + 0xe0]
call fcn.180018d10
mov qword [rbp + 0x1b0], r15
mov qword [rbp + 0x1b8], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x1a0], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x1b0], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov qword [rbp + 0x90], r15
mov qword [rbp + 0x98], r15
lea r15, [rbp + 0x160]
cmp qword [rbp + 0x178], 0x10
cmovae r15, qword [rbp + 0x160]
mov rdi, qword [rbp + 0x170]
cmp rdi, 0x10
jae 0x180044277
movups xmm0, xmmword [r15]
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x98], 0xf
jmp 0x1800442c0
mov rbx, rdi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp + 0x80]
call fcn.180018cb0
mov qword [rbp + 0x80], rax
lea r8, [rdi + 1]
mov rdx, r15
mov rcx, rax
call fcn.18004a220
mov qword [rbp + 0x98], rbx
mov ebx, dword [rsp + 0x48]
mov qword [rbp + 0x90], rdi
mov r9d, r14d
lea r8, [rbp + 0x1a0]
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x120]
call fcn.1800454a0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1800442f3
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.1800401f0
nop
lea rcx, [rbp + 0x120]
call fcn.180015960
nop
lea rcx, [rbp + 0xe0]
call fcn.180015960
nop
lea rcx, [rbp + 0xc0]
call fcn.180015960
nop
lea rcx, [rbp + 0x160]
call fcn.180015960
inc esi
cmp esi, 4
mov edi, dword [rsp + 0x44]
jl 0x180043fa0
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x80]
call fcn.180046520
mov rdx, rax
mov rcx, qword [rsp + 0x68]
call fcn.1800409e0
lea rcx, [rbp + 0x140]
call fcn.180015960
nop
lea rcx, [rbp - 0x80]
call fcn.180016200
mov rcx, qword [rbp + 0x2c0]
xor rcx, rsp
call fcn.180046780
mov rbx, qword [rsp + 0x428]
add rsp, 0x3d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
nop
call fcn.18004db08
int3
call fcn.18004db08
int3