Function at 0x617b60
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.00655440
test eax, eax
jne 0x618791
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 [0x008eaf10]
mov qword [rsp + 0xa8], rcx
lea rcx, [rsp + 0x140]
movdqa xmm6, xmmword [0x008eaf20]
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 0x617ed2
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.00655000
mov rsi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x88]
mov r8, rsi
mov rdx, rbx
mov rcx, rbx
call fcn.00655000
mov rdx, rsi
mov rcx, r15
call fcn.006551c0
mov rdx, r13
mov rcx, rsi
call fcn.006551c0
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.00655000
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.006551c0
mov rdx, rsi
mov rcx, r14
call fcn.006553c0
mov rcx, qword [rsp + 0xa8]
mov rdx, rcx
call fcn.006551c0
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.00655000
mov r8, r15
mov rdx, rsi
mov rcx, rbx
call fcn.00655000
sub dword [rsp + 0x80], 1
mov edi, dword [rsp + 0x80]
cmp edi, 0xffffffff
jne 0x617df0
mov rbx, qword [rsp + 0x88]
lea rbp, [rsp + 0x230]
mov esi, 4
lea rdi, [rsp + 0x260]
mov rcx, rbp
mov rdx, rbx
call fcn.006551c0
mov rdx, rbp
mov rcx, rdi
call fcn.006551c0
mov rdx, rdi
mov rcx, rdi
call fcn.006551c0
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
call fcn.00655000
mov r8, rdi
mov rdx, rbp
mov rcx, rbp
call fcn.00655000
lea rbx, [rsp + 0x290]
mov rdx, rbp
mov rcx, rbx
call fcn.006551c0
mov r8, rbx
mov rdx, rdi
mov rcx, rdi
call fcn.00655000
mov rdx, rdi
mov rcx, rbx
call fcn.006551c0
mov rdx, rbx
mov rcx, rbx
call fcn.006551c0
sub esi, 1
jne 0x618400
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov esi, 9
call fcn.00655000
mov rdx, rdi
mov rcx, rbx
call fcn.006551c0
nop
mov rdx, rbx
mov rcx, rbx
call fcn.006551c0
sub esi, 1
jne 0x618430
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x13
call fcn.00655000
lea rsi, [rsp + 0x2c0]
mov rdx, rbx
mov rcx, rsi
call fcn.006551c0
nop word [rax + rax]
mov rdx, rsi
mov rcx, rsi
call fcn.006551c0
sub r12d, 1
jne 0x618470
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
mov r12d, 0xa
call fcn.00655000
mov rdx, rbx
mov rcx, rbx
call fcn.006551c0
sub r12d, 1
jne 0x618495
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov r12d, 0x31
call fcn.00655000
mov rdx, rdi
mov rcx, rbx
call fcn.006551c0
mov rdx, rbx
mov rcx, rbx
call fcn.006551c0
sub r12d, 1
jne 0x6184c5
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x63
call fcn.00655000
mov rdx, rbx
mov rcx, rsi
call fcn.006551c0
mov rdx, rsi
mov rcx, rsi
call fcn.006551c0
sub r12d, 1
jne 0x6184f5
mov rdx, rsi
mov r8, rbx
mov rcx, rbx
mov esi, 0x32
call fcn.00655000
nop dword [rax]
mov rdx, rbx
mov rcx, rbx
call fcn.006551c0
sub esi, 1
jne 0x618520
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
mov ebx, 5
call fcn.00655000
mov rdx, rdi
mov rcx, rdi
call fcn.006551c0
sub ebx, 1
jne 0x618543
mov rbx, qword [rsp + 0x88]
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.00655000
mov rcx, qword [rsp + 0x90]
mov r8, rbx
movabs rbx, 0x7ffffffffffff
mov rdx, rcx
call fcn.00655000
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.005c43c0
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 0x6189bf
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.006558c0
mov r8, rbx
mov rdx, r15
mov rcx, rsi
call fcn.006558c0
mov r8, rbx
mov rdx, r15
mov rcx, r15
call fcn.00655840
mov r8, r13
mov rdx, rbp
mov rcx, rbx
call fcn.00655840
mov r8, r14
mov rdx, r15
mov rcx, r13
call fcn.00655460
mov r8, rsi
mov rdx, rbx
mov rcx, rbx
call fcn.00655460
mov rdx, rsi
mov rcx, r14
call fcn.006555e0
mov rdx, r15
mov rcx, rsi
call fcn.006555e0
mov r8, rbx
mov rdx, r13
mov rcx, rbp
call fcn.00655840
mov r8, rbx
mov rdx, r13
mov rcx, rbx
call fcn.006558c0
mov r8, r14
mov rdx, rsi
mov rcx, r15
call fcn.00655460
mov r8, r14
mov rdx, rsi
mov rcx, rsi
call fcn.006558c0
mov rdx, rbx
mov rcx, rbx
call fcn.006555e0
mov rdx, rsi
mov rcx, r13
call fcn.006557c0
mov rdx, rbp
mov rcx, rbp
call fcn.006555e0
mov r8, r13
mov rdx, r14
mov rcx, r14
call fcn.00655840
mov rdx, qword [rsp + 0x70]
mov r8, rbx
mov rcx, r13
call fcn.00655460
mov r8, r14
mov rdx, rsi
mov rcx, rbx
call fcn.00655460
sub dword [rsp + 0x80], 1
mov edi, dword [rsp + 0x80]
cmp edi, 0xffffffff
jne 0x618900
mov rbx, qword [rsp + 0x90]
lea rbp, [rsp + 0x230]
mov esi, 4
lea rdi, [rsp + 0x260]
mov rcx, rbp
mov rdx, rbx
call fcn.006555e0
mov rdx, rbp
mov rcx, rdi
call fcn.006555e0
mov rdx, rdi
mov rcx, rdi
call fcn.006555e0
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
call fcn.00655460
mov r8, rdi
mov rdx, rbp
mov rcx, rbp
call fcn.00655460
lea rbx, [rsp + 0x290]
mov rdx, rbp
mov rcx, rbx
call fcn.006555e0
mov r8, rbx
mov rdx, rdi
mov rcx, rdi
call fcn.00655460
mov rdx, rdi
mov rcx, rbx
call fcn.006555e0
mov rdx, rbx
mov rcx, rbx
call fcn.006555e0
sub esi, 1
jne 0x618ca0
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov esi, 9
call fcn.00655460
mov rdx, rdi
mov rcx, rbx
call fcn.006555e0
mov rdx, rbx
mov rcx, rbx
call fcn.006555e0
sub esi, 1
jne 0x618cce
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x13
call fcn.00655460
lea rsi, [rsp + 0x2c0]
mov rdx, rbx
mov rcx, rsi
call fcn.006555e0
mov rdx, rsi
mov rcx, rsi
call fcn.006555e0
sub r12d, 1
jne 0x618d05
mov r8, rbx
mov rdx, rsi
mov rcx, rbx
mov r12d, 0xa
call fcn.00655460
mov rdx, rbx
mov rcx, rbx
call fcn.006555e0
sub r12d, 1
jne 0x618d2a
mov r8, rdi
mov rdx, rbx
mov rcx, rdi
mov r12d, 0x31
call fcn.00655460
mov rdx, rdi
mov rcx, rbx
call fcn.006555e0
nop word [rax + rax]
mov rdx, rbx
mov rcx, rbx
call fcn.006555e0
sub r12d, 1
jne 0x618d60
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
mov r12d, 0x63
call fcn.00655460
mov rdx, rbx
mov rcx, rsi
call fcn.006555e0
mov rdx, rsi
mov rcx, rsi
call fcn.006555e0
sub r12d, 1
jne 0x618d90
mov rdx, rsi
mov r8, rbx
mov rcx, rbx
mov esi, 0x32
call fcn.00655460
mov rdx, rbx
mov rcx, rbx
call fcn.006555e0
sub esi, 1
jne 0x618db4
mov rdx, rbx
mov r8, rdi
mov rcx, rdi
mov ebx, 5
call fcn.00655460
mov rdx, rdi
mov rcx, rdi
call fcn.006555e0
sub ebx, 1
jne 0x618dd7
mov rbx, qword [rsp + 0x90]
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.00655460
mov r8, rbx
mov rbx, qword [rsp + 0x98]
mov rdx, rbx
mov rcx, rbx
call fcn.00655460
mov rcx, qword [rsp + 0x360]
mov rdx, rbx
call fcn.00655940
lea rcx, [rsp + 0x200]
mov edx, 0x20
call fcn.005c43c0
jmp 0x61876d