Function at 0x1400204a0
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, 0xad0
mov dword [rsp + 0xc], r8d
mov qword [rsp + 0x20], rdx
mov qword [rsp], rcx
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x78], rax
xor eax, eax
nop word cs:[rax + rax]
mov edx, eax
mov byte [rsp + rax + 0x88], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x1400204e0
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx r10d, byte [rsp + rdx + 0x80]
add r8b, r10b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x78]
movzx r11d, r8b
movzx ebx, byte [rsp + r11 + 0x88]
mov byte [rsp + rdx + 0x80], bl
mov byte [rsp + r11 + 0x88], r10b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov r10, rdx
inc r10
mov rdx, r10
cmp r10, 0x108
jne 0x140020510
movzx eax, byte [rsp + 0x89]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x88]
mov byte [rsp + 0x89], r8b
mov byte [rsp + rax + 0x88], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x88]
mov r9d, eax
xor r9, 0xd9
movzx eax, byte [rsp + 0x8a]
mov r8b, al
mov r10b, dl
lea edx, [r8 + r10]
movzx edx, dl
mov r8d, edx
movzx r10d, byte [rsp + r8 + 0x88]
mov byte [rsp + 0x8a], r10b
mov byte [rsp + r8 + 0x88], al
add r10b, al
movzx eax, r10b
movzx r10d, byte [rsp + rax + 0x88]
xor r10d, 0x78
movzx eax, byte [rsp + 0x8b]
add dl, al
movzx edx, dl
mov r8d, edx
movzx r11d, byte [rsp + r8 + 0x88]
mov byte [rsp + 0x8b], r11b
mov byte [rsp + r8 + 0x88], al
add r11b, al
movzx eax, r11b
movzx r8d, byte [rsp + rax + 0x88]
xor r8d, 0xe3
movzx eax, byte [rsp + 0x8c]
add dl, al
movzx r11d, dl
mov edx, r11d
movzx ebx, byte [rsp + rdx + 0x88]
mov byte [rsp + 0x8c], bl
mov byte [rsp + rdx + 0x88], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x88]
xor edx, 0xb
movzx eax, byte [rsp + 0x8d]
add r11b, al
movzx esi, r11b
mov r11d, esi
movzx ebx, byte [rsp + r11 + 0x88]
mov byte [rsp + 0x8d], bl
mov byte [rsp + r11 + 0x88], al
add bl, al
movzx eax, bl
movzx eax, byte [rsp + rax + 0x88]
xor eax, 0x87
mov r11d, eax
movzx eax, byte [rsp + 0x8e]
mov ebx, esi
add bl, al
movzx edi, bl
mov esi, edi
movzx ebx, byte [rsp + rsi + 0x88]
mov byte [rsp + 0x8e], bl
mov byte [rsp + rsi + 0x88], al
add bl, al
movzx eax, bl
movzx eax, byte [rsp + rax + 0x88]
xor eax, 0x68
mov esi, eax
movzx eax, byte [rsp + 0x8f]
mov ebx, edi
add bl, al
movzx edi, bl
mov ebx, edi
movzx ebp, byte [rsp + rbx + 0x88]
mov byte [rsp + 0x8f], bpl
mov byte [rsp + rbx + 0x88], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x88]
xor eax, 0x9e
movzx ebx, byte [rsp + 0x90]
add dil, bl
movzx edi, dil
mov r14d, edi
movzx ebp, byte [rsp + r14 + 0x88]
mov byte [rsp + 0x90], bpl
mov byte [rsp + r14 + 0x88], bl
add bpl, bl
movzx ebx, bpl
movzx ebx, byte [rsp + rbx + 0x88]
xor ebx, 0xca
mov dword [rsp + 0x80], 8
mov dword [rsp + 0x84], 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 r8d, 0x10
mov edx, r8d
or rdx, rax
shl r10d, 8
mov eax, r10d
or rax, rdx
mov r10, rax
or r10, r9
xor r10, qword [rsp]
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x70], rax
xor eax, eax
nop dword [rax + rax]
mov edx, eax
mov byte [rsp + rax + 0x190], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x1400207b0
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx r11d, byte [rsp + rdx + 0x188]
add r8b, r11b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x70]
movzx esi, r8b
movzx ebx, byte [rsp + rsi + 0x190]
mov byte [rsp + rdx + 0x188], bl
mov byte [rsp + rsi + 0x190], r11b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov r11, rdx
inc r11
mov rdx, r11
cmp r11, 0x108
jne 0x1400207e0
movzx eax, byte [rsp + 0x191]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x190]
mov byte [rsp + 0x191], r8b
mov byte [rsp + rax + 0x190], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x190]
mov r9d, eax
xor r9, 0xd9
movzx eax, byte [rsp + 0x192]
mov r8b, al
mov r11b, dl
lea edx, [r8 + r11]
movzx edx, dl
mov r8d, edx
movzx r11d, byte [rsp + r8 + 0x190]
mov byte [rsp + 0x192], r11b
mov byte [rsp + r8 + 0x190], al
add r11b, al
movzx eax, r11b
movzx r11d, byte [rsp + rax + 0x190]
xor r11d, 0x78
movzx eax, byte [rsp + 0x193]
add dl, al
movzx edx, dl
mov r8d, edx
movzx ebx, byte [rsp + r8 + 0x190]
mov byte [rsp + 0x193], bl
mov byte [rsp + r8 + 0x190], al
add bl, al
movzx eax, bl
movzx r8d, byte [rsp + rax + 0x190]
xor r8d, 0xe3
movzx eax, byte [rsp + 0x194]
add dl, al
movzx esi, dl
mov edx, esi
movzx ebx, byte [rsp + rdx + 0x190]
mov byte [rsp + 0x194], bl
mov byte [rsp + rdx + 0x190], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x190]
xor edx, 0xb
movzx eax, byte [rsp + 0x195]
mov ebx, esi
add bl, al
movzx edi, bl
mov esi, edi
movzx ebx, byte [rsp + rsi + 0x190]
mov byte [rsp + 0x195], bl
mov byte [rsp + rsi + 0x190], al
add bl, al
movzx eax, bl
movzx eax, byte [rsp + rax + 0x190]
xor eax, 0x87
mov esi, eax
movzx eax, byte [rsp + 0x196]
mov ebx, edi
add bl, al
movzx ebx, bl
mov edi, ebx
movzx ebp, byte [rsp + rdi + 0x190]
mov byte [rsp + 0x196], bpl
mov byte [rsp + rdi + 0x190], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x190]
xor eax, 0x68
mov edi, eax
movzx eax, byte [rsp + 0x197]
add bl, al
movzx ebx, bl
mov r14d, ebx
movzx ebp, byte [rsp + r14 + 0x190]
mov byte [rsp + 0x197], bpl
mov byte [rsp + r14 + 0x190], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x190]
xor eax, 0x9e
movzx ebp, byte [rsp + 0x198]
add bl, bpl
movzx ebx, bl
mov r14d, ebx
movzx r15d, byte [rsp + r14 + 0x190]
mov byte [rsp + 0x198], r15b
mov byte [rsp + r14 + 0x190], bpl
add r15b, bpl
movzx ebp, r15b
mov r14d, ebp
movzx ebp, byte [rsp + r14 + 0x190]
xor ebp, 0xca
mov r14d, ebp
mov dword [rsp + 0x188], 8
mov dword [rsp + 0x18c], 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 r8d, 0x10
mov edx, r8d
or rdx, rax
shl r11d, 8
mov eax, r11d
or rax, rdx
or rax, r9
mov r9, rax
xor r9, qword [rsp]
movsxd r10, dword [r10 + 0x3c]
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x68], rax
xor eax, eax
nop
mov edx, eax
mov byte [rsp + rax + 0x298], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140020a80
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r11d, r11d
nop dword [rax + rax]
movzx ebx, byte [rsp + rdx + 0x290]
add r8b, bl
movsxd r11, r11d
add r8b, byte [rsp + r11 + 0x68]
movzx esi, r8b
movzx edi, byte [rsp + rsi + 0x298]
mov byte [rsp + rdx + 0x290], dil
mov byte [rsp + rsi + 0x298], bl
cmp r11d, 7
lea r11d, [r11 + 1]
cmovge r11d, eax
mov rsi, rdx
inc rsi
mov rdx, rsi
cmp rsi, 0x108
jne 0x140020ab0
movzx eax, byte [rsp + 0x299]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x298]
mov byte [rsp + 0x299], r8b
mov byte [rsp + rax + 0x298], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x298]
mov r11d, eax
xor r11, 0xd9
movzx eax, byte [rsp + 0x29a]
mov r8b, al
mov sil, dl
lea edx, [r8 + rsi]
movzx edx, dl
mov r8d, edx
movzx ebx, byte [rsp + r8 + 0x298]
mov byte [rsp + 0x29a], bl
mov byte [rsp + r8 + 0x298], al
add bl, al
movzx eax, bl
movzx esi, byte [rsp + rax + 0x298]
xor esi, 0x78
movzx eax, byte [rsp + 0x29b]
add dl, al
movzx edx, dl
mov r8d, edx
movzx ebx, byte [rsp + r8 + 0x298]
mov byte [rsp + 0x29b], bl
mov byte [rsp + r8 + 0x298], al
add bl, al
movzx eax, bl
movzx r8d, byte [rsp + rax + 0x298]
xor r8d, 0xe3
movzx eax, byte [rsp + 0x29c]
add dl, al
movzx edi, dl
mov edx, edi
movzx ebx, byte [rsp + rdx + 0x298]
mov byte [rsp + 0x29c], bl
mov byte [rsp + rdx + 0x298], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x298]
xor edx, 0xb
movzx eax, byte [rsp + 0x29d]
mov ebx, edi
add bl, al
movzx ebx, bl
mov edi, ebx
movzx ebp, byte [rsp + rdi + 0x298]
mov byte [rsp + 0x29d], bpl
mov byte [rsp + rdi + 0x298], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x298]
xor eax, 0x87
mov edi, eax
movzx eax, byte [rsp + 0x29e]
add bl, al
movzx ebp, bl
mov ebx, ebp
movzx r14d, byte [rsp + rbx + 0x298]
mov byte [rsp + 0x29e], r14b
mov byte [rsp + rbx + 0x298], al
add r14b, al
movzx eax, r14b
movzx eax, byte [rsp + rax + 0x298]
xor eax, 0x68
mov ebx, eax
movzx eax, byte [rsp + 0x29f]
add bpl, al
movzx ebp, bpl
mov r14d, ebp
movzx r15d, byte [rsp + r14 + 0x298]
mov byte [rsp + 0x29f], r15b
mov byte [rsp + r14 + 0x298], al
add r15b, al
movzx eax, r15b
movzx eax, byte [rsp + rax + 0x298]
xor eax, 0x9e
movzx r14d, byte [rsp + 0x2a0]
add bpl, r14b
movzx ebp, bpl
mov r15d, ebp
movzx r12d, byte [rsp + r15 + 0x298]
mov byte [rsp + 0x2a0], r12b
mov byte [rsp + r15 + 0x298], r14b
add r12b, r14b
movzx r14d, r12b
movzx r14d, byte [rsp + r14 + 0x298]
xor r14d, 0xca
mov dword [rsp + 0x290], 8
mov dword [rsp + 0x294], 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 r8d, 0x10
mov edx, r8d
or rdx, rax
shl esi, 8
mov eax, esi
or rax, rdx
or rax, r11
mov r11, rax
xor r11, qword [rsp]
mov eax, dword [r9 + r10 + 0x88]
mov esi, eax
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x60], rax
xor eax, eax
nop
mov edx, eax
mov byte [rsp + rax + 0x3a0], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140020d50
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx r10d, byte [rsp + rdx + 0x398]
add r8b, r10b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x60]
movzx edi, r8b
movzx ebx, byte [rsp + rdi + 0x3a0]
mov byte [rsp + rdx + 0x398], bl
mov byte [rsp + rdi + 0x3a0], r10b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov r10, rdx
inc r10
mov rdx, r10
cmp r10, 0x108
jne 0x140020d80
movzx eax, byte [rsp + 0x3a1]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x3a0]
mov byte [rsp + 0x3a1], r8b
mov byte [rsp + rax + 0x3a0], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x3a0]
mov r9d, eax
xor r9, 0xd9
movzx eax, byte [rsp + 0x3a2]
mov r8b, al
mov r10b, dl
lea edx, [r8 + r10]
movzx edx, dl
mov r8d, edx
movzx r10d, byte [rsp + r8 + 0x3a0]
mov byte [rsp + 0x3a2], r10b
mov byte [rsp + r8 + 0x3a0], al
add r10b, al
movzx eax, r10b
movzx r10d, byte [rsp + rax + 0x3a0]
xor r10d, 0x78
movzx eax, byte [rsp + 0x3a3]
add dl, al
movzx edx, dl
mov r8d, edx
movzx ebx, byte [rsp + r8 + 0x3a0]
mov byte [rsp + 0x3a3], bl
mov byte [rsp + r8 + 0x3a0], al
add bl, al
movzx eax, bl
movzx r8d, byte [rsp + rax + 0x3a0]
xor r8d, 0xe3
movzx eax, byte [rsp + 0x3a4]
add dl, al
movzx edi, dl
mov edx, edi
movzx ebx, byte [rsp + rdx + 0x3a0]
mov byte [rsp + 0x3a4], bl
mov byte [rsp + rdx + 0x3a0], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x3a0]
xor edx, 0xb
movzx eax, byte [rsp + 0x3a5]
mov ebx, edi
add bl, al
movzx ebx, bl
mov edi, ebx
movzx ebp, byte [rsp + rdi + 0x3a0]
mov byte [rsp + 0x3a5], bpl
mov byte [rsp + rdi + 0x3a0], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x3a0]
xor eax, 0x87
mov edi, eax
movzx eax, byte [rsp + 0x3a6]
add bl, al
movzx ebp, bl
mov ebx, ebp
movzx r14d, byte [rsp + rbx + 0x3a0]
mov byte [rsp + 0x3a6], r14b
mov byte [rsp + rbx + 0x3a0], al
add r14b, al
movzx eax, r14b
movzx eax, byte [rsp + rax + 0x3a0]
xor eax, 0x68
mov ebx, eax
movzx eax, byte [rsp + 0x3a7]
add bpl, al
movzx ebp, bpl
mov r14d, ebp
movzx r15d, byte [rsp + r14 + 0x3a0]
mov byte [rsp + 0x3a7], r15b
mov byte [rsp + r14 + 0x3a0], al
add r15b, al
movzx eax, r15b
movzx eax, byte [rsp + rax + 0x3a0]
xor eax, 0x9e
movzx r14d, byte [rsp + 0x3a8]
add bpl, r14b
movzx ebp, bpl
mov r15d, ebp
movzx r12d, byte [rsp + r15 + 0x3a0]
mov byte [rsp + 0x3a8], r12b
mov byte [rsp + r15 + 0x3a0], r14b
add r12b, r14b
movzx r14d, r12b
movzx r14d, byte [rsp + r14 + 0x3a0]
xor r14d, 0xca
mov dword [rsp + 0x398], 8
mov dword [rsp + 0x39c], 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 r8d, 0x10
mov edx, r8d
or rdx, rax
shl r10d, 8
mov eax, r10d
or rax, rdx
or rax, r9
xor rax, qword [rsp]
mov edx, dword [r11 + rsi + 0x1c]
add rdx, rax
mov qword [rsp + 0x18], rdx
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x58], rax
xor eax, eax
nop word cs:[rax + rax]
mov edx, eax
mov byte [rsp + rax + 0x4a8], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140021030
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx r10d, byte [rsp + rdx + 0x4a0]
add r8b, r10b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x58]
movzx edi, r8b
movzx ebx, byte [rsp + rdi + 0x4a8]
mov byte [rsp + rdx + 0x4a0], bl
mov byte [rsp + rdi + 0x4a8], r10b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov r10, rdx
inc r10
mov rdx, r10
cmp r10, 0x108
jne 0x140021060
movzx eax, byte [rsp + 0x4a9]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x4a8]
mov byte [rsp + 0x4a9], r8b
mov byte [rsp + rax + 0x4a8], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x4a8]
mov r10d, eax
xor r10, 0xd9
movzx eax, byte [rsp + 0x4aa]
mov r8b, al
mov r9b, dl
lea edx, [r8 + r9]
movzx edx, dl
mov r8d, edx
movzx r9d, byte [rsp + r8 + 0x4a8]
mov byte [rsp + 0x4aa], r9b
mov byte [rsp + r8 + 0x4a8], al
add r9b, al
movzx eax, r9b
movzx edi, byte [rsp + rax + 0x4a8]
xor edi, 0x78
movzx eax, byte [rsp + 0x4ab]
add dl, al
movzx edx, dl
mov r8d, edx
movzx r9d, byte [rsp + r8 + 0x4a8]
mov byte [rsp + 0x4ab], r9b
mov byte [rsp + r8 + 0x4a8], al
add r9b, al
movzx eax, r9b
movzx r8d, byte [rsp + rax + 0x4a8]
xor r8d, 0xe3
movzx eax, byte [rsp + 0x4ac]
add dl, al
movzx r9d, dl
mov edx, r9d
movzx ebx, byte [rsp + rdx + 0x4a8]
mov byte [rsp + 0x4ac], bl
mov byte [rsp + rdx + 0x4a8], al
add bl, al
movzx eax, bl
movzx edx, byte [rsp + rax + 0x4a8]
xor edx, 0xb
movzx eax, byte [rsp + 0x4ad]
add r9b, al
movzx ebx, r9b
mov r9d, ebx
movzx ebp, byte [rsp + r9 + 0x4a8]
mov byte [rsp + 0x4ad], bpl
mov byte [rsp + r9 + 0x4a8], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x4a8]
xor eax, 0x87
mov r9d, eax
movzx eax, byte [rsp + 0x4ae]
add bl, al
movzx ebp, bl
mov ebx, ebp
movzx r14d, byte [rsp + rbx + 0x4a8]
mov byte [rsp + 0x4ae], r14b
mov byte [rsp + rbx + 0x4a8], al
add r14b, al
movzx eax, r14b
movzx eax, byte [rsp + rax + 0x4a8]
xor eax, 0x68
mov ebx, eax
movzx eax, byte [rsp + 0x4af]
add bpl, al
movzx ebp, bpl
mov r14d, ebp
movzx r15d, byte [rsp + r14 + 0x4a8]
mov byte [rsp + 0x4af], r15b
mov byte [rsp + r14 + 0x4a8], al
add r15b, al
movzx eax, r15b
movzx eax, byte [rsp + rax + 0x4a8]
xor eax, 0x9e
movzx r14d, byte [rsp + 0x4b0]
add bpl, r14b
movzx ebp, bpl
mov r15d, ebp
movzx r12d, byte [rsp + r15 + 0x4a8]
mov byte [rsp + 0x4b0], r12b
mov byte [rsp + r15 + 0x4a8], r14b
add r12b, r14b
movzx r14d, r12b
movzx r14d, byte [rsp + r14 + 0x4a8]
xor r14d, 0xca
mov dword [rsp + 0x4a0], 8
mov dword [rsp + 0x4a4], ebp
shl r14, 0x38
shl rax, 0x30
or rax, r14
shl rbx, 0x28
or rbx, rax
shl r9, 0x20
or r9, rbx
shl edx, 0x18
mov eax, edx
or rax, r9
shl r8d, 0x10
mov edx, r8d
or rdx, rax
shl edi, 8
mov eax, edi
or rax, rdx
or rax, r10
xor rax, qword [rsp]
mov edx, dword [r11 + rsi + 0x20]
mov edi, edx
add rdi, rax
mov qword [rsp + 0x28], rdi
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x50], rax
xor eax, eax
nop dword [rax]
mov edx, eax
mov byte [rsp + rax + 0x5b0], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140021310
xor eax, eax
mov edx, 8
xor r8d, r8d
xor r9d, r9d
nop dword [rax + rax]
movzx r10d, byte [rsp + rdx + 0x5a8]
add r8b, r10b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x50]
movzx ebx, r8b
movzx ebp, byte [rsp + rbx + 0x5b0]
mov byte [rsp + rdx + 0x5a8], bpl
mov byte [rsp + rbx + 0x5b0], r10b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, eax
mov r10, rdx
inc r10
mov rdx, r10
cmp r10, 0x108
jne 0x140021340
movzx eax, byte [rsp + 0x5b1]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x5b0]
mov byte [rsp + 0x5b1], r8b
mov byte [rsp + rax + 0x5b0], al
add r8b, al
movzx eax, r8b
movzx r8d, byte [rsp + rax + 0x5b0]
movzx eax, byte [rsp + 0x5b2]
mov r9b, al
mov r10b, dl
lea edx, [r9 + r10]
movzx r9d, dl
mov edx, r9d
movzx r10d, byte [rsp + rdx + 0x5b0]
mov byte [rsp + 0x5b2], r10b
mov byte [rsp + rdx + 0x5b0], al
add r10b, al
movzx eax, r10b
movzx edx, byte [rsp + rax + 0x5b0]
movzx eax, byte [rsp + 0x5b3]
add r9b, al
movzx r9d, r9b
mov r10d, r9d
movzx ebx, byte [rsp + r10 + 0x5b0]
mov byte [rsp + 0x5b3], bl
mov byte [rsp + r10 + 0x5b0], al
add bl, al
movzx eax, bl
movzx r14d, byte [rsp + rax + 0x5b0]
movzx eax, byte [rsp + 0x5b4]
add r9b, al
movzx r10d, r9b
mov r9d, r10d
movzx ebx, byte [rsp + r9 + 0x5b0]
mov byte [rsp + 0x5b4], bl
mov byte [rsp + r9 + 0x5b0], al
add bl, al
movzx eax, bl
movzx r9d, byte [rsp + rax + 0x5b0]
movzx eax, byte [rsp + 0x5b5]
add r10b, al
movzx ebx, r10b
mov r10d, ebx
movzx ebp, byte [rsp + r10 + 0x5b0]
mov byte [rsp + 0x5b5], bpl
mov byte [rsp + r10 + 0x5b0], al
add bpl, al
movzx eax, bpl
movzx r10d, byte [rsp + rax + 0x5b0]
movzx eax, byte [rsp + 0x5b6]
add bl, al
movzx ebx, bl
mov r15d, ebx
movzx ebp, byte [rsp + r15 + 0x5b0]
mov byte [rsp + 0x5b6], bpl
mov byte [rsp + r15 + 0x5b0], al
add bpl, al
movzx eax, bpl
movzx r15d, byte [rsp + rax + 0x5b0]
movzx eax, byte [rsp + 0x5b7]
add bl, al
movzx ebx, bl
mov r12d, ebx
movzx ebp, byte [rsp + r12 + 0x5b0]
mov byte [rsp + 0x5b7], bpl
mov byte [rsp + r12 + 0x5b0], al
add bpl, al
movzx eax, bpl
movzx eax, byte [rsp + rax + 0x5b0]
movzx ebp, byte [rsp + 0x5b8]
add bl, bpl
movzx ebx, bl
mov r12d, ebx
movzx r13d, byte [rsp + r12 + 0x5b0]
mov byte [rsp + 0x5b8], r13b
mov byte [rsp + r12 + 0x5b0], bpl
add r13b, bpl
movzx ebp, r13b
mov r12d, ebp
movzx r12d, byte [rsp + r12 + 0x5b0]
mov dword [rsp + 0x5a8], 8
mov dword [rsp + 0x5ac], ebx
mov ebx, dword [r11 + rsi + 0x18]
mov edi, ebx
xor ebp, ebp
test rdi, rdi
je 0x140021ee4
xor r8, 0xd9
xor edx, 0x78
xor r14d, 0xe3
xor r9d, 0xb
xor r10d, 0x87
xor r15d, 0x68
xor eax, 0x9e
xor r12d, 0xca
shl r12, 0x38
shl rax, 0x30
or rax, r12
shl r15, 0x28
or r15, rax
shl r10, 0x20
or r10, r15
shl r9d, 0x18
mov eax, r9d
or rax, r10
shl r14d, 0x10
mov r9d, r14d
or r9, rax
shl edx, 8
mov eax, edx
or rax, r9
or rax, r8
xor rax, qword [rsp]
mov edx, dword [r11 + rsi + 0x24]
add rdx, rax
mov qword [rsp + 0x10], rdx
movabs r15, 0x100000001b3
xor esi, esi
jmp 0x140021612
mov rax, rsi
inc rax
mov rsi, rax
cmp rax, rdi
je 0x140021ee4
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x48], rax
xor eax, eax
nop word cs:[rax + rax]
mov edx, eax
mov byte [rsp + rax + 0x6b8], al
mov rdx, rax
inc rdx
mov rax, rdx
cmp rdx, 0x100
jne 0x140021630
mov eax, 8
xor edx, edx
xor r8d, r8d
nop word cs:[rax + rax]
movzx r9d, byte [rsp + rax + 0x6b0]
add dl, r9b
movsxd r8, r8d
add dl, byte [rsp + r8 + 0x48]
movzx r10d, dl
movzx r11d, byte [rsp + r10 + 0x6b8]
mov byte [rsp + rax + 0x6b0], r11b
mov byte [rsp + r10 + 0x6b8], r9b
cmp r8d, 7
lea r8d, [r8 + 1]
cmovge r8d, ebp
mov r9, rax
inc r9
mov rax, r9
cmp r9, 0x108
jne 0x140021660
movzx eax, byte [rsp + 0x6b9]
mov edx, eax
movzx r8d, byte [rsp + rax + 0x6b8]
mov byte [rsp + 0x6b9], r8b
mov byte [rsp + rax + 0x6b8], al
add r8b, al
movzx eax, r8b
movzx eax, byte [rsp + rax + 0x6b8]
mov r13d, eax
xor r13, 0xd9
movzx eax, byte [rsp + 0x6ba]
mov r8b, al
mov r9b, dl
lea edx, [r8 + r9]
movzx edx, dl
mov r8d, edx
movzx r9d, byte [rsp + r8 + 0x6b8]
mov byte [rsp + 0x6ba], r9b
mov byte [rsp + r8 + 0x6b8], al
add r9b, al
movzx eax, r9b
movzx r8d, byte [rsp + rax + 0x6b8]
xor r8d, 0x78
movzx eax, byte [rsp + 0x6bb]
add dl, al
movzx r9d, dl
mov edx, r9d
movzx r10d, byte [rsp + rdx + 0x6b8]
mov byte [rsp + 0x6bb], r10b
mov byte [rsp + rdx + 0x6b8], al
add r10b, al
movzx eax, r10b
movzx edx, byte [rsp + rax + 0x6b8]
xor edx, 0xe3
movzx eax, byte [rsp + 0x6bc]
add r9b, al
movzx r9d, r9b
mov r10d, r9d
movzx r11d, byte [rsp + r10 + 0x6b8]
mov byte [rsp + 0x6bc], r11b
mov byte [rsp + r10 + 0x6b8], al
add r11b, al
movzx eax, r11b
movzx r10d, byte [rsp + rax + 0x6b8]
xor r10d, 0xb
movzx eax, byte [rsp + 0x6bd]
add r9b, al
movzx r9d, r9b
mov r11d, r9d
movzx r12d, byte [rsp + r11 + 0x6b8]
mov byte [rsp + 0x6bd], r12b
mov byte [rsp + r11 + 0x6b8], al
add r12b, al
movzx eax, r12b
movzx eax, byte [rsp + rax + 0x6b8]
xor eax, 0x87
mov r11d, eax
movzx eax, byte [rsp + 0x6be]
add r9b, al
movzx r9d, r9b
mov r12d, r9d
movzx ecx, byte [rsp + r12 + 0x6b8]
mov byte [rsp + 0x6be], cl
mov byte [rsp + r12 + 0x6b8], al
add cl, al
movzx eax, cl
movzx eax, byte [rsp + rax + 0x6b8]
xor eax, 0x68
movzx ecx, byte [rsp + 0x6bf]
add r9b, cl
movzx r9d, r9b
mov r12d, r9d
movzx r14d, byte [rsp + r12 + 0x6b8]
mov byte [rsp + 0x6bf], r14b
mov byte [rsp + r12 + 0x6b8], cl
add r14b, cl
movzx ecx, r14b
movzx ecx, byte [rsp + rcx + 0x6b8]
xor ecx, 0x9e
movzx r14d, byte [rsp + 0x6c0]
add r9b, r14b
movzx r9d, r9b
mov r12d, r9d
movzx ebx, byte [rsp + r12 + 0x6b8]
mov byte [rsp + 0x6c0], bl
mov byte [rsp + r12 + 0x6b8], r14b
add bl, r14b
movzx ebx, bl
movzx ebx, byte [rsp + rbx + 0x6b8]
xor ebx, 0xca
shl rbx, 0x38
shl rcx, 0x30
or rcx, rbx
shl rax, 0x28
or rax, rcx
shl r11, 0x20
or r11, rax
shl r10d, 0x18
mov eax, r10d
or rax, r11
shl edx, 0x10
mov ecx, edx
or rcx, rax
shl r8d, 8
mov eax, r8d
or rax, rcx
or rax, r13
mov rdx, rax
xor rdx, qword [rsp]
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + rsi*4]
mov r8d, eax
movzx eax, byte [rdx + r8]
test al, al
je 0x140021600
add rdx, r8
inc rdx
mov r8d, eax
movabs r10, 0x172dbc136d98310a
nop word cs:[rax + rax]
movsx rax, r8b
xor rax, r10
imul rax, r15
movzx ecx, byte [rdx]
inc rdx
mov r8d, ecx
mov r10, rax
test cl, cl
jne 0x140021920
movabs rcx, 0xa27f2a6962f20db6
cmp rax, rcx
jne 0x140021600
mov dword [rsp + 0x6b4], r9d
mov dword [rsp + 0x6b0], 8
movabs rax, 0x59de6b6e3d778a2e
mov qword [rsp + 0x40], rax
xor eax, eax
movabs r15, 0xca9e68870be378d9
nop dword [rax]
mov ecx, eax
mov byte [rsp + rax + 0x7c0], al
mov rcx, rax
inc rcx
mov rax, rcx
cmp rcx, 0x100
jne 0x140021980
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 + 0x7c0]
add cl, r8b
movsxd r9, r9d
add cl, byte [rsp + r9 + 0x40]
movzx r10d, cl
movzx r11d, byte [rsp + r10 + 0x7c0]
mov byte [rsp + rdx + 0x7c0], r11b
mov byte [rsp + r10 + 0x7c0], 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 0x1400219b0
movzx eax, byte [rsp + 0x7c1]
mov ecx, eax
movzx edx, byte [rsp + rax + 0x7c0]
mov byte [rsp + 0x7c1], dl
mov byte [rsp + rax + 0x7c0], al
add dl, al
movzx eax, dl
movzx eax, byte [rsp + rax + 0x7c0]
xor rax, 0xd9
movzx edx, byte [rsp + 0x7c2]
mov r8b, dl
mov r9b, cl
lea ecx, [r8 + r9]
movzx ecx, cl
mov r8d, ecx
movzx r9d, byte [rsp + r8 + 0x7c0]
mov byte [rsp + 0x7c2], r9b
mov byte [rsp + r8 + 0x7c0], dl
add r9b, dl
movzx edx, r9b
movzx r8d, byte [rsp + rdx + 0x7c0]
xor r8d, 0x78
movzx edx, byte [rsp + 0x7c3]
add cl, dl
movzx ecx, cl
mov r9d, ecx
movzx r10d, byte [rsp + r9 + 0x7c0]
mov byte [rsp + 0x7c3], r10b
mov byte [rsp + r9 + 0x7c0], dl
add r10b, dl
movzx edx, r10b
movzx edx, byte [rsp + rdx + 0x7c0]
xor edx, 0xe3
movzx r9d, byte [rsp + 0x7c4]
add cl, r9b
movzx ecx, cl
mov r10d, ecx
movzx r11d, byte [rsp + r10 + 0x7c0]
mov byte [rsp + 0x7c4], r11b
mov byte [rsp + r10 + 0x7c0], r9b
add r11b, r9b
movzx r9d, r11b
movzx r9d, byte [rsp + r9 + 0x7c0]
xor r9d, 0xb
movzx r10d, byte [rsp + 0x7c5]
add cl, r10b
movzx ecx, cl
mov r11d, ecx
movzx ebx, byte [rsp + r11 + 0x7c0]
mov byte [rsp + 0x7c5], bl
mov byte [rsp + r11 + 0x7c0], r10b
add bl, r10b
movzx r10d, bl
movzx r10d, byte [rsp + r10 + 0x7c0]
xor r10d, 0x87
movzx r11d, byte [rsp + 0x7c6]
add cl, r11b
movzx ecx, cl
mov edi, ecx
movzx ebx, byte [rsp + rdi + 0x7c0]
mov byte [rsp + 0x7c6], bl
mov byte [rsp + rdi + 0x7c0], r11b
add bl, r11b
movzx r11d, bl
movzx r11d, byte [rsp + r11 + 0x7c0]
xor r11d, 0x68
movzx ebx, byte [rsp + 0x7c7]
add cl, bl
movzx ecx, cl
mov edi, ecx
movzx ebp, byte [rsp + rdi + 0x7c0]
mov byte [rsp + 0x7c7], bpl
mov byte [rsp + rdi + 0x7c0], bl
add bpl, bl
movzx edi, bpl
movzx edi, byte [rsp + rdi + 0x7c0]
xor edi, 0x9e
movzx ebx, byte [rsp + 0x7c8]
add cl, bl
movzx ecx, cl
movzx ebp, byte [rsp + rcx + 0x7c0]
mov byte [rsp + 0x7c8], bpl
mov byte [rsp + rcx + 0x7c0], bl
add bpl, bl
movzx ecx, bpl
movzx ecx, byte [rsp + rcx + 0x7c0]
xor ecx, 0xca
shl rcx, 0x38
shl rdi, 0x30
or rdi, rcx
shl r11, 0x28
or r11, rdi
shl r10, 0x20
or r10, r11
shl r9d, 0x18
mov ecx, r9d
or rcx, r10
shl edx, 0x10
or rdx, rcx
shl r8d, 8
mov ecx, r8d
mov r9, rcx
or r9, rdx
or r9, rax
mov rax, qword [rsp + 0x10]
movzx eax, word [rax + rsi*2]
mov rcx, qword [rsp + 0x18]
mov eax, dword [rcx + rax*4]
mov qword [rsp + 0x38], r15
xor edx, edx
nop
mov ecx, edx
mov byte [rsp + rdx + 0x8c8], dl
mov rcx, rdx
inc rcx
mov rdx, rcx
cmp rcx, 0x100
jne 0x140021c40
xor r9, qword [rsp]
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r10d, r10d
nop dword [rax]
movzx r11d, byte [rsp + rdx + 0x8c8]
add r8b, r11b
movsxd r10, r10d
add r8b, byte [rsp + r10 + 0x38]
movzx esi, r8b
movzx ebx, byte [rsp + rsi + 0x8c8]
mov byte [rsp + rdx + 0x8c8], bl
mov byte [rsp + rsi + 0x8c8], r11b
cmp r10d, 7
lea r10d, [r10 + 1]
cmovge r10d, ecx
mov r11, rdx
inc r11
mov rdx, r11
cmp r11, 0x100
jne 0x140021c70
movzx ecx, byte [rsp + 0x8c9]
mov edx, ecx
movzx r8d, byte [rsp + rcx + 0x8c8]
mov byte [rsp + 0x8c9], r8b
mov byte [rsp + rcx + 0x8c8], cl
add r8b, cl
movzx ecx, r8b
movzx ecx, byte [rsp + rcx + 0x8c8]
xor rcx, 0x2e
movzx r8d, byte [rsp + 0x8ca]
mov r10b, r8b
mov r11b, dl
lea edx, [r10 + r11]
movzx edx, dl
mov r10d, edx
movzx r11d, byte [rsp + r10 + 0x8c8]
mov byte [rsp + 0x8ca], r11b
mov byte [rsp + r10 + 0x8c8], r8b
add r11b, r8b
movzx r8d, r11b
movzx r11d, byte [rsp + r8 + 0x8c8]
xor r11d, 0x8a
movzx r8d, byte [rsp + 0x8cb]
add dl, r8b
movzx edx, dl
mov r10d, edx
movzx ebx, byte [rsp + r10 + 0x8c8]
mov byte [rsp + 0x8cb], bl
mov byte [rsp + r10 + 0x8c8], r8b
add bl, r8b
movzx r8d, bl
movzx r8d, byte [rsp + r8 + 0x8c8]
xor r8d, 0x77
movzx r10d, byte [rsp + 0x8cc]
add dl, r10b
movzx esi, dl
mov edx, esi
movzx ebx, byte [rsp + rdx + 0x8c8]
mov byte [rsp + 0x8cc], bl
mov byte [rsp + rdx + 0x8c8], r10b
add bl, r10b
movzx edx, bl
movzx edx, byte [rsp + rdx + 0x8c8]
xor edx, 0x3d
movzx r10d, byte [rsp + 0x8cd]
mov ebx, esi
add bl, r10b
movzx esi, bl
mov edi, esi
movzx ebx, byte [rsp + rdi + 0x8c8]
mov byte [rsp + 0x8cd], bl
mov byte [rsp + rdi + 0x8c8], r10b
add bl, r10b
movzx r10d, bl
movzx r10d, byte [rsp + r10 + 0x8c8]
xor r10d, 0x6e
movzx ebx, byte [rsp + 0x8ce]
add sil, bl
movzx edi, sil
mov esi, edi
movzx ebp, byte [rsp + rsi + 0x8c8]
mov byte [rsp + 0x8ce], bpl
mov byte [rsp + rsi + 0x8c8], bl
add bpl, bl
movzx esi, bpl
movzx esi, byte [rsp + rsi + 0x8c8]
xor esi, 0x6b
movzx ebx, byte [rsp + 0x8cf]
add dil, bl
movzx edi, dil
mov r14d, edi
movzx ebp, byte [rsp + r14 + 0x8c8]
mov byte [rsp + 0x8cf], bpl
mov byte [rsp + r14 + 0x8c8], bl
add bpl, bl
movzx ebx, bpl
movzx ebx, byte [rsp + rbx + 0x8c8]
xor ebx, 0xde
movzx ebp, byte [rsp + 0x8d0]
add dil, bpl
movzx edi, dil
movzx r14d, byte [rsp + rdi + 0x8c8]
mov byte [rsp + 0x8d0], r14b
mov byte [rsp + rdi + 0x8c8], bpl
add r14b, bpl
movzx edi, r14b
movzx edi, byte [rsp + rdi + 0x8c8]
xor edi, 0x59
add r9, rax
shl rdi, 0x38
shl rbx, 0x30
or rbx, rdi
shl rsi, 0x28
or rsi, rbx
shl r10, 0x20
or r10, rsi
shl edx, 0x18
mov eax, edx
or rax, r10
shl r8d, 0x10
mov edx, r8d
or rdx, rax
shl r11d, 8
mov eax, r11d
or rax, rdx
or rax, rcx
xor rax, r9
jmp 0x140021ef0
xor eax, eax
movabs r15, 0xca9e68870be378d9
mov qword [rsp + 0x30], r15
xor ecx, ecx
nop word [rax + rax]
mov edx, ecx
mov byte [rsp + rcx + 0x9d0], cl
mov rdx, rcx
inc rdx
mov rcx, rdx
cmp rdx, 0x100
jne 0x140021f00
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
nop word cs:[rax + rax]
movzx r10d, byte [rsp + rdx + 0x9d0]
add r8b, r10b
movsxd r9, r9d
add r8b, byte [rsp + r9 + 0x30]
movzx r11d, r8b
movzx ebx, byte [rsp + r11 + 0x9d0]
mov byte [rsp + rdx + 0x9d0], bl
mov byte [rsp + r11 + 0x9d0], r10b
cmp r9d, 7
lea r9d, [r9 + 1]
cmovge r9d, ecx
mov r10, rdx
inc r10
mov rdx, r10
cmp r10, 0x100
jne 0x140021f30
movzx ecx, byte [rsp + 0x9d1]
mov edx, ecx
movzx r8d, byte [rsp + rcx + 0x9d0]
mov byte [rsp + 0x9d1], r8b
mov byte [rsp + rcx + 0x9d0], cl
add r8b, cl
movzx ecx, r8b
movzx ecx, byte [rsp + rcx + 0x9d0]
xor rcx, 0x2e
movzx r8d, byte [rsp + 0x9d2]
mov r9b, r8b
mov r10b, dl
lea edx, [r9 + r10]
movzx edx, dl
mov r9d, edx
movzx r10d, byte [rsp + r9 + 0x9d0]
mov byte [rsp + 0x9d2], r10b
mov byte [rsp + r9 + 0x9d0], r8b
add r10b, r8b
movzx r8d, r10b
movzx r8d, byte [rsp + r8 + 0x9d0]
xor r8d, 0x8a
movzx r9d, byte [rsp + 0x9d3]
add dl, r9b
movzx r10d, dl
mov edx, r10d
movzx r11d, byte [rsp + rdx + 0x9d0]
mov byte [rsp + 0x9d3], r11b
mov byte [rsp + rdx + 0x9d0], r9b
add r11b, r9b
movzx edx, r11b
movzx edx, byte [rsp + rdx + 0x9d0]
xor edx, 0x77
movzx r9d, byte [rsp + 0x9d4]
add r10b, r9b
movzx r10d, r10b
mov r11d, r10d
movzx ebx, byte [rsp + r11 + 0x9d0]
mov byte [rsp + 0x9d4], bl
mov byte [rsp + r11 + 0x9d0], r9b
add bl, r9b
movzx r9d, bl
movzx r9d, byte [rsp + r9 + 0x9d0]
xor r9d, 0x3d
movzx r11d, byte [rsp + 0x9d5]
add r10b, r11b
movzx esi, r10b
mov r10d, esi
movzx ebx, byte [rsp + r10 + 0x9d0]
mov byte [rsp + 0x9d5], bl
mov byte [rsp + r10 + 0x9d0], r11b
add bl, r11b
movzx r10d, bl
movzx r10d, byte [rsp + r10 + 0x9d0]
xor r10d, 0x6e
movzx r11d, byte [rsp + 0x9d6]
mov ebx, esi
add bl, r11b
movzx esi, bl
mov edi, esi
movzx ebx, byte [rsp + rdi + 0x9d0]
mov byte [rsp + 0x9d6], bl
mov byte [rsp + rdi + 0x9d0], r11b
add bl, r11b
movzx r11d, bl
movzx r11d, byte [rsp + r11 + 0x9d0]
xor r11d, 0x6b
movzx ebx, byte [rsp + 0x9d7]
add sil, bl
movzx esi, sil
mov edi, esi
movzx ebp, byte [rsp + rdi + 0x9d0]
mov byte [rsp + 0x9d7], bpl
mov byte [rsp + rdi + 0x9d0], bl
add bpl, bl
movzx edi, bpl
movzx edi, byte [rsp + rdi + 0x9d0]
xor edi, 0xde
movzx ebx, byte [rsp + 0x9d8]
add sil, bl
movzx esi, sil
movzx ebp, byte [rsp + rsi + 0x9d0]
mov byte [rsp + 0x9d8], bpl
mov byte [rsp + rsi + 0x9d0], bl
add bpl, bl
movzx esi, bpl
movzx esi, byte [rsp + rsi + 0x9d0]
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 + 0x20]
mov edx, dword [rsp + 0xc]
add rsp, 0xad0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp r8