Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
matchit::foo:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 360
mov rax, qword, ptr, [rip, +, .L__unnamed_27]
xorps xmm0, xmm0
movups xmmword, ptr, [rsp, +, 168], xmm0
movups xmmword, ptr, [rsp, +, 192], xmm0
mov rcx, qword, ptr, [rip, +, .L__unnamed_28]
movups xmmword, ptr, [rsp, +, 216], xmm0
mov qword, ptr, [rsp, +, 160], rax
mov word, ptr, [rsp, +, 236], 768
mov qword, ptr, [rsp, +, 184], rax
mov qword, ptr, [rsp, +, 208], rcx
mov byte, ptr, [rsp, +, 238], 0
mov dword, ptr, [rsp, +, 232], 0
mov qword, ptr, [rsp, +, 24], 0
lea rax, [rip, +, .L__unnamed_11]
mov qword, ptr, [rsp, +, 32], rax
mov qword, ptr, [rsp, +, 40], 0
mov qword, ptr, [rsp, +, 48], rax
mov qword, ptr, [rsp, +, 56], 0
mov qword, ptr, [rsp, +, 64], rax
mov qword, ptr, [rsp, +, 72], 0
mov qword, ptr, [rsp, +, 80], rax
mov qword, ptr, [rsp, +, 88], 0
mov qword, ptr, [rsp, +, 96], rax
mov qword, ptr, [rsp, +, 104], 0
mov qword, ptr, [rsp, +, 112], rax
movups xmmword, ptr, [rsp, +, 120], xmm0
mov r14d, 12
lea r12, [rip, +, .L__unnamed_29]
lea r15, [rsp, +, 160]
xor ebp, ebp
jmp .LBB31_3
.LBB31_1:
add r15, 48
add r12, rbx
xor edi, edi
.LBB31_2:
mov rbx, qword, ptr, [r15]
lea r13, [rdi, +, 4*rdi]
shl r13, 4
lea r15, [rbx, +, r13]
mov rbp, qword, ptr, [rbx, +, r13, +, 16]
cmp r14, rbp
jbe .LBB31_44
.LBB31_3:
mov rdi, qword, ptr, [r15]
mov rsi, r12
mov rdx, rbp
call qword, ptr, [rip, +, bcmp@GOTPCREL]
test eax, eax
jne .LBB31_73
test rbp, rbp
je .LBB31_7
cmp r14, rbp
je .LBB31_7
cmp byte, ptr, [r12, +, rbp], -65
jle .LBB31_71
.LBB31_7:
add r12, rbp
mov r13, r14
sub r13, rbp
cmp byte, ptr, [r15, +, 76], 0
je .LBB31_27
cmp qword, ptr, [r15, +, 64], 0
je .LBB31_63
mov r15, qword, ptr, [r15, +, 48]
movzx eax, byte, ptr, [r15, +, 77]
cmp rax, 1
jne .LBB31_48
mov rbx, r13
cmp r14, rbp
je .LBB31_15
xor ebx, ebx
.LBB31_12:
cmp byte, ptr, [r12, +, rbx], 47
je .LBB31_15
add rbx, 1
cmp r13, rbx
jne .LBB31_12
mov rbx, r13
.LBB31_15:
mov rdx, qword, ptr, [r15, +, 16]
test rdx, rdx
je .LBB31_68
mov rsi, qword, ptr, [r15]
add rsi, 1
add rdx, -1
mov rdi, rsp
call qword, ptr, [rip, +, _ZN4core3str8converts9from_utf817hcdd6f8bc7620db75E@GOTPCREL]
cmp dword, ptr, [rsp], 1
je .LBB31_69
mov rsi, qword, ptr, [rsp, +, 8]
mov rdx, qword, ptr, [rsp, +, 16]
test rbx, rbx
sete al
cmp r13, rbx
sete bpl
or bpl, al
jne .LBB31_21
cmp r13, rbx
jbe .LBB31_66
cmp byte, ptr, [r12, +, rbx], -65
jle .LBB31_66
.LBB31_21:
lea rdi, [rsp, +, 24]
mov rcx, r12
mov r8, rbx
call qword, ptr, [rip, +, _ZN7matchit6params6Params4push17hb06c9800bfee0b8dE@GOTPCREL]
mov r14, r13
sub r14, rbx
jbe .LBB31_54
cmp qword, ptr, [r15, +, 64], 0
je .LBB31_70
test bpl, bpl
jne .LBB31_1
cmp byte, ptr, [r12, +, rbx], -65
jg .LBB31_1
jmp .LBB31_26
.LBB31_27:
test r13, r13
je .LBB31_64
mov al, byte, ptr, [r12]
mov rcx, qword, ptr, [r15, +, 40]
test rcx, rcx
je .LBB31_32
mov rdx, qword, ptr, [r15, +, 24]
xor edi, edi
.LBB31_30:
cmp byte, ptr, [rdx, +, rdi], al
je .LBB31_42
add rdi, 1
cmp rcx, rdi
jne .LBB31_30
jmp .LBB31_32
.LBB31_42:
mov rsi, qword, ptr, [r15, +, 64]
cmp rsi, rdi
jbe .LBB31_65
add r15, 48
mov r14, r13
jmp .LBB31_2
.LBB31_44:
jne .LBB31_73
mov rsi, qword, ptr, [r15]
mov rdi, r12
mov rdx, r14
call qword, ptr, [rip, +, bcmp@GOTPCREL]
test eax, eax
jne .LBB31_72
cmp byte, ptr, [rbx, +, r13, +, 78], 1
jne .LBB31_81
lea r15, [rbx, +, r13]
add r15, 79
jmp .LBB31_56
.LBB31_48:
cmp eax, 2
jne .LBB31_67
mov rdx, qword, ptr, [r15, +, 16]
cmp rdx, 1
jbe .LBB31_89
mov rsi, qword, ptr, [r15]
add rsi, 2
add rdx, -2
mov rdi, rsp
call qword, ptr, [rip, +, _ZN4core3str8converts9from_utf817hcdd6f8bc7620db75E@GOTPCREL]
cmp dword, ptr, [rsp], 1
je .LBB31_90
mov rsi, qword, ptr, [rsp, +, 8]
mov rdx, qword, ptr, [rsp, +, 16]
lea rdi, [rsp, +, 24]
mov rcx, r12
mov r8, r13
call qword, ptr, [rip, +, _ZN7matchit6params6Params4push17hb06c9800bfee0b8dE@GOTPCREL]
cmp byte, ptr, [r15, +, 78], 1
je .LBB31_55
jmp .LBB31_35
.LBB31_54:
cmp byte, ptr, [r15, +, 78], 1
jne .LBB31_91
.LBB31_55:
add r15, 79
.LBB31_56:
movups xmm0, xmmword, ptr, [rsp, +, 120]
movaps xmmword, ptr, [rsp, +, 336], xmm0
movups xmm1, xmmword, ptr, [rsp, +, 104]
movaps xmmword, ptr, [rsp, +, 320], xmm1
movups xmm2, xmmword, ptr, [rsp, +, 88]
movaps xmmword, ptr, [rsp, +, 304], xmm2
movups xmm3, xmmword, ptr, [rsp, +, 24]
movups xmm4, xmmword, ptr, [rsp, +, 40]
movups xmm5, xmmword, ptr, [rsp, +, 56]
movups xmm6, xmmword, ptr, [rsp, +, 72]
movaps xmmword, ptr, [rsp, +, 288], xmm6
movups xmmword, ptr, [rsp, +, 32], xmm3
movups xmmword, ptr, [rsp, +, 48], xmm4
movups xmmword, ptr, [rsp, +, 64], xmm5
movups xmmword, ptr, [rsp, +, 80], xmm6
movups xmmword, ptr, [rsp, +, 96], xmm2
movups xmmword, ptr, [rsp, +, 112], xmm1
movups xmmword, ptr, [rsp, +, 128], xmm0
mov qword, ptr, [rsp, +, 24], r15
mov bl, byte, ptr, [r15]
lea rdi, [rsp, +, 160]
call core::ptr::drop_in_place<matchit::tree::Node<bool>>
cmp qword, ptr, [rsp, +, 32], 0
je .LBB31_62
mov rsi, qword, ptr, [rsp, +, 48]
test rsi, rsi
je .LBB31_62
mov rdi, qword, ptr, [rsp, +, 40]
test rdi, rdi
je .LBB31_62
shl rsi, 5
je .LBB31_62
mov edx, 8
call qword, ptr, [rip, +, __rust_dealloc@GOTPCREL]
.LBB31_62:
mov eax, ebx
add rsp, 360
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
.LBB31_63:
lea rdx, [rip, +, .L__unnamed_30]
xor edi, edi
xor esi, esi
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17h683ff5e3e4d1c401E@GOTPCREL]
jmp .LBB31_107
.LBB31_64:
lea rdx, [rip, +, .L__unnamed_31]
xor edi, edi
xor esi, esi
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17h683ff5e3e4d1c401E@GOTPCREL]
jmp .LBB31_107
.LBB31_65:
lea rdx, [rip, +, .L__unnamed_32]
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17h683ff5e3e4d1c401E@GOTPCREL]
jmp .LBB31_107
.LBB31_32:
cmp r13, 1
jne .LBB31_35
cmp al, 47
jne .LBB31_35
.LBB31_34:
mov dl, 1
cmp byte, ptr, [r15, +, 78], 0
jne .LBB31_36
.LBB31_35:
xor edx, edx
.LBB31_36:
cmp qword, ptr, [rsp, +, 24], 0
je .LBB31_41
mov rsi, qword, ptr, [rsp, +, 40]
test rsi, rsi
je .LBB31_41
mov rdi, qword, ptr, [rsp, +, 32]
test rdi, rdi
je .LBB31_41
shl rsi, 5
je .LBB31_41
mov ebx, edx
mov edx, 8
call qword, ptr, [rip, +, __rust_dealloc@GOTPCREL]
mov edx, ebx
.LBB31_41:
mov byte, ptr, [rsp, +, 24], dl
lea rdi, [rip, +, .L__unnamed_33]
lea rcx, [rip, +, .L__unnamed_34]
lea r8, [rip, +, .L__unnamed_35]
lea rdx, [rsp, +, 24]
mov esi, 43
call qword, ptr, [rip, +, _ZN4core6result13unwrap_failed17h68f8047be2d6356fE@GOTPCREL]
jmp .LBB31_107
.LBB31_66:
lea r8, [rip, +, .L__unnamed_36]
mov rdi, r12
mov rsi, r13
xor edx, edx
mov rcx, rbx
call qword, ptr, [rip, +, _ZN4core3str16slice_error_fail17ha968bfd0bb02cdfbE@GOTPCREL]
jmp .LBB31_107
.LBB31_67:
lea rdi, [rip, +, .L__unnamed_37]
lea rdx, [rip, +, .L__unnamed_38]
mov esi, 40
call qword, ptr, [rip, +, _ZN4core9panicking5panic17h20773dbe024b562fE@GOTPCREL]
jmp .LBB31_107
.LBB31_68:
lea rdx, [rip, +, .L__unnamed_39]
mov edi, 1
xor esi, esi
call qword, ptr, [rip, +, _ZN4core5slice5index26slice_start_index_len_fail17hd15071aca4163e81E@GOTPCREL]
jmp .LBB31_107
.LBB31_69:
lea rax, [rsp, +, 8]
movups xmm0, xmmword, ptr, [rax]
movaps xmmword, ptr, [rsp, +, 144], xmm0
lea rdi, [rip, +, .L__unnamed_33]
lea rcx, [rip, +, .L__unnamed_40]
lea r8, [rip, +, .L__unnamed_41]
lea rdx, [rsp, +, 144]
mov esi, 43
call qword, ptr, [rip, +, _ZN4core6result13unwrap_failed17h68f8047be2d6356fE@GOTPCREL]
jmp .LBB31_107
.LBB31_70:
add rbx, 1
cmp r13, rbx
sete dl
jmp .LBB31_36
.LBB31_71:
lea r8, [rip, +, .L__unnamed_42]
mov rdi, r12
mov rsi, r14
mov rdx, rbp
mov rcx, r14
call qword, ptr, [rip, +, _ZN4core3str16slice_error_fail17ha968bfd0bb02cdfbE@GOTPCREL]
jmp .LBB31_107
.LBB31_26:
lea r8, [rip, +, .L__unnamed_43]
mov rdi, r12
mov rsi, r13
mov rdx, rbx
mov rcx, r13
call qword, ptr, [rip, +, _ZN4core3str16slice_error_fail17ha968bfd0bb02cdfbE@GOTPCREL]
jmp .LBB31_107
.LBB31_72:
mov rbp, r14
.LBB31_73:
cmp r14, 1
jne .LBB31_75
mov dl, 1
cmp byte, ptr, [r12], 47
je .LBB31_36
.LBB31_75:
lea rax, [r14, +, 1]
cmp rbp, rax
jne .LBB31_35
cmp r14, rbp
jae .LBB31_104
add rbp, -1
cmp r14, rbp
jne .LBB31_35
mov rsi, qword, ptr, [r15]
cmp byte, ptr, [rsi, +, r14], 47
jne .LBB31_35
mov rdi, r12
mov rdx, r14
call qword, ptr, [rip, +, bcmp@GOTPCREL]
test eax, eax
je .LBB31_34
jmp .LBB31_35
.LBB31_81:
cmp r14, 1
jne .LBB31_85
cmp byte, ptr, [r12], 47
jne .LBB31_85
cmp byte, ptr, [rbx, +, r13, +, 76], 0
je .LBB31_85
mov dl, 1
cmp byte, ptr, [rbx, +, r13, +, 77], 0
jne .LBB31_36
.LBB31_85:
mov rcx, qword, ptr, [rbx, +, r13, +, 40]
test rcx, rcx
je .LBB31_35
mov rdx, qword, ptr, [rbx, +, r13, +, 24]
mov eax, 78
xor edi, edi
.LBB31_87:
cmp byte, ptr, [rdx, +, rdi], 47
je .LBB31_96
add rdi, 1
add rax, 80
cmp rcx, rdi
jne .LBB31_87
jmp .LBB31_35
.LBB31_89:
lea rax, [rip, +, .L__unnamed_44]
mov edi, 2
mov rsi, rdx
mov rdx, rax
call qword, ptr, [rip, +, _ZN4core5slice5index26slice_start_index_len_fail17hd15071aca4163e81E@GOTPCREL]
jmp .LBB31_107
.LBB31_90:
movups xmm0, xmmword, ptr, [rsp, +, 8]
movaps xmmword, ptr, [rsp, +, 144], xmm0
lea rdi, [rip, +, .L__unnamed_33]
lea rcx, [rip, +, .L__unnamed_40]
lea r8, [rip, +, .L__unnamed_45]
lea rdx, [rsp, +, 144]
mov esi, 43
call qword, ptr, [rip, +, _ZN4core6result13unwrap_failed17h68f8047be2d6356fE@GOTPCREL]
jmp .LBB31_107
.LBB31_91:
cmp qword, ptr, [r15, +, 64], 1
jne .LBB31_35
mov rax, qword, ptr, [r15, +, 48]
mov rcx, qword, ptr, [rax, +, 16]
test rcx, rcx
je .LBB31_102
cmp rcx, 1
jne .LBB31_35
mov rcx, qword, ptr, [rax]
cmp byte, ptr, [rcx], 47
jne .LBB31_35
mov dl, 1
cmp byte, ptr, [rax, +, 78], 0
je .LBB31_35
jmp .LBB31_36
.LBB31_96:
mov rsi, qword, ptr, [rbx, +, r13, +, 64]
cmp rsi, rdi
jbe .LBB31_105
mov rcx, qword, ptr, [rbx, +, r13, +, 48]
cmp qword, ptr, [rcx, +, rax, -, 62], 1
jne .LBB31_99
mov dl, 1
cmp byte, ptr, [rcx, +, rax], 0
jne .LBB31_36
.LBB31_99:
cmp byte, ptr, [rcx, +, rax, -, 1], 2
jne .LBB31_35
cmp qword, ptr, [rcx, +, rax, -, 14], 0
je .LBB31_106
mov rax, qword, ptr, [rcx, +, rax, -, 30]
mov dl, 1
cmp byte, ptr, [rax, +, 78], 0
je .LBB31_35
jmp .LBB31_36
.LBB31_102:
cmp qword, ptr, [rax, +, 40], 1
jne .LBB31_35
mov rax, qword, ptr, [rax, +, 24]
mov dl, 1
cmp byte, ptr, [rax], 47
jne .LBB31_35
jmp .LBB31_36
.LBB31_104:
lea rdx, [rip, +, .L__unnamed_46]
mov rdi, r14
mov rsi, rbp
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17h683ff5e3e4d1c401E@GOTPCREL]
jmp .LBB31_107
.LBB31_105:
lea rdx, [rip, +, .L__unnamed_47]
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17h683ff5e3e4d1c401E@GOTPCREL]
jmp .LBB31_107
.LBB31_106:
lea rdx, [rip, +, .L__unnamed_48]
xor edi, edi
xor esi, esi
call qword, ptr, [rip, +, _ZN4core9panicking18panic_bounds_check17h683ff5e3e4d1c401E@GOTPCREL]
.LBB31_107:
ud2
.LBB31_108:
mov rbx, rax
lea rdi, [rsp, +, 24]
call core::ptr::drop_in_place<matchit::tree::Match<&bool>>
jmp .LBB31_114
.LBB31_109:
jmp .LBB31_112
.LBB31_110:
mov rbx, rax
jmp .LBB31_113
.LBB31_111:
.LBB31_112:
mov rbx, rax
lea rdi, [rsp, +, 24]
call core::ptr::drop_in_place<matchit::params::Params>
.LBB31_113:
lea rdi, [rsp, +, 160]
call core::ptr::drop_in_place<matchit::tree::Node<bool>>
.LBB31_114:
mov rdi, rbx
call _Unwind_Resume
ud2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment