Function at 0x871a60
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x318
movaps xmmword [rsp + 0x2f0], xmm6
movaps xmmword [rsp + 0x300], xmm7
mov qword [rsp + 0x360], rcx
mov rbx, rdx
mov rsi, r8
call fcn.008af440
test eax, eax
jne 0x872691
movzx eax, byte [rsi + 4]
movzx ecx, byte [rsi + 5]
mov qword [rsp + 0x68], 0
movabs rbp, 0xffffffffffffe
mov edi, dword [rsi]
mov r8d, dword [rsi + 7]
mov qword [rsp + 0x78], 0
shl rcx, 0x28
shl rax, 0x20
mov r9d, dword [rsi + 0xd]
mov r10d, dword [rsi + 0x14]
or rax, rcx
movzx ecx, byte [rsi + 0xb]
movdqu xmm5, xmmword [rbx + 0x10]
or rax, rdi
movzx edi, byte [rsi + 6]
mov r11d, dword [rsi + 0x1a]
shl rcx, 0x20
movaps xmmword [rsp + 0xd0], xmm5
movdqu xmm4, xmmword [rbx]
movzx edx, byte [rsp + 0xdf]
shl rdi, 0x30
or rdi, rax
movzx eax, byte [rsi + 0xc]
and edx, 0x7f
movaps xmmword [rsp + 0xc0], xmm4
or edx, 0x40
and byte [rsp + 0xc0], 0xf8
shl rax, 0x28
mov byte [rsp + 0xdf], dl
or rcx, rax
movzx eax, byte [rsi + 0x11]
or rcx, r8
movzx r8d, byte [rsi + 0x12]
shl rax, 0x20
shl rcx, 5
shl r8, 0x28
or rax, r8
movzx r8d, byte [rsi + 0x13]
or rax, r9
movzx r9d, byte [rsi + 0x19]
shl r8, 0x30
or rax, r8
shl r9, 0x28
lea r8, [rax*4]
movzx eax, byte [rsi + 0x18]
shl rax, 0x20
or rax, r9
movzx r9d, byte [rsi + 0x1f]
or rax, r10
shl rax, 7
shl r9, 0x28
mov r10, rax
movzx eax, byte [rsi + 0x1e]
shl rax, 0x20
or rax, r9
mov r9, rdi
or rax, r11
shr r9, 0x33
movabs r11, 0x7fffffffffff0
shl rax, 4
and rax, r11
or r9, rcx
xor r15d, r15d
xor r14d, r14d
mov rbx, r9
mov rsi, r9
xor r13d, r13d
xor r12d, r12d
movabs rcx, 0x7ffffffffffff
shr rbx, 0x33
or r8, rbx
and rdi, rcx
and rsi, rcx
mov r9, r8
mov rbx, r8
mov qword [rsp + 0xe0], rdi
mov r8d, 1
shr r9, 0x33
and rbx, rcx
mov qword [rsp + 0xe8], rsi
or r10, r9
mov qword [rsp + 0xf0], rbx
xor r9d, r9d
mov r11, r10
and r10, rcx
lea rcx, [rsp + 0x170]
shr r11, 0x33
mov qword [rsp + 0xf8], r10
or r11, rax
xor eax, eax
mov qword [rsp + 0x100], r11
mov qword [rsp + 0x58], 0
movdqa xmm7, xmmword [0x00d6c890]
mov qword [rsp + 0xa8], rcx
lea rcx, [rsp + 0x140]
movdqa xmm6, xmmword [0x00d6c8a0]
mov qword [rsp + 0x88], rcx
lea rcx, [rsp + 0x1a0]
mov qword [rsp + 0xb0], rcx
lea rcx, [rsp + 0x110]
mov qword [rsp + 0x90], rcx
lea rcx, [rsp + 0xe0]
mov qword [rsp + 0x98], rcx
lea rcx, [rsp + 0x1d0]
mov qword [rsp + 0xa0], rcx
lea rcx, [rsp + 0x200]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x20], 1
mov dword [rsp + 0x80], 0xfe
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], r15
jmp 0x871dd2
mov rbx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x128]
sar edi, 3
movsxd rax, edi
mov r9, qword [rsp + 0x140]
mov r12, qword [rsp + 0x148]
mov qword [rsp + 0x20], rbx
mov rbx, qword [rsp + 0x1a8]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x130]
mov qword [rsp + 0x60], rbx
mov rbx, qword [rsp + 0x1b0]
mov qword [rsp + 0x50], rcx
movzx edx, byte [rsp + rax + 0xc0]
mov qword [rsp + 0x58], rbx
mov rbx, qword [rsp + 0x1b8]
mov r13, qword [rsp + 0x150]
mov r14, qword [rsp + 0x158]
mov qword [rsp + 0x78], rbx
mov rbx, qword [rsp + 0x1c0]
mov r15, qword [rsp + 0x160]
mov r8, qword [rsp + 0x110]
mov qword [rsp + 0x68], rbx
mov rbx, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x170]
mov rsi, qword [rsp + 0x178]
mov qword [rsp + 0x38], rbx
mov rbx, qword [rsp + 0x120]
mov r10, qword [rsp + 0x188]
mov r11, qword [rsp + 0x190]
mov qword [rsp + 0x40], rbx
mov eax, dword [rsp + 0x84]
mov rbx, qword [rsp + 0x180]
mov ecx, dword [rsp + 0x80]
movzx edx, dl
and ecx, 7
sar edx, cl
mov rcx, r8
and edx, 1
xor rcx, rdi
xor eax, edx
mov dword [rsp + 0x84], edx
mov rdx, rcx
neg rax
and rdx, rax
xor r8, rdx
xor rdx, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x28], r8
mov r8, qword [rsp + 0x38]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x170], rdx
mov rdx, r8
xor rdx, rsi
and rdx, rax
mov rcx, rdx
xor r8, rdx
xor rcx, rsi
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x38], rcx
mov r8, qword [rsp + 0x78]
mov qword [rsp + 0x178], rcx
mov rcx, rsi
xor rcx, rbx
and rcx, rax
xor rbx, rcx
xor rsi, rcx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x40], rsi
mov rdx, rcx
mov qword [rsp + 0x180], rbx
xor rdx, r10
and rdx, rax
xor r10, rdx
xor rcx, rdx
mov rdx, rdi
xor rdx, r11
mov qword [rsp + 0x48], rcx
and rdx, rax
mov qword [rsp + 0x188], r10
xor r11, rdx
xor rdi, rdx
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x50], rdi
mov rdi, rdx
mov qword [rsp + 0x190], r11
xor rdi, r9
and rdi, rax
xor r9, rdi
xor rdi, rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x1a0], rdi
mov rsi, rdx
xor rsi, r12
and rsi, rax
xor r12, rsi
xor rsi, rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x20], r12
mov r12, qword [rsp + 0x68]
mov rcx, rdx
mov qword [rsp + 0x1a8], rsi
xor rcx, r13
and rcx, rax
xor r13, rcx
xor rcx, rdx
mov rdx, r8
xor rdx, r14
mov qword [rsp + 0x1b0], rcx
and rdx, rax
xor r14, rdx
xor rdx, r8
mov r8, r12
xor r8, r15
mov qword [rsp + 0x1b8], rdx
and rax, r8
xor r15, rax
xor rax, r12
movabs r12, 0xfffffffffffda
add r12, qword [rsp + 0x30]
mov r8, r12
mov qword [rsp + 0x1c0], rax
movabs r12, 0xfffffffffffda
sub r8, rdi
mov qword [rsp + 0x1d0], r8
mov r8, qword [rsp + 0x38]
add r8, rbp
sub r8, rsi
mov qword [rsp + 0x1d8], r8
lea r8, [rbx + rbp]
add r12, qword [rsp + 0x28]
sub r8, rcx
mov qword [rsp + 0x1e0], r8
lea r8, [r10 + rbp]
sub r8, rdx
mov qword [rsp + 0x1e8], r8
lea r8, [r11 + rbp]
sub r8, rax
mov qword [rsp + 0x1f0], r8
mov r8, r12
mov r12, qword [rsp + 0x70]
sub r8, r9
add r9, qword [rsp + 0x28]
mov qword [rsp + 0x200], r8
mov r8, r12
add r8, rbp
sub r8, qword [rsp + 0x20]
mov qword [rsp + 0x110], r9
mov qword [rsp + 0x208], r8
mov r8, qword [rsp + 0x40]
add r8, rbp
sub r8, r13
mov qword [rsp + 0x210], r8
mov r8, qword [rsp + 0x48]
add r8, rbp
sub r8, r14
mov qword [rsp + 0x218], r8
mov r8, qword [rsp + 0x50]
add r8, rbp
sub r8, r15
mov qword [rsp + 0x220], r8
mov r8, r12
mov r12, qword [rsp + 0x20]
add r12, r8
add r13, qword [rsp + 0x40]
add r10, rdx
add r11, rax
add r14, qword [rsp + 0x48]
add rdi, qword [rsp + 0x30]
add rbx, rcx
mov qword [rsp + 0x158], r10
add rsi, qword [rsp + 0x38]
add r15, qword [rsp + 0x50]
mov qword [rsp + 0x160], r11
mov qword [rsp + 0x120], r13
mov r13, qword [rsp + 0x90]
mov qword [rsp + 0x128], r14
mov qword [rsp + 0x140], rdi
mov r8, r13
mov qword [rsp + 0x148], rsi
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x118], r12
mov qword [rsp + 0x130], r15
mov r15, qword [rsp + 0xa0]
mov r14, qword [rsp + 0xb0]
mov rdx, r15
mov rcx, r14
call fcn.008af000
mov rsi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x88]
mov r8, rsi
mov rdx, rbx
mov rcx, rbx
call fcn.008af000
mov rdx, rsi
mov rcx, r15
call fcn.008af1c0
mov rdx, r13
mov rcx, rsi
call fcn.008af1c0
mov rdx, qword [rsp + 0x160]
mov rax, qword [rsp + 0x1c0]
mov r8, r15
movdqa xmm0, xmmword [rsp + 0x1a0]
paddq xmm0, xmmword [rsp + 0x140]
lea rcx, [rax + rdx]
add rax, rbp
movaps xmmword [rsp + 0x170], xmm0
sub rax, rdx
mov rdx, rsi
movdqa xmm0, xmmword [rsp + 0x150]
paddq xmm0, xmmword [rsp + 0x1b0]
mov qword [rsp + 0x190], rcx
mov rcx, r13
mov qword [rsp + 0x160], rax
movaps xmmword [rsp + 0x180], xmm0
movdqa xmm0, xmmword [rsp + 0x1a0]
paddq xmm0, xmm7
psubq xmm0, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x140], xmm0
movdqa xmm0, xmmword [rsp + 0x1b0]
paddq xmm0, xmm6
psubq xmm0, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x150], xmm0
call fcn.008af000
mov rax, qword [rsp + 0x220]
mov rdx, rbx
mov rcx, rbx
movdqa xmm0, xmmword [rsp + 0x210]
movdqa xmm1, xmmword [rsp + 0x200]
add rax, rbp
sub rax, qword [rsp + 0x1f0]
paddq xmm0, xmm6
paddq xmm1, xmm7
mov qword [rsp + 0x220], rax
psubq xmm0, xmmword [rsp + 0x1e0]
psubq xmm1, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0x210], xmm0
movaps xmmword [rsp + 0x200], xmm1
call fcn.008af1c0
mov rdx, rsi
mov rcx, r14
call fcn.008af3c0
mov rcx, qword [rsp + 0xa8]
mov rdx, rcx
call fcn.008af1c0
mov rdx, qword [rsp + 0x98]
mov r8, rbx
movdqa xmm0, xmmword [rsp + 0x1e0]
movdqa xmm1, xmmword [rsp + 0x1d0]
mov rcx, r14
paddq xmm0, xmmword [rsp + 0x1b0]
paddq xmm1, xmmword [rsp + 0x1a0]
mov rax, qword [rsp + 0x1c0]
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x1d0], xmm1
add qword [rsp + 0x1f0], rax
call fcn.008af000
mov r8, r15
mov rdx, rsi
mov rcx, rbx
call fcn.008af000
sub dword [rsp + 0x80], 1
mov edi, dword [rsp + 0x80]
cmp edi, 0xffffffff
jne 0x871cf0
mov rbx, qword [rsp + 0x88]
lea rbp, [rsp + 0x230]
mov esi, 4
lea rdi, [rsp + 0x260]
mov rcx, rbp
mov rdx, rbx
call fcn.008af1c0
mov rdx, rbp
mov rcx, rdi
call fcn.008af1c0
mov rdx, rdi
mov rcx, rdi
call fcn.008af1c0
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
call fcn.008af000
mov r8, rdi
mov rdx, rbp
mov rcx, rbp
call fcn.008af000
lea rbx, [rsp + 0x290]
mov rdx, rbp
mov rcx, rbx
call fcn.008af1c0
mov r8, rbx
mov rdx, rdi
mov rcx, rdi
call fcn.008af000
mov rdx, rdi
mov rcx, rbx
call fcn.008af1c0
mov rdx, rbx
mov rcx, rbx
call fcn.008af1c0
sub esi, 1
jne 0x872300
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov esi, 9
call fcn.008af000
mov rdx, rdi
mov rcx, rbx
call fcn.008af1c0
nop
mov rdx, rbx
mov rcx, rbx
call fcn.008af1c0
sub esi, 1
jne 0x872330
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x13
call fcn.008af000
lea rsi, [rsp + 0x2c0]
mov rdx, rbx
mov rcx, rsi
call fcn.008af1c0
nop word [rax + rax]
mov rdx, rsi
mov rcx, rsi
call fcn.008af1c0
sub r12d, 1
jne 0x872370
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
mov r12d, 0xa
call fcn.008af000
mov rdx, rbx
mov rcx, rbx
call fcn.008af1c0
sub r12d, 1
jne 0x872395
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov r12d, 0x31
call fcn.008af000
mov rdx, rdi
mov rcx, rbx
call fcn.008af1c0
mov rdx, rbx
mov rcx, rbx
call fcn.008af1c0
sub r12d, 1
jne 0x8723c5
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x63
call fcn.008af000
mov rdx, rbx
mov rcx, rsi
call fcn.008af1c0
mov rdx, rsi
mov rcx, rsi
call fcn.008af1c0
sub r12d, 1
jne 0x8723f5
mov rdx, rsi
mov r8, rbx
mov rcx, rbx
mov esi, 0x32
call fcn.008af000
nop dword [rax]
mov rdx, rbx
mov rcx, rbx
call fcn.008af1c0
sub esi, 1
jne 0x872420
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
mov ebx, 5
call fcn.008af000
mov rdx, rdi
mov rcx, rdi
call fcn.008af1c0
sub ebx, 1
jne 0x872443
mov rbx, qword [rsp + 0x88]
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.008af000
mov rcx, qword [rsp + 0x90]
mov r8, rbx
movabs rbx, 0x7ffffffffffff
mov rdx, rcx
call fcn.008af000
mov r10, qword [rsp + 0x110]
mov r9, qword [rsp + 0x118]
mov r8, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x128]
lea rax, [r10 + 0x13]
mov rdx, qword [rsp + 0x130]
shr rax, 0x33
add rax, r9
shr rax, 0x33
add rax, r8
shr rax, 0x33
add rax, rcx
shr rax, 0x33
add rax, rdx
shr rax, 0x33
lea r11, [rax + rax*8]
lea r11, [rax + r11*2]
add r11, r10
mov r10, r11
and r11, rbx
shr r10, 0x33
add r9, r10
mov rax, r9
and r9, rbx
shr rax, 0x33
mov r10, r9
add rax, r8
mov r9, rax
and rax, rbx
shr r9, 0x33
add rcx, r9
mov r9, rcx
and rcx, rbx
shr r9, 0x33
add r9, rdx
mov rdx, rcx
mov rcx, r11
and r9, rbx
mov rbx, qword [rsp + 0x360]
shr rcx, 0x20
mov byte [rbx + 4], cl
mov rcx, r11
shr rcx, 0x28
mov dword [rbx], r11d
shr r11, 0x30
mov byte [rbx + 5], cl
mov r8, r11
lea ecx, [r10*8]
or r8d, ecx
mov rcx, r10
shr rcx, 5
mov byte [rbx + 6], r8b
mov r8d, eax
mov byte [rbx + 7], cl
mov rcx, r10
shr rcx, 0xd
mov byte [rbx + 8], cl
mov rcx, r10
shr rcx, 0x15
mov byte [rbx + 9], cl
mov rcx, r10
shr rcx, 0x1d
shl r8d, 6
mov byte [rbx + 0xa], cl
mov rcx, r10
shr rcx, 0x25
mov byte [rbx + 0xb], cl
mov rcx, r10
shr rcx, 0x2d
or ecx, r8d
mov byte [rbx + 0xc], cl
mov rcx, rax
shr rcx, 2
mov byte [rbx + 0xd], cl
mov rcx, rax
shr rcx, 0xa
mov byte [rbx + 0xe], cl
mov rcx, rax
shr rcx, 0x12
mov byte [rbx + 0xf], cl
mov rcx, rax
shr rcx, 0x1a
mov byte [rbx + 0x10], cl
mov rcx, rax
shr rcx, 0x22
mov byte [rbx + 0x11], cl
mov rcx, rax
shr rax, 0x32
shr rcx, 0x2a
mov byte [rbx + 0x12], cl
lea ecx, [rdx + rdx]
or eax, ecx
lea rcx, [rsp + 0xc0]
mov byte [rbx + 0x13], al
mov rax, rdx
shr rax, 7
mov byte [rbx + 0x14], al
mov rax, rdx
shr rax, 0xf
mov byte [rbx + 0x15], al
mov rax, rdx
shr rax, 0x17
mov byte [rbx + 0x16], al
mov rax, rdx
shr rax, 0x1f
mov byte [rbx + 0x17], al
mov rax, rdx
shr rdx, 0x2f
shr rax, 0x27
mov byte [rbx + 0x18], al
mov eax, r9d
shl eax, 4
or edx, eax
mov rax, r9
shr rax, 4
mov byte [rbx + 0x19], dl
mov edx, 0x20
mov byte [rbx + 0x1a], al
mov rax, r9
shr rax, 0xc
mov byte [rbx + 0x1b], al
mov rax, r9
shr rax, 0x14
mov byte [rbx + 0x1c], al
mov rax, r9
shr rax, 0x1c
mov byte [rbx + 0x1d], al
mov rax, r9
shr rax, 0x24
mov byte [rbx + 0x1e], al
mov rax, r9
shr rax, 0x2c
mov byte [rbx + 0x1f], al
call fcn.0081b4c0
nop
movaps xmm6, xmmword [rsp + 0x2f0]
movaps xmm7, xmmword [rsp + 0x300]
add rsp, 0x318
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm3, xmmword [rbx + 0x10]
movdqu xmm2, xmmword [rbx]
xor r15d, r15d
xor r14d, r14d
lea rax, [rsp + 0x170]
mov r10, qword [rsi + 8]
xor ebp, ebp
xor edi, edi
mov r11, qword [rsi]
mov r9, qword [rsi + 0x10]
mov r13d, 1
xor r12d, r12d
movaps xmmword [rsp + 0x210], xmm3
mov r8d, 1
movzx ecx, byte [rsp + 0x21f]
lea rbx, [rsp + 0x140]
movabs rdx, 0x7fffffffffffffff
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0xe0]
and rdx, qword [rsi + 0x18]
mov qword [rsp + 0x88], rbx
and ecx, 0x7f
mov esi, 0xfe
lea rbx, [rsp + 0x1a0]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x1d0]
or ecx, 0x40
mov qword [rsp + 0xb0], rbx
lea rbx, [rsp + 0x110]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0xc0]
movaps xmmword [rsp + 0x200], xmm2
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0x70], rax
xor eax, eax
mov dword [rsp + 0x80], esi
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], r15
and byte [rsp + 0x200], 0xf8
mov byte [rsp + 0x21f], cl
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0xc8], r10
mov qword [rsp + 0xd0], r9
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x60], rdx
movzx edx, cl
mov rsi, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xb0]
jmp 0x8728bf
sar edi, 3
mov rcx, qword [rsp + 0x158]
mov r8, qword [rsp + 0xe0]
movsxd rax, edi
mov rdi, qword [rsp + 0x110]
mov r11, qword [rsp + 0x140]
mov qword [rsp + 0x60], rcx
movzx edx, byte [rsp + rax + 0x200]
mov qword [rsp + 0x48], rdi
mov rdi, qword [rsp + 0x170]
mov r10, qword [rsp + 0x148]
mov rbp, qword [rsp + 0xf0]
mov qword [rsp + 0x50], rdi
mov rdi, qword [rsp + 0x118]
mov r9, qword [rsp + 0x150]
mov r12, qword [rsp + 0xf8]
mov qword [rsp + 0x20], rdi
mov rdi, qword [rsp + 0x178]
mov eax, dword [rsp + 0x68]
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0x120]
mov qword [rsp + 0x28], rdi
mov rdi, qword [rsp + 0x180]
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0x128]
mov qword [rsp + 0x38], rdi
mov rdi, qword [rsp + 0x188]
mov qword [rsp + 0x40], rdi
mov rdi, qword [rsp + 0xe8]
mov ecx, dword [rsp + 0x80]
and ecx, 7
sar edx, cl
mov rcx, r8
and edx, 1
xor rcx, r11
xor eax, edx
mov dword [rsp + 0x68], edx
mov rdx, rcx
mov rcx, r14
neg rax
and rdx, rax
xor r11, rdx
xor r8, rdx
mov qword [rsp + 0x140], r11
mov r11, rdi
xor r11, r10
mov qword [rsp + 0xe0], r8
mov r8, r13
mov rdx, r11
mov r11, qword [rsp + 0x60]
and rdx, rax
xor r10, rdx
xor rdi, rdx
mov qword [rsp + 0x148], r10
mov r10, rbp
xor r10, r9
mov qword [rsp + 0xe8], rdi
mov rdx, r10
mov r10, r11
and rdx, rax
xor r10, r12
xor rbp, rdx
xor r9, rdx
mov rdx, r10
mov r10, qword [rsp + 0x50]
and rdx, rax
mov qword [rsp + 0x150], r9
mov r9, qword [rsp + 0x48]
xor r12, rdx
xor rdx, r11
mov r11, qword [rsp + 0x20]
mov qword [rsp + 0xf0], rbp
mov qword [rsp + 0x158], rdx
mov rdx, r9
mov rbp, qword [rsp + 0x88]
xor rdx, r10
mov qword [rsp + 0xf8], r12
and rdx, rax
xor r9, rdx
xor rdx, r10
mov r10, qword [rsp + 0x28]
mov qword [rsp + 0x110], r9
mov r9, qword [rsp + 0x58]
mov qword [rsp + 0x170], rdx
mov rdx, r11
xor rdx, r9
and rdx, rax
xor r11, rdx
xor rdx, r9
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x118], r11
mov r11, qword [rsp + 0x30]
mov qword [rsp + 0x178], rdx
mov rdx, r10
xor rdx, r11
and rdx, rax
xor r10, rdx
xor rdx, r11
mov qword [rsp + 0x120], r10
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x180], rdx
mov rdx, r9
xor rdx, r10
and rax, rdx
mov rdx, r9
xor rdx, rax
xor rax, r10
mov qword [rsp + 0x128], rdx
mov rdx, rbp
mov qword [rsp + 0x188], rax
call fcn.008af8c0
mov r8, rbx
mov rdx, r15
mov rcx, rsi
call fcn.008af8c0
mov r8, rbx
mov rdx, r15
mov rcx, r15
call fcn.008af840
mov r8, r13
mov rdx, rbp
mov rcx, rbx
call fcn.008af840
mov r8, r14
mov rdx, r15
mov rcx, r13
call fcn.008af460
mov r8, rsi
mov rdx, rbx
mov rcx, rbx
call fcn.008af460
mov rdx, rsi
mov rcx, r14
call fcn.008af5e0
mov rdx, r15
mov rcx, rsi
call fcn.008af5e0
mov r8, rbx
mov rdx, r13
mov rcx, rbp
call fcn.008af840
mov r8, rbx
mov rdx, r13
mov rcx, rbx
call fcn.008af8c0
mov r8, r14
mov rdx, rsi
mov rcx, r15
call fcn.008af460
mov r8, r14
mov rdx, rsi
mov rcx, rsi
call fcn.008af8c0
mov rdx, rbx
mov rcx, rbx
call fcn.008af5e0
mov rdx, rsi
mov rcx, r13
call fcn.008af7c0
mov rdx, rbp
mov rcx, rbp
call fcn.008af5e0
mov r8, r13
mov rdx, r14
mov rcx, r14
call fcn.008af840
mov rdx, qword [rsp + 0x70]
mov r8, rbx
mov rcx, r13
call fcn.008af460
mov r8, r14
mov rdx, rsi
mov rcx, rbx
call fcn.008af460
sub dword [rsp + 0x80], 1
mov edi, dword [rsp + 0x80]
cmp edi, 0xffffffff
jne 0x872800
mov rbx, qword [rsp + 0x90]
lea rbp, [rsp + 0x230]
mov esi, 4
lea rdi, [rsp + 0x260]
mov rcx, rbp
mov rdx, rbx
call fcn.008af5e0
mov rdx, rbp
mov rcx, rdi
call fcn.008af5e0
mov rdx, rdi
mov rcx, rdi
call fcn.008af5e0
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
call fcn.008af460
mov r8, rdi
mov rdx, rbp
mov rcx, rbp
call fcn.008af460
lea rbx, [rsp + 0x290]
mov rdx, rbp
mov rcx, rbx
call fcn.008af5e0
mov r8, rbx
mov rdx, rdi
mov rcx, rdi
call fcn.008af460
mov rdx, rdi
mov rcx, rbx
call fcn.008af5e0
mov rdx, rbx
mov rcx, rbx
call fcn.008af5e0
sub esi, 1
jne 0x872ba0
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov esi, 9
call fcn.008af460
mov rdx, rdi
mov rcx, rbx
call fcn.008af5e0
mov rdx, rbx
mov rcx, rbx
call fcn.008af5e0
sub esi, 1
jne 0x872bce
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x13
call fcn.008af460
lea rsi, [rsp + 0x2c0]
mov rdx, rbx
mov rcx, rsi
call fcn.008af5e0
mov rdx, rsi
mov rcx, rsi
call fcn.008af5e0
sub r12d, 1
jne 0x872c05
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
mov r12d, 0xa
call fcn.008af460
mov rdx, rbx
mov rcx, rbx
call fcn.008af5e0
sub r12d, 1
jne 0x872c2a
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov r12d, 0x31
call fcn.008af460
mov rdx, rdi
mov rcx, rbx
call fcn.008af5e0
nop word [rax + rax]
mov rdx, rbx
mov rcx, rbx
call fcn.008af5e0
sub r12d, 1
jne 0x872c60
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x63
call fcn.008af460
mov rdx, rbx
mov rcx, rsi
call fcn.008af5e0
mov rdx, rsi
mov rcx, rsi
call fcn.008af5e0
sub r12d, 1
jne 0x872c90
mov rdx, rsi
mov r8, rbx
mov rcx, rbx
mov esi, 0x32
call fcn.008af460
mov rdx, rbx
mov rcx, rbx
call fcn.008af5e0
sub esi, 1
jne 0x872cb4
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
mov ebx, 5
call fcn.008af460
mov rdx, rdi
mov rcx, rdi
call fcn.008af5e0
sub ebx, 1
jne 0x872cd7
mov rbx, qword [rsp + 0x90]
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.008af460
mov r8, rbx
mov rbx, qword [rsp + 0x98]
mov rdx, rbx
mov rcx, rbx
call fcn.008af460
mov rcx, qword [rsp + 0x360]
mov rdx, rbx
call fcn.008af940
lea rcx, [rsp + 0x200]
mov edx, 0x20
call fcn.0081b4c0
jmp 0x87266d