Function at 0x140015410
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xac8
mov qword [rsp + 0x18], rdx
mov qword [rsp], rcx
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x70], rax
xor eax, eax
nop dword [rax]
mov edx, eax
mov byte [rsp + rax + 0x80], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140015440
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx r10d, byte [rsp + rdx + 0x78]
add r8b, r10b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x70]
movzx r11d, r8b
movzx ebx, byte [rsp + r11 + 0x80]
mov byte [rsp + rdx + 0x78], bl
mov byte [rsp + r11 + 0x80], r10b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov r10, rdx
inc r10
mov rdx, r10
cmp r10, 0x108
jne 0x140015470
movzx eax, byte [rsp + 0x81]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x80]
mov byte [rsp + 0x81], r8b
mov byte [rsp + rax + 0x80], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x80]
mov r8d, eax
xor r8, 0xd9
movzx eax, byte [rsp + 0x82]
mov r9b, al
mov r10b, dl
lea edx, [r9 + r10]
movzx edx, dl
mov r9d, edx
movzx r10d, byte [rsp + r9 + 0x80]
mov byte [rsp + 0x82], r10b
mov byte [rsp + r9 + 0x80], al
add r10b, al
movzx eax, r10b
movzx r9d, byte [rsp + rax + 0x80]
xor r9d, 0x78
movzx eax, byte [rsp + 0x83]
add dl, al
movzx edx, dl
mov r10d, edx
movzx r11d, byte [rsp + r10 + 0x80]
mov byte [rsp + 0x83], r11b
mov byte [rsp + r10 + 0x80], al
add r11b, al
movzx eax, r11b
movzx r10d, byte [rsp + rax + 0x80]
xor r10d, 0xe3
movzx eax, byte [rsp + 0x84]
add dl, al
movzx r11d, dl
mov edx, r11d
movzx ebx, byte [rsp + rdx + 0x80]
mov byte [rsp + 0x84], bl
mov byte [rsp + rdx + 0x80], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x80]
xor edx, 0xb
movzx eax, byte [rsp + 0x85]
add r11b, al
movzx esi, r11b
mov r11d, esi
movzx ebx, byte [rsp + r11 + 0x80]
mov byte [rsp + 0x85], bl
mov byte [rsp + r11 + 0x80], al
add bl, al
movzx eax, bl
movzx eax, byte [rsp + rax + 0x80]
xor eax, 0x87
mov r11d, eax
movzx eax, byte [rsp + 0x86]
mov ebx, esi
add bl, al
movzx edi, bl
mov esi, edi
movzx ebx, byte [rsp + rsi + 0x80]
mov byte [rsp + 0x86], bl
mov byte [rsp + rsi + 0x80], al
add bl, al
movzx eax, bl
movzx eax, byte [rsp + rax + 0x80]
xor eax, 0x68
mov esi, eax
movzx eax, byte [rsp + 0x87]
mov ebx, edi
add bl, al
movzx edi, bl
mov ebx, edi
movzx ebp, byte [rsp + rbx + 0x80]
mov byte [rsp + 0x87], bpl
mov byte [rsp + rbx + 0x80], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x80]
xor eax, 0x9e
movzx ebx, byte [rsp + 0x88]
add dil, bl
movzx edi, dil
mov r14d, edi
movzx ebp, byte [rsp + r14 + 0x80]
mov byte [rsp + 0x88], bpl
mov byte [rsp + r14 + 0x80], bl
add bpl, bl
movzx ebx, bpl
movzx ebx, byte [rsp + rbx + 0x80]
xor ebx, 0xca
mov dword [rsp + 0x78], 8
mov dword [rsp + 0x7c], edi
shl rbx, 0x38
shl rax, 0x30
or rax, rbx
shl rsi, 0x28
or rsi, rax
shl r11, 0x20
or r11, rsi
shl edx, 0x18
mov eax, edx
or rax, r11
shl r10d, 0x10
mov edx, r10d
or rdx, rax
shl r9d, 8
mov eax, r9d
or rax, rdx
mov r9, rax
or r9, r8
xor r9, qword [rsp]
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x68], rax
xor eax, eax
nop
mov edx, eax
mov byte [rsp + rax + 0x188], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140015700
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r10d, r10d
nop dword [rax + rax]
movzx r11d, byte [rsp + rdx + 0x180]
add r8b, r11b
movsxd r10, r10d
add r8b, byte [rsp + r10 + 0x68]
movzx esi, r8b
movzx ebx, byte [rsp + rsi + 0x188]
mov byte [rsp + rdx + 0x180], bl
mov byte [rsp + rsi + 0x188], r11b
cmp r10d, 7
lea r10d, [r10 + 1]
cmovge r10d, eax
mov r11, rdx
inc r11
mov rdx, r11
cmp r11, 0x108
jne 0x140015730
movzx eax, byte [rsp + 0x189]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x188]
mov byte [rsp + 0x189], r8b
mov byte [rsp + rax + 0x188], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x188]
mov r8d, eax
xor r8, 0xd9
movzx eax, byte [rsp + 0x18a]
mov r10b, al
mov r11b, dl
lea edx, [r10 + r11]
movzx edx, dl
mov r10d, edx
movzx r11d, byte [rsp + r10 + 0x188]
mov byte [rsp + 0x18a], r11b
mov byte [rsp + r10 + 0x188], al
add r11b, al
movzx eax, r11b
movzx r10d, byte [rsp + rax + 0x188]
xor r10d, 0x78
movzx eax, byte [rsp + 0x18b]
add dl, al
movzx edx, dl
mov r11d, edx
movzx ebx, byte [rsp + r11 + 0x188]
mov byte [rsp + 0x18b], bl
mov byte [rsp + r11 + 0x188], al
add bl, al
movzx eax, bl
movzx r11d, byte [rsp + rax + 0x188]
xor r11d, 0xe3
movzx eax, byte [rsp + 0x18c]
add dl, al
movzx esi, dl
mov edx, esi
movzx ebx, byte [rsp + rdx + 0x188]
mov byte [rsp + 0x18c], bl
mov byte [rsp + rdx + 0x188], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x188]
xor edx, 0xb
movzx eax, byte [rsp + 0x18d]
mov ebx, esi
add bl, al
movzx edi, bl
mov esi, edi
movzx ebx, byte [rsp + rsi + 0x188]
mov byte [rsp + 0x18d], bl
mov byte [rsp + rsi + 0x188], al
add bl, al
movzx eax, bl
movzx eax, byte [rsp + rax + 0x188]
xor eax, 0x87
mov esi, eax
movzx eax, byte [rsp + 0x18e]
mov ebx, edi
add bl, al
movzx ebx, bl
mov edi, ebx
movzx ebp, byte [rsp + rdi + 0x188]
mov byte [rsp + 0x18e], bpl
mov byte [rsp + rdi + 0x188], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x188]
xor eax, 0x68
mov edi, eax
movzx eax, byte [rsp + 0x18f]
add bl, al
movzx ebx, bl
mov r14d, ebx
movzx ebp, byte [rsp + r14 + 0x188]
mov byte [rsp + 0x18f], bpl
mov byte [rsp + r14 + 0x188], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x188]
xor eax, 0x9e
movzx ebp, byte [rsp + 0x190]
add bl, bpl
movzx ebx, bl
mov r14d, ebx
movzx r15d, byte [rsp + r14 + 0x188]
mov byte [rsp + 0x190], r15b
mov byte [rsp + r14 + 0x188], bpl
add r15b, bpl
movzx ebp, r15b
mov r14d, ebp
movzx ebp, byte [rsp + r14 + 0x188]
xor ebp, 0xca
mov r14d, ebp
mov dword [rsp + 0x180], 8
mov dword [rsp + 0x184], ebx
shl r14, 0x38
shl rax, 0x30
or rax, r14
shl rdi, 0x28
or rdi, rax
shl rsi, 0x20
or rsi, rdi
shl edx, 0x18
mov eax, edx
or rax, rsi
shl r11d, 0x10
mov edx, r11d
or rdx, rax
shl r10d, 8
mov eax, r10d
or rax, rdx
or rax, r8
mov r8, rax
xor r8, qword [rsp]
movsxd r9, dword [r9 + 0x3c]
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x60], rax
xor eax, eax
nop
mov edx, eax
mov byte [rsp + rax + 0x290], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x1400159d0
xor eax, eax
mov edx, 8
xor r10d, r10d
xor r11d, r11d
nop dword [rax + rax]
movzx ebx, byte [rsp + rdx + 0x288]
add r10b, bl
movsxd r11, r11d
add r10b, byte [rsp + r11 + 0x60]
movzx esi, r10b
movzx edi, byte [rsp + rsi + 0x290]
mov byte [rsp + rdx + 0x288], dil
mov byte [rsp + rsi + 0x290], bl
cmp r11d, 7
lea r11d, [r11 + 1]
cmovge r11d, eax
mov rsi, rdx
inc rsi
mov rdx, rsi
cmp rsi, 0x108
jne 0x140015a00
movzx eax, byte [rsp + 0x291]
mov edx, eax
movzx r10d, byte [rsp + rax + 0x290]
mov byte [rsp + 0x291], r10b
mov byte [rsp + rax + 0x290], al
add r10b, al
movzx eax, r10b
movzx eax, byte [rsp + rax + 0x290]
mov r10d, eax
xor r10, 0xd9
movzx eax, byte [rsp + 0x292]
mov r11b, al
mov sil, dl
lea edx, [r11 + rsi]
movzx edx, dl
mov r11d, edx
movzx ebx, byte [rsp + r11 + 0x290]
mov byte [rsp + 0x292], bl
mov byte [rsp + r11 + 0x290], al
add bl, al
movzx eax, bl
movzx r11d, byte [rsp + rax + 0x290]
xor r11d, 0x78
movzx eax, byte [rsp + 0x293]
add dl, al
movzx edx, dl
mov esi, edx
movzx ebx, byte [rsp + rsi + 0x290]
mov byte [rsp + 0x293], bl
mov byte [rsp + rsi + 0x290], al
add bl, al
movzx eax, bl
movzx esi, byte [rsp + rax + 0x290]
xor esi, 0xe3
movzx eax, byte [rsp + 0x294]
add dl, al
movzx edi, dl
mov edx, edi
movzx ebx, byte [rsp + rdx + 0x290]
mov byte [rsp + 0x294], bl
mov byte [rsp + rdx + 0x290], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x290]
xor edx, 0xb
movzx eax, byte [rsp + 0x295]
mov ebx, edi
add bl, al
movzx ebx, bl
mov edi, ebx
movzx ebp, byte [rsp + rdi + 0x290]
mov byte [rsp + 0x295], bpl
mov byte [rsp + rdi + 0x290], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x290]
xor eax, 0x87
mov edi, eax
movzx eax, byte [rsp + 0x296]
add bl, al
movzx ebp, bl
mov ebx, ebp
movzx r14d, byte [rsp + rbx + 0x290]
mov byte [rsp + 0x296], r14b
mov byte [rsp + rbx + 0x290], al
add r14b, al
movzx eax, r14b
movzx eax, byte [rsp + rax + 0x290]
xor eax, 0x68
mov ebx, eax
movzx eax, byte [rsp + 0x297]
add bpl, al
movzx ebp, bpl
mov r14d, ebp
movzx r15d, byte [rsp + r14 + 0x290]
mov byte [rsp + 0x297], r15b
mov byte [rsp + r14 + 0x290], al
add r15b, al
movzx eax, r15b
movzx eax, byte [rsp + rax + 0x290]
xor eax, 0x9e
movzx r14d, byte [rsp + 0x298]
add bpl, r14b
movzx ebp, bpl
mov r15d, ebp
movzx r12d, byte [rsp + r15 + 0x290]
mov byte [rsp + 0x298], r12b
mov byte [rsp + r15 + 0x290], r14b
add r12b, r14b
movzx r14d, r12b
movzx r14d, byte [rsp + r14 + 0x290]
xor r14d, 0xca
mov dword [rsp + 0x288], 8
mov dword [rsp + 0x28c], ebp
shl r14, 0x38
shl rax, 0x30
or rax, r14
shl rbx, 0x28
or rbx, rax
shl rdi, 0x20
or rdi, rbx
shl edx, 0x18
mov eax, edx
or rax, rdi
shl esi, 0x10
mov edx, esi
or rdx, rax
shl r11d, 8
mov eax, r11d
or rax, rdx
or rax, r10
mov r10, rax
xor r10, qword [rsp]
mov eax, dword [r8 + r9 + 0x88]
mov r11d, eax
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x58], rax
xor eax, eax
nop dword [rax]
mov edx, eax
mov byte [rsp + rax + 0x398], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140015ca0
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx ebx, byte [rsp + rdx + 0x390]
add r8b, bl
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x58]
movzx esi, r8b
movzx edi, byte [rsp + rsi + 0x398]
mov byte [rsp + rdx + 0x390], dil
mov byte [rsp + rsi + 0x398], bl
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov rsi, rdx
inc rsi
mov rdx, rsi
cmp rsi, 0x108
jne 0x140015cd0
movzx eax, byte [rsp + 0x399]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x398]
mov byte [rsp + 0x399], r8b
mov byte [rsp + rax + 0x398], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x398]
mov r8d, eax
xor r8, 0xd9
movzx eax, byte [rsp + 0x39a]
mov r9b, al
mov sil, dl
lea edx, [r9 + rsi]
movzx edx, dl
mov r9d, edx
movzx ebx, byte [rsp + r9 + 0x398]
mov byte [rsp + 0x39a], bl
mov byte [rsp + r9 + 0x398], al
add bl, al
movzx eax, bl
movzx r9d, byte [rsp + rax + 0x398]
xor r9d, 0x78
movzx eax, byte [rsp + 0x39b]
add dl, al
movzx edx, dl
mov esi, edx
movzx ebx, byte [rsp + rsi + 0x398]
mov byte [rsp + 0x39b], bl
mov byte [rsp + rsi + 0x398], al
add bl, al
movzx eax, bl
movzx esi, byte [rsp + rax + 0x398]
xor esi, 0xe3
movzx eax, byte [rsp + 0x39c]
add dl, al
movzx edi, dl
mov edx, edi
movzx ebx, byte [rsp + rdx + 0x398]
mov byte [rsp + 0x39c], bl
mov byte [rsp + rdx + 0x398], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x398]
xor edx, 0xb
movzx eax, byte [rsp + 0x39d]
mov ebx, edi
add bl, al
movzx ebx, bl
mov edi, ebx
movzx ebp, byte [rsp + rdi + 0x398]
mov byte [rsp + 0x39d], bpl
mov byte [rsp + rdi + 0x398], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x398]
xor eax, 0x87
mov edi, eax
movzx eax, byte [rsp + 0x39e]
add bl, al
movzx ebp, bl
mov ebx, ebp
movzx r14d, byte [rsp + rbx + 0x398]
mov byte [rsp + 0x39e], r14b
mov byte [rsp + rbx + 0x398], al
add r14b, al
movzx eax, r14b
movzx eax, byte [rsp + rax + 0x398]
xor eax, 0x68
mov ebx, eax
movzx eax, byte [rsp + 0x39f]
add bpl, al
movzx ebp, bpl
mov r14d, ebp
movzx r15d, byte [rsp + r14 + 0x398]
mov byte [rsp + 0x39f], r15b
mov byte [rsp + r14 + 0x398], al
add r15b, al
movzx eax, r15b
movzx eax, byte [rsp + rax + 0x398]
xor eax, 0x9e
movzx r14d, byte [rsp + 0x3a0]
add bpl, r14b
movzx ebp, bpl
mov r15d, ebp
movzx r12d, byte [rsp + r15 + 0x398]
mov byte [rsp + 0x3a0], r12b
mov byte [rsp + r15 + 0x398], r14b
add r12b, r14b
movzx r14d, r12b
movzx r14d, byte [rsp + r14 + 0x398]
xor r14d, 0xca
mov dword [rsp + 0x390], 8
mov dword [rsp + 0x394], ebp
shl r14, 0x38
shl rax, 0x30
or rax, r14
shl rbx, 0x28
or rbx, rax
shl rdi, 0x20
or rdi, rbx
shl edx, 0x18
mov eax, edx
or rax, rdi
shl esi, 0x10
mov edx, esi
or rdx, rax
shl r9d, 8
mov eax, r9d
or rax, rdx
or rax, r8
xor rax, qword [rsp]
mov edx, dword [r10 + r11 + 0x1c]
add rdx, rax
mov qword [rsp + 0x10], rdx
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x50], rax
xor eax, eax
nop dword [rax + rax]
mov edx, eax
mov byte [rsp + rax + 0x4a0], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140015f70
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx ebx, byte [rsp + rdx + 0x498]
add r8b, bl
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x50]
movzx esi, r8b
movzx edi, byte [rsp + rsi + 0x4a0]
mov byte [rsp + rdx + 0x498], dil
mov byte [rsp + rsi + 0x4a0], bl
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov rsi, rdx
inc rsi
mov rdx, rsi
cmp rsi, 0x108
jne 0x140015fa0
movzx eax, byte [rsp + 0x4a1]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x4a0]
mov byte [rsp + 0x4a1], r8b
mov byte [rsp + rax + 0x4a0], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x4a0]
mov r9d, eax
xor r9, 0xd9
movzx eax, byte [rsp + 0x4a2]
mov r8b, al
mov sil, dl
lea edx, [r8 + rsi]
movzx edx, dl
mov r8d, edx
movzx ebx, byte [rsp + r8 + 0x4a0]
mov byte [rsp + 0x4a2], bl
mov byte [rsp + r8 + 0x4a0], al
add bl, al
movzx eax, bl
movzx esi, byte [rsp + rax + 0x4a0]
xor esi, 0x78
movzx eax, byte [rsp + 0x4a3]
add dl, al
movzx edx, dl
mov r8d, edx
movzx ebx, byte [rsp + r8 + 0x4a0]
mov byte [rsp + 0x4a3], bl
mov byte [rsp + r8 + 0x4a0], al
add bl, al
movzx eax, bl
movzx edi, byte [rsp + rax + 0x4a0]
xor edi, 0xe3
movzx eax, byte [rsp + 0x4a4]
add dl, al
movzx r8d, dl
mov edx, r8d
movzx ebx, byte [rsp + rdx + 0x4a0]
mov byte [rsp + 0x4a4], bl
mov byte [rsp + rdx + 0x4a0], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x4a0]
xor edx, 0xb
movzx eax, byte [rsp + 0x4a5]
add r8b, al
movzx ebx, r8b
mov r8d, ebx
movzx ebp, byte [rsp + r8 + 0x4a0]
mov byte [rsp + 0x4a5], bpl
mov byte [rsp + r8 + 0x4a0], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x4a0]
xor eax, 0x87
mov r8d, eax
movzx eax, byte [rsp + 0x4a6]
add bl, al
movzx ebp, bl
mov ebx, ebp
movzx r14d, byte [rsp + rbx + 0x4a0]
mov byte [rsp + 0x4a6], r14b
mov byte [rsp + rbx + 0x4a0], al
add r14b, al
movzx eax, r14b
movzx eax, byte [rsp + rax + 0x4a0]
xor eax, 0x68
mov ebx, eax
movzx eax, byte [rsp + 0x4a7]
add bpl, al
movzx ebp, bpl
mov r14d, ebp
movzx r15d, byte [rsp + r14 + 0x4a0]
mov byte [rsp + 0x4a7], r15b
mov byte [rsp + r14 + 0x4a0], al
add r15b, al
movzx eax, r15b
movzx eax, byte [rsp + rax + 0x4a0]
xor eax, 0x9e
movzx r14d, byte [rsp + 0x4a8]
add bpl, r14b
movzx ebp, bpl
mov r15d, ebp
movzx r12d, byte [rsp + r15 + 0x4a0]
mov byte [rsp + 0x4a8], r12b
mov byte [rsp + r15 + 0x4a0], r14b
add r12b, r14b
movzx r14d, r12b
movzx r14d, byte [rsp + r14 + 0x4a0]
xor r14d, 0xca
mov dword [rsp + 0x498], 8
mov dword [rsp + 0x49c], ebp
shl r14, 0x38
shl rax, 0x30
or rax, r14
shl rbx, 0x28
or rbx, rax
shl r8, 0x20
or r8, rbx
shl edx, 0x18
mov eax, edx
or rax, r8
shl edi, 0x10
mov edx, edi
or rdx, rax
shl esi, 8
mov eax, esi
or rax, rdx
or rax, r9
xor rax, qword [rsp]
mov edx, dword [r10 + r11 + 0x20]
mov esi, edx
add rsi, rax
mov qword [rsp + 0x20], rsi
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x48], rax
xor eax, eax
nop word cs:[rax + rax]
mov edx, eax
mov byte [rsp + rax + 0x5a8], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140016250
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx ebx, byte [rsp + rdx + 0x5a0]
add r8b, bl
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x48]
movzx edi, r8b
movzx ebp, byte [rsp + rdi + 0x5a8]
mov byte [rsp + rdx + 0x5a0], bpl
mov byte [rsp + rdi + 0x5a8], bl
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov rdi, rdx
inc rdi
mov rdx, rdi
cmp rdi, 0x108
jne 0x140016280
movzx eax, byte [rsp + 0x5a9]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x5a8]
mov byte [rsp + 0x5a9], r8b
mov byte [rsp + rax + 0x5a8], al
add r8b, al
movzx eax, r8b
movzx ebp, byte [rsp + rax + 0x5a8]
movzx eax, byte [rsp + 0x5aa]
mov r8b, al
mov r9b, dl
lea edx, [r8 + r9]
movzx r8d, dl
mov edx, r8d
movzx r9d, byte [rsp + rdx + 0x5a8]
mov byte [rsp + 0x5aa], r9b
mov byte [rsp + rdx + 0x5a8], al
add r9b, al
movzx eax, r9b
movzx edx, byte [rsp + rax + 0x5a8]
movzx eax, byte [rsp + 0x5ab]
add r8b, al
movzx r8d, r8b
mov r9d, r8d
movzx ebx, byte [rsp + r9 + 0x5a8]
mov byte [rsp + 0x5ab], bl
mov byte [rsp + r9 + 0x5a8], al
add bl, al
movzx eax, bl
movzx r14d, byte [rsp + rax + 0x5a8]
movzx eax, byte [rsp + 0x5ac]
add r8b, al
movzx r9d, r8b
mov r8d, r9d
movzx ebx, byte [rsp + r8 + 0x5a8]
mov byte [rsp + 0x5ac], bl
mov byte [rsp + r8 + 0x5a8], al
add bl, al
movzx eax, bl
movzx r8d, byte [rsp + rax + 0x5a8]
movzx eax, byte [rsp + 0x5ad]
add r9b, al
movzx edi, r9b
mov r9d, edi
movzx ebx, byte [rsp + r9 + 0x5a8]
mov byte [rsp + 0x5ad], bl
mov byte [rsp + r9 + 0x5a8], al
add bl, al
movzx eax, bl
movzx r9d, byte [rsp + rax + 0x5a8]
movzx eax, byte [rsp + 0x5ae]
mov ebx, edi
add bl, al
movzx edi, bl
mov ebx, edi
movzx r15d, byte [rsp + rbx + 0x5a8]
mov byte [rsp + 0x5ae], r15b
mov byte [rsp + rbx + 0x5a8], al
add r15b, al
movzx eax, r15b
movzx r12d, byte [rsp + rax + 0x5a8]
movzx eax, byte [rsp + 0x5af]
mov ebx, edi
add bl, al
movzx edi, bl
mov ebx, edi
movzx r15d, byte [rsp + rbx + 0x5a8]
mov byte [rsp + 0x5af], r15b
mov byte [rsp + rbx + 0x5a8], al
add r15b, al
movzx eax, r15b
movzx eax, byte [rsp + rax + 0x5a8]
movzx ebx, byte [rsp + 0x5b0]
add dil, bl
movzx edi, dil
mov r15d, edi
movzx r13d, byte [rsp + r15 + 0x5a8]
mov byte [rsp + 0x5b0], r13b
mov byte [rsp + r15 + 0x5a8], bl
add r13b, bl
movzx ebx, r13b
movzx r13d, byte [rsp + rbx + 0x5a8]
mov dword [rsp + 0x5a0], 8
mov dword [rsp + 0x5a4], edi
mov edi, dword [r10 + r11 + 0x18]
mov esi, edi
xor ebx, ebx
test rsi, rsi
je 0x140016e14
mov r15d, ebp
xor r15, 0xd9
xor edx, 0x78
xor r14d, 0xe3
xor r8d, 0xb
xor r9d, 0x87
xor r12d, 0x68
xor eax, 0x9e
xor r13d, 0xca
shl r13, 0x38
shl rax, 0x30
or rax, r13
shl r12, 0x28
or r12, rax
shl r9, 0x20
or r9, r12
shl r8d, 0x18
mov eax, r8d
or rax, r9
shl r14d, 0x10
mov r8d, r14d
or r8, rax
shl edx, 8
mov eax, edx
or rax, r8
or rax, r15
xor rax, qword [rsp]
mov edx, dword [r10 + r11 + 0x24]
add rdx, rax
mov qword [rsp + 8], rdx
movabs r15, 0x100000001b3
xor r11d, r11d
jmp 0x140016552
mov rax, r11
inc rax
mov r11, rax
cmp rax, rsi
je 0x140016e14
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x40], rax
xor eax, eax
nop word cs:[rax + rax]
mov edx, eax
mov byte [rsp + rax + 0x6b0], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140016570
mov eax, 8
xor edx, edx
xor r8d, r8d
nop word cs:[rax + rax]
movzx r9d, byte [rsp + rax + 0x6a8]
add dl, r9b
movsxd r8, r8d
add dl, byte [rsp + r8 + 0x40]
movzx r10d, dl
movzx ebp, byte [rsp + r10 + 0x6b0]
mov byte [rsp + rax + 0x6a8], bpl
mov byte [rsp + r10 + 0x6b0], r9b
cmp r8d, 7
lea r8d, [r8 + 1]
cmovge r8d, ebx
mov r9, rax
inc r9
mov rax, r9
cmp r9, 0x108
jne 0x1400165a0
movzx eax, byte [rsp + 0x6b1]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x6b0]
mov byte [rsp + 0x6b1], r8b
mov byte [rsp + rax + 0x6b0], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x6b0]
mov r13d, eax
xor r13, 0xd9
movzx eax, byte [rsp + 0x6b2]
mov r8b, al
mov r9b, dl
lea edx, [r8 + r9]
movzx edx, dl
mov r8d, edx
movzx r9d, byte [rsp + r8 + 0x6b0]
mov byte [rsp + 0x6b2], r9b
mov byte [rsp + r8 + 0x6b0], al
add r9b, al
movzx eax, r9b
movzx ebp, byte [rsp + rax + 0x6b0]
xor ebp, 0x78
movzx eax, byte [rsp + 0x6b3]
add dl, al
movzx r8d, dl
mov edx, r8d
movzx r9d, byte [rsp + rdx + 0x6b0]
mov byte [rsp + 0x6b3], r9b
mov byte [rsp + rdx + 0x6b0], al
add r9b, al
movzx eax, r9b
movzx edx, byte [rsp + rax + 0x6b0]
xor edx, 0xe3
movzx eax, byte [rsp + 0x6b4]
add r8b, al
movzx r8d, r8b
mov r9d, r8d
movzx r10d, byte [rsp + r9 + 0x6b0]
mov byte [rsp + 0x6b4], r10b
mov byte [rsp + r9 + 0x6b0], al
add r10b, al
movzx eax, r10b
movzx r9d, byte [rsp + rax + 0x6b0]
xor r9d, 0xb
movzx eax, byte [rsp + 0x6b5]
add r8b, al
movzx r8d, r8b
mov r10d, r8d
movzx r12d, byte [rsp + r10 + 0x6b0]
mov byte [rsp + 0x6b5], r12b
mov byte [rsp + r10 + 0x6b0], al
add r12b, al
movzx eax, r12b
movzx eax, byte [rsp + rax + 0x6b0]
xor eax, 0x87
mov r10d, eax
movzx eax, byte [rsp + 0x6b6]
add r8b, al
movzx r8d, r8b
mov r12d, r8d
movzx ecx, byte [rsp + r12 + 0x6b0]
mov byte [rsp + 0x6b6], cl
mov byte [rsp + r12 + 0x6b0], al
add cl, al
movzx eax, cl
movzx eax, byte [rsp + rax + 0x6b0]
xor eax, 0x68
movzx ecx, byte [rsp + 0x6b7]
add r8b, cl
movzx r8d, r8b
mov r12d, r8d
movzx r14d, byte [rsp + r12 + 0x6b0]
mov byte [rsp + 0x6b7], r14b
mov byte [rsp + r12 + 0x6b0], cl
add r14b, cl
movzx ecx, r14b
movzx ecx, byte [rsp + rcx + 0x6b0]
xor ecx, 0x9e
movzx r14d, byte [rsp + 0x6b8]
add r8b, r14b
movzx r8d, r8b
mov r12d, r8d
movzx edi, byte [rsp + r12 + 0x6b0]
mov byte [rsp + 0x6b8], dil
mov byte [rsp + r12 + 0x6b0], r14b
add dil, r14b
movzx edi, dil
movzx edi, byte [rsp + rdi + 0x6b0]
xor edi, 0xca
shl rdi, 0x38
shl rcx, 0x30
or rcx, rdi
shl rax, 0x28
or rax, rcx
shl r10, 0x20
or r10, rax
shl r9d, 0x18
mov eax, r9d
or rax, r10
shl edx, 0x10
mov ecx, edx
or rcx, rax
shl ebp, 8
mov eax, ebp
or rax, rcx
or rax, r13
mov rdx, rax
xor rdx, qword [rsp]
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + r11*4]
mov r9d, eax
movzx eax, byte [rdx + r9]
test al, al
je 0x140016540
add rdx, r9
inc rdx
mov r9d, eax
movabs r10, 0x172dbc136d98310a
movsx rax, r9b
xor rax, r10
imul rax, r15
movzx ecx, byte [rdx]
inc rdx
mov r9d, ecx
mov r10, rax
test cl, cl
jne 0x140016850
movabs rcx, 0xdc93ff9b9c37418c
cmp rax, rcx
jne 0x140016540
mov dword [rsp + 0x6ac], r8d
mov dword [rsp + 0x6a8], 8
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x38], rax
xor eax, eax
movabs r15, 0xca9e68870be378d9
nop dword [rax]
mov ecx, eax
mov byte [rsp + rax + 0x7b8], al
mov rcx, rax
inc rcx
mov rax, rcx
cmp rcx, 0x100
jne 0x1400168b0
xor eax, eax
xor edx, edx
xor r8d, r8d
xor r9d, r9d
nop word cs:[rax + rax]
mov ecx, r8d
movzx r8d, byte [rsp + rdx + 0x7b8]
add cl, r8b
movsxd r9, r9d
add cl, byte [rsp + r9 + 0x38]
movzx r10d, cl
movzx ebx, byte [rsp + r10 + 0x7b8]
mov byte [rsp + rdx + 0x7b8], bl
mov byte [rsp + r10 + 0x7b8], r8b
mov r8d, r9d
cmp r9d, 7
lea r9d, [r8 + 1]
cmovge r9d, eax
mov r10, rdx
inc r10
mov rdx, r10
mov r8d, ecx
cmp r10, 0x100
jne 0x1400168e0
movzx eax, byte [rsp + 0x7b9]
mov ecx, eax
movzx edx, byte [rsp + rax + 0x7b8]
mov byte [rsp + 0x7b9], dl
mov byte [rsp + rax + 0x7b8], al
add dl, al
movzx eax, dl
movzx eax, byte [rsp + rax + 0x7b8]
xor rax, 0xd9
movzx edx, byte [rsp + 0x7ba]
mov r8b, dl
mov r9b, cl
lea ecx, [r8 + r9]
movzx ecx, cl
mov r8d, ecx
movzx r9d, byte [rsp + r8 + 0x7b8]
mov byte [rsp + 0x7ba], r9b
mov byte [rsp + r8 + 0x7b8], dl
add r9b, dl
movzx edx, r9b
movzx esi, byte [rsp + rdx + 0x7b8]
xor esi, 0x78
movzx edx, byte [rsp + 0x7bb]
add cl, dl
movzx ecx, cl
mov r8d, ecx
movzx r9d, byte [rsp + r8 + 0x7b8]
mov byte [rsp + 0x7bb], r9b
mov byte [rsp + r8 + 0x7b8], dl
add r9b, dl
movzx edx, r9b
movzx edx, byte [rsp + rdx + 0x7b8]
xor edx, 0xe3
movzx r8d, byte [rsp + 0x7bc]
add cl, r8b
movzx ecx, cl
mov r9d, ecx
movzx r10d, byte [rsp + r9 + 0x7b8]
mov byte [rsp + 0x7bc], r10b
mov byte [rsp + r9 + 0x7b8], r8b
add r10b, r8b
movzx r8d, r10b
movzx r8d, byte [rsp + r8 + 0x7b8]
xor r8d, 0xb
movzx r9d, byte [rsp + 0x7bd]
add cl, r9b
movzx ecx, cl
mov r10d, ecx
movzx ebx, byte [rsp + r10 + 0x7b8]
mov byte [rsp + 0x7bd], bl
mov byte [rsp + r10 + 0x7b8], r9b
add bl, r9b
movzx r9d, bl
movzx r9d, byte [rsp + r9 + 0x7b8]
xor r9d, 0x87
movzx r10d, byte [rsp + 0x7be]
add cl, r10b
movzx ecx, cl
mov edi, ecx
movzx ebx, byte [rsp + rdi + 0x7b8]
mov byte [rsp + 0x7be], bl
mov byte [rsp + rdi + 0x7b8], r10b
add bl, r10b
movzx r10d, bl
movzx r10d, byte [rsp + r10 + 0x7b8]
xor r10d, 0x68
movzx ebx, byte [rsp + 0x7bf]
add cl, bl
movzx ecx, cl
mov edi, ecx
movzx ebp, byte [rsp + rdi + 0x7b8]
mov byte [rsp + 0x7bf], bpl
mov byte [rsp + rdi + 0x7b8], bl
add bpl, bl
movzx edi, bpl
movzx edi, byte [rsp + rdi + 0x7b8]
xor edi, 0x9e
movzx ebx, byte [rsp + 0x7c0]
add cl, bl
movzx ecx, cl
movzx ebp, byte [rsp + rcx + 0x7b8]
mov byte [rsp + 0x7c0], bpl
mov byte [rsp + rcx + 0x7b8], bl
add bpl, bl
movzx ecx, bpl
movzx ecx, byte [rsp + rcx + 0x7b8]
xor ecx, 0xca
shl rcx, 0x38
shl rdi, 0x30
or rdi, rcx
shl r10, 0x28
or r10, rdi
shl r9, 0x20
or r9, r10
shl r8d, 0x18
mov ecx, r8d
or rcx, r9
shl edx, 0x10
or rdx, rcx
shl esi, 8
mov ecx, esi
mov r8, rcx
or r8, rdx
or r8, rax
mov rax, qword [rsp + 8]
movzx eax, word [rax + r11*2]
mov rcx, qword [rsp + 0x10]
mov eax, dword [rcx + rax*4]
mov qword [rsp + 0x30], r15
xor edx, edx
nop dword [rax + rax]
mov ecx, edx
mov byte [rsp + rdx + 0x8c0], dl
mov rcx, rdx
inc rcx
mov rdx, rcx
cmp rcx, 0x100
jne 0x140016b70
xor r8, qword [rsp]
xor ecx, ecx
xor edx, edx
xor r9d, r9d
xor r10d, r10d
nop dword [rax]
movzx r11d, byte [rsp + rdx + 0x8c0]
add r9b, r11b
movsxd r10, r10d
add r9b, byte [rsp + r10 + 0x30]
movzx esi, r9b
movzx ebx, byte [rsp + rsi + 0x8c0]
mov byte [rsp + rdx + 0x8c0], bl
mov byte [rsp + rsi + 0x8c0], r11b
cmp r10d, 7
lea r10d, [r10 + 1]
cmovge r10d, ecx
mov r11, rdx
inc r11
mov rdx, r11
cmp r11, 0x100
jne 0x140016ba0
movzx ecx, byte [rsp + 0x8c1]
mov edx, ecx
movzx r9d, byte [rsp + rcx + 0x8c0]
mov byte [rsp + 0x8c1], r9b
mov byte [rsp + rcx + 0x8c0], cl
add r9b, cl
movzx ecx, r9b
movzx ecx, byte [rsp + rcx + 0x8c0]
xor rcx, 0x2e
movzx r9d, byte [rsp + 0x8c2]
mov r10b, r9b
mov r11b, dl
lea edx, [r10 + r11]
movzx edx, dl
mov r10d, edx
movzx r11d, byte [rsp + r10 + 0x8c0]
mov byte [rsp + 0x8c2], r11b
mov byte [rsp + r10 + 0x8c0], r9b
add r11b, r9b
movzx r9d, r11b
movzx r10d, byte [rsp + r9 + 0x8c0]
xor r10d, 0x8a
movzx r9d, byte [rsp + 0x8c3]
add dl, r9b
movzx edx, dl
mov r11d, edx
movzx ebx, byte [rsp + r11 + 0x8c0]
mov byte [rsp + 0x8c3], bl
mov byte [rsp + r11 + 0x8c0], r9b
add bl, r9b
movzx r9d, bl
movzx r11d, byte [rsp + r9 + 0x8c0]
xor r11d, 0x77
movzx r9d, byte [rsp + 0x8c4]
add dl, r9b
movzx esi, dl
mov edx, esi
movzx ebx, byte [rsp + rdx + 0x8c0]
mov byte [rsp + 0x8c4], bl
mov byte [rsp + rdx + 0x8c0], r9b
add bl, r9b
movzx edx, bl
movzx edx, byte [rsp + rdx + 0x8c0]
xor edx, 0x3d
movzx r9d, byte [rsp + 0x8c5]
mov ebx, esi
add bl, r9b
movzx esi, bl
mov edi, esi
movzx ebx, byte [rsp + rdi + 0x8c0]
mov byte [rsp + 0x8c5], bl
mov byte [rsp + rdi + 0x8c0], r9b
add bl, r9b
movzx r9d, bl
movzx r9d, byte [rsp + r9 + 0x8c0]
xor r9d, 0x6e
movzx ebx, byte [rsp + 0x8c6]
add sil, bl
movzx edi, sil
mov esi, edi
movzx ebp, byte [rsp + rsi + 0x8c0]
mov byte [rsp + 0x8c6], bpl
mov byte [rsp + rsi + 0x8c0], bl
add bpl, bl
movzx esi, bpl
movzx esi, byte [rsp + rsi + 0x8c0]
xor esi, 0x6b
movzx ebx, byte [rsp + 0x8c7]
add dil, bl
movzx edi, dil
mov r14d, edi
movzx ebp, byte [rsp + r14 + 0x8c0]
mov byte [rsp + 0x8c7], bpl
mov byte [rsp + r14 + 0x8c0], bl
add bpl, bl
movzx ebx, bpl
movzx ebx, byte [rsp + rbx + 0x8c0]
xor ebx, 0xde
movzx ebp, byte [rsp + 0x8c8]
add dil, bpl
movzx edi, dil
movzx r14d, byte [rsp + rdi + 0x8c0]
mov byte [rsp + 0x8c8], r14b
mov byte [rsp + rdi + 0x8c0], bpl
add r14b, bpl
movzx edi, r14b
movzx edi, byte [rsp + rdi + 0x8c0]
xor edi, 0x59
add r8, rax
shl rdi, 0x38
shl rbx, 0x30
or rbx, rdi
shl rsi, 0x28
or rsi, rbx
shl r9, 0x20
or r9, rsi
shl edx, 0x18
mov eax, edx
or rax, r9
shl r11d, 0x10
mov edx, r11d
or rdx, rax
shl r10d, 8
mov eax, r10d
or rax, rdx
or rax, rcx
xor rax, r8
jmp 0x140016e20
xor eax, eax
movabs r15, 0xca9e68870be378d9
mov qword [rsp + 0x28], r15
xor ecx, ecx
nop word [rax + rax]
mov edx, ecx
mov byte [rsp + rcx + 0x9c8], cl
mov rdx, rcx
inc rdx
mov rcx, rdx
cmp rdx, 0x100
jne 0x140016e30
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
nop word cs:[rax + rax]
movzx r10d, byte [rsp + rdx + 0x9c8]
add r8b, r10b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x28]
movzx r11d, r8b
movzx ebx, byte [rsp + r11 + 0x9c8]
mov byte [rsp + rdx + 0x9c8], bl
mov byte [rsp + r11 + 0x9c8], r10b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, ecx
mov r10, rdx
inc r10
mov rdx, r10
cmp r10, 0x100
jne 0x140016e60
movzx ecx, byte [rsp + 0x9c9]
mov edx, ecx
movzx r8d, byte [rsp + rcx + 0x9c8]
mov byte [rsp + 0x9c9], r8b
mov byte [rsp + rcx + 0x9c8], cl
add r8b, cl
movzx ecx, r8b
movzx ecx, byte [rsp + rcx + 0x9c8]
xor rcx, 0x2e
movzx r8d, byte [rsp + 0x9ca]
mov r9b, r8b
mov r10b, dl
lea edx, [r9 + r10]
movzx edx, dl
mov r9d, edx
movzx r10d, byte [rsp + r9 + 0x9c8]
mov byte [rsp + 0x9ca], r10b
mov byte [rsp + r9 + 0x9c8], r8b
add r10b, r8b
movzx r8d, r10b
movzx r8d, byte [rsp + r8 + 0x9c8]
xor r8d, 0x8a
movzx r9d, byte [rsp + 0x9cb]
add dl, r9b
movzx r10d, dl
mov edx, r10d
movzx r11d, byte [rsp + rdx + 0x9c8]
mov byte [rsp + 0x9cb], r11b
mov byte [rsp + rdx + 0x9c8], r9b
add r11b, r9b
movzx edx, r11b
movzx edx, byte [rsp + rdx + 0x9c8]
xor edx, 0x77
movzx r9d, byte [rsp + 0x9cc]
add r10b, r9b
movzx r10d, r10b
mov r11d, r10d
movzx ebx, byte [rsp + r11 + 0x9c8]
mov byte [rsp + 0x9cc], bl
mov byte [rsp + r11 + 0x9c8], r9b
add bl, r9b
movzx r9d, bl
movzx r9d, byte [rsp + r9 + 0x9c8]
xor r9d, 0x3d
movzx r11d, byte [rsp + 0x9cd]
add r10b, r11b
movzx esi, r10b
mov r10d, esi
movzx ebx, byte [rsp + r10 + 0x9c8]
mov byte [rsp + 0x9cd], bl
mov byte [rsp + r10 + 0x9c8], r11b
add bl, r11b
movzx r10d, bl
movzx r10d, byte [rsp + r10 + 0x9c8]
xor r10d, 0x6e
movzx r11d, byte [rsp + 0x9ce]
mov ebx, esi
add bl, r11b
movzx esi, bl
mov edi, esi
movzx ebx, byte [rsp + rdi + 0x9c8]
mov byte [rsp + 0x9ce], bl
mov byte [rsp + rdi + 0x9c8], r11b
add bl, r11b
movzx r11d, bl
movzx r11d, byte [rsp + r11 + 0x9c8]
xor r11d, 0x6b
movzx ebx, byte [rsp + 0x9cf]
add sil, bl
movzx esi, sil
mov edi, esi
movzx ebp, byte [rsp + rdi + 0x9c8]
mov byte [rsp + 0x9cf], bpl
mov byte [rsp + rdi + 0x9c8], bl
add bpl, bl
movzx edi, bpl
movzx edi, byte [rsp + rdi + 0x9c8]
xor edi, 0xde
movzx ebx, byte [rsp + 0x9d0]
add sil, bl
movzx esi, sil
movzx ebp, byte [rsp + rsi + 0x9c8]
mov byte [rsp + 0x9d0], bpl
mov byte [rsp + rsi + 0x9c8], bl
add bpl, bl
movzx esi, bpl
movzx esi, byte [rsp + rsi + 0x9c8]
xor esi, 0x59
shl rsi, 0x38
shl rdi, 0x30
or rdi, rsi
shl r11, 0x28
or r11, rdi
shl r10, 0x20
or r10, r11
shl r9d, 0x18
or r9, r10
shl edx, 0x10
or rdx, r9
shl r8d, 8
or r8, rdx
or r8, rcx
xor r8, rax
mov rcx, qword [rsp + 0x18]
add rsp, 0xac8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp r8