Function at 0x504ede
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x628
mov qword [rsp + 0xc8], r9
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0xb0], rcx
mov r9, qword [rsp + 0x6b0]
mov rbp, qword [rsp + 0x6a8]
mov rax, qword [rbp + 0x68]
cmp qword [rax + 0x10], 0
je 0x504f5f
mov rdx, qword [rax + 0x60]
mov rcx, qword [rdx + 0x58]
mov rdx, qword [rdx + 0x60]
shl rdx, 4
xor r8d, r8d
cmp rdx, r8
je 0x504f5f
cmp qword [rcx + r8], 0
lea r8, [r8 + 0x10]
jne 0x504f3f
mov rcx, qword [r9]
mov dil, byte [rcx + 0x335]
xor dil, 1
jmp 0x504f61
xor edi, edi
cmp qword [rax + 0x18], 0
je 0x504fd1
mov rcx, qword [rax + 0x60]
mov rax, qword [rcx + 0x58]
mov rcx, qword [rcx + 0x60]
shl rcx, 4
xor edx, edx
cmp rcx, rdx
je 0x504fd1
cmp qword [rax + rdx], 0
lea rdx, [rdx + 0x10]
je 0x504f7a
xor eax, eax
lea rsi, [rsp + 0x110]
mov qword [rsi], rax
mov qword [rsi + 8], 2
mov qword [rsi + 0x10], rax
mov rcx, rsi
xor edx, edx
call fcn.004f14b7
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
mov dword [rax + rcx*4], 5
mov edx, ecx
and edx, 1
xor rcx, 1
lea rdx, [rcx + rdx*2]
mov qword [rsi + 0x10], rdx
mov cl, 1
jmp 0x504ff6
xor edx, edx
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x118], 2
mov qword [rsp + 0x120], rdx
mov eax, 2
xor ecx, ecx
mov qword [rsp + 0xd8], rcx
test dil, dil
je 0x505049
cmp rdx, qword [rsp + 0x110]
jne 0x505025
lea rsi, [rsp + 0x110]
mov rcx, rsi
call fcn.004f14b7
mov rax, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov dword [rax + rdx*4], 4
mov rax, qword [rsp + 0x120]
mov ecx, eax
and ecx, 1
xor rax, 1
lea rdx, [rax + rcx*2]
mov qword [rsp + 0x120], rdx
test rdx, rdx
je 0x5074c4
mov ecx, 0x150
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x5074de
mov rdi, rax
movups xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x220], xmm0
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x230], rax
mov ecx, 1
call fcn.004f0693
mov rbx, rax
mov r14, rdx
mov word [rdx], 0
mov rax, qword [rbp + 0x68]
mov rax, qword [rax + 0x60]
mov r13, qword [rax + 0x70]
mov rsi, qword [rax + 0x78]
mov rcx, rsi
call fcn.004ebae1
mov qword [rsp + 0x270], rax
mov qword [rsp + 0x278], rdx
mov qword [rsp + 0x280], 0
cmp rax, rsi
jb 0x5073f5
mov r15, rdx
xor r12d, r12d
test rsi, rsi
je 0x505114
shl rsi, 4
add rsi, r13
mov rcx, qword [r13]
mov rax, qword [r13 + 8]
call qword [rax + 0x38]
shl edx, 0x10
movzx eax, ax
or eax, edx
mov dword [r15 + r12*4], eax
inc r12
add r13, 0x10
cmp r13, rsi
jne 0x5050f1
lea r15, [rsp + 0x270]
movups xmm0, xmmword [r15]
movaps xmmword [rsp + 0x140], xmm0
mov qword [rsp + 0x150], r12
mov rax, qword [rbp + 0x68]
mov rdx, qword [rax + 0x30]
mov rax, qword [rax + 0x38]
xor esi, esi
xor ecx, ecx
sub rcx, qword [rax + 0x10]
and rcx, 0xfffffffffffffff0
sub rdx, rcx
mov rcx, r15
call qword [rax + 0x48]
mov eax, 6
mov qword [rdi], rax
movaps xmm0, xmmword [rsp + 0x220]
movups xmmword [rdi + 8], xmm0
mov rax, qword [rsp + 0x230]
mov qword [rdi + 0x18], rax
movups xmm0, xmmword [rsp + 0x128]
movups xmmword [rdi + 0x20], xmm0
mov rax, qword [rsp + 0x138]
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], rsi
mov qword [rdi + 0x40], rbx
mov qword [rdi + 0x48], r14
mov r14d, 6
mov eax, 1
mov qword [rdi + 0x50], rax
movups xmm0, xmmword [rsp + 0x3a0]
movups xmmword [rdi + 0x58], xmm0
mov rcx, qword [rsp + 0x3b0]
mov qword [rdi + 0x68], rcx
mov qword [rdi + 0x70], rax
movaps xmm0, xmmword [rsp + 0x140]
movups xmmword [rdi + 0x78], xmm0
mov rcx, qword [rsp + 0x150]
mov qword [rdi + 0x88], rcx
mov qword [rdi + 0xa8], 2
movups xmm0, xmmword [r15]
movups xmmword [rdi + 0xb0], xmm0
mov rcx, qword [r15 + 0x10]
mov qword [rdi + 0xc0], rcx
mov qword [rdi + 0xe0], 0xb
mov qword [rdi + 0x118], 0xc
mov qword [rdi + 0x120], rsi
mov qword [rdi + 0x128], 8
xorps xmm0, xmm0
movups xmmword [rdi + 0x130], xmm0
mov qword [rdi + 0x140], rax
mov qword [rdi + 0x148], rsi
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], r14
mov rax, qword [rbp + 0x68]
cmp byte [rax + 0x98], 0
je 0x50536f
mov rax, qword [rbp + 0x20]
cmp eax, 2
je 0x50536f
test rax, rax
mov rsi, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x28]
cmovne rdi, rsi
cmovne rsi, qword [rbp + 0x38]
test rsi, rsi
je 0x5052c4
cmp byte [rdi + rsi - 1], 0x2e
jne 0x5052c4
dec rsi
je 0x507528
mov rcx, rdi
mov rdx, rsi
call fcn.005153ca
test al, al
jne 0x507528
lea rdx, [rsp + 0x270]
mov qword [rdx], 0
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], rsi
jmp 0x5052c8
lea rdx, [rbp + 0x20]
lea rcx, [rsp + 0x140]
call fcn.005151fe
movups xmm0, xmmword [rsp + 0x140]
movups xmm1, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x280], xmm1
movaps xmmword [rsp + 0x270], xmm0
mov ecx, 0x28
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x5074ec
mov rbx, rax
movaps xmm0, xmmword [rsp + 0x270]
movaps xmm1, xmmword [rsp + 0x280]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov byte [rax + 0x20], 0
lea r14, [rsp + 0x78]
mov edx, 6
mov rcx, r14
call fcn.004f0aff
mov rdi, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
imul rax, rdx, 0x38
mov qword [rdi + rax], 3
mov ecx, 1
mov qword [rdi + rax + 8], rcx
mov qword [rdi + rax + 0x10], rbx
mov qword [rdi + rax + 0x18], rcx
inc rdx
mov qword [r14 + 0x10], rdx
mov r14, rdx
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x50544b
mov qword [rsp + 0x60], r14
mov rsi, qword [rsp + 0xc8]
mov r14, rcx
call qword [rsi + 0x30]
mov ebx, eax
mov ebp, edx
mov rcx, r14
call qword [rsi + 0x28]
mov r14, rax
mov r15, rdx
mov rcx, rdx
xor edx, edx
call fcn.00516e63
mov r12, rax
mov r13, rdx
mov rcx, rdx
mov rdx, r14
mov r8, r15
call sub.msvcrt.dll_memcpy
mov ecx, 0x20
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x5074e5
mov r14, rax
mov qword [rax], r12
mov qword [rax + 8], r13
mov qword [rax + 0x10], r15
mov word [rax + 0x18], bx
mov word [rax + 0x1a], bp
mov rdx, qword [rsp + 0x60]
cmp rdx, qword [rsp + 0x78]
jne 0x505410
lea rbx, [rsp + 0x78]
mov rcx, rbx
call fcn.004f0aff
mov rdi, qword [rbx + 8]
mov rdx, qword [rbx + 0x10]
mov rbp, qword [rsp + 0x6a8]
imul rax, rdx, 0x38
mov qword [rdi + rax], 7
mov ecx, 1
mov qword [rdi + rax + 8], rcx
mov qword [rdi + rax + 0x10], r14
mov qword [rdi + rax + 0x18], rcx
mov r14, qword [rsp + 0x88]
inc r14
mov qword [rsp + 0x88], r14
mov rax, qword [rsp + 0xe0]
test rax, rax
je 0x50552c
mov rcx, qword [rax + 0x30]
mov rdx, qword [rax + 0x38]
mov r8w, 0x18
call fcn.004f8702
test rax, rax
je 0x50552c
mov ecx, dword [rax + 0x18]
add ecx, 0xffffffda
cmp cx, 3
mov edx, 3
cmovb edx, ecx
cmp dx, 1
jne 0x50552c
mov r15, qword [rax + 8]
mov rdi, qword [rax + 0x10]
mov esi, edi
not esi
mov rcx, rdi
xor edx, edx
call fcn.00516e63
mov rbx, rax
mov r12, r14
mov r14, rdx
mov eax, edi
and eax, 1
neg rax
mov rcx, rdi
or rcx, 1
and rcx, rax
and esi, 1
mov r8, rdi
and r8, 0xfffffffffffffffe
imul r8, rsi
add r8, rcx
mov rcx, rdx
mov rdx, r15
call sub.msvcrt.dll_memcpy
cmp r12, qword [rsp + 0x78]
jne 0x5054fb
lea r15, [rsp + 0x78]
mov rcx, r15
mov rdx, r12
call fcn.004f0aff
mov r12, qword [r15 + 0x10]
mov rax, qword [rsp + 0x80]
imul rcx, r12, 0x38
mov qword [rax + rcx], 0xa
mov qword [rax + rcx + 8], rbx
mov qword [rax + rcx + 0x10], r14
mov qword [rax + rcx + 0x18], rdi
inc r12
mov qword [rsp + 0x88], r12
mov r14, r12
cmp byte [rsp + 0xd8], 0
je 0x5055a2
mov ecx, 2
mov edx, 1
call fcn.00414fe0
test rax, rax
je 0x5074b8
mov rdi, rax
mov byte [rax], 1
cmp r14, qword [rsp + 0x78]
jne 0x50556f
lea rbx, [rsp + 0x78]
mov rcx, rbx
mov rdx, r14
call fcn.004f0aff
mov r14, qword [rbx + 0x10]
mov rax, qword [rsp + 0x80]
imul rcx, r14, 0x38
mov qword [rax + rcx], 8
mov edx, 1
mov qword [rax + rcx + 8], rdx
mov qword [rax + rcx + 0x10], rdi
mov qword [rax + rcx + 0x18], rdx
inc r14
mov qword [rsp + 0x88], r14
mov rcx, qword [rbp + 0x68]
mov rax, qword [rcx + 0x78]
test rax, rax
je 0x505796
mov r14, qword [rcx + 0x70]
shl rax, 3
lea rsi, [rax + rax*2]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, rsi
mul rcx
mov rdi, rdx
shr rdi, 4
mov rcx, rdi
call fcn.0057d91c
mov qword [rsp + 0x270], rax
mov qword [rsp + 0x278], rdx
mov qword [rsp + 0x280], 0
cmp rax, rdi
jb 0x507447
xor ecx, ecx
xor r8d, r8d
mov rax, rcx
movups xmm0, xmmword [r14 + r8 + 8]
shl rcx, 4
movups xmmword [rdx + rcx], xmm0
mov ecx, eax
and ecx, 1
mov r13, rax
xor r13, 1
lea rcx, [rcx*2]
add rcx, r13
add r8, 0x18
cmp rsi, r8
jne 0x505608
mov qword [rsp + 0x280], rcx
mov rdx, qword [rsp + 0x278]
mov qword [rsp + 0x50], rdx
xor edx, edx
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x148], 8
mov qword [rsp + 0x150], rdx
test rcx, rcx
je 0x505709
and eax, 1
shl rax, 5
shl r13, 4
add r13, rax
mov ebp, 8
xor esi, esi
xor edi, edi
mov rax, qword [rsp + 0x50]
mov r12, qword [rax + rsi]
mov rbx, qword [rax + rsi + 8]
mov rcx, rbx
xor edx, edx
call fcn.00516e63
mov r14, rax
mov r15, rdx
mov rcx, rdx
mov rdx, r12
mov r8, rbx
call sub.msvcrt.dll_memcpy
cmp rdi, qword [rsp + 0x140]
jne 0x5056e2
lea rcx, [rsp + 0x140]
mov rdx, rdi
call fcn.004f15ac
mov rbp, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x150]
lea rax, [rdi + rdi*2]
mov qword [rbp + rax*8], r14
mov qword [rbp + rax*8 + 8], r15
mov qword [rbp + rax*8 + 0x10], rbx
inc rdi
mov qword [rsp + 0x150], rdi
add rsi, 0x10
cmp r13, rsi
jne 0x50568c
mov r14, qword [rsp + 0x88]
cmp r14, qword [rsp + 0x78]
jne 0x50572c
lea rdi, [rsp + 0x78]
mov rcx, rdi
mov rdx, r14
call fcn.004f0aff
mov r14, qword [rdi + 0x10]
mov rbp, qword [rsp + 0x6a8]
mov rax, qword [rsp + 0x80]
imul rcx, r14, 0x38
mov qword [rax + rcx], 5
movups xmm0, xmmword [rsp + 0x140]
movups xmmword [rax + rcx + 8], xmm0
mov rdx, qword [rsp + 0x150]
mov qword [rax + rcx + 0x18], rdx
inc r14
mov qword [rsp + 0x88], r14
cmp qword [rsp + 0x270], 0
je 0x505796
mov r8, qword [rsp + 0x278]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov r14, qword [rsp + 0x88]
mov rax, qword [rsp + 0x690]
mov rbx, qword [rax + 8]
mov rdi, qword [rax + 0x10]
mov rax, qword [rsp + 0x78]
sub rax, r14
cmp rax, rdi
jb 0x507419
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xb8], rax
test rdi, rdi
je 0x5064ce
imul rax, rdi, 0x38
add rax, rbx
mov qword [rsp + 0x200], rax
mov rdx, qword [rbx]
lea rcx, [0x005075c0]
mov qword [rsp + 0xa8], rdx
movsxd rax, dword [rcx + rdx*4]
add rax, rcx
mov qword [rsp + 0x68], rbx
jmp rax
mov r15, qword [rbx + 0x10]
mov rsi, qword [rbx + 0x18]
mov rcx, rsi
xor edx, edx
call fcn.00516e63
mov rbp, rax
mov rdi, rdx
mov eax, esi
and eax, 1
mov rcx, rax
neg rcx
mov rdx, rsi
or rdx, 1
and rdx, rcx
xor rax, 1
mov r8, rsi
and r8, 0xfffffffffffffffe
imul r8, rax
add r8, rdx
mov rcx, rdi
mov rdx, r15
mov r15, rsi
jmp 0x505a29
mov rdi, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
mov rcx, r15
call fcn.004ebae1
mov rbp, rax
mov rcx, rdx
mov eax, r15d
and eax, 4
mov r8, r15
or r8, 4
imul r8, rax
xor rax, 4
mov rdx, r15
and rdx, 0xfffffffffffffffb
imul rdx, rax
add r8, rdx
jmp 0x505a23
movzx esi, word [rbx + 0x20]
movzx r12d, word [rbx + 0x22]
mov r15, qword [rbx + 0x10]
mov rdi, qword [rbx + 0x18]
mov rcx, rdi
xor edx, edx
call fcn.00516e63
mov rbp, rax
mov rcx, rdx
mov eax, edi
and eax, 1
mov r8, rax
neg r8
mov rdx, rdi
or rdx, 1
and rdx, r8
xor rax, 1
mov r8, rdi
and r8, 0xfffffffffffffffe
imul r8, rax
add r8, rdx
mov rdx, r15
mov r15, rdi
mov rdi, rcx
call sub.msvcrt.dll_memcpy
movabs rax, 0xffffffff00000000
mov rcx, qword [rsp + 0x1f8]
and rcx, rax
or rcx, rsi
shl r12, 0x10
or r12, rcx
mov qword [rsp + 0x98], r12
mov qword [rsp + 0x1f8], r12
jmp case.0x5057fd.11
mov rsi, r14
mov r14, qword [rbx + 0x10]
test r14, r14
je 0x505cee
mov r15, qword [rbx + 0x18]
mov rcx, r15
xor edx, edx
call fcn.00516e63
mov rbp, rax
mov rdi, rdx
mov eax, r15d
and eax, 1
mov rcx, rax
neg rcx
mov rdx, r15
or rdx, 1
and rdx, rcx
xor rax, 1
mov r8, r15
and r8, 0xfffffffffffffffe
imul r8, rax
add r8, rdx
mov rcx, rdi
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x1f0], r15
mov qword [rsp + 0x1e8], rbp
jmp 0x505d00
mov r15, qword [rbx + 0x18]
mov eax, 8
mov qword [rsp + 0xa0], rax
mov edi, 8
test r15, r15
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r15
je 0x505eb5
movabs rax, 0x3ffffffffffffff
cmp r15, rax
ja 0x5074a7
mov rsi, qword [rbx + 0x10]
mov rax, r15
and rax, 0xffffffffffffffdf
mov ecx, r15d
and ecx, 0x20
mov rdi, r15
or rdi, 0x20
imul rdi, rcx
xor rcx, 0x20
imul rcx, rax
add rdi, rcx
je 0x505dee
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x505df8
jmp 0x5074ae
mov rdi, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
mov rcx, r15
call fcn.004f0693
mov rbp, rax
mov rcx, rdx
lea r8, [r15 + r15]
mov rdx, rdi
mov rdi, rcx
call sub.msvcrt.dll_memcpy
jmp case.0x5057fd.11
mov r15, qword [rbx + 0x18]
test r15, r15
je 0x505b95
movabs rax, 0x333333333333333
cmp r15, rax
ja 0x5074a7
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x90], rax
mov rax, r15
and rax, 0xffffffffffffffd7
mov ecx, r15d
and ecx, 0x28
mov rdi, r15
or rdi, 0x28
imul rdi, rcx
xor rcx, 0x28
imul rcx, rax
add rdi, rcx
mov qword [rsp + 0x60], r14
je 0x505f3d
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x505f47
jmp 0x5074ae
mov r15, qword [rbx + 0x18]
test r15, r15
je 0x505b95
movabs rax, 0x3ffffffffffffff
cmp r15, rax
ja 0x5074a7
mov rdi, r15
mov r15, qword [rbx + 0x10]
mov rax, rdi
and rax, 0xffffffffffffffdf
mov ecx, edi
and ecx, 0x20
mov qword [rsp + 0x58], rdi
or rdi, 0x20
imul rdi, rcx
xor rcx, 0x20
imul rcx, rax
add rdi, rcx
mov qword [rsp + 0x60], r14
je 0x5060a5
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x5060af
jmp 0x5074ae
mov r15, qword [rbx + 0x18]
test r15, r15
je 0x505b95
movabs rax, 0x555555555555555
cmp r15, rax
ja 0x5074a7
mov rdi, r15
mov r15, qword [rbx + 0x10]
mov rax, rdi
and rax, 0xffffffffffffffe7
mov ecx, edi
and ecx, 0x18
mov qword [rsp + 0x58], rdi
or rdi, 0x18
imul rdi, rcx
xor rcx, 0x18
imul rcx, rax
add rdi, rcx
mov qword [rsp + 0x60], r14
je 0x506162
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x50616c
jmp 0x5074ae
mov edi, 8
jmp 0x506460
mov rbp, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
test r15, r15
je 0x505d08
movabs rax, 0x1fffffffffffffff
cmp r15, rax
ja 0x5074a7
mov rax, r15
and rax, 0xfffffffffffffffb
mov ecx, r15d
and ecx, 4
mov rdi, r15
or r15, 4
imul r15, rcx
xor rcx, 4
imul rcx, rax
add r15, rcx
je 0x50620a
mov edx, 2
mov rcx, r15
call fcn.00414fe0
test rax, rax
jne 0x505c60
jmp 0x507512
mov rbp, qword [rbx + 0x10]
mov r15, qword [rbx + 0x18]
mov rax, r15
test r15, r15
je 0x505d30
shr rax, 0x3e
jne 0x5074a7
mov rax, r15
and rax, 0xfffffffffffffffd
mov ecx, r15d
and ecx, 2
mov rdi, r15
or r15, 2
imul r15, rcx
xor rcx, 2
imul rcx, rax
add r15, rcx
je 0x506214
mov edx, 1
mov rcx, r15
call fcn.00414fe0
test rax, rax
je 0x507519
mov rcx, rax
mov rsi, rdi
mov rdi, rax
jmp 0x50621c
mov rsi, qword [rbx + 0x10]
test rsi, rsi
je 0x505d55
mov r15, qword [rbx + 0x18]
test r15, r15
mov qword [rsp + 0x58], r15
je 0x505de4
movabs rax, 0x555555555555555
cmp r15, rax
ja 0x5074a7
mov rax, r15
and rax, 0xffffffffffffffe7
mov ecx, r15d
and ecx, 0x18
mov rdi, r15
or rdi, 0x18
imul rdi, rcx
xor rcx, 0x18
imul rcx, rax
add rdi, rcx
mov qword [rsp + 0x60], r14
je 0x506304
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x50630e
jmp 0x5074ae
mov r15, qword [rsp + 0x1f0]
xor edi, edi
mov rbp, qword [rsp + 0x1e8]
mov r14, rsi
jmp case.0x5057fd.11
mov rax, r15
and rax, 0xfffffffffffffffb
mov ecx, r15d
and ecx, 4
mov rsi, r15
or r15, 4
imul r15, rcx
xor rcx, 4
imul rcx, rax
add r15, rcx
jmp 0x50620d
and rax, 0xfffffffffffffffd
mov ecx, r15d
and ecx, 2
mov rsi, r15
or r15, 2
imul r15, rcx
xor rcx, 2
imul rcx, rax
add r15, rcx
jmp 0x506217
movzx eax, byte [rbx + 0x18]
movzx esi, byte [rbx + 0x19]
mov rcx, qword [rsp + 0x1e0]
and rcx, 0xffffffffffff0000
or rcx, rax
shl rsi, 8
or rsi, rcx
mov r15, qword [rbx + 0x28]
mov rdi, qword [rbx + 0x30]
mov rcx, rdi
xor edx, edx
call fcn.00516e63
mov qword [rsp + 0x98], rax
mov rcx, rdx
mov eax, edi
and eax, 1
mov r8, rax
neg r8
mov rdx, rdi
or rdx, 1
and rdx, r8
xor rax, 1
mov qword [rsp + 0xc0], rdi
and rdi, 0xfffffffffffffffe
imul rdi, rax
add rdi, rdx
mov qword [rsp + 0xa0], rcx
mov rdx, r15
mov r15, rsi
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x1e0], rsi
xor edi, edi
jmp 0x506460
mov edi, 8
jmp 0x5063ff
mov eax, 8
mov qword [rsp + 0x50], rax
mov rax, r15
shl rax, 5
mov qword [rsp + 0x90], rax
xor r14d, r14d
mov r13, r15
cmp qword [rsp + 0x90], r14
je 0x505eab
lea rax, [rsi + 0x20]
mov qword [rsp + 0x98], rax
mov r15, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
mov edi, ebx
not edi
mov rcx, rbx
xor edx, edx
call fcn.00516e63
mov r12, rax
mov rbp, rdx
mov eax, ebx
and eax, 1
neg rax
mov rcx, rbx
or rcx, 1
and rcx, rax
and edi, 1
mov r8, rbx
and r8, 0xfffffffffffffffe
imul r8, rdi
add r8, rcx
mov rcx, rdx
mov rdx, r15
mov r15, qword [rsp + 0x58]
call sub.msvcrt.dll_memcpy
mov eax, dword [rsi + 0x18]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + r14], r12
mov qword [rcx + r14 + 8], rbp
mov qword [rcx + r14 + 0x10], rbx
mov rbx, qword [rsp + 0x68]
mov dword [rcx + r14 + 0x18], eax
add r14, 0x20
mov rsi, qword [rsp + 0x98]
dec r13
jne 0x505e0d
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
mov rdx, qword [rbx + 0x30]
test rdx, rdx
mov qword [rsp + 0xc0], rdx
je 0x505f30
mov qword [rsp + 0x50], rdi
movabs rax, 0x555555555555555
cmp rdx, rax
ja 0x5074a7
mov r15, qword [rbx + 0x28]
mov rax, rdx
and rax, 0xffffffffffffffe7
mov ecx, edx
and ecx, 0x18
mov rdi, rdx
or rdi, 0x18
imul rdi, rcx
xor rcx, 0x18
imul rcx, rax
add rdi, rcx
mov rsi, rdx
je 0x506235
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
mov qword [rsp + 0xa0], rax
test rax, rax
jne 0x506242
jmp 0x5074ae
mov qword [rsp + 0x98], rdx
jmp 0x506460
mov eax, 8
mov qword [rsp + 0x50], rax
lea rax, [r15*8]
lea rax, [rax + rax*4]
mov qword [rsp + 0xe8], rax
xor r14d, r14d
mov rbx, qword [rsp + 0x90]
mov rsi, r15
mov qword [rsp + 0x58], r15
mov rdi, qword [rsp + 0x50]
cmp qword [rsp + 0xe8], r14
je 0x506093
dec rsi
mov cl, byte [rbx + 0x20]
mov r13b, byte [rbx + 0x21]
mov rax, qword [rbx]
cmp rax, 2
jne 0x506005
mov rax, qword [rsp + 0x90]
mov rdi, qword [rax + r14 + 0x10]
mov r15, qword [rax + r14 + 0x18]
mov byte [rsp + 0x77], r13b
mov r13d, ecx
mov rcx, r15
xor edx, edx
call fcn.00516e63
mov rbp, rax
mov r12, rdx
mov eax, r15d
and eax, 1
mov rcx, rax
neg rcx
mov rdx, r15
or rdx, 1
and rdx, rcx
xor rax, 1
mov r8, r15
and r8, 0xfffffffffffffffe
imul r8, rax
add r8, rdx
mov rcx, r12
mov rdx, rdi
mov rdi, qword [rsp + 0x50]
call sub.msvcrt.dll_memcpy
mov ecx, r13d
mov r13b, byte [rsp + 0x77]
mov eax, 2
jmp 0x506060
test rax, rax
je 0x506044
mov rax, qword [rsp + 0x90]
mov rdx, qword [rax + r14 + 0x10]
mov r8, qword [rax + r14 + 0x18]
mov ebp, ecx
lea rcx, [rsp + 0x278]
call fcn.00418690
mov ecx, ebp
mov rbp, qword [rsp + 0x278]
mov r12, qword [rsp + 0x280]
mov eax, 1
jmp 0x506058
mov rax, qword [rsp + 0x90]
mov rbp, qword [rax + r14 + 8]
mov r12, qword [rax + r14 + 0x10]
xor eax, eax
mov r15, qword [rsp + 0x288]
add rbx, 0x28
mov qword [rdi + r14], rax
mov qword [rdi + r14 + 8], rbp
mov qword [rdi + r14 + 0x10], r12
mov qword [rdi + r14 + 0x18], r15
mov byte [rdi + r14 + 0x20], cl
mov byte [rdi + r14 + 0x21], r13b
add r14, 0x28
test rsi, rsi
mov r15, qword [rsp + 0x58]
jne 0x505f73
mov rbp, r15
mov r14, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
jmp case.0x5057fd.11
mov eax, 8
mov qword [rsp + 0x50], rax
mov r14, qword [rsp + 0x58]
mov rax, r14
shl rax, 5
mov qword [rsp + 0xe8], rax
xor ebx, ebx
cmp qword [rsp + 0xe8], rbx
je 0x5062e8
lea rax, [r15 + 0x20]
mov qword [rsp + 0x90], rax
mov esi, dword [r15 + 0x18]
mov r12, qword [r15 + 8]
mov r13, qword [r15 + 0x10]
mov r15d, r13d
not r15d
mov rcx, r13
xor edx, edx
call fcn.00516e63
mov rdi, rax
mov rbp, rdx
mov eax, r13d
and eax, 1
neg rax
mov rcx, r13
or rcx, 1
and rcx, rax
and r15d, 1
mov r8, r13
and r8, 0xfffffffffffffffe
imul r8, r15
add r8, rcx
mov rcx, rdx
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
mov qword [rax + rbx], rdi
mov qword [rax + rbx + 8], rbp
mov qword [rax + rbx + 0x10], r13
mov dword [rax + rbx + 0x18], esi
add rbx, 0x20
mov r15, qword [rsp + 0x90]
dec r14
jne 0x5060c5
jmp 0x5062e8
mov eax, 8
mov qword [rsp + 0x50], rax
mov r14, qword [rsp + 0x58]
lea rax, [r14*8]
lea rax, [rax + rax*2]
mov qword [rsp + 0x90], rax
xor ebx, ebx
cmp qword [rsp + 0x90], rbx
je 0x5062e8
lea r13, [r15 + 0x18]
mov r12, qword [r15 + 8]
mov rsi, qword [r15 + 0x10]
mov r15d, esi
not r15d
mov rcx, rsi
xor edx, edx
call fcn.00516e63
mov rdi, rax
mov rbp, rdx
mov eax, esi
and eax, 1
neg rax
mov rcx, rsi
or rcx, 1
and rcx, rax
and r15d, 1
mov r8, rsi
and r8, 0xfffffffffffffffe
imul r8, r15
add r8, rcx
mov rcx, rdx
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
mov qword [rax + rbx], rdi
mov qword [rax + rbx + 8], rbp
mov qword [rax + rbx + 0x10], rsi
add rbx, 0x18
mov r15, r13
dec r14
jne 0x506187
jmp 0x5062e8
mov rsi, rdi
mov edi, 2
jmp 0x50621c
mov rsi, rdi
mov edi, 1
mov rcx, rdi
mov rdx, rbp
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rbp, rsi
mov r15, rsi
jmp case.0x5057fd.11
mov eax, 8
mov qword [rsp + 0xa0], rax
lea rax, [rsi*8]
lea rax, [rax + rax*2]
mov qword [rsp + 0x98], rax
mov r14, rsi
xor ebx, ebx
cmp qword [rsp + 0x98], rbx
je 0x5062d8
lea r13, [r15 + 0x18]
mov r12, qword [r15 + 8]
mov rsi, qword [r15 + 0x10]
mov r15d, esi
not r15d
mov rcx, rsi
xor edx, edx
call fcn.00516e63
mov rdi, rax
mov rbp, rdx
mov eax, esi
and eax, 1
neg rax
mov rcx, rsi
or rcx, 1
and rcx, rax
and r15d, 1
mov r8, rsi
and r8, 0xfffffffffffffffe
imul r8, r15
add r8, rcx
mov rcx, rdx
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xa0]
mov qword [rax + rbx], rdi
mov qword [rax + rbx + 8], rbp
mov qword [rax + rbx + 0x10], rsi
add rbx, 0x18
mov r15, r13
dec r14
jne 0x50625b
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x98], rax
mov r15, qword [rsp + 0x58]
mov rbp, r15
mov r14, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
jmp case.0x5057fd.11
mov eax, 8
mov qword [rsp + 0x50], rax
lea rax, [r15*8]
lea rax, [rax + rax*2]
mov qword [rsp + 0x90], rax
mov rbp, 0xffffffffffffffff
xor r13d, r13d
mov r14, r15
mov rdi, qword [rsp + 0x50]
cmp qword [rsp + 0x90], r13
je 0x5063fa
inc rbp
cmp r15, rbp
je 0x507491
mov rax, r14
or rax, 0xfffffffffffffffe
and r14, 0xfffffffffffffffe
add r14, rax
inc r14
lea rax, [r13 + 0x18]
mov qword [rsp + 0xa0], rax
lea rax, [rsi + 0x18]
mov qword [rsp + 0x98], rax
mov rbx, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov esi, edi
not esi
mov rcx, rdi
xor edx, edx
call fcn.00516e63
mov r15, rax
mov r12, rdx
mov eax, edi
and eax, 1
neg rax
mov rcx, rdi
or rcx, 1
and rcx, rax
and esi, 1
mov r8, rdi
and r8, 0xfffffffffffffffe
imul r8, rsi
add r8, rcx
mov rcx, rdx
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x50]
mov qword [rax + r13], r15
mov qword [rax + r13 + 8], r12
mov qword [rax + r13 + 0x10], rdi
mov rdi, rax
mov r13, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x98]
test r14, r14
mov rbx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x58]
jne 0x506334
mov r14, qword [rsp + 0x60]
mov r15, qword [rbx + 0x28]
mov rsi, qword [rbx + 0x30]
mov rcx, rsi
xor edx, edx
call fcn.00516e63
mov qword [rsp + 0x98], rax
mov rcx, rdx
mov eax, esi
and eax, 1
mov r8, rax
neg r8
mov rdx, rsi
or rdx, 1
and rdx, r8
xor rax, 1
mov qword [rsp + 0xc0], rsi
and rsi, 0xfffffffffffffffe
imul rsi, rax
add rsi, rdx
mov qword [rsp + 0xa0], rcx
mov rdx, r15
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov r15, qword [rsp + 0x58]
mov rbp, r15
add rbx, 0x38
imul rax, r14, 0x38
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xa8]
mov qword [rcx + rax], rdx
mov qword [rcx + rax + 8], rbp
mov qword [rcx + rax + 0x10], rdi
mov qword [rcx + rax + 0x18], r15
mov rdx, qword [rsp + 0x98]
mov qword [rcx + rax + 0x20], rdx
mov rdx, qword [rsp + 0xa0]
mov qword [rcx + rax + 0x28], rdx
mov rdx, qword [rsp + 0xc0]
mov qword [rcx + rax + 0x30], rdx
inc r14
cmp rbx, qword [rsp + 0x200]
jne 0x5057df
mov rbp, qword [rsp + 0x6a8]
mov r8, qword [rsp + 0x698]
mov r13, r14
mov qword [rsp + 0x88], r14
mov r14, qword [rbp + 0x68]
mov cl, byte [rbp + 0x110]
cmp cl, 3
je 0x506789
lea rax, [rbp + 0x30]
lea rdx, [rbp + 8]
cmp cl, 2
cmove rax, rdx
mov rdi, qword [rax + 0xa0]
test rdi, rdi
je 0x506789
lea rdx, [rbp + 0x88]
xor r12d, r12d
cmp cl, 2
mov rcx, rdx
mov qword [rsp + 0x50], rdx
cmove r12, rdx
jne 0x50681f
cmp qword [r14 + 0x18], 0
je 0x5068af
mov rbx, qword [rbp + 0x118]
mov rcx, qword [r14 + 0x60]
mov rax, qword [rcx + 0x58]
mov rcx, qword [rcx + 0x60]
shl rcx, 4
xor edx, edx
cmp rcx, rdx
je 0x5068af
cmp qword [rax + rdx], 0
lea rdx, [rdx + 0x10]
je 0x506556
cmp r8, 2
je 0x5065bf
test r8, r8
je 0x5068af
mov rax, qword [r12]
mov rcx, qword [rax + 0x30]
mov rax, qword [rax + 0x38]
call qword [rax + 0x38]
mov edi, eax
mov esi, edx
mov rax, qword [rsp + 0x6a0]
mov rcx, qword [rax + 0x30]
mov rax, qword [rax + 0x38]
call qword [rax + 0x38]
cmp dil, al
jne 0x5068af
cmp dil, 7
mov r8, qword [rsp + 0x698]
jne 0x5065bf
cmp sil, dl
jne 0x5068af
mov rsi, qword [r12]
mov rcx, qword [rsp + 0x6b0]
mov rax, qword [rcx]
mov edx, 1
mov qword [rax], rdx
mov qword [rax + 8], rsi
mov rcx, qword [rcx + 8]
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], rsi
cmp r8, 2
jne 0x506659
mov eax, dword [r12 + 0x7c]
test eax, eax
je 0x506659
cmp byte [r14 + 0x9a], 0
je 0x506659
cmp byte [rcx + 8], 0
jne 0x507594
mov byte [rcx + 8], 1
mov qword [rcx], rax
mov rdx, r13
cmp r13, qword [rsp + 0x78]
mov rcx, qword [rsp + 0xb8]
jne 0x506637
lea rdi, [rsp + 0x78]
mov rcx, rdi
call fcn.004f0aff
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
imul rax, rdx, 0x38
mov qword [rcx + rax], 0xf
mov rax, qword [rsp + 0x88]
inc rax
mov r13, rax
mov qword [rsp + 0x88], rax
mov r14, qword [r12 + 8]
mov eax, dword [r12 + 0x78]
mov dword [rsp + 0x68], eax
mov rcx, qword [rsi + 0x30]
mov rax, qword [rsi + 0x38]
call qword [rax + 0x30]
mov rdi, rax
mov rcx, rax
mov dl, 1
call fcn.00516e63
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x58], rdx
mov r15, qword [r12 + 0x18]
mov r12, qword [r12 + 0x20]
mov rcx, r12
xor edx, edx
call fcn.00516e63
mov rsi, rax
mov rbp, rdx
mov rcx, rdx
mov rdx, r15
mov r8, r12
call sub.msvcrt.dll_memcpy
mov ecx, 0x20
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x5074e5
mov r15, rax
xor eax, eax
sub rbx, r14
cmovae rax, rbx
imul eax, eax, 0x3e8
add eax, dword [rsp + 0x68]
mov qword [r15], rsi
mov qword [r15 + 8], rbp
mov qword [r15 + 0x10], r12
mov dword [r15 + 0x18], eax
mov ecx, 0x18
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x50758a
mov r12, rax
mov rax, qword [rsp + 0xa8]
mov qword [r12], rax
mov rax, qword [rsp + 0x58]
mov qword [r12 + 8], rax
mov qword [r12 + 0x10], rdi
mov r14, r13
cmp r13, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x6a8]
jne 0x50674d
lea rdi, [rsp + 0x78]
mov rcx, rdi
mov rdx, r14
call fcn.004f0aff
mov r14, qword [rdi + 0x10]
mov rax, qword [rsp + 0x80]
imul rcx, r14, 0x38
mov qword [rax + rcx], 9
mov edx, 1
mov qword [rax + rcx + 8], rdx
mov qword [rax + rcx + 0x10], r15
mov qword [rax + rcx + 0x18], rdx
mov qword [rax + rcx + 0x20], rdx
mov qword [rax + rcx + 0x28], r12
mov qword [rax + rcx + 0x30], rdx
jmp 0x50680f
cmp qword [r14 + 0x18], 0
je 0x5067b4
mov rcx, qword [r14 + 0x60]
mov rax, qword [rcx + 0x58]
mov rcx, qword [rcx + 0x60]
shl rcx, 4
xor edx, edx
cmp rcx, rdx
je 0x5067b4
cmp qword [rax + rdx], 0
lea rdx, [rdx + 0x10]
je 0x5067a2
jmp 0x5067c2
cmp byte [r14 + 0x90], 2
jne 0x5068af
mov rdx, r13
cmp r13, qword [rsp + 0x78]
jne 0x5067e3
lea rdi, [rsp + 0x78]
mov rcx, rdi
call fcn.004f0aff
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
jmp 0x5067eb
mov rcx, qword [rsp + 0xb8]
imul rax, rdx, 0x38
mov qword [rcx + rax], 4
mov qword [rcx + rax + 0x10], 0
xor eax, eax
mov qword [rsp + 0x50], rax
mov r14, qword [rsp + 0x88]
inc r14
mov qword [rsp + 0x88], r14
jmp 0x5068b9
cmp qword [r14 + 0x10], 0
je 0x5068af
add rax, 0x88
mov rdx, qword [r14 + 0x60]
mov rcx, qword [rdx + 0x58]
mov rdx, qword [rdx + 0x60]
shl rdx, 4
xor r8d, r8d
mov qword [rsp + 0x50], r8
xor r8d, r8d
cmp rdx, r8
je 0x5068b6
cmp qword [rcx + r8], 0
lea r8, [r8 + 0x10]
jne 0x50684b
cmp byte [r14 + 0x90], 2
jne 0x5068af
mov r15, qword [rax + 0x10]
mov rcx, rdi
xor edx, edx
call fcn.00516e63
mov rbx, rax
mov r14, rdx
mov rcx, rdx
mov rdx, r15
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, r13
cmp r13, qword [rsp + 0x78]
jne 0x507469
lea r15, [rsp + 0x78]
mov rcx, r15
call fcn.004f0aff
mov rcx, qword [r15 + 8]
mov rdx, qword [r15 + 0x10]
jmp 0x507471
xor eax, eax
mov qword [rsp + 0x50], rax
mov r14, r13
test r14, r14
je 0x506920
movabs rax, 0x1fffffffffffffff
cmp r14, rax
ja 0x5074a7
mov rbx, qword [rsp + 0x80]
mov rax, r14
and rax, 0xfffffffffffffffb
mov ecx, r14d
and ecx, 4
mov r12, r14
or r14, 4
imul r14, rcx
xor rcx, 4
imul rcx, rax
add r14, rcx
je 0x506929
mov edx, 2
mov rcx, r14
call fcn.00414fe0
mov rdi, rax
test rax, rax
jne 0x50692e
mov edx, 2
mov rcx, r14
jmp 0x507521
mov edi, 2
xor esi, esi
jmp 0x506964
mov edi, 2
imul r14, r12, 0x38
xor esi, esi
lea r15, [rbx + 0x38]
mov rcx, rbx
call fcn.004ebb51
shl edx, 0x10
movzx eax, ax
or eax, edx
mov dword [rdi + rsi*4], eax
mov eax, esi
and eax, 1
xor rsi, 1
lea rsi, [rsi + rax*2]
mov rbx, r15
add r14, 0xffffffffffffffc8
jne 0x506934
mov r14, r12
cmp qword [rbp + 0x70], 0
je 0x50697d
mov r8, qword [rbp + 0x78]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], rdi
mov qword [rbp + 0x80], rsi
mov rax, qword [rbp + 0x68]
mov rcx, qword [rax + 0x60]
mov rax, qword [rcx + 0x58]
mov rbx, qword [rcx + 0x60]
shl rbx, 4
mov ecx, 0x335
mov rdx, qword [rsp + 0x6b0]
add rcx, qword [rdx]
lea rdx, [rax + rbx]
lea rsi, [rsp + 0x3b0]
mov qword [rsi - 0x10], rdx
mov qword [rsi], rcx
test rbx, rbx
je 0x506ad9
lea r14, [rax + 0x10]
mov qword [rsp + 0x3a8], r14
mov rdx, qword [rax]
mov r8, qword [rax + 8]
mov rcx, rsi
call fcn.004ec411
movzx ebp, ax
add rbx, 0xfffffffffffffff0
mov rax, r14
cmp ebp, 0x179
je 0x5069c3
mov edi, edx
mov ecx, 0x10
mov edx, 2
call fcn.00414fe0
test rax, rax
je 0x507506
mov rsi, rax
shl edi, 0x10
or edi, ebp
mov dword [rax], edi
lea rdi, [rsp + 0x140]
mov qword [rdi], 4
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], 1
mov rax, qword [rsp + 0x3b0]
lea rbx, [rsp + 0x280]
mov qword [rbx], rax
movups xmm0, xmmword [rsp + 0x3a0]
movaps xmmword [rbx - 0x10], xmm0
mov r14d, 1
mov r12, qword [rsp + 0x270]
mov rax, qword [rsp + 0x278]
cmp rax, r12
je 0x506af9
lea r13, [rax + 0x10]
mov qword [rsp + 0x278], r13
mov rdx, qword [rax]
mov r8, qword [rax + 8]
mov rcx, rbx
call fcn.004ec411
movzx r15d, ax
mov rax, r13
cmp r15d, 0x179
je 0x506a6d
mov ebp, edx
cmp r14, qword [rsp + 0x140]
je 0x506ac4
shl ebp, 0x10
or ebp, r15d
mov dword [rsi + r14*4], ebp
inc r14
mov qword [rsp + 0x150], r14
jmp 0x506a5d
mov rcx, rdi
mov rdx, r14
call fcn.004ec439
mov rsi, qword [rsp + 0x148]
jmp 0x506aad
xor edx, edx
mov qword [rsp + 0xf0], rdx
mov qword [rsp + 0xf8], 2
mov qword [rsp + 0x100], rdx
jmp 0x506b26
movups xmm0, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0xf0], xmm0
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x100], rax
mov rdx, qword [rsp + 0xf0]
cmp rax, rdx
jne 0x506b3a
lea rsi, [rsp + 0xf0]
mov rcx, rsi
call fcn.004f0c53
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0xf8]
mov word [rcx + rax*4], 0xba
inc rax
mov qword [rsp + 0x100], rax
mov rcx, qword [rsp + 0x6a8]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x230], xmm1
movaps xmmword [rsp + 0x220], xmm0
mov rax, qword [rcx + 0x60]
mov qword [rsp + 0x160], rax
movups xmm0, xmmword [rcx + 0x40]
movups xmm1, xmmword [rcx + 0x50]
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
mov ebx, 1
mov ecx, 2
mov edx, 1
call fcn.00414fe0
test rax, rax
mov r13, qword [rsp + 0x50]
je 0x5074b8
mov byte [rax], 0
mov rcx, qword [rsp + 0x88]
lea rdx, [rsp + 0x3a0]
mov qword [rdx + 0x88], rcx
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rdx + 0x78], xmm0
movaps xmm0, xmmword [rsp + 0x220]
movaps xmm1, xmmword [rsp + 0x230]
lea rsi, [rsp + 0x270]
movaps xmmword [rsi], xmm0
movaps xmmword [rsi + 0x10], xmm1
movaps xmm0, xmmword [rsp + 0x140]
movaps xmm1, xmmword [rsp + 0x150]
movaps xmmword [rsi + 0x20], xmm0
movaps xmmword [rsi + 0x30], xmm1
mov rcx, qword [rsp + 0x160]
mov qword [rsi + 0x40], rcx
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rsi + 0x48], xmm0
mov rcx, qword [rsp + 0x100]
mov qword [rsi + 0x58], rcx
mov ecx, 0xc
mov rdi, rdx
rep movsq qword [rdi], qword [rsi]
mov byte [rdx + 0x98], 1
mov qword [rdx + 0x60], rbx
mov qword [rdx + 0x68], rax
mov qword [rdx + 0x70], rbx
mov word [rdx + 0x90], 4
test r13, r13
je 0x506f2a
mov rsi, qword [r13]
mov rdi, qword [rsi + 0x30]
mov r15, qword [rsi + 0x38]
xor eax, eax
lea rdx, [rsp + 0x128]
mov qword [rdx], rax
mov qword [rdx + 8], 1
mov qword [rdx + 0x10], rax
lea rbx, [rsp + 0x3a0]
mov rcx, rbx
call fcn.004f319f
movzx eax, word [rbx + 0x90]
mov ecx, eax
or ecx, 0xfffffff5
and eax, 0x15
add eax, ecx
inc eax
cmp ax, 0x14
ja 0x506cbe
cmp ax, 1
jne 0x506d3f
mov rcx, qword [rsp + 0x428]
lea rax, [rcx - 1]
imul rdx, rax, 0x38
add rdx, qword [rsp + 0x420]
xor eax, eax
cmp rcx, 1
cmovae rax, rdx
jb 0x506d3f
cmp dword [rax], 9
jne 0x506d3f
xor r12d, r12d
lea rbx, [rsp + 0x270]
mov qword [rbx], r12
mov qword [rbx + 8], 1
mov qword [rbx + 0x10], r12
mov rcx, qword [rax + 0x28]
mov rdx, qword [rax + 0x30]
mov r8, rbx
call fcn.004f5828
mov r14, qword [rbx + 0x10]
cmp qword [rbx], r12
je 0x506d30
mov r8, qword [rsp + 0x278]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov rbx, qword [rsp + 0x138]
cmp rbx, r14
jae 0x506d4a
jmp 0x506d55
mov rbx, qword [rsp + 0x138]
xor r14d, r14d
sub rbx, r14
mov qword [rsp + 0x138], rbx
mov r14, qword [rsp + 0x130]
mov rcx, rdi
call qword [r15 + 0x20]
mov r15, rax
mov r12, rdx
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, qword [r12 + 0x38]
mov rcx, r15
call rdi
mov rcx, r15
mov rdx, r14
mov r8, rbx
call rdi
lea rdi, [rsp + 0x220]
mov rcx, rdi
mov rdx, r15
call qword [r12 + 0x30]
mov r9, qword [r13 + 0x30]
mov rax, qword [r13 + 0x38]
mov rcx, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
mov qword [rsp + 0x20], rax
xor ebx, ebx
xor edx, edx
call qword [r8 + 0x28]
mov r15, rax
lea rax, [rsp + 0x208]
mov qword [rax], r15
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rsi
lea r14, [rsp + 0x270]
mov rcx, r14
mov rdx, rax
xor r8d, r8d
call fcn.005123f9
lea rcx, [rsp + 0x140]
mov rdx, rsi
mov r8, r14
mov r9, rdi
call fcn.00510b81
mov byte [rsp + rbx + 0x270], 0
inc rbx
cmp rbx, 0x40
jne 0x506e01
mov eax, dword [rsp + 0x430]
add eax, 0xfffffff6
cmp ax, 0x14
ja 0x506e2c
cmp ax, 1
jne 0x506ed6
mov rsi, qword [rsp + 0x180]
cmp rsi, 0x41
jae 0x507556
mov rcx, qword [rsp + 0x428]
test rcx, rcx
je 0x506ed6
mov rax, qword [rsp + 0x420]
mov rdx, rcx
xor rdx, 0xfffffffffffffffe
and rcx, 0xfffffffffffffffe
lea rcx, [rdx + rcx*2]
imul rcx, rcx, 0x38
cmp dword [rcx + rax + 0x38], 9
jne 0x506ed6
lea r14, [rcx + rax]
add r14, 0x38
mov rcx, rsi
xor edx, edx
call fcn.00516e63
mov rdi, rax
mov rbx, rdx
lea rdx, [rsp + 0x140]
mov rcx, rbx
mov r8, rsi
call sub.msvcrt.dll_memcpy
cmp qword [r14 + 0x30], 0
je 0x50757a
mov r14, qword [r14 + 0x28]
cmp qword [r14], 0
je 0x506ec3
mov r8, qword [r14 + 8]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov qword [r14], rdi
mov qword [r14 + 8], rbx
mov qword [r14 + 0x10], rsi
mov r15, qword [rsp + 0x208]
xor eax, eax
mov byte [rsp + rax + 0x140], 0
inc rax
cmp rax, 0x40
jne 0x506ed8
mov qword [rsp + 0x68], r15
cmp qword [rsp + 0x128], 0
je 0x506f0f
mov r8, qword [rsp + 0x130]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov rbp, qword [r13]
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x50], rax
mov r15, qword [rsp + 0x218]
jmp 0x506f2c
xor ebp, ebp
xor eax, eax
mov r14, qword [rsp + 0xe0]
test r14, r14
setne al
lea ebx, [rax + rax + 2]
lea rsi, [rsp + 0x140]
lea rdx, [rsp + 0x3a0]
mov r8d, 0xa0
mov rcx, rsi
call sub.msvcrt.dll_memcpy
xor eax, eax
lea rdi, [rsp + 0x220]
mov qword [rdi], rax
mov qword [rdi + 8], 1
mov qword [rdi + 0x10], rax
mov rcx, rsi
mov rdx, rdi
call fcn.004f319f
mov rax, qword [rdi + 0x10]
lea r12, [rsp + 0x270]
mov qword [r12 + 0xb0], rax
movups xmm0, xmmword [rdi]
movups xmmword [r12 + 0xa0], xmm0
mov r8d, 0xa0
mov rcx, r12
mov rdx, rsi
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x440]
mov word [rcx + 0xb8], bx
mov r8d, 0xb8
mov rdx, r12
call sub.msvcrt.dll_memcpy
test r14, r14
mov rsi, qword [rsp + 0x6b0]
je 0x506ff4
mov rax, qword [rsp + 0x6a8]
lea rcx, [rax + 0x121]
mov rdx, qword [rsi]
call fcn.00507604
mov eax, dword [rsp + 0x4d0]
add eax, 0xffffffe1
cmp ax, 3
ja 0x50700a
cmp ax, 1
jne 0x50702a
mov r8, qword [rsp + 0x4e8]
mov rdx, qword [rsp + 0x4f0]
add rdx, r8
mov rcx, qword [rsp + 0xb0]
call fcn.00514dd4
mov r13, qword [rsi]
lea rdx, [rsp + 0x440]
mov rcx, r13
xor r8d, r8d
call fcn.004fe410
test rbp, rbp
je 0x507198
mov rax, qword [rsi + 8]
movzx eax, byte [rax + 8]
dec rax
cmp rax, 1
ja 0x5071a5
mov qword [rsp + 0xa8], r15
mov r15, qword [rsp + 0x6a8]
lea rcx, [r15 + 0x121]
mov rax, qword [r15 + 0x68]
mov rdx, qword [rax + 0x40]
mov qword [rsp + 0x58], rdx
mov r14, qword [rax + 0x48]
mov rbx, qword [r14 + 0x10]
mov rdx, r13
call fcn.00507604
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x38]
call qword [rax + 0x20]
mov rdi, rax
mov r12, rdx
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rsi, qword [r12 + 0x38]
mov rcx, rdi
call rsi
lea rdx, str.combase.dll
mov rcx, rdi
xor r8d, r8d
call rsi
lea rsi, [rsp + 0x220]
mov rcx, rsi
mov rdx, rdi
call qword [r12 + 0x30]
mov rcx, qword [rsi + 0x40]
cmp rcx, 0x41
jae 0x507567
dec rbx
and rbx, 0xfffffffffffffff0
mov rax, qword [rsp + 0x58]
add rax, rbx
add rax, 0x10
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x140]
mov r12, qword [rsp + 0x68]
mov rdx, r12
mov rbp, qword [rsp + 0x50]
mov r8, rbp
mov r9b, 1
call fcn.00512470
cmp byte [r13 + 0x32d], 0
mov r14, r15
lea rdx, [rsp + 0x140]
je 0x5071bc
mov r15, qword [rsp + 0xa8]
mov rcx, r15
call fcn.00510f48
mov rsi, rax
mov rdi, rdx
lea rcx, [r13 + 0x2f0]
call fcn.005619fa
mov qword [r13 + 0x2f0], rsi
mov qword [r13 + 0x2f8], rdi
xor eax, eax
mov qword [r13 + 0x318], rax
mov byte [r13 + 0x321], 2
mov qword [r13 + 0x300], rax
jmp 0x5071cf
xor r12d, r12d
mov r14, qword [rsp + 0x6a8]
jmp 0x5071b2
mov r14, qword [rsp + 0x6a8]
mov r12, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x50]
jmp 0x50724e
mov r15, qword [rsp + 0xa8]
mov rcx, r15
mov r8, r13
call fcn.0050f7a9
cmp byte [r13 + 0x335], 0
je 0x507233
lea rdi, [rsp + 0x270]
lea rsi, [rsp + 0x140]
mov ecx, 9
rep movsq qword [rdi], qword [rsi]
cmp qword [r13 + 0x220], 0
je 0x50720f
xor eax, eax
mov byte [r13 + rax + 0x228], 0
inc rax
cmp rax, 0x40
jne 0x5071fd
mov qword [r13 + 0x220], 1
lea rdi, [r13 + 0x228]
lea rsi, [rsp + 0x270]
mov ecx, 9
rep movsq qword [rdi], qword [rsi]
jmp 0x507246
xor eax, eax
mov byte [rsp + rax + 0x140], 0
inc rax
cmp rax, 0x40
jne 0x507235
mov byte [r13 + 0x331], 1
cmp qword [rsp + 0xe0], 0
sete bl
lea rcx, [rsp + 0x500]
mov r8d, 0x128
mov rdx, r14
call sub.msvcrt.dll_memcpy
test byte [rsp + 0xd8], bl
je 0x507343
lea rcx, [rsp + 0x270]
mov r8d, 0x128
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov ecx, 0x198
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x5074f3
mov rsi, rax
mov rax, qword [rsp + 0xb0]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rsi + 0x20], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsi + 0x28], rax
mov rax, qword [rsp + 0x698]
mov qword [rsi + 0x30], rax
mov rax, qword [rsp + 0x6a0]
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], r12
mov qword [rsi + 0x48], rbp
mov qword [rsi + 0x50], r15
mov rcx, rsi
add rcx, 0x58
lea rdx, [rsp + 0x270]
mov r8d, 0x128
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x690]
movups xmm0, xmmword [rax]
movups xmmword [rsi + 0x180], xmm0
mov rax, qword [rax + 0x10]
mov qword [rsi + 0x190], rax
lea rdx, [0x005e9b80]
jmp 0x5073de
mov ecx, 0x180
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x5074fa
mov rsi, rax
mov rax, qword [rsp + 0xb0]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rsi + 0x20], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsi + 0x28], rax
mov rax, qword [rsp + 0x698]
mov qword [rsi + 0x30], rax
mov rax, qword [rsp + 0x6a0]
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], r12
mov qword [rsi + 0x48], rbp
mov qword [rsi + 0x50], r15
mov rcx, rsi
add rcx, 0x58
lea rdx, [rsp + 0x500]
mov r8d, 0x128
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x690]
call fcn.004edd18
lea rdx, fcn.0050764a
mov rax, rsi
add rsp, 0x628
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r12, [rsp + 0x270]
mov rcx, r12
xor edx, edx
mov r8, rsi
call fcn.004ec193
mov r15, qword [r12 + 8]
mov r12, qword [r12 + 0x10]
jmp 0x5050e5
mov rsi, rbx
lea rbx, [rsp + 0x78]
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.004f011f
mov rax, qword [rbx + 8]
mov qword [rsp + 0xb8], rax
mov r14, qword [rbx + 0x10]
mov rbx, rsi
jmp 0x5057d0
lea rbx, [rsp + 0x270]
mov rcx, rbx
xor edx, edx
mov r8, rdi
call fcn.004ec717
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
jmp 0x505605
mov rcx, qword [rsp + 0xb8]
imul rax, rdx, 0x38
mov qword [rcx + rax], 4
mov qword [rcx + rax + 8], rbx
mov qword [rcx + rax + 0x10], r14
mov qword [rcx + rax + 0x18], rdi
jmp 0x506800
lea r8, str._repos_rust_1.70.0_library_alloc_src_slice.rs
mov rcx, qword [rsp + 0x58]
mov rdx, rcx
call fcn.004262b0
ud2
call fcn.00417400
ud2
mov edx, 8
mov rcx, rdi
jmp 0x507521
mov ecx, 2
mov edx, 1
jmp 0x507521
lea rcx, [0x005e9b1f]
lea r8, [0x005e9b50]
mov edx, 0x30
call fcn.00426370
ud2
mov ecx, 0x150
jmp 0x5074ff
mov ecx, 0x20
jmp 0x5074ff
mov ecx, 0x28
jmp 0x5074ff
mov ecx, 0x198
jmp 0x5074ff
mov ecx, 0x180
mov edx, 8
jmp 0x507521
mov ecx, 0x10
mov edx, 2
jmp 0x507521
mov edx, 2
jmp 0x50751e
mov edx, 1
mov rcx, r15
call fcn.00417bf0
ud2
lea rax, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_scrape_0.22.4_src_msgs_handshake.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x0062cc63]
lea r9, [0x005e60f0]
lea r8, [rsp + 0x140]
mov edx, 0x2b
call fcn.0041f970
ud2
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_scrape_0.22.4_src_crypto_hmac.rs
mov edx, 0x40
mov rcx, rsi
jmp 0x507573
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_scrape_0.22.4_src_crypto_hash.rs
mov edx, 0x40
call fcn.004292f0
ud2
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_scrape_0.22.4_src_msgs_handshake.rs
xor ecx, ecx
xor edx, edx
jmp 0x5074a0
mov ecx, 0x18
jmp 0x5074ff
add rcx, 8
lea r8, [rsp + 0x270]
mov qword [r8 + 0x10], 0
lea rdx, [0x00615b90]
lea r9, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_scrape_0.22.4_src_client_client_conn.rsX
call fcn.004eefe1
ud2