Function at 0x51c6f0
Capabilities:
Enumerate process modules
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x968
movdqa xmmword [rsp + 0x950], xmm6
mov qword [rsp + 0x3d8], r8
mov qword [rsp + 0x2c8], rdx
mov r13, qword [rcx + 0x10]
mov rax, qword [0x00677368]
test rax, rax
jne 0x51cbda
mov ecx, 0x3c0
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520901
mov qword [rsp + 0x270], 4
mov qword [rsp + 0x278], rax
mov qword [rsp + 0x280], 0
mov qword [rsp + 0x218], 0
mov qword [rsp + 0x220], 8
mov qword [rsp + 0x228], 0
mov ecx, 8
xor edx, edx
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
cmp rax, 0xffffffffffffffff
je 0x51cb74
mov rbx, rax
lea rsi, [rsp + 0x510]
mov r8d, 0x438
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [rsp + 0x510], 0x438
mov rcx, rbx
mov rdx, rsi
call sub.KERNEL32.dll_Module32FirstW
cmp eax, 1
jne 0x51cb6c
lea r14, [rsp + 0x948]
lea r12, [rsp + 0x2d0]
jmp 0x51c859
mov rax, qword [rsp + 0x220]
mov rcx, rdx
shl rcx, 6
movdqu xmm0, xmmword [rsp + 0x3e0]
movups xmm1, xmmword [rsp + 0x3f0]
movups xmm2, xmmword [rsp + 0x400]
movups xmm3, xmmword [rsp + 0x410]
movups xmmword [rax + rcx + 0x30], xmm3
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movdqu xmmword [rax + rcx], xmm0
inc rdx
mov qword [rsp + 0x228], rdx
nop dword [rax]
mov rcx, rbx
lea rdx, [rsp + 0x510]
call sub.KERNEL32.dll_Module32NextW
cmp eax, 1
jne 0x51cb6c
xor r8d, r8d
nop dword [rax]
cmp word [rsp + r8*2 + 0x740], 0
je 0x51c8c0
lea rax, [rsp + r8*2]
add rax, 0x740
cmp word [rax + 2], 0
je 0x51c8a7
cmp word [rax + 4], 0
je 0x51c8ac
cmp word [rax + 6], 0
je 0x51c8b2
cmp word [rax + 8], 0
je 0x51c8b8
add r8, 5
add rax, 0xa
cmp rax, r14
jne 0x51c860
mov r8d, 0x104
jmp 0x51c8c0
inc r8
jmp 0x51c8c0
add r8, 2
jmp 0x51c8c0
add r8, 3
jmp 0x51c8c0
add r8, 4
nop dword [rax]
mov rcx, r12
lea rdx, [rsp + 0x740]
call fcn.00527300
mov rsi, qword [rsp + 0x2d0]
mov rbp, qword [rsp + 0x2d8]
mov rdi, qword [rsp + 0x2e0]
movzx r15d, byte [rsp + 0x2e8]
lea rcx, [rsp + 0x2d8]
mov eax, dword [rcx + 0x11]
mov ecx, dword [rcx + 0x14]
mov dword [rsp + 0x1c0], eax
mov dword [rsp + 0x1c3], ecx
mov rcx, r12
mov rdx, rbp
mov r8, rdi
call fcn.0051c450
cmp qword [rsp + 0x2d0], 0
je 0x51c9e6
mov r14, r12
mov r12, rbx
mov rbx, r13
lea rcx, [rsp + 0x2d8]
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0x130], rax
movdqu xmm0, xmmword [rcx]
movdqa xmmword [rsp + 0x120], xmm0
mov r13, qword [rsp + 0x128]
cmp rax, 0x40
jb 0x51c9c0
test r13, r13
je 0x51c9c0
movzx ecx, word [r13]
cmp ecx, 0x5a4d
jne 0x51c9c0
mov edx, dword [r13 + 0x3c]
mov rcx, rax
sub rcx, rdx
setb r8b
lea r9, [rdx + r13]
cmp rcx, 0x88
setb cl
or cl, r8b
mov ecx, 0
cmove rcx, r9
jne 0x51c9c0
cmp dword [rcx], 0x4550
jne 0x51c9c0
movzx r8d, word [rcx + 0x18]
cmp r8d, 0x20b
jne 0x51c9c0
movzx r8d, word [rcx + 0x14]
cmp r8, 0x70
jae 0x51ca05
nop
mov rcx, r13
call sub.KERNEL32.dll_UnmapViewOfFile
mov rcx, qword [rsp + 0x120]
call sub.KERNEL32.dll_CloseHandle
mov r13, rbx
mov rbx, r12
mov r12, r14
lea r14, [rsp + 0x948]
test rsi, rsi
je 0x51c840
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rbp
call fcn.005ab9d4
jmp 0x51c840
add rdx, 0x88
sub rax, rdx
jb 0x51c9c0
add r8, 0xffffffffffffff90
cmp rax, r8
jb 0x51c9c0
mov eax, dword [rcx + 0x84]
shl rax, 3
cmp rax, r8
ja 0x51c9c0
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x528]
mov qword [rsp + 0x78], rax
mov ecx, 0x10
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520ab9
mov ecx, dword [rsp + 0x530]
mov rdx, qword [rsp + 0x80]
mov qword [rax], rdx
mov qword [rsp + 0xb0], rax
mov qword [rax + 8], rcx
mov eax, dword [rsp + 0x1c0]
mov ecx, dword [rsp + 0x1c3]
mov dword [rsp + 0x2d3], ecx
mov dword [rsp + 0x2d0], eax
mov rcx, r13
call sub.KERNEL32.dll_UnmapViewOfFile
mov rcx, qword [rsp + 0x120]
call sub.KERNEL32.dll_CloseHandle
cmp r15b, 2
mov r13, rbx
mov rbx, r12
mov r12, r14
lea r14, [rsp + 0x948]
je 0x51c840
mov r8, qword [rsp + 0x78]
sub r8, qword [rsp + 0x80]
mov qword [rsp + 0x3e0], rsi
mov qword [rsp + 0x3e8], rbp
mov qword [rsp + 0x3f0], rdi
mov byte [rsp + 0x3f8], r15b
mov eax, dword [rsp + 0x2d0]
mov ecx, dword [rsp + 0x2d3]
lea rdx, [rsp + 0x3f9]
mov dword [rdx + 3], ecx
mov dword [rdx], eax
mov qword [rsp + 0x400], r8
mov qword [rsp + 0x408], 1
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x410], rax
mov qword [rsp + 0x418], 1
mov rdx, qword [rsp + 0x228]
cmp rdx, qword [rsp + 0x218]
jne 0x51c7ee
lea rcx, [rsp + 0x218]
call fcn.005193f0
mov rdx, qword [rsp + 0x228]
jmp 0x51c7ee
mov rcx, rbx
call sub.KERNEL32.dll_CloseHandle
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x520], rax
movups xmm0, xmmword [rsp + 0x218]
movups xmm1, xmmword [rsp + 0x270]
movups xmmword [rsp + 0x528], xmm1
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x538], rax
movups xmmword [0x00677360], xmm0
movaps xmm0, xmmword [rsp + 0x520]
movups xmmword [0x00677370], xmm0
movdqa xmm0, xmmword [rsp + 0x530]
movdqu xmmword [0x00677380], xmm0
mov rax, qword [0x00677368]
mov rdx, qword [0x00677370]
test rdx, rdx
je 0x51f872
mov rcx, rdx
shl rcx, 6
add rcx, rax
xor r14d, r14d
sub r13, 1
cmovb r13, r14
mov r8, rax
mov r12, qword [r8 + 0x20]
mov r10, qword [r8 + 0x30]
mov r9, qword [r8 + 0x38]
add r8, 0x40
shl r9, 4
nop word cs:[rax + rax]
test r9, r9
je 0x51cc50
mov r11, r10
add r10, 0x10
mov rsi, qword [r11]
add rsi, r12
add r9, 0xfffffffffffffff0
cmp rsi, r13
ja 0x51cc20
add rsi, qword [r11 + 8]
cmp rsi, r13
jbe 0x51cc20
jmp 0x51cc5d
inc r14
cmp r8, rcx
jne 0x51cc02
jmp 0x51f872
mov rbp, r13
mov r15, qword [0x00677388]
test r15, r15
je 0x51cc99
mov rbx, qword [0x00677380]
imul rsi, r15, 0xf0
xor ecx, ecx
xor r13d, r13d
nop
cmp qword [rbx + r13], r14
je 0x51ce33
add r13, 0xf0
dec rcx
cmp rsi, r13
jne 0x51cc80
cmp rdx, r14
jbe 0x520070
mov rcx, r14
shl rcx, 6
mov rdx, qword [rax + rcx + 8]
mov r8, qword [rax + rcx + 0x10]
lea rcx, [rsp + 0x510]
call fcn.0051c450
cmp qword [rsp + 0x510], 0
je 0x51f872
mov rdi, qword [rsp + 0x528]
mov qword [rsp + 0x3c0], rdi
movdqu xmm0, xmmword [rsp + 0x518]
movdqa xmmword [rsp + 0x3b0], xmm0
mov qword [rsp + 0x1e0], 0
mov qword [rsp + 0x1e8], 8
mov qword [rsp + 0x1f0], 0
mov qword [rsp + 0x1c0], 0
mov rbx, qword [rsp + 0x3b8]
xor eax, eax
cmp rdi, 0x40
cmovae rax, rbx
jb 0x51cd87
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x51cd87
mov ecx, dword [rax + 0x3c]
mov rax, rdi
sub rax, rcx
setb dl
lea r8, [rbx + rcx]
cmp rax, 0x88
setb r9b
xor eax, eax
or r9b, dl
cmove rax, r8
jne 0x51cd87
cmp dword [rax], 0x4550
jne 0x51cd87
movzx edx, word [rax + 0x18]
cmp edx, 0x20b
jne 0x51cd87
movzx edx, word [rax + 0x14]
cmp rdx, 0x70
jae 0x51fc3f
mov rsi, qword [rsp + 0x1f0]
test rsi, rsi
je 0x51cdd3
mov rdi, qword [rsp + 0x1e8]
add rdi, 8
jmp 0x51cdb9
add rdi, 0x18
dec rsi
je 0x51cdd3
cmp qword [rdi - 8], 0
je 0x51cdb0
mov r8, qword [rdi]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
jmp 0x51cdb0
cmp qword [rsp + 0x1e0], 0
je 0x51cdf4
mov r8, qword [rsp + 0x1e8]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
cmp qword [rsp + 0x1c0], 0
je 0x51ce19
mov rcx, qword [rsp + 0x1d0]
call sub.KERNEL32.dll_UnmapViewOfFile
mov rcx, qword [rsp + 0x1c8]
call sub.KERNEL32.dll_CloseHandle
mov rcx, rbx
call sub.KERNEL32.dll_UnmapViewOfFile
mov rcx, qword [rsp + 0x3b0]
call sub.KERNEL32.dll_CloseHandle
jmp 0x51f872
test rcx, rcx
je 0x51cef2
lea rdi, [rbx + r13]
lea rcx, [rsp + 0x510]
mov r8d, 0xf0
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea rdx, [rbx + r13]
add rdx, 0xf0
sub rsi, r13
add rsi, 0xffffffffffffff10
mov rcx, rdi
mov r8, rsi
call sub.msvcrt.dll_memmove
lea rsi, [r15 - 1]
mov qword [0x00677388], rsi
cmp rsi, qword [0x00677378]
jne 0x51cef7
lea rax, [rsi + rsi]
cmp rax, r15
cmovbe rax, r15
cmp rax, 5
mov edi, 4
cmovae rdi, rax
movabs rax, 0x88888888888888
xor r8d, r8d
cmp rdi, rax
setbe r8b
imul rdx, rdi, 0xf0
shl r8, 3
test rsi, rsi
je 0x51f972
imul rax, rsi, 0xf0
mov qword [rsp + 0x3e0], rbx
mov qword [rsp + 0x3e8], rax
mov qword [rsp + 0x3f0], 8
jmp 0x51f97e
mov r13, rbp
jmp 0x51cf32
mov r13, rbp
test rsi, rsi
je 0x51cf15
lea rcx, [rbx + 0xf0]
imul r8, rsi, 0xf0
mov rdx, rbx
call sub.msvcrt.dll_memmove
lea rdx, [rsp + 0x510]
mov r8d, 0xf0
mov rcx, rbx
call sub.msvcrt.dll_memcpy
mov qword [0x00677388], r15
sub r13, r12
lea r11, [r13 + 1]
mov rax, qword [rbx + 0x68]
mov qword [rsp + 0x80], rax
mov rdx, qword [rbx + 0x70]
xor r15d, r15d
test rdx, rdx
je 0x51cfb5
mov ecx, 0xff
mov rax, rdx
mov r8, rdx
mov rsi, qword [rsp + 0x80]
jmp 0x51cf78
mov r8, rax
sub rax, r15
jbe 0x51cfb5
shr rax, 1
add rax, r15
mov r10, rax
shl r10, 5
xor r9d, r9d
cmp qword [rsi + r10], r11
setne r9b
cmovb r9d, ecx
cmp r9b, 1
je 0x51cf70
movzx r9d, r9b
inc rax
mov r15, rax
cmp r9d, 0xff
jne 0x51cfb5
mov rax, r8
sub rax, r15
ja 0x51cf78
mov qword [rsp + 0x78], r11
cmp r15, rdx
ja 0x520912
lea rax, [rbx + 0x58]
mov qword [rsp + 0x118], rax
shl r15, 5
add r15, qword [rsp + 0x80]
mov rax, qword [rbx + 0x80]
mov qword [rsp + 0xb0], rax
mov rax, qword [rbx + 0x88]
mov qword [rsp + 0xd0], rax
lea rax, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov qword [rsp + 0xe0], rax
lea rax, [rsp + 0x510]
mov qword [rsp + 0x2c0], rax
nop dword [rax + rax]
mov eax, 3
cmp r15, qword [rsp + 0x80]
je 0x51f6b0
mov r10, r15
cmp qword [r10 - 8], r13
jbe 0x51f6b0
lea r15, [r10 - 0x20]
cmp qword [r10 - 0x18], r13
jbe 0x51d020
mov rax, qword [rsp + 0x78]
cmp rax, qword [r10 - 0x20]
jbe 0x51d020
mov rcx, qword [r15 + 0x10]
cmp rcx, qword [rsp + 0xd0]
jae 0x5200cb
imul rcx, rcx, 0x230
mov rax, qword [rsp + 0xb0]
lea rbp, [rax + rcx]
lea r14, [rax + rcx]
add r14, 0x200
mov qword [rsp + 0x1b0], rcx
cmp qword [rax + rcx + 0x200], 0
mov qword [rsp + 0x88], rbp
je 0x51d0ba
mov r12d, 1
cmp qword [r14 + 8], 0
je 0x51d957
add r14, 8
jmp 0x51d966
mov qword [rsp + 0x218], 0
mov qword [rsp + 0x220], 8
mov qword [rsp + 0x228], 0
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 8
mov qword [rsp + 0x130], 0
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 0x20]
mov r8, qword [rbp + 0x50]
mov rax, qword [rbp + 0x58]
mov qword [rsp + 0x3f8], rcx
mov qword [rsp + 0x400], rdx
mov qword [rsp + 0x3e8], rax
mov qword [rsp + 0x3f0], 0
mov qword [rsp + 0x3e0], r8
test rax, rax
mov qword [rsp + 0xa8], r14
mov dword [rsp + 0x54], edi
je 0x51eb4f
mov rcx, qword [rbx + 0x90]
mov edx, dword [rbp + 0x98]
mov r8, qword [rbp + 0xd0]
mov qword [rsp + 0x98], r8
movzx esi, dh
mov qword [rsp + 0x108], rsi
lea r8, [rcx + 0x40]
mov qword [rsp + 0xf8], r8
mov qword [rsp + 0x60], rcx
add rcx, 0x30
mov qword [rsp + 0xf0], rcx
mov ecx, edx
shr ecx, 0x10
mov dword [rsp + 0x110], ecx
and edx, 0xff00
mov dword [rsp + 0x100], edx
mov ecx, 8
mov qword [rsp + 0x70], rcx
xor ecx, ecx
mov qword [rsp + 0x48], rcx
xor ebp, ebp
mov r14, r12
mov rdx, qword [rsp + 0x3e0]
mov rcx, qword [rsp + 0x3f8]
mov r8, qword [rcx + 0x20]
xor r9d, r9d
cmp byte [rcx + 0x49], 8
sete r9b
sub r8, qword [rcx + 8]
lea rsi, [r8 + r9*8]
add rsi, rdx
sub rsi, qword [rcx]
add rsi, 4
mov r8d, 1
sub r8, rax
lea r9, [rdx + 1]
xor r12d, r12d
xor ecx, ecx
nop dword [rax]
movzx r10d, byte [r9 - 1]
cmp ecx, 0x3f
jne 0x51d224
cmp r10b, 2
jae 0x51dc2e
movzx r10d, r10b
mov r11d, r10d
and r11d, 0x7f
shl r11, cl
or r12, r11
test r10b, r10b
jns 0x51d24e
add ecx, 7
inc r8
inc r9
cmp r8, 1
jne 0x51d210
jmp 0x51dc4e
mov qword [rsp + 0x3e0], r9
neg r8
mov qword [rsp + 0x3e8], r8
test r12, r12
je 0x51d286
mov rax, qword [rsp + 0x400]
lea rcx, [r12 - 1]
cmp rcx, qword [rax + 0x28]
jae 0x51d293
imul rcx, rcx, 0x70
add rcx, qword [rax + 0x20]
jmp 0x51d313
dec qword [rsp + 0x3f0]
jmp 0x51d5e7
mov rcx, qword [rax + 8]
mov dil, 0x12
test rcx, rcx
je 0x51dfe0
mov rax, qword [rax]
movzx r9d, word [rcx + 0x532]
imul r10, r9, 0x70
mov rdx, 0xffffffffffffffff
xor r8d, r8d
mov r11, r10
add r11, r8
je 0x51d2f5
xor r11d, r11d
cmp qword [rcx + rdx*8 + 0x4e0], r12
setne r11b
mov r14d, 0xff
cmova r11d, r14d
inc rdx
add r8, 0xffffffffffffff90
cmp r11b, 1
je 0x51d2bc
movzx r9d, r11b
test r9d, r9d
jne 0x51d2f8
jmp 0x51d30c
mov rdx, r9
sub rax, 1
jb 0x51dfe0
mov rcx, qword [rcx + rdx*8 + 0x538]
jmp 0x51d2a6
sub rcx, r8
add rcx, 0xffffffffffffff90
cmp byte [rcx + 0x6a], 1
jne 0x51d321
inc qword [rsp + 0x3f0]
cmp word [rcx + 0x68], 0x2e
jne 0x51d5a7
mov qword [rsp + 0x4d0], 0
mov qword [rsp + 0x200], 0
call fcn.00430820
mov qword [rsp + 0x40], rax
mov r14, rdx
test rdx, rdx
je 0x51d5e7
shl r14, 4
xor edi, edi
xor eax, eax
mov qword [rsp + 0xa0], rax
xor eax, eax
mov qword [rsp + 0x58], rax
jmp 0x51d392
mov rdx, qword [rsp + 0x2d8]
mov qword [rax], 1
mov qword [rcx], rdx
add rdi, 0x10
cmp r14, rdi
je 0x51d5fd
mov rax, qword [rsp + 0x40]
movdqu xmm0, xmmword [rax + rdi]
movdqa xmmword [rsp + 0x270], xmm0
mov rax, qword [rsp + 0x3f8]
mov r8d, dword [rax + 0x48]
movdqa xmmword [rsp + 0x2d0], xmm0
lea rcx, [rsp + 0x510]
lea rdx, [rsp + 0x3e0]
lea r9, [rsp + 0x2d0]
call fcn.00541430
cmp dword [rsp + 0x510], 0x2e
je 0x51de96
movzx eax, word [rsp + 0x528]
cmp eax, 0x11
je 0x51d4c5
cmp eax, 0x12
je 0x51d471
cmp eax, 0x55
jne 0x51d385
lea rcx, [rsp + 0x2d0]
lea rdx, [rsp + 0x510]
call fcn.00542d20
mov rax, qword [rsp + 0x2d0]
cmp rax, 0x18
je 0x51d50b
cmp eax, 0x16
jne 0x51d575
cmp word [rsp + 0x110], 5
mov ecx, 0
cmovb rcx, qword [rsp + 0x98]
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0xe8], 0
mov eax, 0
cmove rcx, rax
add rcx, qword [rsp + 0x2d8]
mov qword [rsp + 0x3d0], rcx
jmp 0x51d598
lea rcx, [rsp + 0x2d0]
lea rdx, [rsp + 0x510]
call fcn.00542d20
mov rdx, qword [rsp + 0x2d0]
lea rax, [rsp + 0x4d0]
lea rcx, [rsp + 0x3b0]
test rdx, rdx
je 0x51d373
cmp edx, 7
jne 0x51d385
lea rax, [rsp + 0x200]
lea rcx, [rsp + 0x508]
jmp 0x51d373
lea rcx, [rsp + 0x2d0]
lea rdx, [rsp + 0x510]
call fcn.00542d20
cmp qword [rsp + 0x2d0], 0
jne 0x51d385
mov eax, 1
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x2d8]
mov qword [rsp + 0x1a8], rax
jmp 0x51d385
mov rax, qword [rsp + 0x60]
mov rdx, qword [rax + 0x40]
mov rax, qword [rax + 0x48]
mov rcx, qword [rsp + 0x98]
sub rax, rcx
jb 0x51e4bd
add rdx, rcx
mov rcx, qword [rsp + 0x2d8]
imul rcx, qword [rsp + 0x108]
sub rax, rcx
jb 0x51e4bd
add rdx, rcx
cmp dword [rsp + 0x100], 0x800
jne 0x51d579
cmp rax, 7
mov rcx, qword [rsp + 0x98]
jbe 0x51f5c6
mov rax, qword [rdx]
mov qword [rsp + 0x1c7], rax
jmp 0x51d58d
xor eax, eax
jmp 0x51d59d
cmp rax, 4
mov rcx, qword [rsp + 0x98]
jb 0x51f633
mov eax, dword [rdx]
add rax, rcx
mov qword [rsp + 0x3d0], rax
mov eax, 1
mov qword [rsp + 0x58], rax
jmp 0x51d385
call fcn.00430820
mov rcx, qword [rsp + 0x3f8]
mov r8d, dword [rcx + 0x48]
mov qword [rsp + 0x20], rdx
lea rcx, [rsp + 0x510]
lea rdx, [rsp + 0x3e0]
mov r9, rax
call fcn.005426a0
movzx edi, byte [rsp + 0x510]
cmp dil, 0x4b
jne 0x51f45d
mov rax, qword [rsp + 0x3e8]
test rax, rax
jne 0x51d1c3
jmp 0x51dfec
cmp qword [rsp + 0x58], 0
je 0x51d785
mov r9, qword [rsp + 0x88]
mov eax, dword [r9 + 0x98]
mov ecx, eax
shr ecx, 0x10
xor r8d, r8d
cmp cx, 5
setae r8b
mov rdx, qword [rsp + 0xf0]
cmovae rdx, qword [rsp + 0xf8]
shl r8, 4
mov rdx, qword [rdx + 8]
mov r11, qword [rsp + 0x60]
mov rdi, qword [r8 + r11 + 0x30]
mov r10, qword [rsp + 0x3d0]
sub rdx, r10
jb 0x51f696
mov r8, qword [r9 + 0xb0]
mov r9, qword [r9 + 0xc0]
add rdi, r10
cmp cx, 5
movdqu xmm0, xmmword [r11 + 0x60]
movdqu xmmword [rsp + 0x510], xmm0
mov qword [rsp + 0x520], r8
mov qword [rsp + 0x528], r9
mov qword [rsp + 0x530], rdi
mov qword [rsp + 0x538], rdx
mov dword [rsp + 0x540], eax
setae byte [rsp + 0x544]
xor r14d, r14d
lea rcx, [rsp + 0x2d0]
lea rdx, [rsp + 0x510]
call fcn.00531d90
mov rax, qword [rsp + 0x2d0]
mov rdi, qword [rsp + 0x2d8]
mov rcx, qword [rsp + 0x2e0]
cmp rax, 1
jne 0x51d75c
cmp rdi, rcx
jae 0x51d6b2
mov r14, rcx
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0x120]
jne 0x51d728
lea rcx, [rsp + 0x120]
mov rdx, qword [rsp + 0x48]
call fcn.005194c0
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x48]
lea rax, [rcx + rcx*2]
mov rdx, qword [rsp + 0x70]
mov qword [rdx + rax*8], rdi
mov qword [rdx + rax*8 + 8], r14
mov qword [rdx + rax*8 + 0x10], rbp
inc rcx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x130], rcx
mov r14b, 1
jmp 0x51d6b2
mov qword [rsp + 0x40], rcx
cmp eax, 2
jne 0x51d777
mov r14, rdi
shr r14, 8
cmp dil, 0x4b
jne 0x51deb2
test r14b, r14b
jne 0x51d8b4
jmp 0x51d5e7
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x51d816
cmp qword [rsp + 0x4d0], 0
je 0x51d816
mov rdi, qword [rsp + 0x3b0]
cmp qword [rsp + 0x1a8], rdi
jae 0x51d5e7
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0x120]
jne 0x51d7f2
lea rcx, [rsp + 0x120]
mov rdx, qword [rsp + 0x48]
call fcn.005194c0
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x48]
lea rax, [rdx + rdx*2]
mov rcx, qword [rsp + 0x1a8]
mov r8, qword [rsp + 0x70]
mov qword [r8 + rax*8], rcx
mov qword [r8 + rax*8 + 8], rdi
jmp 0x51d89f
test rax, rax
je 0x51d5e7
cmp qword [rsp + 0x200], 0
je 0x51d5e7
mov rdi, qword [rsp + 0x508]
mov rax, qword [rsp + 0x1a8]
add rdi, rax
cmp rax, rdi
jae 0x51d5e7
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0x120]
jne 0x51d878
lea rcx, [rsp + 0x120]
mov rdx, qword [rsp + 0x48]
call fcn.005194c0
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x48], rax
mov r8, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x48]
lea rax, [rdx + rdx*2]
mov rcx, qword [rsp + 0x1a8]
mov qword [r8 + rax*8], rcx
mov qword [r8 + rax*8 + 8], rdi
mov qword [rsp + 0x70], r8
mov qword [r8 + rax*8 + 0x10], rbp
inc rdx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x510], rsi
mov qword [rsp + 0x518], 0
mov rbp, qword [rsp + 0x228]
cmp rbp, qword [rsp + 0x218]
jne 0x51d8f2
lea rcx, [rsp + 0x218]
mov rdx, rbp
call fcn.00518fd0
mov rbp, qword [rsp + 0x228]
mov rax, qword [rsp + 0x220]
lea rcx, [rbp*8]
add rcx, rbp
mov rdx, qword [rsp + 0x550]
mov qword [rax + rcx*8 + 0x40], rdx
movdqu xmm0, xmmword [rsp + 0x510]
movups xmm1, xmmword [rsp + 0x520]
movups xmm2, xmmword [rsp + 0x530]
movups xmm3, xmmword [rsp + 0x540]
movups xmmword [rax + rcx*8 + 0x30], xmm3
movups xmmword [rax + rcx*8 + 0x20], xmm2
movups xmmword [rax + rcx*8 + 0x10], xmm1
movdqu xmmword [rax + rcx*8], xmm0
inc rbp
mov qword [rsp + 0x228], rbp
jmp 0x51d5e7
cmp byte [r14 + 0x10], 0x4b
jne 0x51f77d
mov r14, qword [r14 + 0x18]
mov rax, qword [r14 + 0x18]
test rax, rax
je 0x51d9d2
mov rcx, qword [r14 + 0x10]
xor r8d, r8d
mov rdx, rax
jmp 0x51d988
mov rdx, rax
sub rax, r8
jbe 0x51d9d2
shr rax, 1
add rax, r8
lea r9, [rax + rax*2]
cmp r13, qword [rcx + r9*8 + 8]
mov r10d, 0
adc r10b, 0xff
cmp qword [rcx + r9*8], r13
movzx r10d, r10b
cmova r10d, r12d
cmp r10b, 1
je 0x51d980
movzx r8d, r10b
cmp r8d, 0xff
jne 0x51dbf4
inc rax
mov r8, rax
mov rax, rdx
sub rax, r8
ja 0x51d988
xor r8d, r8d
mov rax, qword [rbx + 0x90]
add rax, 0x10
mov qword [rsp + 0x120], rbp
mov qword [rsp + 0x2d0], rax
cmp dword [rbp + 0x100], 0x2f
jne 0x51da03
mov ebp, 2
jmp 0x51de78
mov qword [rsp + 0x40], r8
lea rax, [rbp + 0xd8]
mov qword [rsp + 0x3e0], rax
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x1b0]
lea rcx, [rax + rcx + 0x1d8]
lea rax, [rsp + 0x3e0]
mov qword [rsp + 0x510], rax
lea rax, [rsp + 0x120]
mov qword [rsp + 0x518], rax
lea rax, [rsp + 0x2d0]
mov qword [rsp + 0x520], rax
lea rdx, [rsp + 0x510]
call fcn.00537b90
lea rcx, [rax + 8]
cmp qword [rax], 0
cmove rax, rcx
jne 0x51da87
cmp byte [rax], 0x4b
jne 0x51f77d
mov rax, qword [rax + 8]
mov ebp, 2
test rax, rax
je 0x51de73
mov rcx, qword [rax + 0x10]
mov r8, qword [rax + 0x18]
test r8, r8
je 0x51db07
mov rdx, r8
xor r10d, r10d
mov r9, r8
jmp 0x51dab5
mov r9, rdx
sub rdx, r10
jbe 0x51dafe
shr rdx, 1
add rdx, r10
mov r11, rdx
shl r11, 5
cmp r13, qword [rcx + r11 + 0x18]
mov esi, 0
adc sil, 0xff
cmp qword [rcx + r11 + 0x10], r13
movzx r11d, sil
cmova r11d, r12d
cmp r11b, 1
je 0x51daad
movzx r10d, r11b
cmp r10d, 0xff
jne 0x51db09
inc rdx
mov r10, rdx
mov rdx, r9
sub rdx, r10
ja 0x51dab5
test r10, r10
jne 0x51de73
xor edx, edx
cmp rdx, r8
jae 0x51db83
mov r10, rdx
shl r10, 5
mov r9, qword [rcx + r10 + 8]
test r9, r9
je 0x51db83
mov r12d, edi
mov r10, qword [rcx + r10]
xor esi, esi
mov r11, r9
jmp 0x51db35
mov r11, r9
sub r9, rsi
jbe 0x51db77
shr r9, 1
add r9, rsi
lea r14, [r9 + r9*2]
xor edi, edi
cmp qword [r10 + r14*8], r13
setne dil
mov r14d, 0xff
cmovb edi, r14d
cmp dil, 1
je 0x51db2d
movzx esi, dil
cmp esi, 0xff
jne 0x51de67
inc r9
mov rsi, r9
mov r9, r11
sub r9, rsi
ja 0x51db35
sub rsi, 1
mov r9, rsi
mov edi, r12d
jae 0x51db86
xor r9d, r9d
cmp rdx, r8
jae 0x51de73
mov r10, rdx
shl r10, 5
mov r11, qword [rsp + 0x78]
cmp qword [rcx + r10 + 0x10], r11
jae 0x51de73
cmp r9, qword [rcx + r10 + 8]
jae 0x51de30
add rcx, r10
mov rcx, qword [rcx]
lea rdx, [r9 + r9*2]
mov r8, qword [rsp + 0x78]
cmp qword [rcx + rdx*8], r8
mov r8, qword [rsp + 0x40]
jae 0x51de78
mov r8, qword [rcx + rdx*8 + 8]
cmp r8, qword [rax + 8]
jae 0x51df2f
mov rax, qword [rax]
lea r8, [r8 + r8*2]
mov r12, qword [rax + r8*8 + 8]
mov r14, qword [rax + r8*8 + 0x10]
jmp 0x51df32
mov rcx, qword [rcx + r9*8 + 0x10]
mov rdx, qword [r14 + 8]
cmp rcx, rdx
jae 0x520758
mov rax, qword [r14]
lea rcx, [rcx + rcx*8]
lea r8, [rax + rcx*8]
add r8, 8
cmp qword [rax + rcx*8 + 8], 0
je 0x51dd20
mov rsi, qword [rsp + 0xb8]
jmp 0x51e485
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x3e0], r9
neg r8
mov qword [rsp + 0x3e8], r8
mov dil, 6
xor r14d, r14d
jmp 0x51dc70
add rdx, rax
mov qword [rsp + 0x3e0], rdx
mov qword [rsp + 0x3e8], 0
mov dil, 0x13
xor r14d, r14d
mov qword [rsp + 0x40], rdx
xor r12d, r12d
cmp qword [rsp + 0x120], 0
je 0x51dc9c
mov r8, qword [rsp + 0x128]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov rbp, qword [rsp + 0x228]
test rbp, rbp
je 0x51dcf8
mov rsi, qword [rsp + 0x220]
add rsi, 0x38
jmp 0x51dcb9
add rsi, 0x48
dec rbp
je 0x51dcf8
cmp qword [rsi - 0x30], 0
je 0x51dcb0
mov r8, qword [rsi - 0x18]
test r8, r8
je 0x51dcb0
cmp qword [rsi - 0x10], 0
je 0x51dcde
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
cmp qword [rsi], 0
je 0x51dcb0
mov r8, qword [rsi - 8]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
jmp 0x51dcb0
cmp qword [rsp + 0x218], 0
je 0x51dd19
mov r8, qword [rsp + 0x220]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
xor esi, esi
jmp 0x51ec6b
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x54], edi
mov r9, qword [rax + rcx*8]
mov rdx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x70]
xor ecx, ecx
cmp byte [rbp + 0x99], 8
sete cl
mov r8, rax
sub r8, rdx
lea r8, [r8 + rcx*8]
add r8, 4
xor r10d, r10d
mov qword [rsp + 0x68], r10
mov r10, r9
mov dil, 0x38
mov r14d, 0
sub r10, r8
jb 0x51dec9
mov r12d, 0
cmp rdx, r10
mov r8, qword [rsp + 0x40]
jbe 0x51ded1
mov qword [rsp + 0x90], r9
lea r11, [rbp + 0x50]
lea r8, [rbp + 0x20]
mov r9, qword [rbp + 0x50]
lea rsi, [r9 + r10]
mov qword [rsp + 0x3f8], r11
mov qword [rsp + 0x400], r8
mov r11, rdx
mov dil, 0x13
sub r11, r10
mov qword [rsp + 0x3e8], r11
mov qword [rsp + 0x3f0], 0
mov qword [rsp + 0x3e0], rsi
je 0x51de8f
lea rcx, [rcx*8 + 4]
lea r14, [r9 + rdx]
mov r10, qword [rsp + 0x90]
sub r10, rcx
sub r10, rax
xor eax, eax
xor ecx, ecx
movzx r11d, byte [r14 + r10]
cmp ecx, 0x3f
jne 0x51de05
cmp r11b, 1
ja 0x51debe
movzx r11d, r11b
mov esi, r11d
and esi, 0x7f
shl rsi, cl
or rax, rsi
test r11b, r11b
jns 0x51def2
add ecx, 7
inc r10
jne 0x51ddf1
mov qword [rsp + 0x68], r14
jmp 0x51dec6
lea r9, [rdx + 1]
cmp r9, r8
je 0x51de73
not rdx
add rdx, r8
add rcx, r10
add rcx, 0x20
mov r8, qword [rsp + 0x78]
cmp qword [rcx + 0x10], r8
jae 0x51de73
cmp qword [rcx + 8], 0
jne 0x51df60
add rcx, 0x20
dec rdx
jne 0x51de46
jmp 0x51de73
mov edi, r12d
cmp rdx, r8
jb 0x51db8f
mov r8, qword [rsp + 0x40]
test r8, r8
jne 0x51fd90
cmp ebp, 2
je 0x51d020
jmp 0x51fee6
mov qword [rsp + 0x68], rsi
jmp 0x51dec6
mov rdi, qword [rsp + 0x518]
mov rax, qword [rsp + 0x520]
mov qword [rsp + 0x40], rax
mov r14, rdi
shr r14, 8
mov r12, rdi
shr r12, 0x10
jmp 0x51dc73
mov qword [rsp + 0x68], r14
mov dil, 6
xor r14d, r14d
xor r12d, r12d
mov r8, qword [rsp + 0x40]
cmp qword [r8], 0
je 0x51e42d
mov edi, dword [rsp + 0x54]
mov r12d, 1
mov rsi, qword [rsp + 0xb8]
jmp 0x51e485
add r9, rdx
lea rcx, [r10 + r9]
inc rcx
mov qword [rsp + 0x3e0], rcx
not r10
mov qword [rsp + 0x3e8], r10
test rax, rax
je 0x520bff
lea rcx, [rax - 1]
cmp rcx, qword [rbp + 0x48]
jae 0x51df68
imul rcx, rcx, 0x70
add rcx, qword [rbp + 0x40]
jmp 0x51e037
xor r12d, r12d
mov edi, dword [rcx + rdx*8 + 0x10]
mov eax, dword [rcx + rdx*8 + 0x14]
mov rcx, rax
shl rcx, 0x20
xor edx, edx
test eax, eax
setne dl
or rdx, rcx
mov qword [rsp + 0x1b8], rdx
xor ebp, ebp
test edi, edi
setne bpl
jmp 0x51de73
xor r9d, r9d
jmp 0x51dbb4
mov rcx, qword [rbp + 0x28]
mov dil, 0x12
test rcx, rcx
je 0x51e4b1
mov rdx, qword [r8]
movzx r10d, word [rcx + 0x532]
imul r11, r10, 0x70
mov r8, 0xffffffffffffffff
xor r9d, r9d
mov rsi, r11
add rsi, r9
je 0x51dfc9
xor esi, esi
cmp qword [rcx + r8*8 + 0x4e0], rax
setne sil
mov r14d, 0xff
cmova esi, r14d
inc r8
add r9, 0xffffffffffffff90
cmp sil, 1
je 0x51df91
movzx r10d, sil
test r10d, r10d
jne 0x51dfcc
jmp 0x51e030
mov r8, r10
sub rdx, 1
jb 0x51e4b1
mov rcx, qword [rcx + r8*8 + 0x538]
jmp 0x51df7b
xor eax, eax
mov qword [rsp + 0x40], rax
jmp 0x51dc49
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0xa0], rax
mov r14, qword [rsp + 0x48]
cmp r14, 0x15
jae 0x51e4cc
cmp r14, 2
jb 0x51eb4f
mov r8d, 1
mov rcx, qword [rsp + 0xa0]
mov rdx, r14
call fcn.00534a10
jmp 0x51eb4f
sub rcx, r9
add rcx, 0xffffffffffffff90
cmp byte [rcx + 0x6a], 1
jne 0x51e049
mov qword [rsp + 0x3f0], 1
call fcn.00430820
test rdx, rdx
je 0x51e285
mov rsi, rax
mov r14, rdx
mov rax, qword [rbx + 0x90]
add rax, 0x10
mov qword [rsp + 0x98], rax
shl r14, 4
xor edi, edi
xor r12d, r12d
jmp 0x51e09f
cmp eax, 3
je 0x51e17d
cmp eax, 0x31
jne 0x51e092
test r12, r12
je 0x51e209
add rdi, 0x10
cmp r14, rdi
je 0x51e288
movdqu xmm0, xmmword [rsi + rdi]
movdqa xmmword [rsp + 0x120], xmm0
mov rax, qword [rsp + 0x3f8]
mov r8d, dword [rax + 0x48]
movdqa xmmword [rsp + 0x2d0], xmm0
lea rcx, [rsp + 0x510]
lea rdx, [rsp + 0x3e0]
lea r9, [rsp + 0x2d0]
call fcn.00541430
cmp dword [rsp + 0x510], 0x2e
je 0x51e3f3
movzx eax, word [rsp + 0x528]
cmp eax, 0x46
jle 0x51e07b
cmp eax, 0x47
je 0x51e089
cmp eax, 0x6e
je 0x51e10b
cmp eax, 0x2007
jne 0x51e092
lea rbp, [rsp + 0x2d0]
mov rcx, rbp
lea rdx, [rsp + 0x510]
call fcn.00542d20
mov rax, qword [rsp + 0x88]
movzx r8d, byte [rax + 0x99]
mov r9, qword [rax + 0xb8]
mov qword [rsp + 0x20], rbp
lea rcx, [rsp + 0x120]
mov rdx, qword [rsp + 0x98]
call fcn.00550070
cmp qword [rsp + 0x120], 0
jne 0x51e092
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x68], rax
mov r12, qword [rsp + 0x128]
jmp 0x51e092
test r12, r12
jne 0x51e092
lea rbp, [rsp + 0x2d0]
mov rcx, rbp
lea rdx, [rsp + 0x510]
call fcn.00542d20
mov rax, qword [rsp + 0x88]
movzx r8d, byte [rax + 0x99]
mov r9, qword [rax + 0xb8]
mov qword [rsp + 0x20], rbp
lea rcx, [rsp + 0x120]
mov rdx, qword [rsp + 0x98]
call fcn.00550070
cmp qword [rsp + 0x120], 0
mov rcx, qword [rsp + 0x60]
cmove rcx, qword [rsp + 0x130]
mov r12, qword [rsp + 0x128]
mov eax, 0
cmovne r12, rax
mov qword [rsp + 0x60], rcx
mov rax, rcx
mov qword [rsp + 0x68], rcx
jmp 0x51e092
lea rcx, [rsp + 0x2d0]
lea rdx, [rsp + 0x510]
call fcn.00542d20
mov rdx, qword [rsp + 0x2d0]
mov r8, qword [rsp + 0x2d8]
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0x10
lea rcx, [rsp + 0x120]
mov r9, qword [rsp + 0x88]
call fcn.00547730
cmp qword [rsp + 0x120], 0
mov r12, qword [rsp + 0x128]
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x68], rax
je 0x51e092
mov rdi, r12
jmp 0x51e408
xor r12d, r12d
mov qword [rsp + 0x1a0], r12
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 8
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x2d0], 0
mov qword [rsp + 0x2d8], 8
mov qword [rsp + 0x2e0], 0
lea rax, [rsp + 0x2d0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x120]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x510]
lea rdx, [rsp + 0x3e0]
xor r8d, r8d
mov rbp, qword [rsp + 0x88]
mov r9, rbp
call fcn.005465d0
movzx edi, byte [rsp + 0x510]
cmp dil, 0x4b
jne 0x51e37f
mov rax, qword [rsp + 0x2d8]
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x2e0]
cmp rdx, 0x15
jae 0x51ed82
cmp rdx, 2
jb 0x51f401
mov r8d, 1
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x270]
call fcn.00534700
jmp 0x51f401
movzx r14d, byte [rsp + 0x511]
mov r12d, dword [rsp + 0x512]
movzx esi, word [rsp + 0x516]
mov rax, qword [rsp + 0x518]
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x2d0], 0
je 0x51e3c6
mov r8, qword [rsp + 0x2d8]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
shl rsi, 0x20
cmp qword [rsp + 0x120], 0
je 0x51e3eb
mov r8, qword [rsp + 0x128]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
or r12, rsi
jmp 0x51decc
mov rdi, qword [rsp + 0x518]
mov rax, qword [rsp + 0x520]
mov qword [rsp + 0x68], rax
mov r8, qword [rsp + 0x40]
mov r12, rdi
shr r12, 0x10
mov r14, rdi
shr r14, 8
mov rbp, qword [rsp + 0x88]
cmp qword [r8], 0
jne 0x51dedb
xor esi, esi
shl r12, 0x10
movzx eax, r14b
shl rax, 8
or rax, r12
movzx ecx, dil
or rcx, rax
mov qword [r8 + 8], rcx
mov rax, qword [rsp + 0x68]
mov qword [r8 + 0x10], rax
mov qword [r8 + 0x18], rsi
mov rax, qword [rsp + 0xd8]
mov qword [r8 + 0x20], rax
mov rsi, qword [rsp + 0xb8]
mov qword [r8 + 0x28], rsi
movdqu xmmword [r8 + 0x30], xmm6
mov qword [r8], 1
mov edi, dword [rsp + 0x54]
mov r12d, 1
cmp qword [r8 + 0x18], 0
mov qword [rsp + 0xb8], rsi
je 0x51e49d
add r8, 8
jmp 0x51d9d5
cmp byte [r8 + 8], 0x4b
jne 0x51f77d
mov r8, qword [r8 + 0x10]
jmp 0x51d9d5
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x51dec6
mov qword [rsp + 0x40], rdx
mov edi, 0x13
jmp 0x51deab
mov rax, r14
shr rax, 1
mov qword [rsp + 0x2b8], rax
lea rax, [rax*8]
lea rcx, [rax + rax*2]
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520c19
mov rsi, rax
mov ecx, 0x100
mov edx, 8
call fcn.00414fe0
test rax, rax
mov qword [rsp + 0x58], rsi
je 0x520c36
mov rbp, rax
mov rax, qword [rsp + 0xa0]
lea rcx, [rax + 0x30]
mov qword [rsp + 0x1a0], rcx
add rax, 0xffffffffffffffe8
mov qword [rsp + 0xc8], rax
mov eax, 0x10
mov qword [rsp + 0xc0], rax
xor eax, eax
xor edi, edi
jmp 0x51e565
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x90]
cmp rax, r14
jae 0x51eb2d
mov r12, rax
mov r8, r14
sub r8, rax
lea r9, [rax + rax*2]
mov rax, qword [rsp + 0xa0]
lea rcx, [rax + r9*8]
cmp r8, 2
jae 0x51e5d8
mov rax, r14
mov rsi, rax
sub rsi, r12
jb 0x520acd
cmp rax, r14
ja 0x520acd
jae 0x51e602
cmp r8, 0xa
jae 0x51e602
lea rsi, [r12 + 0xa]
cmp rsi, r14
cmovae rsi, r14
mov qword [rsp + 0x90], rsi
sub rsi, r12
jb 0x520b2b
cmp r8, 2
mov eax, 1
cmovb r8, rax
mov rdx, rsi
call fcn.00534a10
jmp 0x51e60a
mov rax, qword [rcx]
mov rdx, qword [rcx + 0x18]
cmp rdx, rax
jae 0x51ea02
cmp r8, 2
jne 0x51ea18
lea rax, [r12 + 2]
mov r8d, 2
jmp 0x51ea88
mov qword [rsp + 0x90], rax
cmp rdi, qword [rsp + 0xc0]
jne 0x51e673
mov qword [rsp + 0x40], r12
lea rax, [rdi + rdi]
mov qword [rsp + 0xc0], rax
mov rcx, rdi
shl rcx, 5
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520b3f
mov r12, rdi
mov rdi, rax
mov r8, r12
shl r8, 4
mov rcx, rax
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rbp
call fcn.005ab9d4
mov rbp, rdi
mov rdi, r12
mov r12, qword [rsp + 0x40]
mov rax, rdi
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], r12
inc rdi
cmp rdi, 2
jb 0x51e54f
mov rsi, qword [rsp + 0x58]
mov qword [rsp + 0x68], rbp
jmp 0x51e726
mov rsi, qword [rsp + 0x58]
mov rdx, rsi
mov r12, qword [rsp + 0x60]
sub r14, rdx
mov rcx, rbp
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x70]
add rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xf8]
mov qword [rcx], rax
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xf0]
mov qword [rcx], rax
lea rdx, [r12 + 0x10]
mov rax, qword [rsp + 0x108]
not rax
mov r8, qword [rsp + 0x110]
add r8, rax
shl r8, 4
mov rcx, r12
call sub.msvcrt.dll_memmove
mov rdi, qword [rsp + 0x98]
cmp rdi, 1
mov r14, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x68]
jbe 0x51e9f8
lea r10, [rdi - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, r14
je 0x51e790
mov rdx, rdi
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x51e790
cmp rdi, 3
jb 0x51eb19
lea r11, [rdi - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x51e7a6
cmp rdi, 4
jb 0x51eb23
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x51e7a6
jmp 0x51e554
cmp rdi, 3
jb 0x51e7ab
lea r11, [rdi - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x51e7af
lea r11, [rdi - 2]
cmp rdi, r11
jbe 0x520954
lea rax, [r11 + 1]
cmp rdi, rax
jbe 0x520984
mov r8, r11
shl r8, 4
mov rcx, qword [rbp + r8 + 8]
shl rax, 4
mov r9, qword [rbp + rax]
mov rdx, qword [rbp + rax + 8]
add rdx, r9
mov rsi, rdx
sub rsi, rcx
jb 0x5209d7
mov qword [rsp + 0x98], r10
cmp rdx, r14
ja 0x5209e8
mov r12, r13
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x108], r11
mov qword [rsp + 0x110], rdi
lea r9, [r8 + rbp]
mov qword [rsp + 0x60], r9
mov r8, qword [rbp + r8]
lea r9, [rbp + rax]
mov qword [rsp + 0xf8], r9
lea rax, [rbp + rax + 8]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x100], rcx
lea rax, [rcx + rcx*2]
mov rcx, qword [rsp + 0xa0]
lea rbp, [rcx + rax*8]
lea rax, [r8 + r8*2]
lea rdi, [rbp + rax*8]
lea rax, [rdx + rdx*2]
mov qword [rsp + 0xe8], rax
mov r13, rsi
sub r13, r8
cmp r13, r8
mov qword [rsp + 0x40], r8
jae 0x51e923
lea rax, [r13*8]
lea r14, [rax + rax*2]
mov rsi, qword [rsp + 0x58]
mov rcx, rsi
mov rdx, rdi
mov r8, r14
call sub.msvcrt.dll_memcpy
add r14, rsi
cmp qword [rsp + 0x40], 0
jle 0x51e9de
test r13, r13
jle 0x51e9de
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xe8]
lea rax, [rax + rcx*8]
mov r13, r12
mov r12, qword [rsp + 0x60]
nop word cs:[rax + rax]
mov rcx, qword [r14 - 0x18]
cmp rcx, qword [rdi - 0x18]
jb 0x51e8f3
add r14, 0xffffffffffffffe8
mov rcx, r14
jmp 0x51e8fa
add rdi, 0xffffffffffffffe8
mov rcx, rdi
mov rdx, qword [rcx + 0x10]
mov qword [rax + 0x10], rdx
movdqu xmm0, xmmword [rcx]
movdqu xmmword [rax], xmm0
cmp rdi, rbp
jbe 0x51e918
add rax, 0xffffffffffffffe8
cmp r14, rsi
ja 0x51e8e0
mov rbp, rdi
mov rdx, rsi
jmp 0x51e6ad
lea rax, [r8*8]
lea r14, [rax + rax*2]
mov r13, qword [rsp + 0x58]
mov rcx, r13
mov rdx, rbp
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x40]
add r14, r13
test rax, rax
jle 0x51e9e3
cmp rsi, rax
mov r13, r12
jle 0x51e6a0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xe8]
lea rax, [rax + rcx*8]
mov rsi, qword [rsp + 0x58]
mov rdx, rsi
mov rcx, rsi
mov r12, qword [rsp + 0x60]
nop word cs:[rax + rax]
mov r8, qword [rdi]
cmp r8, qword [rcx]
jae 0x51e9a4
lea r8, [rdi + 0x18]
mov r9, rcx
mov rcx, rdi
jmp 0x51e9ae
lea rdx, [rcx + 0x18]
mov r9, rdx
mov r8, rdi
lea r10, [rbp + 0x18]
mov r11, qword [rcx + 0x10]
mov qword [rbp + 0x10], r11
movdqu xmm0, xmmword [rcx]
movdqu xmmword [rbp], xmm0
cmp r9, r14
jae 0x51e9d6
mov rdi, r8
mov rcx, r9
mov rbp, r10
cmp r8, rax
jb 0x51e990
mov rbp, r10
jmp 0x51e6ad
mov rbp, rdi
jmp 0x51e9e8
mov rsi, qword [rsp + 0x58]
mov rdx, rsi
mov r13, r12
mov r12, qword [rsp + 0x60]
jmp 0x51e6ad
mov edi, 1
jmp 0x51e554
cmp r8, 2
jne 0x51ea46
lea rax, [r12 + 2]
mov r8d, 2
jmp 0x51e587
mov r10, qword [rsp + 0x1a0]
lea r10, [r10 + r9*8]
mov r9d, 2
mov r11, rdx
mov rsi, r11
mov r11, qword [r10]
cmp r11, rsi
jae 0x51ea75
inc r9
add r10, 0x18
cmp r8, r9
jne 0x51ea2d
jmp 0x51ea72
mov r10, qword [rsp + 0x1a0]
lea r10, [r10 + r9*8]
mov r9d, 2
mov r11, rdx
mov rsi, r11
mov r11, qword [r10]
cmp r11, rsi
jb 0x51ea75
inc r9
add r10, 0x18
cmp r8, r9
jne 0x51ea5b
mov r9, r8
lea r10, [r9 + r12]
mov r8, r9
cmp rdx, rax
mov rax, r10
jae 0x51e587
cmp rax, r12
jb 0x520b8a
cmp rax, r14
ja 0x520baf
cmp r8, 2
jb 0x51e587
mov r11, rax
mov rax, r8
shr rax, 1
lea rdx, [r12 + r8]
lea rdx, [rdx + rdx*2]
mov r9, qword [rsp + 0xc8]
lea rdx, [r9 + rdx*8]
mov r9, rcx
mov r10, qword [r9 + 0x10]
mov qword [rsp + 0x520], r10
movups xmm0, xmmword [r9]
movaps xmmword [rsp + 0x510], xmm0
mov r10, qword [rdx + 0x10]
mov qword [r9 + 0x10], r10
movups xmm0, xmmword [rdx]
movups xmmword [r9], xmm0
mov r10, qword [rsp + 0x520]
mov qword [rdx + 0x10], r10
movdqa xmm0, xmmword [rsp + 0x510]
movdqu xmmword [rdx], xmm0
add r9, 0x18
add rdx, 0xffffffffffffffe8
dec rax
jne 0x51eac4
mov rax, r11
jmp 0x51e587
mov edi, 2
jmp 0x51e554
mov edi, 3
jmp 0x51e554
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rbp
call fcn.005ab9d4
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rsi
call fcn.005ab9d4
movdqu xmm0, xmmword [rsp + 0x218]
movdqa xmmword [rsp + 0x510], xmm0
mov rdi, qword [rsp + 0x228]
mov qword [rsp + 0x520], rdi
cmp qword [rsp + 0x510], rdi
jbe 0x51ebb2
mov r8, qword [rsp + 0x518]
test rdi, rdi
je 0x51ebbc
lea rax, [rdi*8]
lea r14, [rax + rax*8]
mov rcx, qword [0x00677420]
xor edx, edx
mov r9, r14
call sub.KERNEL32.dll_HeapReAlloc
mov rsi, rax
test rax, rax
jne 0x51ebcf
jmp 0x520aea
mov rsi, qword [rsp + 0x518]
jmp 0x51ebcf
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov esi, 8
mov qword [rsp + 0x2d0], rsi
mov qword [rsp + 0x2d8], rdi
mov rbp, qword [rsp + 0x120]
mov r14, qword [rsp + 0x128]
mov rax, qword [rsp + 0x130]
cmp rbp, rax
mov qword [rsp + 0xe8], rax
jbe 0x51ec3b
test rax, rax
je 0x51ec42
lea rax, [rax*8]
lea r12, [rax + rax*2]
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r14
mov r9, r12
call sub.KERNEL32.dll_HeapReAlloc
mov rcx, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x51ec5d
jmp 0x520afc
mov qword [rsp + 0x40], r14
jmp 0x51ec5d
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r14
call fcn.005ab9d4
mov eax, 8
mov qword [rsp + 0x40], rax
mov r14, rdi
shr r14, 8
mov r12, rdi
shr r12, 0x10
mov rbp, qword [rsp + 0x88]
shl r12, 0x10
movzx eax, r14b
shl rax, 8
or rax, r12
movzx edi, dil
or rdi, rax
mov r14, qword [rsp + 0xa8]
cmp qword [r14], 0
je 0x51ed08
test rsi, rsi
mov r12d, 1
je 0x51ed79
test rdi, rdi
je 0x51ed4e
lea r14, [rsi + 0x38]
jmp 0x51ecc9
add r14, 0x48
dec rdi
je 0x51ed35
cmp qword [r14 - 0x30], 0
je 0x51ecc0
mov r8, qword [r14 - 0x18]
test r8, r8
je 0x51ecc0
cmp qword [r14 - 0x10], 0
je 0x51ecee
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
cmp qword [r14], 0
je 0x51ecc0
mov r8, qword [r14 - 8]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
jmp 0x51ecc0
mov qword [r14 + 8], rsi
mov qword [r14 + 0x10], rdi
mov rax, qword [rsp + 0x40]
mov qword [r14 + 0x18], rax
mov rax, qword [rsp + 0xe8]
mov qword [r14 + 0x20], rax
mov qword [r14], 1
mov edi, dword [rsp + 0x54]
jmp 0x51d0a0
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rsi
call fcn.005ab9d4
mov r14, qword [rsp + 0xa8]
cmp qword [rsp + 0xe8], 0
mov edi, dword [rsp + 0x54]
je 0x51d0a6
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, qword [rsp + 0x40]
call fcn.005ab9d4
jmp 0x51d0a6
mov edi, dword [rsp + 0x54]
jmp 0x51d0a6
mov qword [rsp + 0x500], rbx
mov qword [rsp + 0x2b8], r13
mov qword [rsp + 0x48], rdx
mov rcx, rdx
shr rcx, 1
mov qword [rsp + 0x4f8], rcx
shl rcx, 5
mov edx, 8
call fcn.00414fe0
mov qword [rsp + 0xa8], rax
test rax, rax
je 0x520c50
mov ecx, 0x100
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520c6a
mov rbp, rax
mov rax, qword [rsp + 0x58]
lea rcx, [rax + 0x50]
mov qword [rsp + 0xd8], rcx
add rax, 0xffffffffffffffe0
mov qword [rsp + 0xb8], rax
mov eax, 0x10
mov qword [rsp + 0xc0], rax
xor r14d, r14d
xor r12d, r12d
mov r13, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x48]
jmp 0x51ee35
mov r12d, 1
mov r14, qword [rsp + 0xc8]
cmp r14, rdx
jae 0x51f3cf
mov rax, rdx
sub rax, r14
mov rsi, r14
shl rsi, 5
mov rcx, qword [rsp + 0x58]
add rcx, rsi
cmp rax, 2
jae 0x51ee5c
mov r8, rax
lea rax, [r8 + r14]
jmp 0x51ef83
mov r9, qword [rcx + 0x30]
cmp r9, qword [rcx + 0x10]
jb 0x51ee71
mov r10, qword [rcx + 0x20]
ja 0x51eeac
cmp r10, qword [rcx]
jae 0x51eeac
mov r8d, 2
cmp rax, 3
jb 0x51eef7
add rsi, qword [rsp + 0xd8]
jmp 0x51ee93
inc r8
add rsi, 0x20
cmp rax, r8
je 0x51eef4
mov r10, r9
mov r9, qword [rsi]
cmp r9, r10
jb 0x51ee87
ja 0x51eef7
mov r10, qword [rsi - 0x30]
cmp qword [rsi - 0x10], r10
jb 0x51ee87
jmp 0x51eef7
mov r8d, 2
cmp rax, 3
jb 0x51ee53
add rsi, qword [rsp + 0xd8]
jmp 0x51eed5
inc r8
add rsi, 0x20
mov r10, r11
cmp rax, r8
je 0x51f3c2
mov r11, r9
mov r9, qword [rsi]
cmp r9, r11
jb 0x51f3c5
mov r11, qword [rsi - 0x10]
ja 0x51eec2
cmp r11, r10
jae 0x51eec2
jmp 0x51f3c5
mov r8, rax
mov rax, r8
add rax, r14
jb 0x520bc6
cmp rax, rdx
ja 0x520beb
cmp r8, 2
jb 0x51ef83
mov r10, rax
mov rax, r8
shr rax, 1
mov r11, r10
shl r10, 5
add r10, qword [rsp + 0xb8]
mov r9, rcx
movups xmm0, xmmword [r9]
movups xmm1, xmmword [r9 + 0x10]
movaps xmmword [rsp + 0x520], xmm1
movaps xmmword [rsp + 0x510], xmm0
movups xmm0, xmmword [r10]
movups xmm1, xmmword [r10 + 0x10]
movups xmmword [r9 + 0x10], xmm1
movups xmmword [r9], xmm0
movdqa xmm0, xmmword [rsp + 0x510]
movaps xmm1, xmmword [rsp + 0x520]
movups xmmword [r10 + 0x10], xmm1
movdqu xmmword [r10], xmm0
add r9, 0x20
add r10, 0xffffffffffffffe0
dec rax
jne 0x51ef2d
mov rax, r11
mov rsi, rax
sub rsi, r14
jb 0x520b0e
cmp rax, rdx
ja 0x520b0e
jae 0x51efe0
cmp r8, 0xa
jae 0x51efe0
lea rsi, [r14 + 0xa]
cmp rsi, rdx
cmovae rsi, rdx
mov qword [rsp + 0xc8], rsi
sub rsi, r14
jb 0x520b5c
cmp r8, 2
mov eax, 1
cmovb r8, rax
mov rdx, rsi
lea r9, [rsp + 0x270]
call fcn.00534700
mov rdx, qword [rsp + 0x48]
jmp 0x51efe8
mov qword [rsp + 0xc8], rax
cmp r12, qword [rsp + 0xc0]
jne 0x51f046
lea rax, [r12 + r12]
mov qword [rsp + 0xc0], rax
mov rcx, r12
shl rcx, 5
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520b6d
mov rdi, rax
mov r8, r12
shl r8, 4
mov rcx, rax
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rbp
call fcn.005ab9d4
mov rbp, rdi
mov rdx, qword [rsp + 0x48]
mov rax, r12
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], r14
inc r12
cmp r12, 2
jb 0x51ee24
mov qword [rsp + 0xa0], rbp
jmp 0x51f0fd
mov rsi, r14
mov r13, qword [rsp + 0xa8]
mov rdx, r13
mov rdi, qword [rsp + 0x70]
sub rbp, rdx
mov rcx, rsi
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x100]
add rax, rbx
mov rcx, qword [rsp + 0xf8]
mov qword [rcx], rax
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xf0]
mov qword [rcx], rax
lea rdx, [rdi + 0x10]
mov rax, qword [rsp + 0x110]
not rax
mov r8, qword [rsp + 0x60]
add r8, rax
shl r8, 4
mov rcx, rdi
call sub.msvcrt.dll_memmove
mov r12, qword [rsp + 0x98]
cmp r12, 1
mov rbp, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x48]
jbe 0x51ee1e
mov rsi, r12
lea r11, [r12 - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, rdx
je 0x51f16b
mov r10, rsi
shl r10, 4
mov r8, qword [r10 + rbp - 0x20]
cmp r8, rax
jbe 0x51f16b
cmp rsi, 3
jb 0x51f3a4
lea r14, [rsi - 3]
mov rcx, r14
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x51f181
cmp rsi, 4
jb 0x51f3af
add r8, rcx
cmp qword [r10 + rbp - 0x40], r8
jbe 0x51f181
jmp 0x51f3ba
cmp rsi, 3
jb 0x51f186
lea r14, [rsi - 3]
mov rcx, r14
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x51f18a
lea r14, [rsi - 2]
cmp rsi, r14
jbe 0x520a0e
mov qword [rsp + 0x98], r11
lea rax, [r14 + 1]
cmp rsi, rax
jbe 0x520a3e
mov r8, r14
shl r8, 4
mov rcx, qword [rbp + r8 + 8]
shl rax, 4
mov r9, qword [rbp + rax]
mov r12, qword [rbp + rax + 8]
add r12, r9
mov rdi, r12
sub rdi, rcx
jb 0x520a91
mov qword [rsp + 0x110], r14
mov qword [rsp + 0x60], rsi
cmp r12, rdx
ja 0x520aa5
mov qword [rsp + 0x100], r9
lea rdx, [r8 + rbp]
mov qword [rsp + 0x70], rdx
mov rbx, qword [rbp + r8]
lea rdx, [rax + rbp]
mov qword [rsp + 0xf8], rdx
lea rax, [rbp + rax + 8]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x108], rcx
mov rsi, rcx
shl rsi, 5
add rsi, qword [rsp + 0x58]
mov rbp, rbx
shl rbp, 5
lea r14, [rsi + rbp]
shl r12, 5
mov r13, rdi
sub r13, rbx
cmp r13, rbx
jae 0x51f2f2
mov rbp, r13
shl rbp, 5
mov rdi, qword [rsp + 0xa8]
mov rcx, rdi
mov rdx, r14
mov r8, rbp
call sub.msvcrt.dll_memcpy
add rbp, rdi
test rbx, rbx
jle 0x51f071
test r13, r13
mov rdi, qword [rsp + 0x70]
jle 0x51f391
add r12, qword [rsp + 0xb8]
mov r13, qword [rsp + 0xa8]
nop
lea rcx, [r14 - 0x20]
mov rdx, qword [rbp - 0x10]
mov r8, qword [r14 - 0x10]
cmp rdx, r8
jb 0x51f2b6
lea rax, [rbp - 0x20]
cmp rdx, r8
ja 0x51f2ed
mov r8, qword [rcx]
mov rdx, rax
cmp qword [rbp - 0x20], r8
jae 0x51f2bf
mov rax, rbp
mov r14, rcx
mov rdx, rcx
movdqu xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movdqu xmmword [r12], xmm0
cmp r14, rsi
jbe 0x51f389
add r12, 0xffffffffffffffe0
mov rbp, rax
cmp rax, r13
ja 0x51f290
jmp 0x51f389
mov rdx, rax
jmp 0x51f2bf
mov r13, qword [rsp + 0xa8]
mov rcx, r13
mov rdx, rsi
mov r8, rbp
call sub.msvcrt.dll_memcpy
add rbp, r13
test rbx, rbx
jle 0x51f07c
cmp rdi, rbx
jle 0x51f07c
add r12, qword [rsp + 0x58]
mov rdx, r13
mov rax, r13
mov rdi, qword [rsp + 0x70]
nop dword [rax]
mov rcx, qword [rax + 0x10]
cmp qword [r14 + 0x10], rcx
jb 0x51f344
ja 0x51f350
mov rcx, qword [rax]
cmp qword [r14], rcx
jae 0x51f350
lea rcx, [r14 + 0x20]
mov r8, rax
mov rax, r14
jmp 0x51f35a
lea rdx, [rax + 0x20]
mov r8, rdx
mov rcx, r14
lea r9, [rsi + 0x20]
movdqu xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0x10], xmm1
movdqu xmmword [rsi], xmm0
cmp r8, rbp
jae 0x51f381
mov r14, rcx
mov rax, r8
mov rsi, r9
cmp rcx, r12
jb 0x51f330
mov rsi, r9
jmp 0x51f084
mov rsi, r14
mov rbp, rax
jmp 0x51f39c
mov rsi, r14
mov r13, qword [rsp + 0xa8]
mov rdx, r13
jmp 0x51f084
mov r12d, 2
jmp 0x51ee24
mov r12d, 3
jmp 0x51ee24
mov r12, rsi
jmp 0x51ee24
mov r8, rax
mov rdx, qword [rsp + 0x48]
jmp 0x51ee53
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rbp
call fcn.005ab9d4
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r13
call fcn.005ab9d4
mov r13, qword [rsp + 0x2b8]
mov rbx, qword [rsp + 0x500]
mov r12, qword [rsp + 0x120]
mov r14, qword [rsp + 0x128]
mov rax, qword [rsp + 0x130]
cmp r12, rax
mov qword [rsp + 0xd8], rax
jbe 0x51f458
test rax, rax
je 0x51f48f
lea rax, [rax*8]
lea rdi, [rax + rax*4]
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r14
mov r9, rdi
call sub.KERNEL32.dll_HeapReAlloc
mov rsi, rax
test rax, rax
jne 0x51f4a5
jmp 0x520c84
mov rsi, r14
jmp 0x51f4a5
movzx r14d, byte [rsp + 0x511]
mov eax, dword [rsp + 0x512]
movzx r12d, word [rsp + 0x516]
shl r12, 0x20
or r12, rax
mov rax, qword [rsp + 0x518]
mov qword [rsp + 0x40], rax
jmp 0x51dc73
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r14
call fcn.005ab9d4
mov esi, 8
mov r12, qword [rsp + 0x2d0]
mov r14, qword [rsp + 0x2d8]
mov rbp, qword [rsp + 0x2e0]
cmp r12, rbp
jbe 0x51f4ec
test rbp, rbp
je 0x51f4f1
mov rdi, rbp
shl rdi, 5
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r14
mov r9, rdi
call sub.KERNEL32.dll_HeapReAlloc
test rax, rax
jne 0x51f507
jmp 0x520c93
mov rax, r14
jmp 0x51f507
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r14
call fcn.005ab9d4
mov eax, 8
mov qword [rsp + 0xb8], rax
movq xmm0, qword [rsp + 0x90]
movq xmm6, rbp
punpcklqdq xmm6, xmm0
mov r8, qword [rsp + 0x40]
cmp qword [r8], 0
je 0x51f57f
cmp qword [rsp + 0xd8], 0
je 0x51f548
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, rsi
call fcn.005ab9d4
movq rax, xmm6
test rax, rax
je 0x51f5a2
mov rcx, qword [0x00677420]
xor edx, edx
mov rsi, qword [rsp + 0xb8]
mov r8, rsi
call fcn.005ab9d4
mov edi, dword [rsp + 0x54]
mov rbp, qword [rsp + 0x88]
mov r12d, 1
jmp 0x51f5bc
mov rdi, qword [rsp + 0x1a0]
mov r14, rdi
shr r14, 8
mov r12, rdi
shr r12, 0x10
mov rbp, qword [rsp + 0x88]
jmp 0x51e42f
mov edi, dword [rsp + 0x54]
mov rbp, qword [rsp + 0x88]
mov r12d, 1
mov rsi, qword [rsp + 0xb8]
mov r8, qword [rsp + 0x40]
jmp 0x51e485
mov byte [rsp + 0x276], 0
mov word [rsp + 0x274], 0
mov dword [rsp + 0x270], 0
mov qword [rsp + 0x277], rdx
mov rax, qword [rsp + 0x270]
lea rdx, [rsp + 0x278]
mov ecx, dword [rdx]
mov edx, dword [rdx + 3]
mov dword [rsp + 0x1f8], ecx
mov dword [rsp + 0x1fb], edx
mov qword [rsp + 0x1c0], rax
mov eax, dword [rsp + 0x1f8]
mov ecx, dword [rsp + 0x1fb]
lea rdx, [rsp + 0x1c8]
mov dword [rdx + 3], ecx
mov dword [rdx], eax
jmp 0x51f658
mov dword [rsp + 0x1c0], 0
mov byte [rsp + 0x1c6], 0
mov word [rsp + 0x1c4], 0
mov qword [rsp + 0x1c7], rdx
movzx eax, byte [rsp + 0x1c6]
shl eax, 0x10
movzx ecx, word [rsp + 0x1c4]
or ecx, eax
mov eax, dword [rsp + 0x1c0]
mov rdx, qword [rsp + 0x1c7]
mov qword [rsp + 0x40], rdx
shl rcx, 0x28
shl rax, 8
lea rdi, [rcx + rax]
add rdi, 0x13
jmp 0x51deab
mov qword [rsp + 0x40], rdi
mov r12d, 0x13
mov dil, 0x13
xor r14d, r14d
shr r12, 0x10
jmp 0x51dc73
mov qword [rsp + 0x510], r9
mov qword [rsp + 0x518], r11
mov dword [rsp + 0x520], ebp
mov dword [rsp + 0x524], r8d
mov qword [rsp + 0x528], rcx
mov qword [rsp + 0x530], r12
mov qword [rsp + 0x538], r14
mov dword [rsp + 0x540], eax
mov dword [rsp + 0x544], edi
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x548], rax
mov qword [rsp + 0x550], rsi
mov qword [rsp + 0x558], rdx
mov qword [rsp + 0x560], r15
lea rcx, [rsp + 0x3e0]
lea rdx, [rsp + 0x510]
call fcn.005326d0
mov rdi, qword [rsp + 0x400]
cmp rdi, 1
jbe 0x51f88e
mov eax, dword [rsp + 0x540]
add eax, 0xfffffffd
cmp eax, 2
jb 0x51f774
cmp qword [rsp + 0x510], 0
je 0x51f774
mov r8, qword [rsp + 0x528]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
cmp edi, 2
jb 0x51f872
mov rdx, qword [rbx + 0xe8]
test rdx, rdx
je 0x51f872
mov rax, qword [rbx + 0xe0]
xor r9d, r9d
mov r8d, 0xff
mov rcx, rdx
mov r10, rdx
jmp 0x51f7b8
mov r10, rcx
sub rcx, r9
jbe 0x51f7f5
shr rcx, 1
add rcx, r9
mov rsi, rcx
shl rsi, 4
xor r11d, r11d
cmp qword [rax + rsi], r13
setne r11b
cmovb r11d, r8d
cmp r11b, 1
je 0x51f7b0
movzx r9d, r11b
cmp r9d, 0xff
jne 0x51f7fe
inc rcx
mov r9, rcx
mov rcx, r10
sub rcx, r9
ja 0x51f7b8
sub r9, 1
mov rcx, r9
jb 0x51f872
cmp rcx, rdx
jae 0x520106
shl rcx, 4
mov rax, qword [rax + rcx + 8]
cmp byte [rax], 0
je 0x51f9f5
xor edx, edx
nop dword [rax + rax]
cmp byte [rax + rdx], 0
je 0x51f834
inc rdx
cmp rdx, 8
jne 0x51f820
mov edx, 8
mov dword [rsp + 0x520], 3
mov qword [rsp + 0x528], rax
mov qword [rsp + 0x530], rdx
mov qword [rsp + 0x538], r13
lea rdx, [rsp + 0x510]
mov rcx, qword [rsp + 0x2c8]
mov rax, qword [rsp + 0x3d8]
call qword [rax + 0x20]
movaps xmm6, xmmword [rsp + 0x950]
add rsp, 0x968
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp word [rsp + 0x420], 2
jne 0x51f95d
mov rdx, qword [rbx + 0xe8]
test rdx, rdx
je 0x51fa54
mov rax, qword [rbx + 0xe0]
xor r9d, r9d
mov r8d, 0xff
mov rcx, rdx
mov r10, rdx
jmp 0x51f8d8
mov r10, rcx
sub rcx, r9
jbe 0x51f915
shr rcx, 1
add rcx, r9
mov rsi, rcx
shl rsi, 4
xor r11d, r11d
cmp qword [rax + rsi], r13
setne r11b
cmovb r11d, r8d
cmp r11b, 1
je 0x51f8d0
movzx r9d, r11b
cmp r9d, 0xff
jne 0x51f922
inc rcx
mov r9, rcx
mov rcx, r10
sub rcx, r9
ja 0x51f8d8
sub r9, 1
mov rcx, r9
jb 0x51fa54
cmp rcx, rdx
jae 0x520747
shl rcx, 4
mov rax, qword [rax + rcx + 8]
cmp byte [rax], 0
je 0x51fa37
xor edx, edx
nop
cmp byte [rax + rdx], 0
je 0x51fa56
inc rdx
cmp rdx, 8
jne 0x51f940
mov edx, 8
jmp 0x51fa56
mov rax, qword [rsp + 0x410]
mov rdx, qword [rsp + 0x418]
jmp 0x51fa56
mov qword [rsp + 0x3f0], 0
mov r13, rbp
lea rcx, [rsp + 0x2d0]
lea r9, [rsp + 0x3e0]
call fcn.00518e60
cmp qword [rsp + 0x2d0], 0
mov rbx, qword [rsp + 0x2d8]
je 0x51f9d9
mov rdx, qword [rsp + 0x2e0]
movabs rax, 0x8000000000000001
cmp rdx, rax
jne 0x520941
mov rbx, qword [0x00677380]
test rsi, rsi
jne 0x51ceff
jmp 0x51cf15
mov qword [0x00677380], rbx
mov qword [0x00677378], rdi
test rsi, rsi
jne 0x51ceff
jmp 0x51cf15
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x51f872
mov r8d, dword [rax + 4]
add r8, qword [rbx + 0xa8]
jb 0x51f872
mov rdx, qword [rbx + 0xa0]
mov r9, qword [rbx + 0xb0]
call fcn.004c8d50
test rax, rax
jne 0x51f834
jmp 0x51f872
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x51fa54
mov r8d, dword [rax + 4]
add r8, qword [rbx + 0xa8]
jae 0x51ff01
xor eax, eax
movdqu xmm0, xmmword [rsp + 0x3e0]
movups xmm1, xmmword [rsp + 0x3f0]
movaps xmmword [rsp + 0x2e0], xmm1
movdqa xmmword [rsp + 0x2d0], xmm0
mov qword [rsp + 0x2f0], rax
mov qword [rsp + 0x2f8], rdx
mov qword [rsp + 0x300], r13
mov rax, qword [rsp + 0x3d8]
mov r12, qword [rax + 0x20]
lea rdx, [rsp + 0x2d0]
mov rcx, qword [rsp + 0x2c8]
call r12
lea rsi, [rsp + 0x3e0]
lea r14, [rsp + 0x510]
mov ebp, 0xff
lea r15, [rsp + 0x2d0]
jmp 0x51fb28
mov rax, qword [rsp + 0x410]
mov rdx, qword [rsp + 0x418]
movdqu xmm0, xmmword [rsp + 0x3e0]
movups xmm1, xmmword [rsp + 0x3f0]
movaps xmmword [rsp + 0x2e0], xmm1
movdqa xmmword [rsp + 0x2d0], xmm0
mov qword [rsp + 0x2f0], rax
mov qword [rsp + 0x2f8], rdx
mov qword [rsp + 0x300], r13
mov rcx, qword [rsp + 0x2c8]
mov rdx, r15
call r12
mov rcx, rsi
mov rdx, r14
call fcn.005326d0
cmp dword [rsp + 0x400], 2
jae 0x51f744
cmp word [rsp + 0x420], 2
jne 0x51fad0
mov rdx, qword [rbx + 0xe8]
test rdx, rdx
je 0x51fc20
mov rax, qword [rbx + 0xe0]
mov rcx, rdx
xor r9d, r9d
mov r8, rdx
jmp 0x51fb78
mov r8, rcx
sub rcx, r9
jbe 0x51fbb5
shr rcx, 1
add rcx, r9
mov r11, rcx
shl r11, 4
xor r10d, r10d
cmp qword [rax + r11], r13
setne r10b
cmovb r10d, ebp
cmp r10b, 1
je 0x51fb70
movzx r9d, r10b
cmp r9d, 0xff
jne 0x51fbbe
inc rcx
mov r9, rcx
mov rcx, r8
sub rcx, r9
ja 0x51fb78
sub r9, 1
mov rcx, r9
jb 0x51fc20
cmp rcx, rdx
jae 0x51ff60
shl rcx, 4
mov rax, qword [rax + rcx + 8]
cmp byte [rax], 0
je 0x51fbfd
xor edx, edx
nop word [rax + rax]
cmp byte [rax + rdx], 0
je 0x51fae0
inc rdx
cmp rdx, 8
jne 0x51fbe0
mov edx, 8
jmp 0x51fae0
mov rcx, qword [rbx + 0x98]
test rcx, rcx
je 0x51fc20
mov r8d, dword [rax + 4]
add r8, qword [rbx + 0xa8]
jae 0x51fc27
nop word cs:[rax + rax]
xor eax, eax
jmp 0x51fae0
mov rdx, qword [rbx + 0xa0]
mov r9, qword [rbx + 0xb0]
call fcn.004c8d50
jmp 0x51fae0
add rcx, 0x88
mov r8, rdi
sub r8, rcx
jb 0x51cd87
add rdx, 0xffffffffffffff90
cmp r8, rdx
jb 0x51cd87
mov r8d, dword [rax + 0x84]
shl r8, 3
cmp r8, rdx
ja 0x51cd87
add rdx, rcx
movzx ecx, word [rax + 6]
lea r8, [rcx*8]
lea r8, [r8 + r8*4]
mov r9, rdi
sub r9, rdx
setb r10b
add rdx, rbx
cmp r9, r8
setb r8b
or r8b, r10b
lea r10, [0x005ed215]
cmove r10, rdx
mov r11d, 0x1f
cmove r11, rcx
jne 0x51cd87
mov ecx, dword [rax + 0xc]
test rcx, rcx
je 0x520081
mov r15d, dword [rax + 0x10]
lea rdx, [r15 + r15]
lea rdx, [rdx + rdx*8]
mov r8, rdi
sub r8, rcx
lea r13, [rbx + rcx]
xor r9d, r9d
cmp r8, rdx
cmovb r13, r9
cmp rdi, rcx
cmovb r13, r9
mov r8, rdx
test r13, r13
cmove r8, r13
je 0x51cd87
cmp rdx, rdx
ja 0x51cd87
add r8, rcx
mov rcx, rdi
sub rcx, r8
jb 0x51cd87
cmp rcx, 4
jb 0x51cd87
mov qword [rsp + 0x78], r11
mov qword [rsp + 0xb0], r10
mov ecx, dword [rbx + r8]
mov qword [rsp + 0x118], r8
add rcx, r8
mov qword [rsp + 0x1b0], rcx
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x2c0], rax
mov qword [rsp + 0x510], 0
mov qword [rsp + 0x518], 8
mov qword [rsp + 0x520], 0
test r15, r15
je 0x5200fd
mov ecx, 8
xor edx, edx
xor esi, esi
mov qword [rsp + 0xe0], r15
jmp 0x51ffcb
mov dword [rsp + 0x54], edi
mov r15, r13
mov qword [rsp + 0x510], 0
mov qword [rsp + 0x518], 8
mov qword [rsp + 0x520], 0
mov rdi, qword [r8 + 0x28]
test rdi, rdi
mov qword [rsp + 0x40], r8
je 0x51ff19
mov rsi, qword [r8 + 0x20]
mov rax, qword [r8 + 0x10]
mov qword [rsp + 0xb0], rax
mov rax, qword [r8 + 0x18]
mov qword [rsp + 0x78], rax
mov eax, 8
mov qword [rsp + 0x80], rax
xor r8d, r8d
lea r11, [rsp + 0x510]
mov r13, rdi
xor ecx, ecx
mov rax, rdi
jmp 0x51fe17
mov rax, r13
mov r13, rax
sub r13, rcx
jbe 0x51ff1c
shr r13, 1
add r13, rcx
mov rdx, r13
shl rdx, 5
lea r9, [rsi + rdx]
cmp qword [rsi + rdx + 0x10], r8
ja 0x51fe08
jb 0x51fe3f
cmp qword [r9], r15
ja 0x51fe08
mov r10, r15
cmp qword [r9 + 8], r15
ja 0x51fe47
inc r13
mov rcx, r13
jmp 0x51fe0b
mov rcx, qword [rsi + rdx + 0x18]
mov rax, rcx
mov qword [rsp + 0xd0], rcx
cmp rcx, qword [rsp + 0x78]
jae 0x520923
cmp r8, qword [rsp + 0x510]
jne 0x51fe97
mov rcx, r11
mov rdx, r8
call fcn.005195a0
mov rax, qword [rsp + 0x518]
mov qword [rsp + 0x80], rax
mov r8, qword [rsp + 0x520]
lea r11, [rsp + 0x510]
mov rax, qword [rsp + 0xd0]
lea rax, [rax + rax*4]
mov rcx, qword [rsp + 0xb0]
lea rax, [rcx + rax*8]
mov rcx, qword [rsp + 0x80]
mov qword [rcx + r8*8], rax
mov r8, qword [rsp + 0x520]
inc r8
mov qword [rsp + 0x520], r8
inc r13
mov rax, r13
shl rax, 5
add rsi, rax
sub rdi, r13
jne 0x51fdfe
jmp 0x51ff1c
mov eax, 4
mov rcx, qword [rsp + 0x1b8]
mov r8d, edi
mov r11, r14
mov r9, r12
jmp 0x51f6b0
mov rdx, qword [rbx + 0xa0]
mov r9, qword [rbx + 0xb0]
call fcn.004c8d50
jmp 0x51fa56
xor r8d, r8d
mov r9, qword [rsp + 0x510]
mov rcx, qword [rsp + 0x518]
lea r8, [rcx + r8*8]
mov rdx, qword [rbx + 0x90]
add rdx, 0x10
mov eax, ebp
mov ebp, r8d
shr r8, 0x20
mov r11, rcx
mov r13, r15
mov edi, dword [rsp + 0x54]
mov rsi, qword [rsp + 0x88]
mov r15, qword [rsp + 0x40]
jmp 0x51f6b0
lea r8, str.library_std_src_.._.._backtrace_src_symbolize_gimli_coff.rs
call fcn.004262b0
jmp 0x520ccd
add r15, qword [rsp + 0x2c0]
mov rax, qword [rsp + 0x1b8]
add rax, r15
shl rdx, 4
mov qword [rcx + rdx], rax
mov rax, qword [rsp + 0xd0]
mov qword [rcx + rdx + 8], rax
mov rdx, qword [rsp + 0x520]
inc rdx
mov qword [rsp + 0x520], rdx
mov r15, qword [rsp + 0xe0]
mov rax, qword [rsp + 0x80]
add rsi, rax
inc rsi
cmp rsi, r15
jae 0x520114
cmp rsi, r15
jae 0x5200e1
lea r8, [rsi + rsi*8]
movzx eax, byte [r13 + r8*2 + 0x11]
mov qword [rsp + 0x80], rax
movzx eax, word [r13 + r8*2 + 0xc]
test rax, rax
je 0x51ffb4
movzx r9d, word [r13 + r8*2 + 0xe]
and r9d, 0x30
cmp r9w, 0x20
jne 0x51ffb4
dec rax
cmp rax, qword [rsp + 0x78]
jae 0x5200e1
lea r8, [r8*2]
add r8, r13
mov qword [rsp + 0xd0], r8
mov r15d, dword [r8 + 8]
lea rax, [rax + rax*4]
mov r8, qword [rsp + 0xb0]
mov eax, dword [r8 + rax*8 + 0xc]
mov qword [rsp + 0x1b8], rax
cmp rdx, qword [rsp + 0x510]
jne 0x51ff71
lea rcx, [rsp + 0x510]
call fcn.00519250
mov rcx, qword [rsp + 0x518]
mov rdx, qword [rsp + 0x520]
jmp 0x51ff71
lea r8, str.library_std_src_.._.._backtrace_src_symbolize_gimli.rs
mov rcx, r14
call fcn.004262b0
ud2
mov qword [rsp + 0x78], r11
mov qword [rsp + 0xb0], r10
mov qword [rsp + 0x510], 0
mov qword [rsp + 0x518], 8
mov qword [rsp + 0x520], 0
mov esi, 8
xor r13d, r13d
xor eax, eax
mov qword [rsp + 0x118], rax
xor r15d, r15d
xor edx, edx
jmp 0x520127
lea r8, [0x005eea90]
mov rdx, qword [rsp + 0xd0]
call fcn.004262b0
ud2
cmp qword [rsp + 0x510], 0
je 0x51cd87
mov r8, qword [rsp + 0x518]
jmp 0x520734
mov esi, 8
xor edx, edx
jmp 0x52011c
lea r8, str.library_std_src_.._.._backtrace_src_symbolize_gimli_coff.rs
call fcn.004262b0
ud2
mov rsi, qword [rsp + 0x518]
mov r15, rbx
mov r13, qword [rsp + 0x1b0]
test rdx, rdx
je 0x520136
bsr rax, rdx
xor rax, 0x3f
jmp 0x52013b
mov eax, 0x40
mov r9d, 0x40
sub r9d, eax
mov rcx, rsi
xor r8d, r8d
call fcn.00534b10
movdqu xmm0, xmmword [rsp + 0x510]
movdqu xmmword [rsp + 0x258], xmm0
mov rax, qword [rsp + 0x520]
mov qword [rsp + 0x268], rax
mov qword [rsp + 0x218], r15
mov qword [rsp + 0x220], rdi
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x228], rax
mov qword [rsp + 0x230], r13
mov qword [rsp + 0x238], rbx
mov qword [rsp + 0x240], rdi
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x248], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x250], rax
lea rcx, [rsp + 0x2d0]
lea rdx, [rsp + 0x218]
lea r8, [rsp + 0x1c0]
call fcn.00550460
movzx esi, byte [rsp + 0x3a8]
cmp sil, 2
je 0x52071d
lea rcx, [rsp + 0x520]
lea rdx, [rsp + 0x2d0]
mov r8d, 0xd8
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x3a9]
mov ecx, dword [rsp + 0x3ac]
mov dword [rsp + 0x5f9], eax
mov dword [rsp + 0x5fc], ecx
mov byte [rsp + 0x5f8], sil
mov qword [rsp + 0x510], 1
mov qword [rsp + 0x518], 1
mov ecx, 0xf0
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520ca2
mov rsi, rax
lea rdx, [rsp + 0x510]
mov r8d, 0xf0
mov rcx, rax
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x2d0]
mov rdx, rsi
call fcn.0052c680
mov rdi, qword [rsp + 0x2e0]
test rdi, rdi
je 0x52071d
movdqu xmm0, xmmword [rsp + 0x2d0]
movups xmm1, xmmword [rsp + 0x2e8]
movups xmm2, xmmword [rsp + 0x2f8]
movdqa xmmword [rsp + 0x270], xmm0
movups xmmword [rsp + 0x288], xmm1
movups xmmword [rsp + 0x298], xmm2
mov rax, qword [rsp + 0x308]
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x280], rdi
mov rdx, qword [rax + 0xe0]
test rdx, rdx
je 0x5203b8
lock inc qword [rdx]
jle 0x520cb3
lea rcx, [rsp + 0x510]
call fcn.0052c680
mov rax, qword [rsp + 0x520]
test rax, rax
je 0x520710
movdqu xmm0, xmmword [rsp + 0x510]
movups xmm1, xmmword [rsp + 0x528]
movups xmm2, xmmword [rsp + 0x538]
movdqa xmmword [rsp + 0x2d0], xmm0
movups xmmword [rsp + 0x2e8], xmm1
movups xmmword [rsp + 0x2f8], xmm2
mov rcx, qword [rsp + 0x548]
mov qword [rsp + 0x308], rcx
mov qword [rsp + 0x2e0], rax
mov ecx, 0x40
mov edx, 8
call fcn.00414fe0
test rax, rax
je 0x520cb7
mov rsi, rax
movdqa xmm0, xmmword [rsp + 0x2d0]
movaps xmm1, xmmword [rsp + 0x2e0]
movaps xmm2, xmmword [rsp + 0x2f0]
movaps xmm3, xmmword [rsp + 0x300]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
jmp 0x5203ba
xor esi, esi
lea r13, [rsp + 0x288]
mov r15, qword [rsp + 0x270]
test r15, r15
je 0x52044a
mov rcx, r15
call fcn.00521160
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, r15
call fcn.005ab9d4
mov rdi, qword [rsp + 0x280]
mov qword [rsp + 0x270], rsi
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x208], rax
movdqu xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movdqa xmmword [rsp + 0x4d0], xmm0
movaps xmmword [rsp + 0x4e0], xmm1
mov rax, qword [r13 + 0x20]
mov qword [rsp + 0x4f0], rax
test rdi, rdi
jne 0x52049a
jmp 0x52071d
mov qword [rsp + 0x270], rsi
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x200], rax
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x208], rax
movdqu xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movdqa xmmword [rsp + 0x4d0], xmm0
movaps xmmword [rsp + 0x4e0], xmm1
mov rax, qword [r13 + 0x20]
mov qword [rsp + 0x4f0], rax
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0x560], rax
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x568], rax
movaps xmm0, xmmword [rsp + 0x4d0]
movaps xmm1, xmmword [rsp + 0x4e0]
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x130], xmm1
mov rax, qword [rsp + 0x4f0]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x218]
movups xmm1, xmmword [rsp + 0x228]
movups xmm2, xmmword [rsp + 0x238]
movups xmm3, xmmword [rsp + 0x248]
movups xmmword [rsp + 0x148], xmm0
movups xmmword [rsp + 0x158], xmm1
movups xmmword [rsp + 0x168], xmm2
movups xmmword [rsp + 0x178], xmm3
movups xmm0, xmmword [rsp + 0x258]
movups xmmword [rsp + 0x188], xmm0
mov rax, qword [rsp + 0x268]
mov qword [rsp + 0x198], rax
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x4b8], rax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x4c0], rax
movaps xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x4a8], xmm0
movaps xmm0, xmmword [rsp + 0x170]
movups xmmword [rsp + 0x498], xmm0
movaps xmm0, xmmword [rsp + 0x160]
movups xmmword [rsp + 0x488], xmm0
movaps xmm0, xmmword [rsp + 0x120]
movaps xmm1, xmmword [rsp + 0x130]
movaps xmm2, xmmword [rsp + 0x140]
movaps xmm3, xmmword [rsp + 0x150]
movups xmmword [rsp + 0x478], xmm3
movups xmmword [rsp + 0x468], xmm2
movups xmmword [rsp + 0x458], xmm1
movups xmmword [rsp + 0x448], xmm0
mov rax, qword [rsp + 0x3c0]
mov qword [rsp + 0x520], rax
movaps xmm0, xmmword [rsp + 0x3b0]
movaps xmmword [rsp + 0x510], xmm0
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0x558], rax
movups xmm0, xmmword [rsp + 0x1c0]
movups xmm1, xmmword [rsp + 0x1d0]
movups xmm2, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x548], xmm2
movups xmmword [rsp + 0x538], xmm1
movups xmmword [rsp + 0x528], xmm0
movaps xmm0, xmmword [rsp + 0x560]
movaps xmmword [rsp + 0x430], xmm0
mov rax, qword [rsp + 0x550]
mov qword [rsp + 0x420], rax
mov rax, qword [rsp + 0x558]
mov qword [rsp + 0x428], rax
movdqa xmm0, xmmword [rsp + 0x510]
movaps xmm1, xmmword [rsp + 0x520]
movaps xmm2, xmmword [rsp + 0x530]
movaps xmm3, xmmword [rsp + 0x540]
movaps xmmword [rsp + 0x410], xmm3
movaps xmmword [rsp + 0x400], xmm2
movaps xmmword [rsp + 0x3f0], xmm1
movdqa xmmword [rsp + 0x3e0], xmm0
mov qword [rsp + 0x440], rdi
mov rsi, qword [0x00677388]
cmp rsi, 4
jne 0x52076b
mov qword [0x00677388], 3
mov edx, 0x2d0
add rdx, qword [0x00677380]
lea rcx, [rsp + 0x510]
mov r8d, 0xf0
call sub.msvcrt.dll_memcpy
cmp qword [rsp + 0x578], 0
je 0x520766
lea rcx, [rsp + 0x518]
call fcn.005212c0
mov rsi, qword [0x00677388]
jmp 0x52076b
lea rcx, [rsp + 0x270]
call fcn.00521160
cmp qword [rsp + 0x258], 0
je 0x51cd87
mov r8, qword [rsp + 0x260]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
jmp 0x51cd87
lea r8, str.library_std_src_.._.._backtrace_src_symbolize_gimli_coff.rs
call fcn.004262b0
jmp 0x520ccd
lea r8, [0x005ed2a8]
call fcn.004262b0
ud2
mov esi, 3
lea rcx, [rsp + 0x518]
lea rdx, [rsp + 0x3e0]
mov r8d, 0xe8
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x510], r14
cmp rsi, qword [0x00677378]
jne 0x52087b
mov rax, rsi
inc rax
je 0x520863
lea rcx, [rsi + rsi]
cmp rcx, rax
cmova rax, rcx
cmp rax, 5
mov edi, 4
cmovae rdi, rax
movabs rax, 0x88888888888888
xor r8d, r8d
cmp rdi, rax
setbe r8b
imul rdx, rdi, 0xf0
shl r8, 3
test rsi, rsi
je 0x52080f
mov rax, qword [0x00677380]
imul rcx, rsi, 0xf0
mov qword [rsp + 0x2d0], rax
mov qword [rsp + 0x2d8], rcx
mov qword [rsp + 0x2e0], 8
jmp 0x52081b
mov qword [rsp + 0x2e0], 0
lea rcx, [rsp + 0x120]
lea r9, [rsp + 0x2d0]
call fcn.00518e60
cmp qword [rsp + 0x120], 0
mov rcx, qword [rsp + 0x128]
je 0x52086d
mov rdx, qword [rsp + 0x130]
movabs rax, 0x8000000000000001
cmp rdx, rax
je 0x52087b
test rdx, rdx
jne 0x520cc8
call fcn.00417400
jmp 0x520ccd
mov qword [0x00677380], rcx
mov qword [0x00677378], rdi
mov rbx, qword [0x00677380]
test rsi, rsi
je 0x5208d8
lea rcx, [rbx + 0xf0]
imul r8, rsi, 0xf0
mov rdx, rbx
call sub.msvcrt.dll_memmove
lea rdx, [rsp + 0x510]
mov r8d, 0xf0
mov rcx, rbx
call sub.msvcrt.dll_memcpy
inc rsi
mov qword [0x00677388], rsi
mov r13, rbp
jne 0x51cf32
lea r8, str.library_std_src_.._.._backtrace_src_symbolize_gimli.rs
xor ecx, ecx
xor edx, edx
call fcn.004262b0
ud2
lea rdx, [rsp + 0x510]
mov r8d, 0xf0
mov rcx, rbx
call sub.msvcrt.dll_memcpy
mov qword [0x00677388], 1
mov r13, rbp
jmp 0x51cf32
mov ecx, 0x3c0
mov edx, 8
call fcn.00417bf0
ud2
lea r8, [0x005ed290]
mov rcx, r15
call fcn.004292f0
ud2
lea r8, str._usr_local_cargo_registry_src_github.com_1ecc6299db9ec823_addr2line_0.17.0_src_function.rs
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x78]
call fcn.004262b0
jmp 0x520ccd
test rdx, rdx
jne 0x520a01
call fcn.00417400
jmp 0x520ccd
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x520], rax
mov qword [rsp + 0x528], 1
mov qword [rsp + 0x510], 0
lea rdx, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
jmp 0x5209b2
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x520], rax
mov qword [rsp + 0x528], 1
mov qword [rsp + 0x510], 0
lea rdx, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
lea rcx, [rsp + 0x510]
lea rax, str.combase.dll
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], 0
call fcn.00426330
jmp 0x520ccd
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
call fcn.00429a20
jmp 0x520ccd
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov rcx, rdx
mov rdx, qword [rsp + 0x48]
call fcn.004292f0
jmp 0x520ccd
mov rcx, rbx
call fcn.00417bf0
jmp 0x520ccd
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x520], rax
mov qword [rsp + 0x528], 1
mov qword [rsp + 0x510], 0
lea rdx, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
jmp 0x520a6c
lea rax, str.Index_out_of_bounds
mov qword [rsp + 0x520], rax
mov qword [rsp + 0x528], 1
mov qword [rsp + 0x510], 0
lea rdx, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
lea rax, str.combase.dll
mov rcx, qword [rsp + 0x2c0]
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], 0
call fcn.00426330
jmp 0x520ccd
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov rdx, r12
call fcn.00429a20
jmp 0x520ccd
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov rcx, r12
call fcn.004292f0
jmp 0x520ccd
mov ecx, 0x10
mov edx, 8
call fcn.00417bf0
jmp 0x520ccd
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2c
call fcn.00426370
jmp 0x520ccd
mov edx, 8
mov rcx, r14
call fcn.00417bf0
jmp 0x520ccd
mov edx, 8
mov rcx, r12
call fcn.00417bf0
jmp 0x520ccd
lea rcx, str.assertion_failed:_end___start__end___len
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2c
call fcn.00426370
jmp 0x520ccd
mov rcx, r12
lea rax, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov qword [rsp + 0xe0], rax
jmp 0x520b95
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2b
call fcn.00426370
jmp 0x520ccd
lea rax, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov qword [rsp + 0xe0], rax
jmp 0x520bce
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2b
call fcn.00426370
jmp 0x520ccd
mov rcx, r12
mov qword [rsp + 0x90], rax
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0xe0]
call fcn.00429a20
jmp 0x520ccd
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov rcx, rax
mov rdx, r14
call fcn.004292f0
jmp 0x520ccd
mov qword [rsp + 0xc8], rax
mov rcx, r14
mov rdx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xe0]
call fcn.00429a20
jmp 0x520ccd
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov rcx, rax
call fcn.004292f0
jmp 0x520ccd
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._usr_local_cargo_registry_src_github.com_1ecc6299db9ec823_addr2line_0.17.0_src_function.rs
mov edx, 0x2b
call fcn.00426370
ud2
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2b
call fcn.00426370
jmp 0x520ccd
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2b
call fcn.00426370
jmp 0x520ccd
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2b
call fcn.00426370
jmp 0x520ccd
lea rcx, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea r8, str._repos_rust_1.70.0_library_core_src_slice_sort.rs
mov edx, 0x2b
call fcn.00426370
jmp 0x520ccd
mov edx, 8
mov rcx, rdi
call fcn.00417bf0
jmp 0x520ccd
mov edx, 8
mov rcx, rdi
call fcn.00417bf0
jmp 0x520ccd
mov ecx, 0xf0
mov edx, 8
call fcn.00417bf0
jmp 0x520ccd
ud2
mov ecx, 0x40
mov edx, 8
call fcn.00417bf0
jmp 0x520ccd
call fcn.00417bf0
ud2