downvote tiếp đi!!! downvote đi!!! không ai quan tâm đâu...
init():
ret
Yoshi():
push rax
push2p rbp, r15
push2p r14, r13
push2p r12, rbx
sub rsp, 16
mov rdi, qword ptr [rip + std::cin@GOTPCREL]
lea rsi, [rsp + 4]
call std::istream::operator>>(int&)@PLT
movsxd r12, dword ptr [rsp + 4]
test r12, r12
js .LBB1_37
test r12d, r12d
je .LBB1_15
{nf} shl r15, r12, 2
mov rdi, r15
call operator new(unsigned long)@PLT
mov rbx, rax
mov dword ptr [rax], 0
lea r14, [rax + 4]
cmp r12d, 1
je .LBB1_4
lea r13, [rbx + r15]
lea rdx, [r15 - 4]
mov rdi, r14
xor esi, esi
call memset@PLT
mov r14, r13
.LBB1_4:
lea rbp, [rbx + 4*r12]
mov r15, qword ptr [rip + std::cin@GOTPCREL]
mov r12, rbx
mov qword ptr [rsp + 8], rbp
.LBB1_5:
mov rdi, r15
mov rsi, r12
call std::istream::operator>>(int&)@PLT
add r12, 4
cmp r12, r14
jne .LBB1_5
movsxd r13, dword ptr [rsp + 4]
test r13, r13
js .LBB1_38
test r13d, r13d
je .LBB1_16
{nf} shl r12, r13, 2
mov rdi, r12
call operator new(unsigned long)@PLT
mov r14, rax
mov dword ptr [rax], 0
lea r15, [rax + 4]
cmp r13d, 1
je .LBB1_12
lea rbp, [r14 + r12]
lea rdx, [r12 - 4]
mov rdi, r15
xor esi, esi
call memset@PLT
mov r15, rbp
.LBB1_12:
lea rbp, [r14 + 4*r13]
mov r12, qword ptr [rip + std::cin@GOTPCREL]
mov r13, r14
.LBB1_13:
mov rdi, r12
mov rsi, r13
call std::istream::operator>>(int&)@PLT
add r13, 4
cmp r13, r15
jne .LBB1_13
jmp .LBB1_17
.LBB1_15:
xor ebx, ebx
mov qword ptr [rsp + 8], 0
.LBB1_16:
xor ebp, ebp
xor r14d, r14d
.LBB1_17:
mov ecx, 1
xor esi, esi
xor edi, edi
jmp .LBB1_19
.LBB1_18:
inc rdi
inc rcx
cmp rdi, 3000
je .LBB1_28
.LBB1_19:
cmp rdi, 2998
ja .LBB1_18
mov r8d, dword ptr [rbx + 4*rdi]
mov r9d, dword ptr [r14 + 4*rdi]
mov r10, rcx
jmp .LBB1_23
.LBB1_21:
mov eax, r16d
.LBB1_22:
{nf} shl edx, eax, 13
xor eax, edx
{nf} shr edx, eax, 17
xor eax, edx
{nf} shl edx, eax, 5
xor eax, edx
add rsi, rax
inc r10
cmp r10, 3000
je .LBB1_18
.LBB1_23:
mov eax, dword ptr [rbx + 4*r10]
{nf} sub edx, r8d, eax
sub eax, r8d
cmovl eax, edx
mov edx, dword ptr [r14 + 4*r10]
{nf} sub r11d, r9d, edx
sub edx, r9d
cmovl edx, r11d
cmp eax, edx
cmovb r16d, edx, eax
cmovbe eax, edx
test r16d, r16d
je .LBB1_22
xor edx, edx
div r16d
test edx, edx
je .LBB1_21
tzcnt eax, edx
tzcnt r11d, r16d
shrx edx, edx, eax
shrx r16d, r16d, r11d
.LBB1_26:
{nf} sub r17d, r16d, edx
sub r18d, edx, r16d
cmovae edx, r16d
cmovae r17d, r18d
tzcnt r16d, r18d
shrx r16d, r17d, r16d
test r16d, r16d
jne .LBB1_26
cmp r11d, eax
cmovb eax, r11d
shlx eax, edx, eax
jmp .LBB1_22
.LBB1_28:
mov rdi, qword ptr [rip + std::cout@GOTPCREL]
call std::ostream& std::ostream::_M_insert<long>(long)@PLT
mov byte ptr [rsp + 3], 10
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx - 24]
cmp qword ptr [rax + rcx + 16], 0
je .LBB1_31
lea rsi, [rsp + 3]
mov edx, 1
mov rdi, rax
call std::basic_ostream<char, std::char_traits<char>>& std::__ostream_insert<char, std::char_traits<char>>(std::basic_ostream<char, std::char_traits<char>>&, char const*, long)@PLT
jmp .LBB1_32
.LBB1_31:
mov rdi, rax
mov esi, 10
call std::ostream::put(char)@PLT
.LBB1_32:
test r14, r14
je .LBB1_34
{nf} sub rsi, rbp, r14
mov rdi, r14
call operator delete(void*, unsigned long)@PLT
.LBB1_34:
test rbx, rbx
je .LBB1_36
{nf} sub rsi, qword ptr [rsp + 8], rbx
mov rdi, rbx
call operator delete(void*, unsigned long)@PLT
.LBB1_36:
add rsp, 16
pop2p rbx, r12
pop2p r13, r14
pop2p r15, rbp
pop rax
ret
.LBB1_37:
lea rdi, [rip + .L.str.4]
call std::__throw_length_error(char const*)@PLT
.LBB1_38:
lea rdi, [rip + .L.str.4]
call std::__throw_length_error(char const*)@PLT
jmp .LBB1_47
mov r15, rax
test r14, r14
jne .LBB1_45
test rbx, rbx
jne .LBB1_48
jmp .LBB1_43
mov r15, rax
.LBB1_45:
{nf} sub rsi, rbp, r14
mov rdi, r14
call operator delete(void*, unsigned long)@PLT
test rbx, rbx
jne .LBB1_48
.LBB1_43:
mov rdi, r15
call _Unwind_Resume@PLT
.LBB1_47:
mov r15, rax
.LBB1_48:
{nf} sub rsi, qword ptr [rsp + 8], rbx
mov rdi, rbx
call operator delete(void*, unsigned long)@PLT
mov rdi, r15
call _Unwind_Resume@PLT
main:
push rax
xor edi, edi
call std::ios_base::sync_with_stdio(bool)@PLT
mov rax, qword ptr [rip + std::cin@GOTPCREL]
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx - 24]
mov qword ptr [rax + rcx + 216], 0
lea rdi, [rip + .L.str]
lea rsi, [rip + .L.str.1]
call fopen@PLT
test rax, rax
je .LBB2_2
mov rax, qword ptr [rip + stdin@GOTPCREL]
mov rdx, qword ptr [rax]
lea rdi, [rip + .L.str]
lea rsi, [rip + .L.str.1]
call freopen@PLT
mov rax, qword ptr [rip + stdout@GOTPCREL]
mov rdx, qword ptr [rax]
lea rdi, [rip + .L.str.2]
lea rsi, [rip + .L.str.3]
call freopen@PLT
.LBB2_2:
call Yoshi()
xor eax, eax
pop rcx
ret
.L.str:
.asciz ".inp"
.L.str.1:
.asciz "r"
.L.str.2:
.asciz ".out"
.L.str.3:
.asciz "w"
.L.str.4:
.asciz "cannot create std::vector larger than max_size()"
DW.ref._gxxpersonality_v0:
.quad __gxx_personality_v0
Bình luận