Function at 0x18004a520
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 [0x1800d6058]
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.1800180c0
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 [0x18009e8b0]
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 0x18004a5d0
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 0x18004a670
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 0x18004bbd2
cmp edi, 0xb
jge 0x18004afdf
mov eax, dword [rsp + 0x44]
and eax, 0x8000001f
jge 0x18004a7d1
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov r8d, dword [rbp + rax*4 + 0x240]
lea r9, [rbp + 0x115]
test r8d, r8d
jns 0x18004a830
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 0x18004a7f0
dec r9
mov byte [r9], 0x2d
jmp 0x18004a85a
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 0x18004a830
mov qword [rbp + 0x130], rbx
mov qword [rbp + 0x138], 0xf
mov byte [rbp + 0x120], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x18004a899
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0x120]
call fcn.180014a60
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0x120]
call fcn.1800217f0
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 0x18004a945
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, [0x18009ed98]
mov rcx, rbx
call fcn.180051ff0
mov byte [rbx + 1], 0
lea rax, [rbp + 0xa0]
xor ebx, ebx
jmp 0x18004a968
mov qword [rsp + 0x20], 1
lea r9, [0x18009ed98]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0xa0]
call fcn.180013ee0
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 0x18004a9df
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004a9da
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c155
call fcn.18004e580
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0x138]
cmp rdx, 0x10
jb 0x18004aa39
inc rdx
mov rcx, qword [rbp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004aa34
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c15b
call fcn.18004e580
mov qword [rbp + 0x130], rbx
mov qword [rbp + 0x138], 0xf
mov byte [rbp + 0x120], 0
mov eax, esi
and eax, 0x8000001f
jge 0x18004aa62
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov ecx, dword [rbp + rax*4 + 0x1c0]
lea r9, [rbp + 0x115]
test ecx, ecx
jns 0x18004aac0
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 0x18004aa80
dec r9
mov byte [r9], 0x2d
jmp 0x18004aae9
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 0x18004aac0
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x18004ab28
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0xc0]
call fcn.180014a60
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0xc0]
call fcn.1800217f0
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 0x18004abd4
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, [0x18009ed98]
mov rcx, rbx
call fcn.180051ff0
mov byte [rbx + 1], 0
lea rax, [rbp + 0x80]
xor ebx, ebx
jmp 0x18004abf7
mov qword [rsp + 0x20], 1
lea r9, [0x18009ed98]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0x80]
call fcn.180013ee0
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 0x18004ac62
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004ac5d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c161
call fcn.18004e580
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x18004acbc
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004acb7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c167
call fcn.18004e580
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.180016490
mov rcx, rax
mov edx, edi
call fcn.1800487e0
mov rcx, rax
lea rdx, [0x18009eda4]
call fcn.180016490
lea rdx, str.offset_
lea rcx, [rbp - 0x70]
call fcn.180016490
lea rdx, [rbp + 0xe0]
cmp qword [rbp + 0xf8], 0x10
cmovae rdx, qword [rbp + 0xe0]
mov r8, qword [rbp + 0xf0]
mov rcx, rax
call fcn.180047fa0
mov rcx, rax
lea rdx, str.___PROGPOW_CACHE_WORDS__n
call fcn.180016490
lea rdx, str.data__c_dag_offset___n
lea rcx, [rbp - 0x70]
call fcn.180016490
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.180014a60
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 0x18004ae50
movups xmm0, xmmword [r14]
movups xmmword [rbp + 0x120], xmm0
mov qword [rbp + 0x138], 0xf
jmp 0x18004aed1
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmova rbx, rax
lea rax, [rbx + 1]
cmp rax, 0x1000
jb 0x18004aea5
lea rcx, [rax + 0x27]
cmp rcx, rax
mov rax, 0xffffffffffffffff
cmovbe rcx, rax
call fcn.18004e544
mov rcx, rax
test rax, rax
je 0x18004c16d
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x18004aeb2
test rax, rax
je 0x18004aeb2
mov rcx, rax
call fcn.18004e544
mov qword [rbp + 0x120], rax
lea r8, [rsi + 1]
mov rdx, r14
mov rcx, rax
call fcn.180051ff0
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.18004d250
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x18004af04
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.180047fa0
nop
mov rdx, qword [rbp + 0x118]
cmp rdx, 0x10
jb 0x18004af53
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004af4d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c173
call fcn.18004e580
nop
cmp r15, 0x10
jb 0x18004af8b
lea rdx, [r15 + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x18004af82
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c179
mov rcx, rdi
call fcn.18004e580
nop
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x18004afcc
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004afc7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c17f
call fcn.18004e580
mov edi, dword [rsp + 0x34]
mov r12d, dword [rsp + 0x40]
mov r15d, dword [rsp + 0x3c]
mov r14d, dword [rsp + 0x38]
cmp edi, 0x12
jge 0x18004bbbb
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 0x18004b0d0
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 0x18004b090
dec r9
mov byte [r9], 0x2d
jmp 0x18004b0fa
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 0x18004b0d0
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x18004b139
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0xe0]
call fcn.180014a60
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0xe0]
call fcn.1800217f0
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 0x18004b1e5
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, [0x18009ed98]
mov rcx, rbx
call fcn.180051ff0
mov byte [rbx + 1], 0
lea rax, [rbp + 0x80]
xor ebx, ebx
jmp 0x18004b208
mov qword [rsp + 0x20], 1
lea r9, [0x18009ed98]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0x80]
call fcn.180013ee0
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 0x18004b26d
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004b268
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c185
call fcn.18004e580
mov qword [rbp + 0x90], rbx
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], 0
mov rdx, qword [rbp + 0xf8]
cmp rdx, 0x10
jb 0x18004b2c7
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004b2c2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c18b
call fcn.18004e580
mov qword [rbp + 0xf0], rbx
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
lea r9, [rbp + 0x115]
test edi, edi
jns 0x18004b330
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 0x18004b2f0
dec r9
mov byte [r9], 0x2d
jmp 0x18004b358
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 0x18004b330
mov qword [rbp + 0xd0], rbx
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
lea rax, [rbp + 0x115]
cmp r9, rax
je 0x18004b397
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0xc0]
call fcn.180014a60
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0xc0]
call fcn.1800217f0
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 0x18004b443
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, [0x18009ed98]
mov rcx, rbx
call fcn.180051ff0
mov byte [rbx + 1], 0
lea rax, [rbp + 0xa0]
xor ebx, ebx
jmp 0x18004b466
mov qword [rsp + 0x20], 1
lea r9, [0x18009ed98]
xor r8d, r8d
lea edx, [r8 + 1]
lea rcx, [rbp + 0xa0]
call fcn.180013ee0
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 0x18004b4cb
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004b4c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c191
call fcn.18004e580
mov qword [rbp + 0xb0], rbx
mov qword [rbp + 0xb8], 0xf
mov byte [rbp + 0xa0], 0
mov rdx, qword [rbp + 0xd8]
cmp rdx, 0x10
jb 0x18004b525
inc rdx
mov rcx, qword [rbp + 0xc0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004b520
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c197
call fcn.18004e580
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 0x18004b5a8
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov r8d, dword [rbp + rax*4 + 0x1c0]
lea r9, [rbp + 0x115]
test r8d, r8d
jns 0x18004b600
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 0x18004b5c1
dec r9
mov byte [r9], 0x2d
jmp 0x18004b62a
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 0x18004b600
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 0x18004b66c
lea r8, [rbp + 0x115]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0x120]
call fcn.180014a60
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0x120]
call fcn.1800217f0
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, [0x18009ed98]
lea rcx, [rbp + 0xe0]
call fcn.1800149d0
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 0x18004b73f
inc rdx
mov rcx, qword [rbp + 0xe0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004b73a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c19d
call fcn.18004e580
mov qword [rbp + 0xf0], r13
mov qword [rbp + 0xf8], 0xf
mov byte [rbp + 0xe0], 0
mov rdx, qword [rbp + 0x138]
cmp rdx, 0x10
jb 0x18004b799
inc rdx
mov rcx, qword [rbp + 0x120]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004b794
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c1a3
call fcn.18004e580
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.180016490
mov rcx, rax
mov edx, dword [rsp + 0x34]
call fcn.1800487e0
mov rcx, rax
lea rdx, [0x18009eda4]
call fcn.180016490
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 0x18004b8a7
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x98], 0xf
jmp 0x18004b8ee
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.18001bc80
mov qword [rbp + 0x80], rax
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.180051ff0
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 0x18004b93e
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0xa0], xmm0
mov qword [rbp + 0xb8], 0xf
jmp 0x18004b985
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.18001bc80
mov qword [rbp + 0xa0], rax
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.180051ff0
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.180014a60
nop
mov dword [rsp + 0x20], r15d
lea r9, [rbp + 0x80]
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0xc0]
lea rcx, [rbp + 0x100]
call fcn.18004c1b0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x18004b9f4
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.180047fa0
nop
mov rdx, qword [rbp + 0x118]
cmp rdx, 0x10
jb 0x18004ba42
inc rdx
mov rcx, qword [rbp + 0x100]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004ba3d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c1a9
call fcn.18004e580
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.180014a60
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 0x18004baca
movups xmm0, xmmword [rsi]
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x98], 0xf
jmp 0x18004bb0f
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.18001bc80
mov qword [rbp + 0x80], rax
lea r8, [rdi + 1]
mov rdx, rsi
mov rcx, rax
call fcn.180051ff0
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.18004d250
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x18004bb42
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.180047fa0
nop
mov rdx, qword [rbp + 0xb8]
cmp rdx, 0x10
jb 0x18004bb91
inc rdx
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004bb8b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004c14f
call fcn.18004e580
nop
lea rcx, [rbp + 0x1a0]
call fcn.180014370
nop
lea rcx, [rbp + 0x180]
call fcn.180014370
nop
lea rcx, [rbp + 0x160]
call fcn.180014370
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 0x18004a7a9
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x80]
call fcn.18004e2d0
mov rdx, rax
mov rcx, qword [rsp + 0x60]
call fcn.180048790
lea rcx, [rbp + 0x140]
call fcn.180014370
movdqa xmm0, xmmword [0x180097da0]
movdqu xmmword [rbp + 0x150], xmm0
mov byte [rbp + 0x140], 0
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x80]
call fcn.18004e1a0
nop
lea rcx, [rbp + 0x140]
call fcn.180014370
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.180014a60
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.180014a60
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.18004d250
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x18004bd28
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.180047fa0
nop
lea rcx, [rbp + 0x180]
call fcn.180014370
mov esi, 1
nop word [rax + rax]
mov r14d, dword [rsp + 0x30]
mov eax, r14d
and eax, 0x8000001f
jge 0x18004bd66
dec eax
or eax, 0xffffffe0
inc eax
cdqe
mov edx, dword [rbp + rax*4 + 0x1c0]
lea rcx, [rbp + 0x115]
test edx, edx
jns 0x18004bd89
neg edx
call fcn.18001de10
dec rax
mov byte [rax], 0x2d
jmp 0x18004bd8e
call fcn.18001de10
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 0x18004bdd0
lea r8, [rbp + 0x115]
sub r8, rax
mov rdx, rax
lea rcx, [rbp + 0x180]
call fcn.180014a60
nop
mov r9d, 4
lea r8, str.mix_
xor edx, edx
lea rcx, [rbp + 0x180]
call fcn.1800217f0
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, [0x18009ed98]
lea rcx, [rbp + 0x140]
call fcn.1800149d0
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.180014370
nop
lea rcx, [rbp + 0x180]
call fcn.180014370
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 0x18004bf01
neg edx
call fcn.18001de10
dec rax
mov byte [rax], 0x2d
jmp 0x18004bf06
call fcn.18001de10
mov qword [rbp + 0xd0], r15
mov qword [rbp + 0xd8], 0xf
mov byte [rbp + 0xc0], 0
lea rcx, [rbp + 0x115]
cmp rax, rcx
je 0x18004bf45
lea r8, [rbp + 0x115]
sub r8, rax
mov rdx, rax
lea rcx, [rbp + 0xc0]
call fcn.180014a60
nop
mov r9d, 0xb
lea r8, str.data_dag.s_
xor edx, edx
lea rcx, [rbp + 0xc0]
call fcn.1800217f0
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, [0x18009ed98]
lea rcx, [rbp + 0xe0]
call fcn.1800149d0
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 0x18004c027
movups xmm0, xmmword [r15]
movups xmmword [rbp + 0x80], xmm0
mov qword [rbp + 0x98], 0xf
jmp 0x18004c070
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.18001bc80
mov qword [rbp + 0x80], rax
lea r8, [rdi + 1]
mov rdx, r15
mov rcx, rax
call fcn.180051ff0
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.18004d250
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x18004c0a3
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.180047fa0
nop
lea rcx, [rbp + 0x120]
call fcn.180014370
nop
lea rcx, [rbp + 0xe0]
call fcn.180014370
nop
lea rcx, [rbp + 0xc0]
call fcn.180014370
nop
lea rcx, [rbp + 0x160]
call fcn.180014370
inc esi
cmp esi, 4
mov edi, dword [rsp + 0x44]
jl 0x18004bd50
lea rdx, [rbp + 0x140]
lea rcx, [rbp - 0x80]
call fcn.18004e2d0
mov rdx, rax
mov rcx, qword [rsp + 0x68]
call fcn.180048790
lea rcx, [rbp + 0x140]
call fcn.180014370
nop
lea rcx, [rbp - 0x80]
call fcn.180019240
mov rcx, qword [rbp + 0x2c0]
xor rcx, rsp
call fcn.18004e520
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.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
nop
call fcn.1800557ac
int3
call fcn.1800557ac
int3