Function at 0x180007750
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov ebx, edx
mov r12, rcx
lea rax, str._have_fun_reversing_
mov qword [rbp - 0x40], rax
xor edi, edi
mov dword [rbp + 0x48], edi
mov eax, dword [rbp + 0x48]
nop
mov r8, qword [0x180014070]
movsxd rax, dword [rbp + 0x48]
mov rcx, qword [rbp + rax*8 - 0x40]
call r8
mov eax, dword [rbp + 0x48]
inc eax
mov dword [rbp + 0x48], eax
mov eax, dword [rbp + 0x48]
cmp eax, 1
jb 0x180007780
cmp ebx, 1
jne 0x180009ef8
mov r15d, dword [0x180014820]
mov rax, qword gs:[0x58]
mov r14, qword [rax + r15*8]
mov r13d, 0x2ac
mov eax, dword [r13 + r14]
mov edx, 0x148
mov r10d, edx
test bl, al
jne 0x180007832
or eax, ebx
mov dword [r13 + r14], eax
lea r8, [rdx + r14]
movups xmm0, xmmword [0x180012228]
movaps xmmword [rbp - 0x20], xmm0
mov eax, dword [0x180012238]
mov dword [rbp - 0x10], eax
mov qword [r8], rdi
mov dword [r8 + 8], edi
mov byte [r8 + 0xc], dil
xor eax, eax
mov dword [r8 + 0x10], eax
mov edx, edi
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x10]
sub r8, rax
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rcx]
mov dword [r8 + rcx + 0x10], eax
inc edx
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x180007820
cmp byte [r10 + r14 + 0xc], dil
jne 0x1800078a6
lea rcx, [r10 + 0x10]
add rcx, r14
mov r8d, edi
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r10 + r14 + 4]
lea r9d, [rax + 1]
mov edx, dword [r10 + r14]
cmp edx, r9d
je 0x18000788a
lea r9d, [rax + 2]
cmp edx, r9d
je 0x18000788a
cmp edx, eax
je 0x180007893
lea r9d, [rax + 4]
cmp edx, r9d
jne 0x180007883
add eax, 3
xor dword [rcx], eax
inc dword [r10 + r14]
jmp 0x180007850
add eax, 5
cmp edx, eax
jne 0x180007899
xor dword [rcx], r9d
inc dword [r10 + r14]
jmp 0x180007850
lea eax, [r8 + 0x33]
xor dword [rcx], eax
inc r8d
add rcx, 4
cmp r8d, 1
jb 0x180007850
mov byte [r10 + r14 + 0xc], 1
mov eax, dword [r10 + r14 + 0x10]
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov esi, dword [rcx + r10 + 0x88]
add rsi, r10
cmp rsi, r10
je 0x180007936
mov r9d, dword [rsi + 0x18]
test r9d, r9d
je 0x180007936
mov ebx, dword [rsi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
mov r8d, 0x3716a197
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180007931
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x10dbd33
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180007910
cmp r8d, 0x40c33731
je 0x18000793b
test r9d, r9d
jne 0x1800078f0
mov rax, qword [rax]
jmp 0x1800078c0
mov ecx, dword [rsi + 0x1c]
add rcx, r10
mov eax, dword [rsi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, r12
call rdx
call fcn.18000d960
test eax, eax
je 0x1800080d8
mov dword [rbp - 0x30], 0x6f3a117a
mov dword [rbp - 0x2c], 0x8f48c2d2
mov dword [rbp - 0x28], 0x9578114c
mov ecx, 0x2bc
mov eax, dword [rcx + r14]
mov ebx, 0x138
test al, 1
jne 0x1800079f6
or eax, 1
mov dword [rcx + r14], eax
lea r10, [rbx + r14]
mov byte [r10 + 0xc], 1
mov r9, rdi
movabs r13, 0xaaaaaaaaaaaaaaab
nop dword [rax + rax]
mov rax, r13
mul r9
shr rdx, 3
lea r8, [rdx + rdx*2]
shl r8, 2
mov rax, r9
sub rax, r8
mov rcx, r9
sub rcx, r8
movzx eax, byte [rbp + rax - 0x30]
mov byte [rcx + r10], al
inc r9
cmp r9, 0x5b8
jb 0x1800079b0
lea rcx, [0x180011b70]
call fcn.180010340
nop
mov r13d, 0x2ac
lea rsi, [rbx + r14]
mov qword [rbp + 0x58], rsi
mov eax, r13d
mov ecx, dword [rax + r14]
mov r9d, 0x148
test cl, 1
jne 0x180007a72
or ecx, 1
mov eax, r13d
mov dword [rax + r14], ecx
mov r8d, r9d
add r8, r14
movups xmm0, xmmword [0x180012228]
movaps xmmword [rbp - 0x20], xmm0
mov eax, dword [0x180012238]
mov dword [rbp - 0x10], eax
mov qword [r8], rdi
mov dword [r8 + 8], edi
mov byte [r8 + 0xc], 0
xor eax, eax
mov dword [r8 + 0x10], eax
mov edx, edi
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x10]
sub r8, rax
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [r8 + rcx + 0x10], eax
inc edx
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x180007a60
mov rax, qword gs:[0x58]
mov r8d, r9d
add r8, qword [rax + r15*8]
cmp byte [r8 + 0xc], 0
jne 0x180007ae2
lea rcx, [r8 + 0x10]
mov r9d, edi
mov eax, dword [r8 + 4]
lea r10d, [rax + 1]
mov edx, dword [r8]
cmp edx, r10d
je 0x180007ac7
lea r10d, [rax + 2]
cmp edx, r10d
je 0x180007ac7
cmp edx, eax
je 0x180007acf
lea r10d, [rax + 4]
cmp edx, r10d
jne 0x180007ac0
add eax, 3
xor dword [rcx], eax
inc dword [r8]
jmp 0x180007a90
add eax, 5
cmp edx, eax
jne 0x180007ad5
xor dword [rcx], r10d
inc dword [r8]
jmp 0x180007a90
lea eax, [r9 + 0x33]
xor dword [rcx], eax
inc r9d
add rcx, 4
cmp r9d, 1
jb 0x180007a90
mov byte [r8 + 0xc], 1
mov eax, dword [r8 + 0x10]
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x180007b74
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x180007b74
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r11 + r9*4]
mov r8d, dword [rdx + r10]
add r8, r10
mov edx, 0xb602ddde
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x180007b6f
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x10dbd33
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x180007b50
cmp edx, 0x360950a1
je 0x180007b79
test r9d, r9d
jne 0x180007b30
mov rax, qword [rax]
jmp 0x180007b00
mov eax, dword [rbx + 0x24]
add rax, r10
movzx edx, word [rax + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
mov qword [rbp - 0x40], rax
cmp byte [rsi + 0xc], 0
je 0x1800080c3
movabs rsi, 0x10101010103d7f9
mov r13, rdi
mov r12, rdi
movabs rbx, 0xe38e38e38e38e38f
movabs r11, 0x4e5e0a72f0539783
movabs r15, 0x101010101010101
nop dword [rax]
mov rax, rdi
imul rax, rdi
mov r8d, 9
sub r8, rax
mov rax, rbx
mul rsi
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, rsi
sub rcx, rax
cmp rcx, r8
jae 0x180007f2e
mov r8, rsi
and r8d, 3
lea rdx, [rsi + r8]
mov rax, rdi
and eax, 7
lea rcx, [rax + rax*2]
lea rax, [rdx + r8*8]
lea r15, [rax + rcx*4]
xor r10b, r10b
mov rax, rbx
mul r15
mov r9, rdx
shr r9, 3
xor r9, r15
mov r8, r9
shr r8, 0x21
xor r9, r8
mov rcx, r9
imul rcx, r9
mov rax, r11
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r14, eax
bts r14, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or r14, rax
mov r11, r9
shl r11, 0x33
or r11, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x180007d5a
mov r8, r11
bts r8, 0xc
inc r10b
imul r9, r14
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, r8
xor rax, rcx
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r10b
cmp rax, rcx
jb 0x180007cf2
movabs rax, 0x101010101010101
or r9, rax
xor r9, r15
lea rax, [rdi + 1]
imul r9, rax
xor r11b, r11b
mov r8, r12
shr r8, 0x21
mov r10, r8
xor r10, r12
mov rcx, r10
imul rcx, r10
movabs rax, 0x4e5e0a72f0539783
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r10
shr rdx, cl
or rdx, r8
mov r8, r10
shr r8, 0x1f
mov rax, r10
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r10
shl rax, cl
or r8, rax
imul r10, rdx
xor r10, r8
mov rax, r10
shr rax, 0x21
xor r10, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r15, eax
bts r15, 0xc
lea rax, [r10 + r10*4]
shl rax, 0x13
or r15, rax
mov r14, r10
shl r14, 0x33
or r14, 0x28000200
mov rax, rbx
mul r10
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r10, rcx
je 0x180007eb8
mov r8, r14
bts r8, 0xc
nop dword [rax]
nop dword [rax + rax]
inc r11b
imul r10, r15
mov rcx, r10
shr rcx, 0x21
xor rcx, r10
imul rcx, r14
mov rax, rcx
shr rax, 0x21
xor rax, r8
xor rax, rcx
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r10, [rax + rax*4]
shl r10, 3
mov rax, rbx
mul r10
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r10
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x180007e50
movabs rax, 0xaaaaaaaaaaaaaaab
mul rdi
shr rdx, 3
lea rcx, [rdx + rdx*2]
shl rcx, 2
mov r8, rdi
sub r8, rcx
add r8, qword [rbp + 0x58]
mov rax, rbx
mul rdi
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, rdi
sub rcx, rax
or r10b, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
movzx eax, dil
movzx edx, cl
imul edx, eax
movzx eax, r9b
movzx ecx, dl
imul ecx, eax
and cl, 0x1f
shr r9, cl
xor byte [r8], r9b
movabs r15, 0x101010101010101
movabs r11, 0x4e5e0a72f0539783
inc rdi
add r12, 9
add r13, 0xc
xor r10b, r10b
mov r8, r13
shr r8, 0x21
mov r9, r8
xor r9, r13
mov rcx, r9
imul rcx, r9
mov rax, r11
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r14, eax
bts r14, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or r14, rax
mov r11, r9
shl r11, 0x33
or r11, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x180008078
mov r8, r11
bts r8, 0xc
nop dword [rax]
nop dword [rax + rax]
inc r10b
imul r9, r14
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, r8
xor rax, rcx
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r10b
cmp rax, rcx
jb 0x180008010
or r9, r15
lea rax, [r9 + r9*8]
xor rsi, rax
xor rsi, rdi
cmp r12, 0x3cc
movabs r11, 0x4e5e0a72f0539783
jb 0x180007bd0
mov edx, 0xc
lea r9d, [rdx - 0xb]
movabs r8, 0x10101010103d7f9
mov rsi, qword [rbp + 0x58]
mov rcx, rsi
call fcn.180006a60
mov byte [rsi + 0xc], 0
mov rax, qword [rbp - 0x40]
mov r9d, 0x10
xor r8d, r8d
mov rdx, rsi
xor ecx, ecx
call rax
jmp 0x180009ef8
mov rax, qword gs:[0x58]
mov rdx, qword [rax + r15*8]
mov ecx, dword [r13 + rdx]
mov r12d, 0x148
test cl, 1
jne 0x180008152
or ecx, 1
mov dword [r13 + rdx], ecx
mov r8d, r12d
add r8, rdx
movups xmm0, xmmword [0x180012228]
movaps xmmword [rbp - 0x20], xmm0
mov eax, dword [0x180012238]
mov dword [rbp - 0x10], eax
mov qword [r8], rdi
mov dword [r8 + 8], edi
mov byte [r8 + 0xc], dil
xor eax, eax
mov dword [r8 + 0x10], eax
mov edx, edi
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x10]
sub r8, rax
nop word [rax + rax]
mov eax, dword [rcx]
mov dword [r8 + rcx + 0x10], eax
inc edx
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x180008140
mov rax, qword gs:[0x58]
mov r8d, r12d
add r8, qword [rax + r15*8]
cmp byte [r8 + 0xc], dil
jne 0x1800081c2
lea rcx, [r8 + 0x10]
mov r9d, edi
nop
mov eax, dword [r8 + 4]
lea r10d, [rax + 1]
mov edx, dword [r8]
cmp edx, r10d
je 0x1800081a7
lea r10d, [rax + 2]
cmp edx, r10d
je 0x1800081a7
cmp edx, eax
je 0x1800081af
lea r10d, [rax + 4]
cmp edx, r10d
jne 0x1800081a0
add eax, 3
xor dword [rcx], eax
inc dword [r8]
jmp 0x180008170
add eax, 5
cmp edx, eax
jne 0x1800081b5
xor dword [rcx], r10d
inc dword [r8]
jmp 0x180008170
lea eax, [r9 + 0x33]
xor dword [rcx], eax
inc r9d
add rcx, 4
cmp r9d, 1
jb 0x180008170
mov byte [r8 + 0xc], 1
mov eax, dword [r8 + 0x10]
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x180008254
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x180008254
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + r11]
add r8, r10
mov edx, 0xbd50ea9d
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x18000824f
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x10dbd33
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x180008230
cmp edx, 0x8087c107
je 0x180008259
test r9d, r9d
jne 0x180008210
mov rax, qword [rax]
jmp 0x1800081e0
mov edx, dword [rbx + 0x1c]
add rdx, r10
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx ecx, word [rcx + r9*2]
mov ecx, dword [rdx + rcx*4]
add rcx, r10
lea r8, [0x1800148a0]
lea rdx, [0x1800010b0]
call fcn.18000df10
test eax, eax
mov rax, qword gs:[0x58]
mov rdx, qword [rax + r15*8]
je 0x1800089af
mov dword [rbp + 0x58], 0xa2c70d99
mov dword [rbp + 0x5c], 0x176bbf93
mov ecx, 0x278
mov eax, dword [rcx + rdx]
mov r9d, 0x1d8
mov ebx, r9d
test al, 1
jne 0x1800082fb
or eax, 1
mov dword [rcx + rdx], eax
lea r8, [rdx + r9]
mov byte [r8 + 8], 1
mov rdx, rdi
nop dword [rax]
mov rcx, rdx
and ecx, 7
movzx eax, byte [rbp + rcx + 0x58]
mov byte [r8 + rcx], al
inc rdx
cmp rdx, 0x4c8
jb 0x1800082d0
mov ebx, r9d
lea rcx, [0x180011b50]
call fcn.180010340
nop
mov rax, qword gs:[0x58]
mov rdx, qword [rax + r15*8]
lea r14, [rdx + rbx]
mov qword [rbp + 0x58], r14
mov ecx, dword [r13 + rdx]
test cl, 1
jne 0x180008372
or ecx, 1
mov dword [r13 + rdx], ecx
mov r8d, r12d
add r8, rdx
movups xmm0, xmmword [0x180012228]
movaps xmmword [rbp - 0x20], xmm0
mov eax, dword [0x180012238]
mov dword [rbp - 0x10], eax
mov qword [r8], rdi
mov dword [r8 + 8], edi
mov byte [r8 + 0xc], 0
xor eax, eax
mov dword [r8 + 0x10], eax
mov edx, edi
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x10]
sub r8, rax
nop dword [rax + rax]
mov eax, dword [rcx]
mov dword [r8 + rcx + 0x10], eax
inc edx
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x180008360
mov rax, qword gs:[0x58]
mov r8d, r12d
add r8, qword [rax + r15*8]
cmp byte [r8 + 0xc], 0
jne 0x1800083e2
lea rcx, [r8 + 0x10]
mov r9d, edi
mov eax, dword [r8 + 4]
lea r10d, [rax + 1]
mov edx, dword [r8]
cmp edx, r10d
je 0x1800083c7
lea r10d, [rax + 2]
cmp edx, r10d
je 0x1800083c7
cmp edx, eax
je 0x1800083cf
lea r10d, [rax + 4]
cmp edx, r10d
jne 0x1800083c0
add eax, 3
xor dword [rcx], eax
inc dword [r8]
jmp 0x180008390
add eax, 5
cmp edx, eax
jne 0x1800083d5
xor dword [rcx], r10d
inc dword [r8]
jmp 0x180008390
lea eax, [r9 + 0x33]
xor dword [rcx], eax
inc r9d
add rcx, 4
cmp r9d, 1
jb 0x180008390
mov byte [r8 + 0xc], 1
mov eax, dword [r8 + 0x10]
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x180008474
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x180008474
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + r11]
add r8, r10
mov edx, 0xb4749b2e
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x18000846f
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x10dbd33
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x180008450
cmp edx, 0x556d8471
je 0x180008479
test r9d, r9d
jne 0x180008430
mov rax, qword [rax]
jmp 0x180008400
mov eax, dword [rbx + 0x24]
add rax, r10
movzx edx, word [rax + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
mov qword [rbp - 0x40], rax
cmp byte [r14 + 8], 0
je 0x18000899a
movabs r15, 0x10101010103d7f9
mov r13, rdi
mov r12, rdi
movabs rbx, 0xe38e38e38e38e38f
movabs r11, 0x4e5e0a72f0539783
nop dword [rax]
nop word [rax + rax]
mov rax, rdi
imul rax, rdi
mov r8d, 9
sub r8, rax
mov rax, rbx
mul r15
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r15
sub rcx, rax
cmp rcx, r8
jae 0x1800087ff
mov rdx, rdi
and edx, 7
mov rcx, r15
and ecx, 3
lea rax, [r15 + rcx]
lea rax, [rax + rcx*8]
lea r14, [rax + rdx*8]
xor r10b, r10b
mov rax, rbx
mul r14
mov r9, rdx
shr r9, 3
xor r9, r14
mov r8, r9
shr r8, 0x21
xor r9, r8
mov rcx, r9
imul rcx, r9
mov rax, r11
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd rsi, eax
bts rsi, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or rsi, rax
mov r11, r9
shl r11, 0x33
or r11, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x180008658
mov r8, r11
bts r8, 0xc
nop dword [rax]
inc r10b
imul r9, rsi
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r10b
cmp rax, rcx
jb 0x1800085f0
movabs rax, 0x101010101010101
or r9, rax
xor r9, r14
lea rax, [rdi + 1]
imul r9, rax
xor r11b, r11b
mov r8, r12
shr r8, 0x21
mov r10, r8
xor r10, r12
mov rcx, r10
imul rcx, r10
movabs rax, 0x4e5e0a72f0539783
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r10
shr rdx, cl
or rdx, r8
mov r8, r10
shr r8, 0x1f
mov rax, r10
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r10
shl rax, cl
or r8, rax
imul r10, rdx
xor r10, r8
mov rax, r10
shr rax, 0x21
xor r10, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r14, eax
bts r14, 0xc
lea rax, [r10 + r10*4]
shl rax, 0x13
or r14, rax
mov rsi, r10
shl rsi, 0x33
or rsi, 0x28000200
mov rax, rbx
mul r10
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r10, rcx
je 0x1800087aa
mov r8, rsi
bts r8, 0xc
inc r11b
imul r10, r14
mov rcx, r10
shr rcx, 0x21
xor rcx, r10
imul rcx, rsi
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r10, [rax + rax*4]
shl r10, 3
mov rax, rbx
mul r10
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r10
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x180008742
mov r8, rdi
and r8d, 7
mov r14, qword [rbp + 0x58]
mov rax, rbx
mul rdi
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, rdi
sub rcx, rax
or r10b, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
movzx eax, dil
movzx edx, cl
imul edx, eax
movzx eax, r9b
movzx ecx, dl
imul ecx, eax
and cl, 0x1f
shr r9, cl
xor byte [r8 + r14], r9b
movabs r11, 0x4e5e0a72f0539783
inc rdi
add r12, 9
add r13, 8
xor r10b, r10b
mov r8, r13
shr r8, 0x21
mov r9, r8
xor r9, r13
mov rcx, r9
imul rcx, r9
mov rax, r11
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd rsi, eax
bts rsi, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or rsi, rax
mov r11, r9
shl r11, 0x33
or r11, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x180008948
mov r8, r11
bts r8, 0xc
nop word [rax + rax]
inc r10b
imul r9, rsi
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r10b
cmp rax, rcx
jb 0x1800088e0
movabs rax, 0x101010101010101
or r9, rax
lea rax, [r9 + r9*8]
xor rax, rdi
xor r15, rax
cmp r12, 0x288
movabs r11, 0x4e5e0a72f0539783
jb 0x1800084d0
mov edx, 8
lea r9d, [rdx - 7]
movabs r8, 0x10101010103d7f9
mov rcx, r14
call fcn.180006a60
mov byte [r14 + 8], 0
mov rax, qword [rbp - 0x40]
mov r9d, 0x10
xor r8d, r8d
mov rdx, r14
xor ecx, ecx
call rax
jmp 0x180009ef8
mov ecx, dword [r13 + rdx]
test cl, 1
jne 0x180008a12
or ecx, 1
mov dword [r13 + rdx], ecx
mov r8d, r12d
add r8, rdx
movups xmm0, xmmword [0x180012228]
movaps xmmword [rbp - 0x20], xmm0
mov eax, dword [0x180012238]
mov dword [rbp - 0x10], eax
mov qword [r8], rdi
mov dword [r8 + 8], edi
mov byte [r8 + 0xc], dil
xor eax, eax
mov dword [r8 + 0x10], eax
mov edx, edi
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x10]
sub r8, rax
nop dword [rax]
mov eax, dword [rcx]
mov dword [rcx + r8 + 0x10], eax
inc edx
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x180008a00
mov rax, qword gs:[0x58]
mov r8d, r12d
add r8, qword [rax + r15*8]
cmp byte [r8 + 0xc], dil
jne 0x180008a82
lea rcx, [r8 + 0x10]
mov r9d, edi
nop
mov eax, dword [r8 + 4]
lea r10d, [rax + 1]
mov edx, dword [r8]
cmp edx, r10d
je 0x180008a67
lea r10d, [rax + 2]
cmp edx, r10d
je 0x180008a67
cmp edx, eax
je 0x180008a6f
lea r10d, [rax + 4]
cmp edx, r10d
jne 0x180008a60
add eax, 3
xor dword [rcx], eax
inc dword [r8]
jmp 0x180008a30
add eax, 5
cmp edx, eax
jne 0x180008a75
xor dword [rcx], r10d
inc dword [r8]
jmp 0x180008a30
lea eax, [r9 + 0x33]
xor dword [rcx], eax
inc r9d
add rcx, 4
cmp r9d, 1
jb 0x180008a30
mov byte [r8 + 0xc], 1
mov eax, dword [r8 + 0x10]
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x180008b14
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x180008b14
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + r11]
add r8, r10
mov edx, 0x2e15f455
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x180008b0f
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x10dbd33
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x180008af0
cmp edx, 0xf69a874f
je 0x180008b19
test r9d, r9d
jne 0x180008ad0
mov rax, qword [rax]
jmp 0x180008aa0
mov edx, dword [rbx + 0x1c]
add rdx, r10
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx ecx, word [rcx + r9*2]
mov ecx, dword [rdx + rcx*4]
add rcx, r10
call fcn.18000e590
test eax, eax
mov rax, qword gs:[0x58]
mov rdx, qword [rax + r15*8]
je 0x180009248
mov dword [rbp + 0x58], 0xa2c70d99
mov dword [rbp + 0x5c], 0x1768bf93
mov ecx, 0x16c
mov eax, dword [rcx + rdx]
mov r9d, 0x1c8
mov ebx, r9d
test al, 1
jne 0x180008bab
or eax, 1
mov dword [rcx + rdx], eax
lea r8, [rdx + r9]
mov byte [r8 + 8], 1
mov rdx, rdi
nop
mov rcx, rdx
and ecx, 7
movzx eax, byte [rbp + rcx + 0x58]
mov byte [r8 + rcx], al
inc rdx
cmp rdx, 0x4c8
jb 0x180008b80
mov ebx, r9d
lea rcx, [0x180011b30]
call fcn.180010340
nop
mov rax, qword gs:[0x58]
mov rdx, qword [rax + r15*8]
lea rsi, [rdx + rbx]
mov qword [rbp + 0x58], rsi
mov ecx, dword [r13 + rdx]
test cl, 1
jne 0x180008c22
or ecx, 1
mov dword [r13 + rdx], ecx
mov r8d, r12d
add r8, rdx
movups xmm0, xmmword [0x180012228]
movaps xmmword [rbp - 0x20], xmm0
mov eax, dword [0x180012238]
mov dword [rbp - 0x10], eax
mov qword [r8], rdi
mov dword [r8 + 8], edi
mov byte [r8 + 0xc], 0
xor eax, eax
mov dword [r8 + 0x10], eax
mov edx, edi
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x10]
sub r8, rax
nop dword [rax + rax]
mov eax, dword [rcx]
mov dword [r8 + rcx + 0x10], eax
inc edx
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x180008c10
mov rax, qword gs:[0x58]
mov r8d, r12d
add r8, qword [rax + r15*8]
cmp byte [r8 + 0xc], 0
jne 0x180008c92
lea rcx, [r8 + 0x10]
mov r9d, edi
mov eax, dword [r8 + 4]
lea r10d, [rax + 1]
mov edx, dword [r8]
cmp edx, r10d
je 0x180008c77
lea r10d, [rax + 2]
cmp edx, r10d
je 0x180008c77
cmp edx, eax
je 0x180008c7f
lea r10d, [rax + 4]
cmp edx, r10d
jne 0x180008c70
add eax, 3
xor dword [rcx], eax
inc dword [r8]
jmp 0x180008c40
add eax, 5
cmp edx, eax
jne 0x180008c85
xor dword [rcx], r10d
inc dword [r8]
jmp 0x180008c40
lea eax, [r9 + 0x33]
xor dword [rcx], eax
inc r9d
add rcx, 4
cmp r9d, 1
jb 0x180008c40
mov byte [r8 + 0xc], 1
mov eax, dword [r8 + 0x10]
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x180008d26
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x180008d26
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r11 + r9*4]
mov ecx, dword [rdx + r10]
add rcx, r10
mov r8d, 0x7e878db7
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x180008d21
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x10dbd33
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x180008d00
cmp r8d, 0x66675486
je 0x180008d2b
test r9d, r9d
jne 0x180008ce0
mov rax, qword [rax]
jmp 0x180008cb0
mov eax, dword [rbx + 0x24]
add rax, r10
movzx edx, word [rax + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
mov qword [rbp - 0x40], rax
cmp byte [rsi + 8], 0
je 0x1800080c3
movabs rsi, 0x10101010103d7f9
mov r13, rdi
mov r12, rdi
movabs rbx, 0xe38e38e38e38e38f
movabs r11, 0x4e5e0a72f0539783
movabs r15, 0x101010101010101
nop
mov rax, rdi
imul rax, rdi
mov r8d, 9
sub r8, rax
mov rax, rbx
mul rsi
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, rsi
sub rcx, rax
cmp rcx, r8
jae 0x1800090b8
mov rdx, rsi
and edx, 3
lea rax, [rsi + rdx]
mov rcx, rdi
and ecx, 7
lea rax, [rax + rdx*8]
lea r15, [rax + rcx*8]
xor r10b, r10b
mov rax, rbx
mul r15
mov r9, rdx
shr r9, 3
xor r9, r15
mov r8, r9
shr r8, 0x21
xor r9, r8
mov rcx, r9
imul rcx, r9
mov rax, r11
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r14, eax
bts r14, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or r14, rax
mov r11, r9
shl r11, 0x33
or r11, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x180008f08
mov r8, r11
bts r8, 0xc
nop dword [rax]
inc r10b
imul r9, r14
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, r8
xor rax, rcx
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r10b
cmp rax, rcx
jb 0x180008ea0
movabs rax, 0x101010101010101
or r9, rax
xor r9, r15
lea rax, [rdi + 1]
imul r9, rax
xor r11b, r11b
mov r8, r12
shr r8, 0x21
mov r10, r8
xor r10, r12
mov rcx, r10
imul rcx, r10
movabs rax, 0x4e5e0a72f0539783
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r10
shr rdx, cl
or rdx, r8
mov r8, r10
shr r8, 0x1f
mov rax, r10
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r10
shl rax, cl
or r8, rax
imul r10, rdx
xor r10, r8
mov rax, r10
shr rax, 0x21
xor r10, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r15, eax
bts r15, 0xc
lea rax, [r10 + r10*4]
shl rax, 0x13
or r15, rax
mov r14, r10
shl r14, 0x33
or r14, 0x28000200
mov rax, rbx
mul r10
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r10, rcx
je 0x18000905a
mov r8, r14
bts r8, 0xc
inc r11b
imul r10, r15
mov rcx, r10
shr rcx, 0x21
xor rcx, r10
imul rcx, r14
mov rax, rcx
shr rax, 0x21
xor rax, r8
xor rax, rcx
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r10, [rax + rax*4]
shl r10, 3
mov rax, rbx
mul r10
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r10
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x180008ff2
mov r8, rdi
and r8d, 7
add r8, qword [rbp + 0x58]
mov rax, rbx
mul rdi
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, rdi
sub rcx, rax
or r10b, 1
movzx eax, r10b
movzx ecx, cl
imul ecx, eax
movzx eax, dil
movzx edx, cl
imul edx, eax
movzx eax, r9b
movzx ecx, dl
imul ecx, eax
and cl, 0x1f
shr r9, cl
xor byte [r8], r9b
movabs r15, 0x101010101010101
movabs r11, 0x4e5e0a72f0539783
inc rdi
add r12, 9
add r13, 8
xor r10b, r10b
mov r8, r13
shr r8, 0x21
mov r9, r8
xor r9, r13
mov rcx, r9
imul rcx, r9
mov rax, r11
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r14, eax
bts r14, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or r14, rax
mov r11, r9
shl r11, 0x33
or r11, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x1800091f8
mov r8, r11
bts r8, 0xc
nop
inc r10b
imul r9, r14
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, r8
xor rax, rcx
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r10b
cmp rax, rcx
jb 0x180009190
or r9, r15
lea rax, [r9 + r9*8]
xor rsi, rax
xor rsi, rdi
cmp r12, 0x288
movabs r11, 0x4e5e0a72f0539783
jb 0x180008d80
mov edx, 8
lea r9d, [rdx - 7]
movabs r8, 0x10101010103d7f9
mov rsi, qword [rbp + 0x58]
mov rcx, rsi
call fcn.180006a60
mov byte [rsi + 8], 0
mov rax, qword [rbp - 0x40]
jmp 0x1800080c3
movdqa xmm0, xmmword [0x180012240]
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x10], 0x9a
mov ecx, 0x2b4
mov eax, dword [rcx + rdx]
mov r10d, 0x290
mov ebx, r10d
movabs r11, 0xf0f0f0f0f0f0f0f1
test al, 1
jne 0x1800092cf
or eax, 1
mov dword [rcx + rdx], eax
lea r9, [rdx + r10]
mov byte [r9 + 0x11], 1
mov r8, rdi
nop word [rax + rax]
mov rax, r11
mul r8
shr rdx, 4
imul rax, rdx, 0x11
mov rdx, r8
sub rdx, rax
mov rcx, r9
sub rcx, rax
movzx eax, byte [rbp + rdx - 0x20]
mov byte [rcx + r8], al
inc r8
cmp r8, 0xa4b
jb 0x180009290
mov ebx, r10d
lea rcx, [0x180011ad0]
call fcn.180010340
nop
mov rax, qword gs:[0x58]
mov rdx, qword [rax + r15*8]
lea rsi, [rdx + rbx]
mov qword [rbp + 0x58], rsi
mov dword [rbp - 0x30], 0xccff672
mov dword [rbp - 0x2c], 0x9cd1557f
mov dword [rbp - 0x28], 0x35d345c5
mov word [rbp - 0x24], 0x94f0
mov byte [rbp - 0x22], 0x89
mov ecx, 0x304
mov eax, dword [rcx + rdx]
mov r10d, 0x2e8
mov ebx, r10d
movabs r11, 0x8888888888888889
test al, 1
jne 0x18000937e
or eax, 1
mov dword [rcx + rdx], eax
lea r9, [rdx + r10]
mov byte [r9 + 0xf], 1
mov r8, rdi
nop dword [rax]
nop dword [rax + rax]
mov rax, r11
mul r8
shr rdx, 3
imul rax, rdx, 0xfffffffffffffff1
lea rcx, [rbp - 0x30]
add rcx, rax
lea rdx, [rax + r9]
movzx eax, byte [rcx + r8]
mov byte [rdx + r8], al
inc r8
cmp r8, 0x6ae
jb 0x180009340
mov ebx, r10d
lea rcx, [0x180011b00]
call fcn.180010340
nop
mov rax, qword gs:[0x58]
mov rdx, qword [rax + r15*8]
lea rax, [rdx + rbx]
mov qword [rbp - 0x40], rax
mov ecx, dword [r13 + rdx]
test cl, 1
jne 0x1800093f2
or ecx, 1
mov dword [r13 + rdx], ecx
mov r8d, r12d
add r8, rdx
movups xmm0, xmmword [0x180012228]
movaps xmmword [rbp - 0x20], xmm0
mov eax, dword [0x180012238]
mov dword [rbp - 0x10], eax
mov qword [r8], rdi
mov dword [r8 + 8], edi
mov byte [r8 + 0xc], 0
xor eax, eax
mov dword [r8 + 0x10], eax
mov edx, edi
lea rcx, [rbp - 0x10]
lea rax, [rbp - 0x10]
sub r8, rax
nop
mov eax, dword [rcx]
mov dword [r8 + rcx + 0x10], eax
inc edx
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x1800093e0
mov rax, qword gs:[0x58]
mov r8d, r12d
add r8, qword [rax + r15*8]
cmp byte [r8 + 0xc], 0
jne 0x180009462
lea rcx, [r8 + 0x10]
mov r9d, edi
mov eax, dword [r8 + 4]
lea r10d, [rax + 1]
mov edx, dword [r8]
cmp edx, r10d
je 0x180009447
lea r10d, [rax + 2]
cmp edx, r10d
je 0x180009447
cmp edx, eax
je 0x18000944f
lea r10d, [rax + 4]
cmp edx, r10d
jne 0x180009440
add eax, 3
xor dword [rcx], eax
inc dword [r8]
jmp 0x180009410
add eax, 5
cmp edx, eax
jne 0x180009455
xor dword [rcx], r10d
inc dword [r8]
jmp 0x180009410
lea eax, [r9 + 0x33]
xor dword [rcx], eax
inc r9d
add rcx, 4
cmp r9d, 1
jb 0x180009410
mov byte [r8 + 0xc], 1
mov eax, dword [r8 + 0x10]
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x1800094f4
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x1800094f4
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r11 + r9*4]
mov r8d, dword [rdx + r10]
add r8, r10
mov edx, 0x6ecb9760
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x1800094ef
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x10dbd33
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x1800094d0
cmp edx, 0xf01acbab
je 0x1800094f9
test r9d, r9d
jne 0x1800094b0
mov rax, qword [rax]
jmp 0x180009480
mov eax, dword [rbx + 0x24]
add rax, r10
movzx edx, word [rax + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
add rax, r10
mov qword [rbp - 0x30], rax
movabs rbx, 0xe38e38e38e38e38f
movabs rax, 0x151d957f93cb9361
movabs r10, 0x4e5e0a72f0539783
movabs r12, 0x101010101010101
cmp byte [rsi + 0x11], 0
je 0x180009a13
mov r15, rax
mov rsi, rdi
mov r13, rdi
nop
mov rax, rsi
imul rax, rsi
mov ecx, 2
sub rcx, rax
mov rax, r15
and eax, 1
cmp rax, rcx
jae 0x180009875
mov rdx, r15
and edx, 3
mov rax, rsi
and eax, 7
imul rcx, rax, 0x11
add rcx, r15
lea r12, [rcx + rdx*2]
xor r11b, r11b
mov r9, r12
shr r9, 1
xor r9, r12
mov r8, r9
shr r8, 0x21
xor r9, r8
mov rcx, r9
imul rcx, r9
mov rax, r10
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov r10, r9
shr r10, cl
or r10, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, r10b
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r10, r9
xor r10, r8
mov rax, r10
shr rax, 0x21
xor r10, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r14, eax
bts r14, 0xc
lea rax, [r10 + r10*4]
shl rax, 0x13
or r14, rax
mov r9, r10
shl r9, 0x33
or r9, 0x28000200
mov rax, rbx
mul r10
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r10, rcx
je 0x1800096c8
mov r8, r9
bts r8, 0xc
nop word [rax + rax]
inc r11b
imul r10, r14
mov rcx, r10
shr rcx, 0x21
xor rcx, r10
imul rcx, r9
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r10, [rax + rax*4]
shl r10, 3
mov rax, rbx
mul r10
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r10
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x180009660
movabs rax, 0x101010101010101
or r10, rax
xor r10, r12
lea rax, [rsi + 1]
imul r10, rax
xor r11b, r11b
mov r8, r13
shr r8, 0x21
mov r9, r8
xor r9, r13
mov rcx, r9
imul rcx, r9
movabs rax, 0x4e5e0a72f0539783
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r12, eax
bts r12, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or r12, rax
mov r14, r9
shl r14, 0x33
or r14, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x18000981a
mov r8, r14
bts r8, 0xc
inc r11b
imul r9, r12
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r14
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x1800097b2
movabs rax, 0xf0f0f0f0f0f0f0f1
mul rsi
shr rdx, 4
imul rax, rdx, 0x11
mov r8, rsi
sub r8, rax
add r8, qword [rbp + 0x58]
movzx ecx, sil
and cl, 1
or r9b, 1
movzx eax, r9b
movzx ecx, cl
imul ecx, eax
movzx eax, sil
movzx edx, cl
imul edx, eax
movzx eax, r10b
movzx ecx, dl
imul ecx, eax
and cl, 0x1f
shr r10, cl
xor byte [r8], r10b
movabs r12, 0x101010101010101
inc rsi
add r13, 2
add rdi, 0x11
xor r10b, r10b
mov r8, rdi
shr r8, 0x21
mov r9, r8
xor r9, rdi
mov rcx, r9
imul rcx, r9
movabs rax, 0x4e5e0a72f0539783
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r14, eax
bts r14, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or r14, rax
mov r11, r9
shl r11, 0x33
or r11, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x1800099ba
mov r8, r11
bts r8, 0xc
inc r10b
imul r9, r14
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, r11
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r10b
cmp rax, rcx
jb 0x180009952
or r9, r12
add r9, r9
xor r15, r9
xor r15, rsi
cmp r13, 0x44
movabs r10, 0x4e5e0a72f0539783
jb 0x180009550
mov edx, 0x11
lea r9d, [rdx - 0x10]
movabs r8, 0x151d957f93cb9361
mov rsi, qword [rbp + 0x58]
mov rcx, rsi
call fcn.180006a60
mov byte [rsi + 0x11], 0
xor edi, edi
movabs rax, 0x151d957f93cb9361
movabs r10, 0x4e5e0a72f0539783
mov r15, qword [rbp - 0x40]
cmp byte [r15 + 0xf], 0
je 0x180009ee6
mov r14, rax
mov r13, rdi
mov r12, rdi
nop dword [rax + rax]
mov rdx, r14
and edx, 3
mov rcx, rdi
imul rcx, rdi
mov eax, 4
sub rax, rcx
cmp rdx, rax
jae 0x180009d4a
mov rax, rdi
and eax, 7
imul rcx, rax, 0xf
add rcx, r14
lea r15, [rcx + rdx*4]
xor r11b, r11b
mov r9, r15
shr r9, 2
xor r9, r15
mov r8, r9
shr r8, 0x21
xor r9, r8
mov rcx, r9
imul rcx, r9
mov rax, r10
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov r10, r9
shr r10, cl
or r10, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, r10b
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r10, r9
xor r10, r8
mov rax, r10
shr rax, 0x21
xor r10, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd rsi, eax
bts rsi, 0xc
lea rax, [r10 + r10*4]
shl rax, 0x13
or rsi, rax
mov r9, r10
shl r9, 0x33
or r9, 0x28000200
mov rax, rbx
mul r10
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r10, rcx
je 0x180009b9a
mov r8, r9
bts r8, 0xc
inc r11b
imul r10, rsi
mov rcx, r10
shr rcx, 0x21
xor rcx, r10
imul rcx, r9
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r10, [rax + rax*4]
shl r10, 3
mov rax, rbx
mul r10
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r10
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x180009b32
movabs rax, 0x101010101010101
or r10, rax
xor r10, r15
lea rax, [rdi + 1]
imul r10, rax
xor r11b, r11b
mov r8, r12
shr r8, 0x21
mov r9, r8
xor r9, r12
mov rcx, r9
imul rcx, r9
movabs rax, 0x4e5e0a72f0539783
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov rdx, r9
shr rdx, cl
or rdx, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, dl
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r9, rdx
xor r9, r8
mov rax, r9
shr rax, 0x21
xor r9, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd r15, eax
bts r15, 0xc
lea rax, [r9 + r9*4]
shl rax, 0x13
or r15, rax
mov rsi, r9
shl rsi, 0x33
or rsi, 0x28000200
mov rax, rbx
mul r9
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r9, rcx
je 0x180009cf8
mov r8, rsi
bts r8, 0xc
nop dword [rax]
nop dword [rax + rax]
inc r11b
imul r9, r15
mov rcx, r9
shr rcx, 0x21
xor rcx, r9
imul rcx, rsi
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r9, [rax + rax*4]
shl r9, 3
mov rax, rbx
mul r9
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r9
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x180009c90
movabs rax, 0x8888888888888889
mul rdi
shr rdx, 3
imul rax, rdx, 0xf
mov r15, qword [rbp - 0x40]
mov r8, r15
sub r8, rax
movzx ecx, dil
and cl, 3
or r9b, 1
movzx eax, r9b
movzx ecx, cl
imul ecx, eax
movzx eax, dil
movzx edx, cl
imul edx, eax
movzx eax, r10b
movzx ecx, dl
imul ecx, eax
and cl, 0x1f
shr r10, cl
xor byte [r8 + rdi], r10b
inc rdi
add r12, 4
add r13, 0xf
xor r11b, r11b
mov r8, r13
shr r8, 0x21
mov r9, r8
xor r9, r13
mov rcx, r9
imul rcx, r9
movabs rax, 0x4e5e0a72f0539783
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 5
imul rax, rax, 0x31
sub rcx, rax
mov r10, r9
shr r10, cl
or r10, r8
mov r8, r9
shr r8, 0x1f
mov rax, r9
shl rax, 7
xor r8, rax
movzx ecx, r10b
and cl, 0x1f
mov rax, r9
shl rax, cl
or r8, rax
imul r10, r9
xor r10, r8
mov rax, r10
shr rax, 0x21
xor r10, rax
mov rax, rbx
mul r8
shr rdx, 4
movzx eax, dl
shl al, 3
add dl, al
add dl, dl
movzx ecx, r8b
sub cl, dl
mov eax, 0x10
shl eax, cl
movsxd rsi, eax
bts rsi, 0xc
lea rax, [r10 + r10*4]
shl rax, 0x13
or rsi, rax
mov r9, r10
shl r9, 0x33
or r9, 0x28000200
mov rax, rbx
mul r10
shr rdx, 3
lea rcx, [rdx + rdx*8]
cmp r10, rcx
je 0x180009e98
mov r8, r9
bts r8, 0xc
nop dword [rax + rax]
inc r11b
imul r10, rsi
mov rcx, r10
shr rcx, 0x21
xor rcx, r10
imul rcx, r9
mov rax, rcx
shr rax, 0x21
xor rax, rcx
xor rax, r8
lea rcx, [rax + rax*4]
shl rcx, 3
xor rcx, 0x338
mov rax, rcx
or rax, 0x280
xor rax, rcx
xor rax, 0x1033
lea r10, [rax + rax*4]
shl r10, 3
mov rax, rbx
mul r10
shr rdx, 3
lea rax, [rdx + rdx*8]
mov rcx, r10
sub rcx, rax
movsx rax, r11b
cmp rax, rcx
jb 0x180009e30
movabs rax, 0x101010101010101
or r10, rax
shl r10, 2
xor r14, r10
xor r14, rdi
cmp r12, 0xf0
movabs r10, 0x4e5e0a72f0539783
jb 0x180009a30
mov edx, 0xf
lea r9d, [rdx - 0xe]
movabs r8, 0x151d957f93cb9361
mov rcx, r15
call fcn.180006a60
mov byte [r15 + 0xf], 0
mov r9d, 0x40
mov r8, qword [rbp + 0x58]
mov rdx, r15
xor ecx, ecx
call qword [rbp - 0x30]
mov eax, 1
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret