Function at 0x453935
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x3b8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x320], xmm8
movdqa xmmword [rbp + 0x310], xmm7
movdqa xmmword [rbp + 0x300], xmm6
and rsp, 0xffffffffffffff80
mov rsi, rcx
lea rax, [rsp + 0x300]
mov ecx, 0x10
mov rdi, rax
mov qword [rsp + 0x2b8], rsi
rep movsq qword [rdi], qword [rsi]
mov rsi, qword [rax + 0x60]
lea rdi, [rsi + 0x10]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0x10], cl
jne 0x454e14
mov qword [rsp + 0x78], rdi
cmp qword [rsi + 0x28], 0
je 0x455190
lea rax, [rsp + 0x368]
mov rcx, qword [rsi + 0x38]
mov rdx, qword [rsi + 0x40]
mov rdi, qword [rax + 8]
mov rbx, qword [rax + 0x10]
mov r8, rdi
mov r9, rbx
call fcn.0055672b
mov r15, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x30]
mov r12, r15
and r12, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
mov qword [rsp + 0x38], rcx
lea rsi, [rcx - 0x80]
xor eax, eax
mov qword [rsp + 0x68], rax
pcmpeqd xmm7, xmm7
mov rax, qword [rsp + 0x38]
movdqu xmm8, xmmword [rax + r12]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb r14d, xmm0
test r14w, r14w
je 0x453a74
bsf r13d, r14d
lea eax, [r14 - 1]
mov ecx, r14d
not ecx
or ecx, eax
add r14d, ecx
inc r14d
add r13, r12
not r13
mov rax, r15
or rax, r13
sub r13, rax
shl r13, 7
cmp rbx, qword [rsi + r13 + 0x10]
jne 0x453a26
lea rax, [rsi + r13]
mov rdx, qword [rax + 8]
mov rcx, rdi
mov r8, rbx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x453a26
jmp 0x453aa3
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x455190
mov rax, qword [rsp + 0x68]
sub r12, rax
add rax, 0xfffffffffffffff0
mov qword [rsp + 0x68], rax
add r12, 0x10
and r12, r15
jmp 0x453a0d
mov r15, qword [rsp + 0x38]
lea rsi, [r15 + r13]
mov rdx, qword [r15 + r13 - 0x48]
mov r8, qword [r15 + r13 - 0x40]
lea rcx, [rsp + 0x98]
call fcn.00418690
mov rdi, qword [r15 + r13 - 0x30]
mov r14, qword [r15 + r13 - 0x28]
mov ebx, r14d
not ebx
mov rcx, r14
call fcn.004d0988
mov qword [rsp + 0x2a8], rax
mov rax, r14
and rax, 0xfffffffffffffffe
mov ecx, r14d
and ecx, 1
neg rcx
and ebx, 1
imul rbx, rax
mov qword [rsp + 0x2b0], r14
or r14, 1
and r14, rcx
add r14, rbx
mov qword [rsp + 0x2a0], rdx
mov rcx, rdx
mov rdx, rdi
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rdx, qword [r15 + r13 - 0x60]
test rdx, rdx
je 0x453b58
mov r8, qword [rsi - 0x58]
lea rdi, [rsp + 0x180]
mov rcx, rdi
call fcn.00418690
mov rax, qword [rdi]
mov qword [rsp + 0x148], rax
mov rax, qword [rdi + 8]
mov qword [rsp + 0x128], rax
jmp 0x453b62
xor eax, eax
mov qword [rsp + 0x128], rax
mov rdi, qword [rsi - 0x18]
mov rbx, qword [rsi - 0x10]
mov esi, ebx
not esi
mov rcx, rbx
call fcn.004d0988
mov qword [rsp + 0x150], rax
mov rax, rbx
and rax, 0xfffffffffffffffe
mov ecx, ebx
and ecx, 1
neg rcx
and esi, 1
imul rsi, rax
mov qword [rsp + 0x160], rbx
or rbx, 1
and rbx, rcx
add rbx, rsi
mov qword [rsp + 0x158], rdx
mov rcx, rdx
mov rdx, rdi
mov r8, rbx
call sub.msvcrt.dll_memcpy
movdqu xmm0, xmmword [rsp + 0x98]
movdqa xmmword [rsp + 0x2d0], xmm0
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x2e0], rax
mov r14, qword [rsp + 0x190]
xor edx, edx
mov al, 1
mov rcx, qword [rsp + 0x78]
lock cmpxchg byte [rcx], dl
jne 0x454e21
mov rcx, qword [rsp + 0x308]
mov rdx, qword [rsp + 0x310]
call fcn.004c94b8
mov rdi, rax
mov rsi, rdx
cmp rdx, 0xf
ja 0x453c38
test rsi, rsi
je 0x453ce3
xor eax, eax
cmp byte [rdi + rax], 0x2d
je 0x453c4e
inc rax
cmp rsi, rax
jne 0x453c25
jmp 0x453ce3
mov cl, 0x2d
mov rdx, rdi
mov r8, rsi
call fcn.00428e20
test rax, rax
je 0x453ce3
lea rbx, [rsp + 0x180]
mov qword [rbx], 2
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rsi
xor eax, eax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rsi
mov qword [rbx + 0x28], 1
movabs rcx, 0x2d0000002d
mov qword [rbx + 0x30], rcx
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rsi
mov word [rbx + 0x48], 1
lea rsi, [rsp + 0x40]
mov rcx, rsi
mov rdx, rbx
call fcn.0055e337
cmp qword [rsi + 0x10], 2
jne 0x454e7c
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x100]
call fcn.004552e0
mov rcx, qword [rsp + 0x40]
mov rdx, rsi
call fcn.00563d7f
jmp 0x453cfe
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x100]
mov rdx, rdi
mov r8, rsi
mov r9, rdi
call fcn.004552e0
cmp dword [rsp + 0x100], 0
je 0x453f30
mov rbx, qword [rsp + 0x108]
xor eax, eax
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], rax
movabs rcx, 0x2000000000
lea rdx, [rsp + 0x180]
mov qword [rdx + 0x30], rcx
mov byte [rdx + 0x38], 3
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x20], rax
lea rax, [rsp + 0x98]
mov qword [rdx], rax
lea rax, [0x005d8c90]
mov qword [rdx + 8], rax
mov rcx, rbx
call fcn.0041accd
test al, al
jne 0x4551d8
mov r15, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x128]
test rdx, rdx
mov rcx, qword [rsp + 0x148]
je 0x453dac
call fcn.004c9843
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov bl, 3
mov rdx, qword [rsp + 0x158]
mov r10, qword [rsp + 0x150]
mov rdi, qword [rsp + 0x360]
lea rsi, [rdi + 0x10]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x10], cl
jne 0x454e2b
lea rcx, [rsp + 0x368]
mov rax, qword [rcx + 0x10]
lea r8, [rsp + 0x40]
mov qword [r8 + 0x10], rax
movups xmm0, xmmword [rcx]
lea r9, [rsp + 0x180]
mov qword [r9], r15
mov qword [r9 + 8], r14
mov qword [r9 + 0x10], r12
mov rax, qword [rsp + 0x2e0]
mov qword [r9 + 0x28], rax
movaps xmm1, xmmword [rsp + 0x2d0]
movups xmmword [r9 + 0x18], xmm1
mov rax, qword [rsp + 0x2a8]
mov qword [r9 + 0x30], rax
mov rax, qword [rsp + 0x2a0]
mov qword [r9 + 0x38], rax
mov rax, qword [rsp + 0x2b0]
mov qword [r9 + 0x40], rax
mov qword [r9 + 0x48], r10
mov qword [r9 + 0x50], rdx
mov rax, qword [rsp + 0x160]
mov qword [r9 + 0x58], rax
mov byte [r9 + 0x60], bl
mov eax, dword [rsp + 0x100]
mov dword [r9 + 0x61], eax
mov eax, dword [rsp + 0x103]
mov dword [r9 + 0x64], eax
add rdi, 0x18
movaps xmmword [r8], xmm0
lea rbx, [rsp + 0x98]
mov rcx, rbx
mov rdx, rdi
call fcn.0044f347
cmp byte [rbx + 0x60], 4
je 0x453ea5
lea rcx, [rsp + 0x98]
call fcn.0044be0f
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi], cl
jne 0x454e54
lea rsi, [rsp + 0x300]
mov rcx, rsi
call fcn.0044cafe
mov rax, qword [rsi + 0x60]
lock dec qword [rax]
jne 0x453eda
mov rcx, qword [rsp + 0x360]
call fcn.0044bd08
mov rax, qword [rsp + 0x2b8]
mov rsi, qword [rax + 0x80]
mov rdi, qword [rax + 0x88]
mov rcx, rsi
mov rdx, rdi
call fcn.0044f685
mov rcx, rsi
mov rdx, rdi
call fcn.0044b48b
movaps xmm6, xmmword [rbp + 0x300]
movaps xmm7, xmmword [rbp + 0x310]
movaps xmm8, xmmword [rbp + 0x320]
lea rsp, [rbp + 0x338]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [rsp + 0x104]
mov qword [rsp + 0x140], rax
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x94], eax
mov rcx, qword [rsp + 0x320]
mov rdx, qword [rsp + 0x328]
call fcn.004c94b8
mov rbx, rax
mov rdi, rdx
cmp rdx, 0xf
mov qword [rsp + 0x120], r14
ja 0x453f94
test rdi, rdi
je 0x454255
xor eax, eax
cmp byte [rbx + rax], 0x2c
je 0x453faa
inc rax
cmp rdi, rax
jne 0x453f81
jmp 0x454255
mov cl, 0x2c
mov rdx, rbx
mov r8, rdi
call fcn.00428e20
test rax, rax
je 0x454255
movabs r12, 0x8f82dccff4fd1eee
lea rsi, [rsp + 0x98]
mov qword [rsi], rbx
mov qword [rsi + 8], rdi
xor eax, eax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rdi
mov qword [rsi + 0x20], 1
movabs rcx, 0x2c0000002c
mov qword [rsi + 0x28], rcx
mov qword [rsi + 0x30], rax
mov qword [rsi + 0x38], rdi
mov word [rsi + 0x40], 0
lea rdi, [rsp + 0x180]
cmp byte [rsp + 0xd9], 0
jne 0x4544c3
mov rbx, qword [rsp + 0x98]
mov rcx, rdi
mov rdx, rsi
call fcn.0044e69f
cmp qword [rsp + 0x180], 0
je 0x45404d
mov rdx, qword [rsp + 0x188]
mov rax, qword [rsp + 0x190]
mov rcx, qword [rsp + 0xc8]
add rbx, rcx
sub rdx, rcx
mov qword [rsp + 0xc8], rax
jmp 0x4540bc
cmp byte [rsp + 0xd9], 0
jne 0x4544c3
mov byte [rsp + 0xd9], 1
cmp byte [rsp + 0xd8], 0
je 0x45407f
mov rdx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xd0]
jmp 0x45409f
mov rdx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0xd0]
lea rcx, [rax + r12]
sub rcx, rdx
cmp rcx, r12
je 0x4544c3
mov rbx, qword [rsp + 0x98]
add rbx, rdx
mov rcx, rdx
xor rcx, rax
not rdx
and rdx, rax
add rdx, rdx
sub rdx, rcx
mov rcx, rbx
call fcn.004c94b8
test rdx, rdx
je 0x453ff9
mov rbx, rax
test rax, rax
je 0x453ff9
mov r15, rdx
mov ecx, 4
call fcn.0057d91c
mov r14, rdx
mov qword [rdx], rbx
mov qword [rdx + 8], r15
lea rbx, [rsp + 0x100]
mov qword [rbx], rax
mov qword [rbx + 8], rdx
mov qword [rbx + 0x10], 1
lea r15, [rsp + 0x180]
lea rsi, [rsp + 0x98]
mov ecx, 9
mov rdi, r15
rep movsq qword [rdi], qword [rsi]
mov edi, 1
lea rsi, [rsp + 0x40]
cmp byte [rsp + 0x1c1], 0
jne 0x454dd5
mov r12, qword [rsp + 0x180]
mov rcx, rsi
mov rdx, r15
call fcn.0044e69f
cmp qword [rsp + 0x40], 0
je 0x454177
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x1b0]
add r12, rcx
sub rdx, rcx
mov qword [rsp + 0x1b0], rax
jmp 0x4541f0
cmp byte [rsp + 0x1c1], 0
jne 0x454dd5
mov byte [rsp + 0x1c1], 1
cmp byte [rsp + 0x1c0], 0
je 0x4541a9
mov rdx, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b8]
jmp 0x4541d3
mov rdx, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b8]
movabs r8, 0x8f82dccff4fd1eee
lea rcx, [rax + r8]
sub rcx, rdx
cmp rcx, r8
je 0x454dd5
mov r12, qword [rsp + 0x180]
add r12, rdx
mov rcx, rdx
xor rcx, rax
not rdx
and rdx, rax
add rdx, rdx
sub rdx, rcx
mov rcx, r12
call fcn.004c94b8
test rdx, rdx
je 0x45412c
mov r12, rax
test rax, rax
je 0x45412c
mov r13, rdx
cmp rdi, qword [rsp + 0x100]
je 0x45423a
mov rax, rdi
shl rax, 4
mov qword [r14 + rax], r12
mov qword [r14 + rax + 8], r13
inc rdi
mov qword [rsp + 0x110], rdi
jmp 0x45412c
mov r8d, 1
mov rcx, rbx
mov rdx, rdi
call fcn.0057d98c
mov r14, qword [rsp + 0x108]
jmp 0x45421a
mov ecx, 0x10
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x45524f
mov rdx, rax
mov qword [rax], rbx
mov qword [rax + 8], rdi
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 4
mov qword [rsp + 0x50], rax
mov rdi, rdx
add rdi, 0x10
mov eax, 1
mov qword [rsp + 0x38], rax
mov ebx, 4
xor esi, esi
mov qword [rsp + 0x68], rdx
mov r14, rdx
mov r12, qword [r14]
mov r15, qword [r14 + 8]
cmp r15, 0xf
ja 0x4542d8
test r15, r15
je 0x454428
xor eax, eax
cmp byte [r12 + rax], 0x2d
je 0x4542ee
inc rax
cmp r15, rax
jne 0x4542c4
jmp 0x454428
mov cl, 0x2d
mov rdx, r12
mov r8, r15
call fcn.00428e20
test rax, rax
je 0x454428
mov qword [rsp + 0x180], 2
mov qword [rsp + 0x188], r12
mov qword [rsp + 0x190], r15
xor eax, eax
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], r15
mov qword [rsp + 0x1a8], 1
movabs rcx, 0x2d0000002d
mov qword [rsp + 0x1b0], rcx
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x1c0], r15
mov word [rsp + 0x1c8], 1
lea rcx, [rsp + 0x98]
lea rdx, [rsp + 0x180]
call fcn.0055e337
cmp qword [rsp + 0xa8], 2
jne 0x454f21
mov r15, qword [rsp + 0xa0]
mov rcx, qword [r15]
mov rdx, qword [r15 + 8]
call fcn.0041d190
mov r13, rax
test r13b, r13b
jne 0x454fb0
mov rcx, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x18]
call fcn.0041d190
mov r12, rax
test r12b, r12b
jne 0x454fb9
shr r13, 0x20
shr r12, 0x20
inc r12d
mov r8d, r12d
sub r8d, r13d
mov eax, 0
cmovb r8d, eax
mov rax, qword [rsp + 0x40]
mov rcx, rsi
not rcx
and rcx, rax
add rcx, rcx
xor rax, rsi
sub rcx, rax
cmp rcx, r8
jb 0x45447c
cmp r12d, r13d
jbe 0x454411
mov dword [rbx + rsi*4], r13d
inc r13d
mov eax, esi
and eax, 1
xor rsi, 1
lea rsi, [rsi + rax*2]
cmp r12d, r13d
jne 0x4543f0
mov r15, qword [rsp + 0xa0]
mov qword [rsp + 0x50], rsi
mov rcx, qword [rsp + 0x98]
mov rdx, r15
call fcn.00563d7f
jmp 0x45446d
mov rcx, r12
mov rdx, r15
call fcn.0041d190
mov r15, rax
test r15b, r15b
jne 0x454f0d
shr r15, 0x20
cmp rsi, qword [rsp + 0x40]
jne 0x45445c
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.0057e8f9
mov rsi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x48]
mov dword [rbx + rsi*4], r15d
inc rsi
mov qword [rsp + 0x50], rsi
add r14, 0x10
cmp r14, rdi
jne 0x4542ac
jmp 0x454498
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.00456fc7
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
jmp 0x4543eb
mov r14, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x68]
call fcn.00563d7f
mov rbx, r14
mov qword [rsp + 0x78], rdi
test rdi, rdi
jne 0x4544f1
jmp 0x453d14
xor ecx, ecx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x48], 4
mov qword [rsp + 0x50], rcx
mov edx, 8
call fcn.00563d7f
mov eax, 4
mov qword [rsp + 0x78], rax
xor r14d, r14d
xor esi, esi
mov rcx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x340]
call fcn.0041d190
test al, al
jne 0x454e61
shr rax, 0x20
cmp eax, 0x64
mov edi, 0x64
cmovb edi, eax
mov rcx, qword [rsp + 0x350]
mov rdx, qword [rsp + 0x358]
call fcn.0041d190
test al, al
jne 0x454e61
shr rax, 0x20
cmp eax, 5
mov ecx, 5
cmovb ecx, eax
mov dword [rsp + 0x134], ecx
mov ecx, 0x30
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x455110
mov rbx, rax
mov eax, 1
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov byte [rbx + 0x10], 0
xor eax, eax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], 8
mov qword [rbx + 0x28], rax
test edi, edi
je 0x455201
mov ecx, edi
mov eax, ecx
and eax, 0x20
mov rdi, rcx
or rdi, 0x20
imul rdi, rax
xor rax, 0x20
mov qword [rsp + 0x80], rcx
and ecx, 0x5f
imul rcx, rax
add rdi, rcx
je 0x4545de
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
test rax, rax
jne 0x4545e3
mov edx, 8
mov rcx, rdi
jmp 0x4550d7
mov eax, 8
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 0
pxor xmm6, xmm6
movdqa xmmword [rsp + 0x180], xmm6
movdqa xmmword [rsp + 0x200], xmm6
mov ecx, 0x200
mov edx, pe_nt_image_headers64
call fcn.00414fe0
test rax, rax
je 0x455216
mov rdi, rax
mov qword [rsp + 0x298], r14
lea rdx, [rsp + 0x180]
mov r8d, 0x100
mov rcx, rax
call sub.msvcrt.dll_memcpy
xor eax, eax
mov qword [rdi + 0x100], rax
mov byte [rdi + 0x108], al
mov qword [rdi + 0x110], rax
mov ecx, 8
mov qword [rdi + 0x118], rcx
movdqa xmmword [rdi + 0x120], xmm6
mov qword [rdi + 0x130], rcx
mov qword [rdi + 0x138], rax
mov byte [rdi + 0x140], 1
mov r12d, 1
mov qword [rdi + 0x180], r12
mov qword [rdi + 0x188], r12
mov byte [rdi + 0x190], al
mov ecx, 0x30
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x455110
mov r14, rax
mov qword [rsp + 0x68], rbx
add rbx, 8
mov qword [rsp + 0x290], rbx
lea rax, [rdi + 0x100]
mov qword [rsp + 0x288], rax
mov rax, rdi
add rax, 0x180
mov qword [rsp + 0x138], rax
mov qword [r14], r12
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], 0
mov byte [r14 + 0x18], 0
mov qword [r14 + 0x20], r12
mov qword [rsp + 0x38], rdi
mov qword [r14 + 0x28], rdi
xor eax, eax
mov qword [rsp + 0x88], rax
lock inc qword [r14]
jle 0x4550c9
call fcn.00534130
mov rbx, rax
xor ecx, ecx
call fcn.00550c30
mov qword [rsp + 0x70], rax
lock inc qword [rax]
jle 0x4550c9
mov ecx, 0x30
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x455110
mov rdi, rax
mov qword [rdi], r12
mov qword [rdi + 8], r12
movdqu xmmword [rdi + 0x10], xmm6
lock inc qword [rdi]
jle 0x4550c9
mov r13, rdi
xor ecx, ecx
call fcn.0051a180
mov r15, rax
mov ecx, 0
test rax, rax
mov r12, qword [rsp + 0x88]
je 0x4547ab
lock inc qword [r15]
mov rcx, r15
jle 0x4550c9
add rdi, 0x10
call fcn.0051a180
test rax, rax
je 0x4547c7
lock dec qword [rax]
jne 0x4547c7
mov rcx, rax
call fcn.00516e18
mov rcx, qword [rdi]
test rcx, rcx
je 0x4547d8
add rcx, 0x10
call fcn.00543840
mov ecx, 0x28
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x455117
mov qword [rax], r12
mov qword [rax + 8], r14
mov qword [rax + 0x10], r15
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], r13
mov rcx, rbx
mov rdx, rax
lea r8, [0x005d8b10]
call fcn.0054f850
mov rdi, rdx
cmp rax, 1
je 0x45511e
inc r12
mov r15, qword [rsp + 0xa8]
cmp r15, qword [rsp + 0x98]
jne 0x454854
lea rcx, [rsp + 0x98]
mov rdx, r15
call fcn.00456dc9
mov r15, qword [rsp + 0xa8]
mov rax, qword [rsp + 0xa0]
mov rbx, r15
shl rbx, 5
mov rcx, qword [rsp + 0x88]
mov qword [rax + rbx], rcx
mov qword [rax + rbx + 8], rdi
mov rcx, qword [rsp + 0x70]
mov qword [rax + rbx + 0x10], rcx
mov qword [rax + rbx + 0x18], r13
inc r15
mov qword [rsp + 0xa8], r15
mov rcx, r12
mov qword [rsp + 0x88], r12
cmp qword [rsp + 0x80], r12
mov r12d, 1
jne 0x454726
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x80], rax
lock dec qword [r14]
jne 0x4548d0
mov rcx, r14
call fcn.0044cb3e
mov rax, qword [rsp + 0x140]
cmp eax, dword [rsp + 0x94]
ja 0x4549a7
mov rdi, qword [rsp + 0x140]
lea eax, [rdi + 1]
bswap edi
lea r13, [rsi*4]
mov dword [rsp + 0x88], eax
test rsi, rsi
je 0x454984
xor r12d, r12d
mov rax, qword [rsp + 0x78]
mov r14d, dword [rax + r12]
mov rax, qword [rsp + 0x68]
lock inc qword [rax]
jle 0x4550c9
mov ecx, 0x18
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x4550cd
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov dword [rax + 8], edi
mov dword [rax + 0xc], r14d
mov ecx, dword [rsp + 0x134]
mov dword [rax + 0x10], ecx
mov edx, 1
lea rcx, [rsp + 0x180]
mov r8, qword [rsp + 0x38]
mov r9, rax
call fcn.00455547
cmp qword [rsp + 0x180], 0
jne 0x4550de
add r12, 4
cmp r13, r12
jne 0x454909
xor eax, eax
mov ecx, dword [rsp + 0x94]
mov edx, dword [rsp + 0x88]
cmp edx, ecx
setbe al
add eax, edx
mov edi, edx
bswap edi
cmp edx, ecx
jbe 0x4548fa
test r15, r15
je 0x454a7b
lea rdi, [rbx + 0x20]
lea rsi, [rsp + 0x98]
mov r14, qword [rsp + 0x70]
mov edx, 1
mov rcx, rsi
mov r8, qword [rsp + 0x38]
xor r9d, r9d
call fcn.00455547
cmp qword [rsp + 0x98], 0
jne 0x455171
add rdi, 0xffffffffffffffe0
jne 0x4549c1
add rbx, 0x20
xor edi, edi
lea rsi, [rsp + 0x180]
mov rax, qword [r14 + rdi + 8]
mov rcx, qword [r14 + rdi + 0x10]
mov rdx, qword [r14 + rdi + 0x18]
mov qword [r14 + rdi + 0x10], 0
test rcx, rcx
je 0x454a3f
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x188], rcx
mov qword [rsp + 0x190], rdx
mov rcx, rsi
call fcn.00517412
test rax, rax
jne 0x4551aa
add rdi, 0x20
cmp rbx, rdi
jne 0x4549f9
test r15, r15
mov rdi, qword [rsp + 0x138]
mov rbx, qword [rsp + 0x80]
je 0x454a90
lea rsi, [r14 + 8]
cmp qword [rsi + 8], 0
je 0x454a70
mov rcx, rsi
call fcn.0044b9aa
add rsi, 0x20
dec r15
jne 0x454a61
jmp 0x454a90
mov rdi, qword [rsp + 0x138]
mov r14, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x80]
test rbx, rbx
je 0x454aa6
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r14
call fcn.005ab9d4
lock dec qword [rdi]
mov rdi, qword [rsp + 0x298]
mov r15, qword [rsp + 0x68]
jne 0x454af8
mov rsi, qword [rsp + 0x38]
lock bts qword [rsi + 0x80], 0
jb 0x454ad7
mov rcx, qword [rsp + 0x288]
call fcn.0044b787
mov al, 1
xchg byte [rsi + 0x190], al
test al, al
je 0x454af8
lea rcx, [rsp + 0x180]
mov rax, qword [rsp + 0x38]
mov qword [rcx], rax
call fcn.0044ce72
xor ecx, ecx
mov eax, 1
lock cmpxchg qword [r15], rcx
jne 0x455225
mov rbx, qword [r15 + 0x18]
mov rsi, qword [r15 + 0x20]
mov r14, qword [r15 + 0x28]
mov rax, qword [rsp + 0x290]
lock dec qword [rax]
jne 0x454b35
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r15
call fcn.005ab9d4
mov rcx, rdi
mov rdx, qword [rsp + 0x78]
call fcn.0055a97b
test rsi, rsi
je 0x453d14
mov qword [rsp + 0x2e8], rbx
mov qword [rsp + 0x2f0], rsi
mov qword [rsp + 0x2f8], r14
mov ecx, 0x100
call fcn.004d0988
lea rcx, [rsp + 0x168]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], 0
mov qword [rsp + 0x2c0], rcx
mov dword [rsp + 0x2c8], 0x400
mov byte [rsp + 0x2cc], 1
imul r15, r14, 0x38
mov rax, r15
shr rax, 0x23
cmp eax, 6
ja 0x454bef
mov rax, r15
shr rax, 3
movabs rcx, 0x2492492492492493
mul rcx
mov r8, rdx
lea rdi, [rsp + 0x180]
lea rdx, [rsp + 0x168]
mov rcx, rdi
call fcn.0044193f
mov rax, qword [rdi]
cmp rax, 2
jne 0x45503d
mov cl, 2
jmp 0x454bfb
mov ecx, pe_nt_image_headers64
call fcn.004d0988
xor ecx, ecx
mov byte [rsp + 0xbc], 1
movzx r8d, word [rsp + 0x100]
mov word [rsp + 0xbd], r8w
mov r8b, byte [rsp + 0x102]
mov byte [rsp + 0xbf], r8b
mov dword [rsp + 0xc0], 0
lea r8, [rsp + 0x2c0]
mov qword [rsp + 0x98], r8
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xb0], 0
mov word [rsp + 0xb8], 0x400
mov byte [rsp + 0xba], 0
mov byte [rsp + 0xbb], cl
test r14, r14
je 0x454cb4
lea rdi, [rsp + 0x180]
lea rbx, [rsp + 0x98]
mov rcx, rdi
mov rdx, rbx
mov r8, rsi
call fcn.0044b1bb
mov r14, qword [rsp + 0x180]
cmp r14, 5
jne 0x454ffb
add rsi, 0x38
add r15, 0xffffffffffffffc8
jne 0x454c8a
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xa8]
mov r9, qword [rsp + 0xb0]
movzx r10d, word [rsp + 0xb8]
mov r11b, byte [rsp + 0xba]
mov bl, byte [rsp + 0xbb]
movzx esi, word [rsp + 0xbc]
mov dil, byte [rsp + 0xbe]
mov r14b, byte [rsp + 0xbf]
mov r15d, dword [rsp + 0xc0]
mov r12d, dword [rsp + 0xc4]
lea rdx, [rsp + 0x180]
mov word [rdx + 0x20], r10w
mov byte [rdx + 0x22], r11b
mov byte [rdx + 0x23], bl
mov word [rdx + 0x24], si
mov byte [rdx + 0x26], dil
mov byte [rdx + 0x27], r14b
mov dword [rdx + 0x28], r15d
mov dword [rdx + 0x2c], r12d
mov qword [rdx + 0x10], r8
mov qword [rdx + 0x18], r9
mov qword [rdx], rax
mov qword [rdx + 8], rcx
lea rsi, [rsp + 0x40]
mov rcx, rsi
call fcn.00442724
mov r14, qword [rsi]
cmp r14, 5
jne 0x45505c
mov rsi, qword [rsp + 0x168]
mov rdi, qword [rsp + 0x170]
test rdi, rdi
je 0x455098
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0x160], rax
mov rcx, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x158]
call fcn.004c9843
lea rcx, [rsp + 0x2e8]
call fcn.00455259
mov bl, 2
mov rdx, rdi
mov r10, rsi
mov r14, qword [rsp + 0x128]
mov r15, qword [rsp + 0x148]
mov r12, qword [rsp + 0x120]
jmp 0x453dc6
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x108]
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 4
mov qword [rsp + 0x50], rax
test rdi, rdi
je 0x4544dd
mov qword [rsp + 0x38], rcx
shl rdi, 4
add rdi, rdx
jmp 0x45429d
mov rcx, rdi
call fcn.004c9f3f
jmp 0x4539a2
call fcn.004c9c7e
jmp 0x453bf9
mov rcx, rsi
mov qword [rsp + 0x120], r12
mov r12, rdx
mov r13, r10
call fcn.004c9f3f
mov r10, r13
mov rdx, r12
mov r12, qword [rsp + 0x120]
jmp 0x453de1
mov rcx, rsi
call fcn.004c9c7e
jmp 0x453eb3
shr rax, 8
mov ecx, eax
call fcn.00455520
mov rbx, rax
mov rcx, r14
mov rdx, qword [rsp + 0x78]
jmp 0x454ff1
lea rax, [0x005cf858]
mov qword [rsp + 0x180], rax
mov rcx, qword [rsp + 0x180]
movabs rax, 0x4e603d0c45ae44c2
mov qword [rsp + 0x180], rax
mov rdx, qword [rsp + 0x180]
call fcn.00455468
movabs rsi, 0x1229e83d65dec520
xor rsi, qword [rax]
movzx edi, word [rax + 8]
xor edi, 0xaaea
mov ecx, 0xa
call fcn.005162fd
lea rcx, [rsp + 0x98]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov qword [rdx], rsi
mov word [rdx + 8], di
mov qword [rcx + 0x10], 0xa
call fcn.004554b3
mov rbx, rax
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
call fcn.00563d7f
jmp 0x453d14
shr r15, 8
mov ecx, r15d
call fcn.00455520
mov rbx, rax
jmp 0x454fd8
lea rax, [0x005d5424]
mov qword [rsp + 0x180], rax
lea rdx, [rsp + 0x180]
mov rcx, qword [rsp + 0x180]
movabs rax, 0x93759281b93b08a6
mov qword [rsp + 0x180], rax
mov rdx, qword [rsp + 0x180]
call fcn.004554ec
movabs rsi, 0xfda5ac0ff41f1a44
xor rsi, qword [rax]
movzx edi, word [rax + 8]
xor edi, 0x6bbd
mov ecx, 0xa
call fcn.005162fd
lea rcx, [rsp + 0x168]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov qword [rdx], rsi
mov word [rdx + 8], di
mov qword [rcx + 0x10], 0xa
call fcn.004554b3
mov rbx, rax
mov r15, qword [rsp + 0xa0]
jmp 0x454fc8
shr r13, 8
mov ecx, r13d
jmp 0x454fc0
shr r12, 8
mov ecx, r12d
call fcn.00455520
mov rbx, rax
mov rcx, qword [rsp + 0x98]
mov rdx, r15
call fcn.00563d7f
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x68]
call fcn.00563d7f
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
call fcn.0055a97b
jmp 0x453d14
mov rax, qword [rsp + 0x198]
cmp byte [rsp + 0xbb], 2
movdqu xmm0, xmmword [rsp + 0x188]
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x40], r14
je 0x45505c
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
call fcn.004c9843
jmp 0x45505c
mov rcx, qword [rsp + 0x188]
xor r14d, r14d
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], r14
mov rax, qword [rsp + 0x58]
lea rcx, [rsp + 0x180]
mov qword [rcx + 0x18], rax
movdqu xmm0, xmmword [rsp + 0x48]
movdqu xmmword [rcx + 8], xmm0
mov qword [rcx], r14
call fcn.00450e12
mov rsi, rax
mov rcx, qword [rsp + 0x168]
mov rdx, qword [rsp + 0x170]
call fcn.004c9843
lea r8, [rsp + 0x180]
mov qword [r8], rsi
lea rax, [0x005dc5f0]
mov qword [rsp + 0x20], rax
lea rcx, [0x0062cc63]
lea r9, [0x005d9008]
mov edx, 0x2b
call fcn.0041f970
ud2
ud2
mov ecx, 0x18
mov edx, 8
call fcn.00417bf0
ud2
movdqu xmm0, xmmword [rsp + 0x188]
lea r8, [rsp + 0x98]
movdqu xmmword [r8], xmm0
lea rax, str.src_utils_parallel.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x0062cc63]
lea r9, [0x005d8fe8]
jmp 0x4550bd
mov ecx, 0x30
jmp 0x4550d2
mov ecx, 0x28
jmp 0x4550d2
lock dec qword [r13]
jne 0x45512d
mov rcx, r13
call fcn.00516d5c
mov rax, qword [rsp + 0x70]
lock dec qword [rax]
jne 0x455142
mov rcx, qword [rsp + 0x70]
call fcn.0042c548
lea r8, [rsp + 0x180]
mov qword [r8], rdi
lea rax, [0x00615930]
mov qword [rsp + 0x20], rax
lea rcx, str.failed_to_spawn_thread_repos_rust_1.70.0_library_std_src_thread_mod.rs
lea r9, fcn.00438ca5
mov edx, 0x16
jmp 0x4550c2
movdqu xmm0, xmmword [rsp + 0xa0]
lea r8, [rsp + 0x40]
movdqu xmmword [r8], xmm0
lea rax, str.src_utils_parallel.rs
jmp 0x4550fb
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, [0x005dc5d8]
mov edx, 0x2b
call fcn.00426370
ud2
lea r8, [rsp + 0x98]
mov qword [r8], rax
mov qword [r8 + 8], rdx
lea rax, str.src_utils_parallel.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x0062cc63]
lea r9, fcn.00452893
jmp 0x4550bd
lea rax, [0x0062bd48]
mov qword [rsp + 0x20], rax
lea rcx, str.a_Display_implementation_returned_an_error_unexpectedly_repos_rust_1.70.0_library_alloc_src_string.rs
lea r9, [0x005d8f08]
lea r8, [rsp + 0x40]
mov edx, 0x37
jmp 0x4550c2
lea rcx, str.assertion_failed:_size___0
lea r8, str.src_utils_parallel.rs
mov edx, 0x1a
jmp 0x4551a3
mov ecx, 0x200
mov edx, pe_nt_image_headers64
jmp 0x4550d7
lea r8, [rsp + 0x180]
mov qword [r8], r15
lea rax, str.src_plugin_universal_port.rsDv_
mov qword [rsp + 0x20], rax
lea rcx, [0x0062cc63]
lea r9, [0x005d9088]
jmp 0x4550bd
mov ecx, 0x10
jmp 0x4550d2