diff --git a/ASM.md b/ASM.md index 177976f..4bbe6bb 100644 --- a/ASM.md +++ b/ASM.md @@ -35,6 +35,8 @@ main: - ```sword``` - 16bit знаковый - ```sdword``` - 32bit знаковый - ```sqword``` - 64bit знаковый +- ```db``` - метка +- ```dw``` - указатель (size_t) - Строки - [ASCIIZ-строка](https://ru.wikipedia.org/wiki/%D0%9D%D1%83%D0%BB%D1%8C-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0?ysclid=mmhsfli7p5897685524) Строки заключаются в двойные кавычки: diff --git a/BINCOM.md b/BINCOM.md index 6e41fa9..f2df629 100644 --- a/BINCOM.md +++ b/BINCOM.md @@ -1,5 +1,5 @@ -# BINCOM - справочник по коммандам NTSYS -Эта страница посвящена коммандам в NTSYS. +# BINCOM - справочник по командам NTSYS +Эта страница посвящена командам в NTSYS. ## Кратко ```c void (*operations[])(void) = { @@ -98,4 +98,12 @@ void (*operations[])(void) = { > - Вызов BASH (Запись на стек строки и числа **0x03**) > - Запрос к RANDOM (Запись на стек числа **0x04**) > - Установка SEED (Запись на стек **WORD-SEED** и числа **0x05**) -- **SYSCALL 0x1A** - Выполнить вызов к ядру (**ARG**). Формат: **0x1A** \ No newline at end of file +- **SYSCALL 0x1A** - Выполнить вызов к ядру (**ARG**). Формат: **0x1A** +## Управление стеком +> [!NOTE] +> Как работает **SWAP**? +> Команда **SWAP** меняет местами два элемента на стеке, сдвигая другие. +> Она принимает количество элементов в качестве параметра. +> Элементы сдвигаются влево. +- **SWAP 0x1B** - Swap (**ARG1 ARG2**). Формат: **0x1B РАЗМЕР** +- **COPY 0x1C** - Скопировать последний элемент (**ARG**). Формат: **0x1C РАЗМЕР** \ No newline at end of file diff --git a/EXAMPLES.md b/EXAMPLES.md index 7bfef0b..e198ca8 100644 --- a/EXAMPLES.md +++ b/EXAMPLES.md @@ -45,4 +45,16 @@ lwait: ; Цикл задержки mloop: ; Главный цикл push db, main ; Адрес main jmp ; Повторяем цикл +``` +## Пример инструкции SWAP +```asm +main: ; Метка main + push.string "Hello, world!\n" ; Строка + push byte 0x00 ; Дескриптор + syscall ; Системный вызов + push.string "Hello, world!\n" ; Строка + push byte 3 ; Кол-во блоков + swap word ; Блок размером в 2 байта + push byte 0x00 ; Дескриптор + syscall ; Системный вызов ``` \ No newline at end of file diff --git a/asm-savers.h b/asm-savers.h index cc1ad81..4600099 100644 --- a/asm-savers.h +++ b/asm-savers.h @@ -187,6 +187,8 @@ static void __input_datatype(ntsys_argument_parser_t* parser, byte_t* mode) { data_type = 0x01; } else if (strcmp(str, "word") == 0) { data_type = 0x02; + } else if (strcmp(str, "dw") == 0) { + data_type = 0x02; } else if (strcmp(str, "dword") == 0) { data_type = 0x04; } else if (strcmp(str, "qword") == 0) { @@ -251,7 +253,7 @@ static void __input_data(ntsys_argument_parser_t* parser, byte_t* mode) { count_system = 16; } else if (str[1] == 'b') { count_system = 2; - } else { + } else if ((str[1] < '0' || str[1] > '9') && !is_space(str[1])) { ntsys_error("Unknown number system!"); return; } diff --git a/ntfiles.h b/ntfiles.h index 8cf1b98..b8bf5da 100644 --- a/ntfiles.h +++ b/ntfiles.h @@ -625,6 +625,34 @@ static void nt_fs_syscall(void) { } } +void stack_swap(void) { + size_t size = buf[cnt++]; + pop_arg(1, arg1); + pop_arg(size, arg2); + sp -= size; + size_t i = 0; + while (i < ((size_t)(*(byte_t*)arg1) * size)) { + stack[sp + i] = stack[sp + (i) + size]; + i ++; + } + i = 0; + byte_t r = ((*(byte_t*)arg1) - 1) * size; + while (i < size) { + stack[sp + r + i] = arg2[i]; + i ++; + } +} + +void stack_copy(void) { + size_t size = buf[cnt++]; + sp -= size; + size_t i = 0; + while (i < size) { + stack[sp + i] = stack[sp + (i) + size]; + i ++; + } +} + void (*fn_fGH6VSEzu7qNiGVE[])(void) = { /* Операции со стеком (0 - 2) */ push, pop, push_str, @@ -645,7 +673,9 @@ void (*fn_fGH6VSEzu7qNiGVE[])(void) = { /* Адресация на стеке (24 - 25) */ get_sp, set_sp, /* Системные вызовы (26) */ - nt_fs_syscall + nt_fs_syscall, + /* Управление положение на стеке (27 - 28) */ + stack_swap, stack_copy }; #undef stack diff --git a/ntsys b/ntsys index b0e6631..5cd015d 100755 Binary files a/ntsys and b/ntsys differ diff --git a/ntsys-assembler.h b/ntsys-assembler.h index 5340d87..1c09ffb 100644 --- a/ntsys-assembler.h +++ b/ntsys-assembler.h @@ -12,7 +12,7 @@ * XX - шестнадцатиричные данные */ -const size_t ntsys_command_count = 0x1C; +const size_t ntsys_command_count = 0x1E; char* ntsys_asm_table[] = { "push=00:T:D", @@ -50,6 +50,9 @@ char* ntsys_asm_table[] = { "syscall=1A", + "swap=1B:T", + "dup=1C:T", + "pass=" }; diff --git a/ntsys.s b/ntsys.s new file mode 100644 index 0000000..5f25f4d --- /dev/null +++ b/ntsys.s @@ -0,0 +1,4191 @@ + .file "ntsys.c" + .text + .p2align 4 + .type push, @function +push: +.LFB28: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %edx + movq __ntsys_buffer(%rip), %rsi + movzbl (%rsi,%rdx), %edi + movq %rdx, %rax + movl __ntsys_stack_pointer(%rip), %edx + movzbl %dil, %ecx + subl %ecx, %edx + movl %edx, __ntsys_stack_pointer(%rip) + testq %rdi, %rdi + je .L2 + addl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + movzbl (%rsi,%rax), %ecx + movq __ntsys_stack(%rip), %rax + movb %cl, (%rax,%rdx) + movl $1, %edx + cmpq $1, %rdi + je .L4 + .p2align 4,,10 + .p2align 3 +.L3: + movl __ntsys_buffer_ptr(%rip), %eax + movq __ntsys_buffer(%rip), %rcx + addl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + movzbl (%rcx,%rax), %esi + movq __ntsys_stack(%rip), %rcx + movl __ntsys_stack_pointer(%rip), %eax + addq %rdx, %rcx + addq $1, %rdx + movb %sil, (%rcx,%rax) + cmpq %rdx, %rdi + jne .L3 +.L4: + movl __ntsys_buffer_ptr(%rip), %eax +.L2: + addl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + ret + .cfi_endproc +.LFE28: + .size push, .-push + .p2align 4 + .type pop, @function +pop: +.LFB29: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %eax + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %eax + addl %eax, __ntsys_stack_pointer(%rip) + ret + .cfi_endproc +.LFE29: + .size pop, .-pop + .p2align 4 + .type push_str, @function +push_str: +.LFB30: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %eax + movq __ntsys_buffer(%rip), %rdi + movl __ntsys_stack_pointer(%rip), %r9d + cmpb $0, (%rdi,%rax) + movq %rax, %r8 + je .L14 + xorl %edx, %edx + .p2align 4,,10 + .p2align 3 +.L15: + movq %rdx, %rcx + addq $1, %rdx + leal (%r8,%rdx), %esi + movl %esi, __ntsys_buffer_ptr(%rip) + cmpb $0, (%rdi,%rsi) + movq %rsi, %rax + jne .L15 + addq $2, %rcx + movl %r9d, %edx + subl %ecx, %edx + subl %ecx, %eax + movl %edx, __ntsys_stack_pointer(%rip) + testq %rcx, %rcx + je .L18 + addl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + movzbl (%rdi,%rax), %esi + movq __ntsys_stack(%rip), %rax + movb %sil, (%rax,%rdx) + cmpq $1, %rcx + je .L17 + movl $1, %edx + .p2align 4,,10 + .p2align 3 +.L19: + movl __ntsys_buffer_ptr(%rip), %eax + movq __ntsys_buffer(%rip), %rsi + addl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + movzbl (%rsi,%rax), %edi + movq __ntsys_stack(%rip), %rsi + movl __ntsys_stack_pointer(%rip), %eax + addq %rdx, %rsi + addq $1, %rdx + movb %dil, (%rsi,%rax) + cmpq %rdx, %rcx + jne .L19 +.L17: + movl __ntsys_buffer_ptr(%rip), %eax +.L18: + addl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + ret + .p2align 4,,10 + .p2align 3 +.L14: + leal -1(%r9), %edx + movl %edx, __ntsys_stack_pointer(%rip) + movzbl (%rdi,%rax), %ecx + movq __ntsys_stack(%rip), %rax + movb %cl, (%rax,%rdx) + jmp .L17 + .cfi_endproc +.LFE30: + .size push_str, .-push_str + .p2align 4 + .globl stack_copy + .type stack_copy, @function +stack_copy: +.LFB64: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %eax + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %esi + movl __ntsys_stack_pointer(%rip), %eax + movzbl %sil, %edx + subl %edx, %eax + movl %eax, __ntsys_stack_pointer(%rip) + testq %rsi, %rsi + je .L27 + movq __ntsys_stack(%rip), %rdx + leaq (%rdx,%rsi), %rcx + movzbl (%rcx,%rax), %ecx + movb %cl, (%rdx,%rax) + movl $1, %edx + cmpq $1, %rsi + je .L27 + .p2align 4,,10 + .p2align 3 +.L29: + movl __ntsys_stack_pointer(%rip), %eax + movq __ntsys_stack(%rip), %rcx + addq %rdx, %rax + addq $1, %rdx + leaq (%rcx,%rax), %rdi + movzbl (%rdi,%rsi), %edi + movb %dil, (%rcx,%rax) + cmpq %rdx, %rsi + jne .L29 +.L27: + ret + .cfi_endproc +.LFE64: + .size stack_copy, .-stack_copy + .p2align 4 + .type get_sp, @function +get_sp: +.LFB58: + .cfi_startproc + endbr64 + movl __ntsys_stack_pointer(%rip), %eax + movq __ntsys_stack(%rip), %rcx + leal -2(%rax), %edx + movl %edx, __ntsys_stack_pointer(%rip) + movb %dl, (%rcx,%rdx) + movl __ntsys_stack_pointer(%rip), %eax + movzbl 1+__ntsys_stack_pointer(%rip), %ecx + movq __ntsys_stack(%rip), %rdx + movb %cl, 1(%rdx,%rax) + ret + .cfi_endproc +.LFE58: + .size get_sp, .-get_sp + .p2align 4 + .type set_sp, @function +set_sp: +.LFB59: + .cfi_startproc + endbr64 + movl __ntsys_stack_pointer(%rip), %eax + movq __ntsys_stack(%rip), %rdx + movzbl (%rdx,%rax), %ecx + movb %cl, arg1_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%rdx,%rax), %eax + movb %al, 1+arg1_fGH6VSEzu7qNiGVE(%rip) + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, __ntsys_stack_pointer(%rip) + ret + .cfi_endproc +.LFE59: + .size set_sp, .-set_sp + .p2align 4 + .type nt_goto, @function +nt_goto: +.LFB44: + .cfi_startproc + endbr64 + movl __ntsys_stack_pointer(%rip), %edx + movq __ntsys_stack(%rip), %rcx + movzbl (%rcx,%rdx), %esi + movq %rdx, %rax + addl $2, %eax + movb %sil, arg1_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%rcx,%rdx), %edx + movl %eax, __ntsys_stack_pointer(%rip) + movb %dl, 1+arg1_fGH6VSEzu7qNiGVE(%rip) + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, __ntsys_buffer_ptr(%rip) + ret + .cfi_endproc +.LFE44: + .size nt_goto, .-nt_goto + .p2align 4 + .type mrd, @function +mrd: +.LFB57: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %eax + movl __ntsys_stack_pointer(%rip), %ecx + movq __ntsys_stack(%rip), %rsi + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rsi,%rcx), %edi + movzbl (%rdx,%rax), %r8d + movq %rcx, %rax + movb %dil, arg1_fGH6VSEzu7qNiGVE(%rip) + addl $2, %eax + movzbl 1(%rsi,%rcx), %ecx + subl %r8d, %eax + movb %cl, 1+arg1_fGH6VSEzu7qNiGVE(%rip) + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %ecx + movl %eax, __ntsys_stack_pointer(%rip) + testq %r8, %r8 + je .L40 + movzbl (%rsi,%rcx), %edx + addq $1, %rcx + movb %dl, (%rsi,%rax) + movl $1, %edx + cmpq $1, %r8 + je .L40 + .p2align 4,,10 + .p2align 3 +.L43: + movq __ntsys_stack(%rip), %rax + movl __ntsys_stack_pointer(%rip), %esi + movzbl (%rax,%rcx), %edi + addq %rdx, %rax + addq $1, %rdx + addq $1, %rcx + movb %dil, (%rax,%rsi) + cmpq %rdx, %r8 + jne .L43 +.L40: + ret + .cfi_endproc +.LFE57: + .size mrd, .-mrd + .p2align 4 + .type nt_not, @function +nt_not: +.LFB32: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %eax + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %r8d + testq %r8, %r8 + je .L50 + movl __ntsys_stack_pointer(%rip), %edi + xorl %eax, %eax + addq __ntsys_stack(%rip), %rdi + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %rsi + .p2align 4,,10 + .p2align 3 +.L52: + movzbl (%rdi,%rax), %edx + movq %rax, %rcx + movb %dl, (%rsi,%rax) + leaq 1(%rax), %rax + cmpq %rax, %r8 + jne .L52 + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + notl %eax + movb %al, (%rdi) + movl $1, %eax + cmpq $1, %r8 + je .L50 + .p2align 4,,10 + .p2align 3 +.L53: + movzbl (%rsi,%rax), %edx + movq __ntsys_stack(%rip), %r8 + movl __ntsys_stack_pointer(%rip), %edi + addq %rax, %r8 + notl %edx + movb %dl, (%r8,%rdi) + movq %rax, %rdx + addq $1, %rax + cmpq %rdx, %rcx + jne .L53 +.L50: + ret + .cfi_endproc +.LFE32: + .size nt_not, .-nt_not + .p2align 4 + .type mwrt, @function +mwrt: +.LFB56: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %eax + movq __ntsys_stack(%rip), %r10 + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %esi + movl __ntsys_stack_pointer(%rip), %eax + movzbl (%r10,%rax), %edx + movq %rax, %r8 + movq %rsi, %r9 + addl $2, %r8d + movb %dl, arg1_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%r10,%rax), %eax + movl %r8d, __ntsys_stack_pointer(%rip) + movb %al, 1+arg1_fGH6VSEzu7qNiGVE(%rip) + testq %rsi, %rsi + je .L62 + movl %r8d, %edx + xorl %eax, %eax + leaq (%r10,%rdx), %rdi + leaq arg2_fGH6VSEzu7qNiGVE(%rip), %rdx + .p2align 4,,10 + .p2align 3 +.L64: + movzbl (%rdi,%rax), %ecx + movb %cl, (%rdx,%rax) + addq $1, %rax + cmpq %rax, %rsi + jne .L64 + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %ecx + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + addl %r8d, %r9d + movl %r9d, __ntsys_stack_pointer(%rip) + leaq (%rsi,%rcx), %rdi + movb %al, (%r10,%rcx) + subq %rcx, %rdx + leaq 1(%rcx), %rax + cmpq $1, %rsi + je .L62 + .p2align 4,,10 + .p2align 3 +.L66: + movzbl (%rdx,%rax), %esi + movq __ntsys_stack(%rip), %rcx + movb %sil, (%rcx,%rax) + addq $1, %rax + cmpq %rax, %rdi + jne .L66 +.L62: + ret + .cfi_endproc +.LFE56: + .size mwrt, .-mwrt + .p2align 4 + .globl stack_swap + .type stack_swap, @function +stack_swap: +.LFB63: + .cfi_startproc + endbr64 + movl __ntsys_buffer_ptr(%rip), %eax + movq __ntsys_stack(%rip), %rcx + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %r10d + movl __ntsys_stack_pointer(%rip), %edx + movzbl (%rcx,%rdx), %esi + leal 1(%rdx), %ebx + movl %ebx, __ntsys_stack_pointer(%rip) + leaq (%rcx,%rbx), %r11 + movb %sil, arg1_fGH6VSEzu7qNiGVE(%rip) + testq %r10, %r10 + je .L74 + movq %r10, %r9 + xorl %edx, %edx + leaq arg2_fGH6VSEzu7qNiGVE(%rip), %r8 + .p2align 4,,10 + .p2align 3 +.L76: + movzbl (%r11,%rdx), %eax + movq %rdx, %rdi + movb %al, (%r8,%rdx) + leaq 1(%rdx), %rdx + cmpq %rdx, %r10 + jne .L76 + movzbl %sil, %eax + imulq %r10, %rax + testq %rax, %rax + je .L77 + addq %r10, %rcx + movzbl (%rcx,%rbx), %eax + movb %al, (%r11) + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %ecx + movl $1, %eax + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %r11 + movq %rcx, %rsi + imulq %r10, %rcx + cmpq $1, %rcx + jbe .L92 + .p2align 4,,10 + .p2align 3 +.L78: + movl __ntsys_stack_pointer(%rip), %ecx + movq __ntsys_stack(%rip), %rsi + addq %rax, %rcx + addq $1, %rax + leaq (%rsi,%rcx), %r10 + movzbl (%r10,%rdx), %r10d + movb %r10b, (%rsi,%rcx) + movzbl (%r11), %ecx + movq %rcx, %rsi + imulq %rdx, %rcx + cmpq %rcx, %rax + jb .L78 +.L92: + movq __ntsys_stack(%rip), %rcx +.L77: + leal -1(%rsi), %eax + xorl %edx, %edx + imull %r9d, %eax + movzbl %al, %eax + jmp .L80 + .p2align 4,,10 + .p2align 3 +.L93: + movq __ntsys_stack(%rip), %rcx +.L80: + movzbl (%r8,%rdx), %r9d + addq %rdx, %rcx + movl %eax, %esi + addl __ntsys_stack_pointer(%rip), %esi + movb %r9b, (%rcx,%rsi) + movq %rdx, %rcx + addq $1, %rdx + cmpq %rdi, %rcx + jne .L93 +.L74: + popq %rbx + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE63: + .size stack_swap, .-stack_swap + .p2align 4 + .type bez_bnez, @function +bez_bnez: +.LFB45: + .cfi_startproc + movl __ntsys_buffer_ptr(%rip), %eax + movq __ntsys_stack(%rip), %r11 + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + movl %edi, %r10d + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %r9d + movl __ntsys_stack_pointer(%rip), %edx + movq %r9, %rdi + movl %r9d, %ebx + leaq (%r11,%rdx), %rsi + movq %rdx, %r8 + andl $15, %edi + andl $15, %ebx + je .L123 + xorl %eax, %eax + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %rcx + .p2align 4,,10 + .p2align 3 +.L108: + movzbl (%rsi,%rax), %edx + movb %dl, (%rcx,%rax) + addq $1, %rax + cmpq %rax, %rdi + jne .L108 + movzbl %bl, %ebx + addl %ebx, %r8d + movl %r8d, __ntsys_stack_pointer(%rip) + cmpb $-15, %r9b + je .L99 + ja .L100 + cmpb $4, %r9b + je .L105 + ja .L97 + cmpb $1, %r9b + je .L99 +.L98: + cmpb $2, %r9b + jne .L122 +.L107: + cmpw $0, arg1_fGH6VSEzu7qNiGVE(%rip) + sete %cl + jmp .L103 + .p2align 4,,10 + .p2align 3 +.L100: + cmpb $-12, %r9b + je .L105 + cmpb $-8, %r9b + je .L106 + cmpb $-14, %r9b + je .L107 +.L122: + xorl %ecx, %ecx + jmp .L103 + .p2align 4,,10 + .p2align 3 +.L123: + cmpb $4, %r9b + je .L105 + jbe .L98 +.L97: + cmpb $8, %r9b + jne .L122 +.L106: + cmpq $0, arg1_fGH6VSEzu7qNiGVE(%rip) + sete %cl +.L103: + movl %r8d, %eax + addl $2, %r8d + movzbl (%r11,%rax), %edx + movb %dl, arg2_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%r11,%rax), %eax + movl %r8d, __ntsys_stack_pointer(%rip) + movb %al, 1+arg2_fGH6VSEzu7qNiGVE(%rip) + cmpb %r10b, %cl + je .L94 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, __ntsys_buffer_ptr(%rip) +.L94: + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L99: + .cfi_restore_state + cmpb $0, arg1_fGH6VSEzu7qNiGVE(%rip) + sete %cl + jmp .L103 + .p2align 4,,10 + .p2align 3 +.L105: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + testl %eax, %eax + sete %cl + jmp .L103 + .cfi_endproc +.LFE45: + .size bez_bnez, .-bez_bnez + .p2align 4 + .type bnez, @function +bnez: +.LFB54: + .cfi_startproc + endbr64 + movl $1, %edi + jmp bez_bnez + .cfi_endproc +.LFE54: + .size bnez, .-bnez + .p2align 4 + .type bez, @function +bez: +.LFB55: + .cfi_startproc + endbr64 + xorl %edi, %edi + jmp bez_bnez + .cfi_endproc +.LFE55: + .size bez, .-bez + .p2align 4 + .type logic_operation, @function +logic_operation: +.LFB38: + .cfi_startproc + movl __ntsys_buffer_ptr(%rip), %eax + movl __ntsys_stack_pointer(%rip), %r10d + pushq %r12 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + movl %edi, %r11d + pushq %rbp + .cfi_def_cfa_offset 24 + .cfi_offset 6, -24 + leal 1(%rax), %edx + pushq %rbx + .cfi_def_cfa_offset 32 + .cfi_offset 3, -32 + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %esi + testq %rsi, %rsi + je .L127 + movq __ntsys_stack(%rip), %rbx + movl %r10d, %edx + movq %rsi, %rbp + xorl %eax, %eax + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %rcx + leaq (%rbx,%rdx), %rdi + .p2align 4,,10 + .p2align 3 +.L128: + movzbl (%rdi,%rax), %edx + movb %dl, (%rcx,%rax) + movq %rax, %rdx + leaq 1(%rax), %rax + cmpq %rax, %rsi + jne .L128 + movzbl %bpl, %eax + leaq arg2_fGH6VSEzu7qNiGVE(%rip), %r8 + leal (%r10,%rax), %r12d + xorl %eax, %eax + movl %r12d, __ntsys_stack_pointer(%rip) + movq %r12, %r10 + leaq (%rbx,%r12), %r9 + .p2align 4,,10 + .p2align 3 +.L136: + movzbl (%r9,%rax), %edi + movb %dil, (%r8,%rax) + movq %rax, %rdi + addq $1, %rax + cmpq %rdx, %rdi + jne .L136 + cmpb $4, %r11b + je .L137 + cmpb $5, %r11b + je .L138 + cmpb $2, %r11b + je .L139 + cmpb $3, %r11b + jne .L226 + cmpb $4, %bpl + je .L154 + ja .L155 + cmpb $1, %bpl + je .L156 + cmpb $2, %bpl + jne .L223 +.L157: + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + orw arg2_fGH6VSEzu7qNiGVE(%rip), %ax + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L154: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + orl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + orq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L130: + movl %r10d, __ntsys_stack_pointer(%rip) + movq __ntsys_stack(%rip), %rbx + movl %r10d, %r12d + testq %rsi, %rsi + je .L126 +.L159: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %rcx + movb %al, (%rbx,%r12) + cmpq $1, %rsi + je .L126 +.L171: + movl $1, %eax + .p2align 4,,10 + .p2align 3 +.L172: + movq __ntsys_stack(%rip), %rdi + movzbl (%rcx,%rax), %r8d + movl __ntsys_stack_pointer(%rip), %edx + addq %rax, %rdi + addq $1, %rax + movb %r8b, (%rdi,%rdx) + cmpq %rax, %rsi + jne .L172 + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 24 + popq %rbp + .cfi_def_cfa_offset 16 + popq %r12 + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L138: + .cfi_restore_state + cmpb $4, %bpl + je .L165 + ja .L166 + cmpb $1, %bpl + je .L167 + cmpb $2, %bpl + jne .L224 +.L168: + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + xorw arg2_fGH6VSEzu7qNiGVE(%rip), %ax + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L165: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + xorl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L170: + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + xorq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + movl %r10d, __ntsys_stack_pointer(%rip) + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L159 +.L226: + cmpb $4, %bpl + je .L141 + ja .L142 + cmpb $1, %bpl + je .L143 + cmpb $2, %bpl + jne .L223 +.L144: + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + sarl %cl, %eax + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L141: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + shrl %cl, arg1_fGH6VSEzu7qNiGVE(%rip) +.L146: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rcx + movl %r10d, __ntsys_stack_pointer(%rip) + shrq %cl, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L159 + .p2align 4,,10 + .p2align 3 +.L137: + cmpb $4, %bpl + je .L160 + ja .L161 + cmpb $1, %bpl + jne .L227 + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + andb arg2_fGH6VSEzu7qNiGVE(%rip), %al + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) +.L163: + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + andw arg2_fGH6VSEzu7qNiGVE(%rip), %ax + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L160: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + andl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L164: + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + andq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + movl %r10d, __ntsys_stack_pointer(%rip) + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L159 + .p2align 4,,10 + .p2align 3 +.L139: + cmpb $4, %bpl + je .L147 + ja .L148 + cmpb $1, %bpl + jne .L228 + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + sall %cl, %eax + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) +.L150: + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + sall %cl, %eax + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) +.L147: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + sall %cl, arg1_fGH6VSEzu7qNiGVE(%rip) +.L152: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rcx + movl %r10d, __ntsys_stack_pointer(%rip) + salq %cl, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L159 + .p2align 4,,10 + .p2align 3 +.L127: + cmpb $3, %dil + je .L130 +.L126: + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 24 + popq %rbp + .cfi_def_cfa_offset 16 + popq %r12 + .cfi_def_cfa_offset 8 + ret +.L161: + .cfi_restore_state + cmpb $8, %bpl + je .L164 +.L223: + movl %r10d, __ntsys_stack_pointer(%rip) + jmp .L159 +.L148: + cmpb $8, %bpl + je .L152 + jmp .L223 +.L155: + cmpb $8, %bpl + jne .L223 + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + orq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + movl %r10d, __ntsys_stack_pointer(%rip) + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L159 +.L142: + cmpb $8, %bpl + je .L146 + jmp .L223 +.L156: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + orb arg2_fGH6VSEzu7qNiGVE(%rip), %al + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L157 +.L167: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + xorb arg2_fGH6VSEzu7qNiGVE(%rip), %al + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L168 +.L228: + cmpb $2, %bpl + je .L150 + jmp .L223 + .p2align 4,,10 + .p2align 3 +.L227: + cmpb $2, %bpl + je .L163 + jmp .L223 + .p2align 4,,10 + .p2align 3 +.L143: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + sarl %cl, %eax + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L144 +.L166: + cmpb $8, %bpl + je .L170 +.L224: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movl %r10d, __ntsys_stack_pointer(%rip) + movb %al, (%rbx,%r12) + jmp .L171 + .cfi_endproc +.LFE38: + .size logic_operation, .-logic_operation + .p2align 4 + .type nt_shr, @function +nt_shr: +.LFB39: + .cfi_startproc + endbr64 + movl $1, %edi + jmp logic_operation + .cfi_endproc +.LFE39: + .size nt_shr, .-nt_shr + .p2align 4 + .type nt_shl, @function +nt_shl: +.LFB40: + .cfi_startproc + endbr64 + movl $2, %edi + jmp logic_operation + .cfi_endproc +.LFE40: + .size nt_shl, .-nt_shl + .p2align 4 + .type nt_or, @function +nt_or: +.LFB41: + .cfi_startproc + endbr64 + movl $3, %edi + jmp logic_operation + .cfi_endproc +.LFE41: + .size nt_or, .-nt_or + .p2align 4 + .type nt_and, @function +nt_and: +.LFB42: + .cfi_startproc + endbr64 + movl $4, %edi + jmp logic_operation + .cfi_endproc +.LFE42: + .size nt_and, .-nt_and + .p2align 4 + .type nt_xor, @function +nt_xor: +.LFB43: + .cfi_startproc + endbr64 + movl $5, %edi + jmp logic_operation + .cfi_endproc +.LFE43: + .size nt_xor, .-nt_xor + .p2align 4 + .type n_up_down_eq, @function +n_up_down_eq: +.LFB47: + .cfi_startproc + movl __ntsys_buffer_ptr(%rip), %eax + movq __ntsys_stack(%rip), %r11 + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + movl %edi, %r9d + leal 1(%rax), %edx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %r10d + movl __ntsys_stack_pointer(%rip), %edx + movq %r10, %r8 + movl %r10d, %ebx + leaq (%r11,%rdx), %rdi + movq %rdx, %rcx + andl $15, %r8d + andl $15, %ebx + je .L335 + xorl %eax, %eax + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %rsi + .p2align 4,,10 + .p2align 3 +.L235: + movzbl (%rdi,%rax), %edx + movb %dl, (%rsi,%rax) + movq %rax, %rdx + leaq 1(%rax), %rax + cmpq %rax, %r8 + jne .L235 + movzbl %bl, %r8d + xorl %eax, %eax + leaq arg2_fGH6VSEzu7qNiGVE(%rip), %rsi + addl %r8d, %ecx + movl %ecx, %ecx + movl %ecx, __ntsys_stack_pointer(%rip) + movq %rcx, %rbx + leaq (%r11,%rcx), %rdi + .p2align 4,,10 + .p2align 3 +.L239: + movzbl (%rdi,%rax), %ecx + movb %cl, (%rsi,%rax) + movq %rax, %rcx + addq $1, %rax + cmpq %rdx, %rcx + jne .L239 + movl %r9d, %eax + leal (%r8,%rbx), %ecx + andl $15, %eax + movl %ecx, __ntsys_stack_pointer(%rip) + cmpb $1, %al + je .L240 + cmpb $2, %al + je .L241 + testb %al, %al + jne .L334 + movl %ecx, %edx + cmpb $-15, %r10b + je .L243 + ja .L244 + movl %ecx, %edx + cmpb $4, %r10b + je .L245 + movl %ecx, %edx + ja .L246 + cmpb $1, %r10b + jne .L336 + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + sete %al + jmp .L252 + .p2align 4,,10 + .p2align 3 +.L241: + movl %ecx, %edx + cmpb $-15, %r10b + je .L262 + ja .L263 + movl %ecx, %edx + cmpb $4, %r10b + je .L264 + movl %ecx, %edx + ja .L265 + cmpb $1, %r10b + jne .L337 + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setb %al + jmp .L252 + .p2align 4,,10 + .p2align 3 +.L334: + movl %ecx, %edx +.L242: + notl %r9d + andl $240, %r9d + je .L338 + movzbl (%r11,%rdx), %eax + addl $2, %ecx + movb %al, arg2_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%r11,%rdx), %eax + movl %ecx, __ntsys_stack_pointer(%rip) + movb %al, 1+arg2_fGH6VSEzu7qNiGVE(%rip) +.L234: + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L240: + .cfi_restore_state + movl %ecx, %edx + cmpb $-15, %r10b + je .L253 + ja .L254 + movl %ecx, %edx + cmpb $4, %r10b + je .L255 + movl %ecx, %edx + ja .L256 + cmpb $1, %r10b + jne .L339 + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + cmpb %al, arg2_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setb %al + jmp .L252 +.L256: + cmpb $8, %r10b + jne .L242 +.L253: + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + cmpq %rax, arg2_fGH6VSEzu7qNiGVE(%rip) + setb %al + .p2align 4,,10 + .p2align 3 +.L252: + notl %r9d + andl $240, %r9d + je .L273 +.L271: + movzbl (%r11,%rdx), %esi + addl $2, %ecx + movb %sil, arg2_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%r11,%rdx), %edx + movl %ecx, __ntsys_stack_pointer(%rip) + movb %dl, 1+arg2_fGH6VSEzu7qNiGVE(%rip) + testb %al, %al + je .L234 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 8 + movl %eax, __ntsys_buffer_ptr(%rip) + ret +.L246: + .cfi_restore_state + cmpb $8, %r10b + jne .L242 +.L243: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + cmpq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + sete %al + jmp .L252 +.L265: + cmpb $8, %r10b + jne .L242 +.L262: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + cmpq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + setb %al + jmp .L252 + .p2align 4,,10 + .p2align 3 +.L338: + xorl %eax, %eax +.L273: + xorl $1, %eax + jmp .L271 + .p2align 4,,10 + .p2align 3 +.L335: + movl %r9d, %eax + andl $15, %eax + cmpb $1, %al + je .L236 + cmpb $2, %al + je .L340 + testb %al, %al + jne .L242 + cmpb $4, %r10b + je .L245 + ja .L246 +.L275: + cmpb $2, %r10b + jne .L242 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + sete %al + jmp .L252 + .p2align 4,,10 + .p2align 3 +.L254: + cmpb $-12, %r10b + je .L259 + cmpb $-8, %r10b + je .L260 + cmpb $-14, %r10b + jne .L334 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setg %al + jmp .L252 + .p2align 4,,10 + .p2align 3 +.L244: + cmpb $-12, %r10b + je .L249 + cmpb $-8, %r10b + je .L250 + cmpb $-14, %r10b + jne .L334 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + sete %al + jmp .L252 + .p2align 4,,10 + .p2align 3 +.L263: + cmpb $-12, %r10b + je .L268 + cmpb $-8, %r10b + je .L269 + cmpb $-14, %r10b + jne .L334 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setl %al + jmp .L252 +.L250: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + cmpq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + sete %al + jmp .L252 +.L269: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + cmpq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setl %al + jmp .L252 +.L260: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + cmpq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setg %al + jmp .L252 +.L259: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setg %al + jmp .L252 +.L255: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + cmpl %eax, arg2_fGH6VSEzu7qNiGVE(%rip) + setb %al + jmp .L252 +.L264: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + setb %al + jmp .L252 +.L249: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + sete %al + jmp .L252 +.L268: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %ecx, %edx + setl %al + jmp .L252 +.L245: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + sete %al + jmp .L252 +.L340: + cmpb $4, %r10b + je .L264 + ja .L265 +.L276: + cmpb $2, %r10b + jne .L242 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + cmpw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + setb %al + jmp .L252 +.L236: + cmpb $4, %r10b + je .L255 + ja .L256 +.L277: + cmpb $2, %r10b + jne .L242 + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + cmpw %ax, arg2_fGH6VSEzu7qNiGVE(%rip) + setb %al + jmp .L252 +.L339: + movl %ecx, %edx + jmp .L277 +.L336: + movl %ecx, %edx + jmp .L275 +.L337: + movl %ecx, %edx + jmp .L276 + .cfi_endproc +.LFE47: + .size n_up_down_eq, .-n_up_down_eq + .p2align 4 + .type eq, @function +eq: +.LFB48: + .cfi_startproc + endbr64 + xorl %edi, %edi + jmp n_up_down_eq + .cfi_endproc +.LFE48: + .size eq, .-eq + .p2align 4 + .type neq, @function +neq: +.LFB49: + .cfi_startproc + endbr64 + movl $240, %edi + jmp n_up_down_eq + .cfi_endproc +.LFE49: + .size neq, .-neq + .p2align 4 + .type up, @function +up: +.LFB50: + .cfi_startproc + endbr64 + movl $1, %edi + jmp n_up_down_eq + .cfi_endproc +.LFE50: + .size up, .-up + .p2align 4 + .type down, @function +down: +.LFB51: + .cfi_startproc + endbr64 + movl $2, %edi + jmp n_up_down_eq + .cfi_endproc +.LFE51: + .size down, .-down + .p2align 4 + .type upne, @function +upne: +.LFB52: + .cfi_startproc + endbr64 + movl $241, %edi + jmp n_up_down_eq + .cfi_endproc +.LFE52: + .size upne, .-upne + .p2align 4 + .type downe, @function +downe: +.LFB53: + .cfi_startproc + endbr64 + movl $242, %edi + jmp n_up_down_eq + .cfi_endproc +.LFE53: + .size downe, .-downe + .p2align 4 + .type nt_fs_syscall, @function +nt_fs_syscall: +.LFB62: + .cfi_startproc + endbr64 + movl __ntsys_stack_pointer(%rip), %eax + movq __ntsys_stack(%rip), %rsi + movq %rax, %rcx + movzbl (%rsi,%rax), %eax + leal 1(%rcx), %edx + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %edx, __ntsys_stack_pointer(%rip) + cmpb $5, %al + ja .L361 + leaq .L350(%rip), %rdi + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset 3, -16 + movslq (%rdi,%rax,4), %rax + addq %rdi, %rax + notrack jmp *%rax + .section .rodata + .align 4 + .align 4 +.L350: + .long .L355-.L350 + .long .L354-.L350 + .long .L353-.L350 + .long .L352-.L350 + .long .L351-.L350 + .long .L349-.L350 + .text + .p2align 4,,10 + .p2align 3 +.L351: + call rand@PLT + movl __ntsys_stack_pointer(%rip), %ebx + movslq %eax, %rdx + movl %eax, %esi + imulq $-2139062143, %rdx, %rdx + sarl $31, %esi + leal -1(%rbx), %ecx + movl %ecx, __ntsys_stack_pointer(%rip) + shrq $32, %rdx + addl %eax, %edx + sarl $7, %edx + subl %esi, %edx + movl %edx, %esi + sall $8, %esi + subl %edx, %esi + movq __ntsys_stack(%rip), %rdx + subl %esi, %eax + movb %al, (%rdx,%rcx) + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L349: + .cfi_restore_state + movzbl (%rsi,%rdx), %eax + addl $3, %ecx + popq %rbx + .cfi_remember_state + .cfi_restore 3 + .cfi_def_cfa_offset 8 + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%rsi,%rdx), %eax + movl %ecx, __ntsys_stack_pointer(%rip) + movb %al, 1+arg1_fGH6VSEzu7qNiGVE(%rip) + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %edi + jmp srand@PLT + .p2align 4,,10 + .p2align 3 +.L355: + .cfi_restore_state + leaq (%rsi,%rdx), %rdi + movq stdout(%rip), %rsi + call fputs@PLT +.L356: + movl __ntsys_stack_pointer(%rip), %edi + movq %rdi, %rbx + addq __ntsys_stack(%rip), %rdi + call strlen@PLT + leal 1(%rbx,%rax), %eax + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 8 + movl %eax, __ntsys_stack_pointer(%rip) + ret + .p2align 4,,10 + .p2align 3 +.L353: + .cfi_restore_state + movzbl (%rsi,%rdx), %eax + addl $3, %ecx + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 8 + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + movzbl 1(%rsi,%rdx), %eax + movl %ecx, __ntsys_stack_pointer(%rip) + movb %al, 1+arg1_fGH6VSEzu7qNiGVE(%rip) + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, fGH6VSEzu7qNiGVE_stat(%rip) + movl __ntsys_buffer_size(%rip), %eax + subl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + ret + .p2align 4,,10 + .p2align 3 +.L352: + .cfi_restore_state + leaq (%rsi,%rdx), %rdi + call system@PLT + movl %eax, fGH6VSEzu7qNiGVE_stat(%rip) + testl %eax, %eax + je .L356 + movl __ntsys_buffer_size(%rip), %eax + subl $1, %eax + movl %eax, __ntsys_buffer_ptr(%rip) + jmp .L356 + .p2align 4,,10 + .p2align 3 +.L354: + movq stdin(%rip), %rdi + call getc@PLT + movq __ntsys_stack(%rip), %rdx + movl %eax, %ecx + movl __ntsys_stack_pointer(%rip), %eax + subl $1, %eax + movl %eax, __ntsys_stack_pointer(%rip) + movb %cl, (%rdx,%rax) + popq %rbx + .cfi_def_cfa_offset 8 + ret +.L361: + .cfi_restore 3 + ret + .cfi_endproc +.LFE62: + .size nt_fs_syscall, .-nt_fs_syscall + .p2align 4 + .type operation, @function +operation: +.LFB33: + .cfi_startproc + movl __ntsys_buffer_ptr(%rip), %eax + movl __ntsys_stack_pointer(%rip), %r10d + pushq %r12 + .cfi_def_cfa_offset 16 + .cfi_offset 12, -16 + pushq %rbp + .cfi_def_cfa_offset 24 + .cfi_offset 6, -24 + leal 1(%rax), %edx + pushq %rbx + .cfi_def_cfa_offset 32 + .cfi_offset 3, -32 + movl %edi, %ebx + movl %edx, __ntsys_buffer_ptr(%rip) + movq __ntsys_buffer(%rip), %rdx + movzbl (%rdx,%rax), %r9d + movq %r9, %rsi + movl %r9d, %ebp + andl $15, %esi + andl $15, %ebp + je .L365 + movq __ntsys_stack(%rip), %r11 + movl %r10d, %edx + xorl %eax, %eax + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %rcx + leaq (%r11,%rdx), %rdi + .p2align 4,,10 + .p2align 3 +.L366: + movzbl (%rdi,%rax), %edx + movb %dl, (%rcx,%rax) + movq %rax, %rdx + leaq 1(%rax), %rax + cmpq %rax, %rsi + jne .L366 + movzbl %bpl, %eax + leaq arg2_fGH6VSEzu7qNiGVE(%rip), %rdi + leal (%r10,%rax), %r12d + xorl %eax, %eax + movl %r12d, __ntsys_stack_pointer(%rip) + movq %r12, %r10 + leaq (%r11,%r12), %r8 + .p2align 4,,10 + .p2align 3 +.L367: + movzbl (%r8,%rax), %ecx + movb %cl, (%rdi,%rax) + movq %rax, %rcx + addq $1, %rax + cmpq %rdx, %rcx + jne .L367 + cmpb $3, %bl + je .L378 + cmpb $4, %bl + je .L379 + cmpb $2, %bl + je .L380 + cmpb $-15, %r9b + je .L381 + ja .L382 + cmpb $4, %r9b + je .L389 + ja .L384 + cmpb $1, %r9b + jne .L427 +.L381: + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + addb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 + .p2align 4,,10 + .p2align 3 +.L379: + cmpb $-15, %r9b + je .L413 + ja .L414 + cmpb $4, %r9b + je .L374 + ja .L375 + cmpb $1, %r9b + je .L415 + cmpb $2, %r9b + jne .L372 + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + xorl %edx, %edx + divw (%rdi) + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 + .p2align 4,,10 + .p2align 3 +.L380: + cmpb $-15, %r9b + je .L394 + ja .L395 + cmpb $4, %r9b + je .L401 + ja .L397 + cmpb $1, %r9b + je .L394 + cmpb $2, %r9b + jne .L372 +.L403: + movzwl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + subw arg2_fGH6VSEzu7qNiGVE(%rip), %ax + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 + .p2align 4,,10 + .p2align 3 +.L378: + cmpb $-15, %r9b + je .L404 + ja .L405 + cmpb $4, %r9b + je .L409 + ja .L371 + cmpb $1, %r9b + je .L406 + cmpb $2, %r9b + jne .L372 +.L411: + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + imulw arg1_fGH6VSEzu7qNiGVE(%rip), %ax + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + .p2align 4,,10 + .p2align 3 +.L393: + movl %r10d, __ntsys_stack_pointer(%rip) +.L425: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + andl $14, %r9d + movb %al, (%r11,%r12) + je .L364 +.L422: + movl $1, %eax + leaq arg1_fGH6VSEzu7qNiGVE(%rip), %rcx + .p2align 4,,10 + .p2align 3 +.L423: + movq __ntsys_stack(%rip), %rdi + movzbl (%rcx,%rax), %r8d + movl __ntsys_stack_pointer(%rip), %edx + addq %rax, %rdi + addq $1, %rax + movb %r8b, (%rdi,%rdx) + cmpq %rax, %rsi + jne .L423 +.L364: + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 24 + popq %rbp + .cfi_def_cfa_offset 16 + popq %r12 + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L365: + .cfi_restore_state + cmpb $3, %dil + je .L461 + cmpb $4, %dil + je .L462 + cmpb $2, %dil + je .L376 + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + cmpb $4, %r9b + je .L389 + ja .L384 +.L427: + cmpb $2, %r9b + jne .L372 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + addw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L382: + cmpb $-12, %r9b + je .L389 + cmpb $-8, %r9b + je .L390 + cmpb $-14, %r9b + jne .L393 + movzwl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + addw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L395: + cmpb $-12, %r9b + je .L401 + cmpb $-8, %r9b + je .L402 + cmpb $-14, %r9b + je .L403 + jmp .L393 +.L414: + cmpb $-12, %r9b + je .L418 + cmpb $-8, %r9b + je .L419 + cmpb $-14, %r9b + jne .L393 + movswl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movswl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + cltd + idivl %ecx + movw %ax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L405: + cmpb $-12, %r9b + je .L409 + cmpb $-8, %r9b + je .L410 + cmpb $-14, %r9b + je .L411 + jmp .L393 +.L376: + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + cmpb $4, %r9b + je .L401 + ja .L397 +.L372: + movl %r10d, __ntsys_stack_pointer(%rip) + testb %bpl, %bpl + je .L364 + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %edx + movq __ntsys_stack(%rip), %rax + movb %dl, (%rax,%r10) + jmp .L422 +.L390: + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + addq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L410: + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + imulq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L402: + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + subq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L419: + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + cqto + idivq (%rdi) + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L384: + cmpb $8, %r9b + jne .L388 + movq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + addq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L462: + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + leaq arg2_fGH6VSEzu7qNiGVE(%rip), %rdi + cmpb $4, %r9b + je .L374 + jbe .L372 +.L375: + cmpb $8, %r9b + jne .L388 + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + xorl %edx, %edx + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + divq arg2_fGH6VSEzu7qNiGVE(%rip) + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L461: + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + cmpb $4, %r9b + je .L409 + jbe .L372 +.L371: + cmpb $8, %r9b + jne .L388 + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + imulq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + movl %r10d, %r12d + movq __ntsys_stack(%rip), %r11 + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L397: + cmpb $8, %r9b + jne .L388 + movq arg1_fGH6VSEzu7qNiGVE(%rip), %rax + subq arg2_fGH6VSEzu7qNiGVE(%rip), %rax + movl %r10d, %r12d + movq %rax, arg1_fGH6VSEzu7qNiGVE(%rip) + movq __ntsys_stack(%rip), %r11 + jmp .L393 + .p2align 4,,10 + .p2align 3 +.L388: + movl %r10d, __ntsys_stack_pointer(%rip) + testb %bpl, %bpl + je .L364 + movq __ntsys_stack(%rip), %r11 + movl %r10d, %r12d + jmp .L425 +.L401: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + subl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L394: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + subb arg2_fGH6VSEzu7qNiGVE(%rip), %al + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L409: + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + imull arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L389: + movl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + addl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L415: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + divb (%rdi) + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L418: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + cltd + idivl (%rdi) + movl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L404: + movzbl arg2_fGH6VSEzu7qNiGVE(%rip), %eax + mulb arg1_fGH6VSEzu7qNiGVE(%rip) +.L412: + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + movl %r10d, __ntsys_stack_pointer(%rip) + movb %al, (%r11,%r12) + jmp .L364 +.L406: + movzbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + mulb arg2_fGH6VSEzu7qNiGVE(%rip) + movb %al, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L374: + movl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + xorl %edx, %edx + divl (%rdi) + movl %eax, arg1_fGH6VSEzu7qNiGVE(%rip) + jmp .L393 +.L413: + movsbl arg1_fGH6VSEzu7qNiGVE(%rip), %eax + movsbl arg2_fGH6VSEzu7qNiGVE(%rip), %ecx + cltd + idivl %ecx + jmp .L412 + .cfi_endproc +.LFE33: + .size operation, .-operation + .p2align 4 + .type add, @function +add: +.LFB34: + .cfi_startproc + endbr64 + movl $1, %edi + jmp operation + .cfi_endproc +.LFE34: + .size add, .-add + .p2align 4 + .type sub, @function +sub: +.LFB35: + .cfi_startproc + endbr64 + movl $2, %edi + jmp operation + .cfi_endproc +.LFE35: + .size sub, .-sub + .p2align 4 + .type mul, @function +mul: +.LFB36: + .cfi_startproc + endbr64 + movl $3, %edi + jmp operation + .cfi_endproc +.LFE36: + .size mul, .-mul + .p2align 4 + .type div_r, @function +div_r: +.LFB37: + .cfi_startproc + endbr64 + movl $4, %edi + jmp operation + .cfi_endproc +.LFE37: + .size div_r, .-div_r + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "\033[1mntsys: \033[91m%s\033[0m\n" + .text + .p2align 4 + .globl ntsys_error + .type ntsys_error, @function +ntsys_error: +.LFB27: + .cfi_startproc + endbr64 + movq %rdi, %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + jmp __printf_chk@PLT + .cfi_endproc +.LFE27: + .size ntsys_error, .-ntsys_error + .section .rodata.str1.1 +.LC1: + .string "Out of memory!" + .text + .p2align 4 + .globl ntsys_get_str + .type ntsys_get_str, @function +ntsys_get_str: +.LFB66: + .cfi_startproc + endbr64 + pushq %r14 + .cfi_def_cfa_offset 16 + .cfi_offset 14, -16 + pushq %r13 + .cfi_def_cfa_offset 24 + .cfi_offset 13, -24 + pushq %r12 + .cfi_def_cfa_offset 32 + .cfi_offset 12, -32 + pushq %rbp + .cfi_def_cfa_offset 40 + .cfi_offset 6, -40 + movq %rsi, %rbp + pushq %rbx + .cfi_def_cfa_offset 48 + .cfi_offset 3, -48 + testq %rdi, %rdi + je .L469 + call free@PLT +.L469: + movq %rbp, %rdi + xorl %r14d, %r14d + xorl %ebx, %ebx + movl $1, %r12d + call ftell@PLT + movq %rax, %r13 + jmp .L470 + .p2align 4,,10 + .p2align 3 +.L472: + cmpl $10, %eax + je .L504 + cmpl $13, %eax + je .L504 + cmpl $33, %eax + cmovnb %r12d, %r14d + addq $1, %rbx +.L470: + movq %rbp, %rdi + call getc@PLT + cmpl $-1, %eax + jne .L472 + testb %r14b, %r14b + jne .L541 +.L473: + xorl %r13d, %r13d + jmp .L468 + .p2align 4,,10 + .p2align 3 +.L541: + testq %rbx, %rbx + je .L473 +.L479: + movq %r13, %rsi + xorl %edx, %edx + movq %rbp, %rdi + call fseek@PLT + leaq 1(%rbx), %rdi + call malloc@PLT + movq %rax, %r13 + testq %rax, %rax + je .L481 + movq %rax, %r12 + movq %rax, %r14 + movq $-18434, %rbx + jmp .L482 + .p2align 4,,10 + .p2align 3 +.L484: + movb %al, (%r14) + addq $1, %r14 +.L482: + movq %rbp, %rdi + call getc@PLT + leal 1(%rax), %edx + cmpl $14, %edx + ja .L484 + btq %rdx, %rbx + jc .L484 + movb $0, (%r14) + movq %r13, %rdi + call strlen@PLT + testq %rax, %rax + je .L485 + movzbl 0(%r13), %edx + leaq -1(%r13), %rcx + movq %rcx, %rbx + cmpb $34, %dl + je .L542 + cmpb $59, %dl + je .L503 + cmpb $35, %dl + jne .L543 +.L503: + xorl %ebp, %ebp +.L498: + movb $0, 1(%rcx) + movq %r13, %rdi + call strlen@PLT + xorl %esi, %esi +.L491: + addq $1, %rbp + addq $1, %rbx + cmpq %rax, %rbp + jnb .L494 +.L544: + movzbl 1(%rbx), %edx + movq %rbx, %rcx + cmpb $34, %dl + je .L495 + cmpb $59, %dl + je .L505 + cmpb $35, %dl + jne .L488 +.L505: + testb %sil, %sil + je .L498 + addq $1, %rbp + addq $1, %rbx + cmpq %rax, %rbp + jb .L544 +.L494: + cmpb $0, 0(%r13) + je .L485 + testq %rax, %rax + je .L485 + addq %r13, %rax + .p2align 4,,10 + .p2align 3 +.L497: + cmpb $32, (%r12) + ja .L468 + addq $1, %r12 + cmpq %rax, %r12 + jne .L497 +.L485: + movq %r13, %rdi + call free@PLT +.L539: + movl $5, %edi + call malloc@PLT + movl $1936941424, (%rax) + movq %rax, %r13 + movb $0, 4(%rax) +.L468: + popq %rbx + .cfi_remember_state + .cfi_def_cfa_offset 40 + movq %r13, %rax + popq %rbp + .cfi_def_cfa_offset 32 + popq %r12 + .cfi_def_cfa_offset 24 + popq %r13 + .cfi_def_cfa_offset 16 + popq %r14 + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L542: + .cfi_restore_state + movq %r13, %rcx + xorl %esi, %esi + xorl %ebp, %ebp + .p2align 4,,10 + .p2align 3 +.L495: + cmpb $92, (%rcx) + je .L491 + xorl $1, %esi + jmp .L491 + .p2align 4,,10 + .p2align 3 +.L488: + cmpb $44, %dl + jne .L491 + testb %sil, %sil + jne .L491 +.L492: + movb $32, 1(%rcx) + movq %r13, %rdi + call strlen@PLT + xorl %esi, %esi + jmp .L491 + .p2align 4,,10 + .p2align 3 +.L504: + testb %r14b, %r14b + je .L539 + testq %rbx, %rbx + jne .L479 + jmp .L539 +.L543: + xorl %ebp, %ebp + cmpb $44, %dl + je .L492 + xorl %esi, %esi + jmp .L491 +.L481: + leaq .LC1(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L473 + .cfi_endproc +.LFE66: + .size ntsys_get_str, .-ntsys_get_str + .section .rodata.str1.1 +.LC2: + .string "No close of string!" +.LC3: + .string "Unknown ident!" + .text + .p2align 4 + .globl ntsys_get_arg + .type ntsys_get_arg, @function +ntsys_get_arg: +.LFB68: + .cfi_startproc + endbr64 + pushq %r15 + .cfi_def_cfa_offset 16 + .cfi_offset 15, -16 + pushq %r14 + .cfi_def_cfa_offset 24 + .cfi_offset 14, -24 + pushq %r13 + .cfi_def_cfa_offset 32 + .cfi_offset 13, -32 + pushq %r12 + .cfi_def_cfa_offset 40 + .cfi_offset 12, -40 + movq %rdi, %r12 + pushq %rbp + .cfi_def_cfa_offset 48 + .cfi_offset 6, -48 + pushq %rbx + .cfi_def_cfa_offset 56 + .cfi_offset 3, -56 + subq $8, %rsp + .cfi_def_cfa_offset 64 + movq 8(%rdi), %rbx + movzbl (%rbx), %edx + leal -1(%rdx), %eax + cmpb $31, %al + ja .L549 + .p2align 4,,10 + .p2align 3 +.L546: + movzbl 1(%rbx), %edx + addq $1, %rbx + leal -1(%rdx), %eax + cmpb $31, %al + jbe .L546 +.L549: + movzbl (%rbx), %eax + cmpb $34, %al + je .L604 + cmpb $32, %al + ja .L605 + movq %rbx, %r13 + xorl %ebp, %ebp +.L553: + movq %rbx, %rdi + call strlen@PLT + movq %rbx, %rdi + movq %rax, %rdx + leaq 1(%rbp), %rax + cmpq %rax, %rdx + sbbq $-1, %rbp + addq %rbx, %rbp + movq %rbp, 8(%r12) + movb $0, 0(%r13) + call strlen@PLT + leaq -1(%rbx,%rax), %rdx + movzbl (%rdx), %eax + cmpb $10, %al + je .L583 + cmpb $13, %al + je .L583 + movzbl (%rbx), %eax + testb %al, %al + je .L558 +.L608: + cmpb $34, %al + je .L606 +.L562: + movq %rbx, (%r12) + addq $8, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 56 + movq %rbx, %rax + popq %rbx + .cfi_def_cfa_offset 48 + popq %rbp + .cfi_def_cfa_offset 40 + popq %r12 + .cfi_def_cfa_offset 32 + popq %r13 + .cfi_def_cfa_offset 24 + popq %r14 + .cfi_def_cfa_offset 16 + popq %r15 + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L605: + .cfi_restore_state + movq %rbx, %rax + xorl %ebp, %ebp + xorl %ecx, %ecx + .p2align 4,,10 + .p2align 3 +.L551: + movzbl 1(%rax), %edx + addq $1, %rax + addq $1, %rbp + movq %rax, %r13 + cmpb $34, %dl + je .L607 + cmpb $32, %dl + ja .L551 + testb %cl, %cl + je .L553 + testb %dl, %dl + jne .L551 + jmp .L553 + .p2align 4,,10 + .p2align 3 +.L607: + movzbl -1(%rax), %edx +.L547: + movl %ecx, %esi + xorl $1, %esi + cmpb $92, %dl + cmovne %esi, %ecx + jmp .L551 + .p2align 4,,10 + .p2align 3 +.L583: + movb $0, (%rdx) + movzbl (%rbx), %eax + testb %al, %al + jne .L608 +.L558: + xorl %ebx, %ebx + jmp .L562 + .p2align 4,,10 + .p2align 3 +.L604: + movq %rbx, %rax + xorl %ecx, %ecx + xorl %ebp, %ebp + jmp .L547 + .p2align 4,,10 + .p2align 3 +.L606: + leaq 1(%rbx), %r14 + movq %r14, %rdi + call strlen@PLT + leaq (%rbx,%rax), %rdx + cmpb $34, (%rdx) + jne .L560 + movl $2, %ecx + cmpq %rcx, %rax + cmovb %rcx, %rax + cmpb $92, -2(%r14,%rax) + je .L560 + movb $0, (%rdx) + movq %r14, %rdi + movq %r14, %rbp + leaq .L572(%rip), %r15 + call strlen@PLT + jmp .L563 + .p2align 4,,10 + .p2align 3 +.L565: + addq $1, %rbp +.L563: + movq %rbp, %rdx + subq %rbx, %rdx + subq $1, %rdx + cmpq %rax, %rdx + jnb .L609 + cmpb $92, 0(%rbp) + jne .L565 + movl $1, %r13d + jmp .L564 + .p2align 4,,10 + .p2align 3 +.L566: + movzbl 0(%rbp,%r13), %eax + movb %al, -1(%rbp,%r13) + addq $1, %r13 +.L564: + movq %rbp, %rdi + call strlen@PLT + cmpq %rax, %r13 + jb .L566 + movb $0, -1(%rbp,%rax) + movzbl 0(%rbp), %eax + cmpb $118, %al + jg .L567 + cmpb $96, %al + jle .L610 + subl $97, %eax + cmpb $21, %al + ja .L567 + movzbl %al, %eax + movslq (%r15,%rax,4), %rax + addq %r15, %rax + notrack jmp *%rax + .section .rodata + .align 4 + .align 4 +.L572: + .long .L578-.L572 + .long .L577-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L576-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L575-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L567-.L572 + .long .L574-.L572 + .long .L567-.L572 + .long .L573-.L572 + .long .L567-.L572 + .long .L571-.L572 + .text + .p2align 4,,10 + .p2align 3 +.L567: + leaq .LC3(%rip), %rdx + movl $2, %edi + xorl %eax, %eax + xorl %ebx, %ebx + leaq .LC0(%rip), %rsi + call __printf_chk@PLT + jmp .L562 +.L571: + movb $11, 0(%rbp) + movq %r14, %rdi + call strlen@PLT + jmp .L565 +.L573: + movb $9, 0(%rbp) + movq %r14, %rdi + call strlen@PLT + jmp .L565 +.L574: + movb $13, 0(%rbp) + movq %r14, %rdi + call strlen@PLT + jmp .L565 +.L575: + movb $10, 0(%rbp) + movq %r14, %rdi + call strlen@PLT + jmp .L565 +.L576: + movb $12, 0(%rbp) + movq %r14, %rdi + call strlen@PLT + jmp .L565 +.L577: + movb $8, 0(%rbp) + movq %r14, %rdi + call strlen@PLT + jmp .L565 +.L578: + movb $7, 0(%rbp) + movq %r14, %rdi + call strlen@PLT + jmp .L565 + .p2align 4,,10 + .p2align 3 +.L609: + movq %r14, %rbx + jmp .L562 + .p2align 4,,10 + .p2align 3 +.L610: + cmpb $34, %al + je .L603 + cmpb $48, %al + jne .L567 + movb $0, 0(%rbp) +.L603: + movq %r14, %rdi + call strlen@PLT + jmp .L565 +.L560: + leaq .LC2(%rip), %rdx + movl $2, %edi + xorl %eax, %eax + xorl %ebx, %ebx + leaq .LC0(%rip), %rsi + call __printf_chk@PLT + jmp .L562 + .cfi_endproc +.LFE68: + .size ntsys_get_arg, .-ntsys_get_arg + .p2align 4 + .globl __load_label + .type __load_label, @function +__load_label: +.LFB74: + .cfi_startproc + endbr64 + pushq %r13 + .cfi_def_cfa_offset 16 + .cfi_offset 13, -16 + pushq %r12 + .cfi_def_cfa_offset 24 + .cfi_offset 12, -24 + pushq %rbp + .cfi_def_cfa_offset 32 + .cfi_offset 6, -32 + pushq %rbx + .cfi_def_cfa_offset 40 + .cfi_offset 3, -40 + movq %rdi, %rbx + subq $8, %rsp + .cfi_def_cfa_offset 48 + movq 16(%rdi), %rbp + movq %rbp, %rdi + call strlen@PLT + movq %rbp, %rdi + movb $0, -1(%rbp,%rax) + call strlen@PLT + leaq 1(%rax), %r12 + movq 56(%rbx), %rax + movq %r12, %rdi + movq (%rax), %rdx + movq 40(%rbx), %rax + leaq (%rax,%rdx,8), %r13 + call malloc@PLT + movq %rax, 0(%r13) + testq %rax, %rax + je .L615 + movq %r12, %rdx + movq %rbp, %rsi + movq %rax, %rdi + call __strcpy_chk@PLT + movq 8(%rbx), %rdi + call ftell@PLT + movq 56(%rbx), %rdx + movq 48(%rbx), %rcx + movq %rax, %rsi + movq (%rdx), %rax + movw %si, (%rcx,%rax,2) + addq $1, %rax + movq %rax, (%rdx) + xorl %eax, %eax +.L611: + addq $8, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 40 + popq %rbx + .cfi_def_cfa_offset 32 + popq %rbp + .cfi_def_cfa_offset 24 + popq %r12 + .cfi_def_cfa_offset 16 + popq %r13 + .cfi_def_cfa_offset 8 + ret +.L615: + .cfi_restore_state + leaq .LC1(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + movl $1, %eax + jmp .L611 + .cfi_endproc +.LFE74: + .size __load_label, .-__load_label + .section .rodata.str1.1 +.LC4: + .string "Cannot find argument!" +.LC5: + .string "byte" +.LC6: + .string "word" +.LC7: + .string "dword" +.LC8: + .string "qword" +.LC9: + .string "sbyte" +.LC10: + .string "sword" +.LC11: + .string "sdword" +.LC12: + .string "sqword" +.LC13: + .string "Incorrect datatype!" +.LC14: + .string "Unknown number system!" + .section .rodata.str1.8,"aMS",@progbits,1 + .align 8 +.LC15: + .string "Incorrect datatype! For jump to label please use db type!" + .align 8 +.LC16: + .string "\033[1mntsys: \033[91mUndefined operator \"%s\"!\033[0m\n" + .text + .p2align 4 + .globl __ntsys_arg_function_loader + .type __ntsys_arg_function_loader, @function +__ntsys_arg_function_loader: +.LFB77: + .cfi_startproc + endbr64 + pushq %r15 + .cfi_def_cfa_offset 16 + .cfi_offset 15, -16 + pushq %r14 + .cfi_def_cfa_offset 24 + .cfi_offset 14, -24 + pushq %r13 + .cfi_def_cfa_offset 32 + .cfi_offset 13, -32 + movq %rdi, %r13 + pushq %r12 + .cfi_def_cfa_offset 40 + .cfi_offset 12, -40 + pushq %rbp + .cfi_def_cfa_offset 48 + .cfi_offset 6, -48 + pushq %rbx + .cfi_def_cfa_offset 56 + .cfi_offset 3, -56 + subq $136, %rsp + .cfi_def_cfa_offset 192 + movq %fs:40, %rax + movq %rax, 120(%rsp) + xorl %eax, %eax + cmpb $0, 64(%rdi) + jne .L731 +.L617: + leaq 45(%rsp), %rax + movq 0(%r13), %rbp + movq %rax, 24(%rsp) +.L663: + movq %rbp, %rdi + call ntsys_get_arg + testq %rax, %rax + je .L668 +.L664: + movq 0(%r13), %rbp + movq 0(%rbp), %r12 + movq %r12, 16(%r13) + testq %r12, %r12 + je .L668 + movq %r12, %rdi + call strlen@PLT + cmpb $58, -1(%r12,%rax) + je .L732 + movq 24(%r13), %rax + movq %rax, 8(%rsp) + movq 32(%r13), %rax + movq %rax, 16(%rsp) + testq %rax, %rax + je .L623 + xorl %ebx, %ebx + leaq 48(%rsp), %rbp + .p2align 4,,10 + .p2align 3 +.L622: + movq 8(%rsp), %rax + xorl %r14d, %r14d + movq (%rax,%rbx,8), %r15 + movq %r15, %rdi + call strlen@PLT + jmp .L662 + .p2align 4,,10 + .p2align 3 +.L625: + cmpb $61, (%r15,%r14) + je .L624 + addq $1, %r14 +.L662: + cmpq %rax, %r14 + jne .L625 +.L624: + movq %r15, %rsi + movq %rbp, %rdi + movl $64, %ecx + movq %r14, %rdx + call __strncpy_chk@PLT + movq %rbp, %rsi + movq %r12, %rdi + movb $0, 48(%rsp,%r14) + call strcmp@PLT + testl %eax, %eax + je .L733 + addq $1, %rbx + cmpq %rbx, 16(%rsp) + jne .L622 +.L623: + movq %r12, %rdx + leaq .LC16(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT +.L620: + movl $1, %eax +.L616: + movq 120(%rsp), %rdx + subq %fs:40, %rdx + jne .L734 + addq $136, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 56 + popq %rbx + .cfi_def_cfa_offset 48 + popq %rbp + .cfi_def_cfa_offset 40 + popq %r12 + .cfi_def_cfa_offset 32 + popq %r13 + .cfi_def_cfa_offset 24 + popq %r14 + .cfi_def_cfa_offset 16 + popq %r15 + .cfi_def_cfa_offset 8 + ret +.L733: + .cfi_restore_state + leaq 1(%r15,%r14), %rbx + xorl %r14d, %r14d + jmp .L627 + .p2align 4,,10 + .p2align 3 +.L738: + movzbl 46(%rsp), %eax + cmpb $84, %al + je .L735 + cmpb $68, %al + je .L736 + cmpb $83, %al + je .L737 +.L637: + addq $2, %rbx +.L627: + movq %rbx, %rdi + call strlen@PLT + cmpq $1, %rax + jbe .L730 + movq 24(%rsp), %rdi + movl $2, %edx + movq %rbx, %rsi + call strncpy@PLT + cmpb $58, 45(%rsp) + movb $0, 47(%rsp) + je .L738 + movq 24(%rsp), %rdi + xorl %esi, %esi + movl $16, %edx + call strtol@PLT + movq 8(%r13), %rsi + movsbl %al, %edi + call fputc@PLT + jmp .L637 +.L732: + cmpb $0, 64(%r13) + jne .L663 + movq %r13, %rdi + call __load_label + cmpl $1, %eax + je .L620 +.L730: + movq 0(%r13), %rbp + movq %rbp, %rdi + call ntsys_get_arg + testq %rax, %rax + jne .L664 +.L668: + cmpb $0, 64(%r13) + je .L665 + xorl %eax, %eax + jmp .L616 + .p2align 4,,10 + .p2align 3 +.L735: + movq 0(%r13), %rdi + call ntsys_get_arg + testq %rax, %rax + je .L658 + movq 0(%r13), %rax + movq (%rax), %r12 + movq %r12, 16(%r13) + testq %r12, %r12 + je .L658 + leaq .LC5(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L672 + leaq .LC6(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L674 + movzbl (%r12), %ebp + cmpl $100, %ebp + je .L739 +.L684: + leaq .LC7(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L675 + leaq .LC8(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L676 + leaq .LC9(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L677 + leaq .LC10(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L678 + leaq .LC11(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L679 + leaq .LC12(%rip), %rsi + movq %r12, %rdi + call strcmp@PLT + testl %eax, %eax + je .L680 + cmpl $100, %ebp + je .L740 +.L685: + leaq .LC13(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L637 + .p2align 4,,10 + .p2align 3 +.L736: + movq 0(%r13), %rdi + call ntsys_get_arg + testq %rax, %rax + je .L658 + movq 0(%r13), %rbp + movq 0(%rbp), %r15 + movq %r15, 16(%r13) + testq %r15, %r15 + je .L658 + movzbl (%r15), %eax + subl $48, %eax + cmpb $9, %al + ja .L642 + movzbl 1(%r15), %eax + cmpb $120, %al + je .L681 + cmpb $98, %al + je .L682 + leal -48(%rax), %edx + cmpb $9, %dl + jbe .L683 + cmpb $32, %al + ja .L741 +.L683: + movl $10, %edx +.L644: + xorl %esi, %esi + movq %r15, %rdi + call strtol@PLT + movq 8(%r13), %rcx + movq %rax, 32(%rsp) + cmpb $-15, %r14b + je .L645 + ja .L646 + cmpb $4, %r14b + je .L647 + ja .L648 + cmpb $1, %r14b + je .L645 + cmpb $2, %r14b + jne .L637 +.L649: + leaq 32(%rsp), %rdi + movl $2, %edx + movl $1, %esi + call fwrite@PLT + jmp .L637 + .p2align 4,,10 + .p2align 3 +.L658: + leaq .LC4(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L637 +.L737: + movq 0(%r13), %rdi + call ntsys_get_arg + testq %rax, %rax + je .L658 + movq 0(%r13), %rax + movq (%rax), %r12 + movq %r12, 16(%r13) + testq %r12, %r12 + je .L658 + xorl %ebp, %ebp + jmp .L659 + .p2align 4,,10 + .p2align 3 +.L660: + movsbl (%r12,%rbp), %edi + addq $1, %rbp + call fputc@PLT +.L659: + movq %r12, %rdi + call strlen@PLT + movq 8(%r13), %rsi + cmpq %rax, %rbp + jb .L660 + xorl %edi, %edi + call fputc@PLT + jmp .L637 +.L739: + cmpb $119, 1(%r12) + jne .L684 + cmpb $0, 2(%r12) + jne .L684 +.L674: + movl $2, %edi + movl $2, %r14d +.L633: + movq 8(%r13), %rsi + call fputc@PLT + jmp .L637 +.L642: + cmpb $-78, %r14b + jne .L742 + cmpb $0, 64(%r13) + je .L653 + movq 56(%r13), %rax + movq (%rax), %rbp + testq %rbp, %rbp + je .L638 + movq 40(%r13), %r14 + xorl %r12d, %r12d + jmp .L656 +.L655: + addq $1, %r12 + cmpq %rbp, %r12 + je .L638 +.L656: + movq (%r14,%r12,8), %rsi + movq %r15, %rdi + call strcmp@PLT + testl %eax, %eax + jne .L655 + movq 48(%r13), %rax + movq 8(%r13), %rcx + leaq 32(%rsp), %rdi + movl $2, %edx + movl $1, %esi + movzwl (%rax,%r12,2), %eax + movw %ax, 32(%rsp) + call fwrite@PLT +.L638: + movl $-78, %r14d + jmp .L637 +.L672: + movl $1, %edi + movl $1, %r14d + jmp .L633 +.L742: + leaq .LC15(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L637 +.L665: + movq 8(%r13), %rdi + call ftell@PLT + movq 72(%r13), %rdx + addl $1, %eax + movl %eax, (%rdx) + xorl %eax, %eax + jmp .L616 +.L731: + cmpb $1, fGH6VSEzu7qNiGVE_hd_ew(%rip) + je .L617 + movq 8(%rdi), %rsi + movl $77, %edi + movb $1, fGH6VSEzu7qNiGVE_hd_ew(%rip) + call fputc@PLT + movq 8(%r13), %rsi + movl $90, %edi + call fputc@PLT + movq 72(%r13), %rdi + movq 8(%r13), %rcx + leaq fGH6VSEzu7qNiGVE_mem_size(%rip), %rax + movq %rax, 80(%r13) + movl $4, %edx + movl $1, %esi + addl $8, (%rdi) + call fwrite@PLT + movq 8(%r13), %rcx + movq 80(%r13), %rdi + movl $2, %edx + movl $1, %esi + call fwrite@PLT + jmp .L617 +.L646: + cmpb $-12, %r14b + je .L647 + cmpb $-8, %r14b + je .L651 + cmpb $-14, %r14b + je .L649 + jmp .L637 +.L681: + movl $16, %edx +.L643: + addq $2, %r15 + jmp .L644 +.L682: + movl $2, %edx + jmp .L643 +.L675: + movl $4, %edi + movl $4, %r14d + jmp .L633 +.L648: + cmpb $8, %r14b + jne .L637 +.L651: + leaq 32(%rsp), %rdi + movl $8, %edx + movl $1, %esi + call fwrite@PLT + jmp .L637 +.L741: + leaq .LC14(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L637 +.L647: + leaq 32(%rsp), %rdi + movl $4, %edx + movl $1, %esi + call fwrite@PLT + jmp .L637 +.L645: + leaq 32(%rsp), %rdi + movl $1, %edx + movl $1, %esi + call fwrite@PLT + jmp .L637 +.L676: + movl $8, %edi + movl $8, %r14d + jmp .L633 +.L653: + movq 8(%r13), %rsi + movl $69, %edi + call putc@PLT + movq 8(%r13), %rsi + movl $70, %edi + call putc@PLT + jmp .L638 +.L677: + movl $241, %edi + movl $-15, %r14d + jmp .L633 +.L734: + call __stack_chk_fail@PLT +.L740: + cmpb $98, 1(%r12) + jne .L685 + cmpb $0, 2(%r12) + jne .L685 + movq 8(%r13), %rsi + movl $2, %edi + call fputc@PLT + jmp .L638 +.L680: + movl $248, %edi + movl $-8, %r14d + jmp .L633 +.L679: + movl $244, %edi + movl $-12, %r14d + jmp .L633 +.L678: + movl $242, %edi + movl $-14, %r14d + jmp .L633 + .cfi_endproc +.LFE77: + .size __ntsys_arg_function_loader, .-__ntsys_arg_function_loader + .p2align 4 + .globl ntsys_asm_from_string + .type ntsys_asm_from_string, @function +ntsys_asm_from_string: +.LFB78: + .cfi_startproc + endbr64 + subq $120, %rsp + .cfi_def_cfa_offset 128 + movq %rsi, %xmm0 + movq %fs:40, %rax + movq %rax, 104(%rsp) + xorl %eax, %eax + movq %rsp, %rax + movdqa %xmm0, %xmm1 + leaq 16(%rsp), %rdi + movq %rax, 16(%rsp) + leaq ntsys_asm_table(%rip), %rax + punpcklqdq %xmm1, %xmm1 + movq %rax, 40(%rsp) + movq 128(%rsp), %rax + movq %rdx, 24(%rsp) + movq %rax, 72(%rsp) + movq 136(%rsp), %rax + movq %rsi, 32(%rsp) + movq $30, 48(%rsp) + movq %r8, 56(%rsp) + movq %r9, 64(%rsp) + movb %cl, 80(%rsp) + movq %rax, 88(%rsp) + movq $0, 96(%rsp) + movaps %xmm1, (%rsp) + call __ntsys_arg_function_loader + movq 104(%rsp), %rdx + subq %fs:40, %rdx + jne .L746 + addq $120, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 8 + ret +.L746: + .cfi_restore_state + call __stack_chk_fail@PLT + .cfi_endproc +.LFE78: + .size ntsys_asm_from_string, .-ntsys_asm_from_string + .section .rodata.str1.1 +.LC17: + .string "r" +.LC18: + .string "Cannot open assembler file!" + .section .rodata.str1.8 + .align 8 +.LC19: + .string "Cannot create or rewrite output file!" + .section .rodata.str1.1 +.LC20: + .string "wb" + .text + .p2align 4 + .globl ntsys_compile_asm + .type ntsys_compile_asm, @function +ntsys_compile_asm: +.LFB79: + .cfi_startproc + endbr64 + pushq %r15 + .cfi_def_cfa_offset 16 + .cfi_offset 15, -16 + pushq %r14 + .cfi_def_cfa_offset 24 + .cfi_offset 14, -24 + pushq %r13 + .cfi_def_cfa_offset 32 + .cfi_offset 13, -32 + pushq %r12 + .cfi_def_cfa_offset 40 + .cfi_offset 12, -40 + pushq %rbp + .cfi_def_cfa_offset 48 + .cfi_offset 6, -48 + pushq %rbx + .cfi_def_cfa_offset 56 + .cfi_offset 3, -56 + subq $184, %rsp + .cfi_def_cfa_offset 240 + movq %rsi, 40(%rsp) + leaq .LC17(%rip), %rsi + movq %fs:40, %rax + movq %rax, 168(%rsp) + xorl %eax, %eax + call fopen@PLT + testq %rax, %rax + je .L798 + movq %rax, %rbx + xorl %r15d, %r15d + leaq 80(%rsp), %r12 + xorl %r14d, %r14d + .p2align 4,,10 + .p2align 3 +.L748: + movq %r14, %rdi + movq %rbx, %rsi + call ntsys_get_str + movq %rax, %xmm0 + movq %rax, %r14 + punpcklqdq %xmm0, %xmm0 + testq %rax, %rax + je .L799 + movq %r12, %rdi + movaps %xmm0, 80(%rsp) + call ntsys_get_arg + movq %rax, %rdi + movq %rax, %rbp + call strlen@PLT + cmpb $58, -1(%rbp,%rax) + jne .L748 + addq $1, %r15 + jmp .L748 + .p2align 4,,10 + .p2align 3 +.L799: + leaq 0(,%r15,8), %rax + movl $1, %esi + movq %rax, %rdi + movq %rax, 32(%rsp) + call calloc@PLT + leaq (%r15,%r15), %rdi + movq %rax, %r12 + call malloc@PLT + movq %r12, %xmm2 + movq %rbx, %rdi + movq %rax, 24(%rsp) + movhps 24(%rsp), %xmm2 + movaps %xmm2, (%rsp) + call rewind@PLT + movl $0, 52(%rsp) + movq $0, 56(%rsp) + call tmpfile@PLT + movq %rax, %rbp + testq %rax, %rax + je .L795 + leaq ntsys_asm_table(%rip), %r13 + jmp .L752 + .p2align 4,,10 + .p2align 3 +.L757: + leaq 64(%rsp), %rax + movdqa (%rsp), %xmm1 + leaq 80(%rsp), %rdi + movq %rbp, 88(%rsp) + movq %rax, 80(%rsp) + leaq 56(%rsp), %rax + movq %rax, 136(%rsp) + leaq 52(%rsp), %rax + movq %r14, 96(%rsp) + movq %r13, 104(%rsp) + movq $30, 112(%rsp) + movb $0, 144(%rsp) + movq %rax, 152(%rsp) + movq $0, 160(%rsp) + movaps %xmm0, 64(%rsp) + movups %xmm1, 120(%rsp) + call __ntsys_arg_function_loader + testl %eax, %eax + jne .L800 +.L752: + movq %r14, %rdi + movq %rbx, %rsi + call ntsys_get_str + movq %rax, %xmm0 + movq %rax, %r14 + punpcklqdq %xmm0, %xmm0 + testq %rax, %rax + jne .L757 + movq %rbp, %rdi + call fclose@PLT + movq %rbx, %rdi + call rewind@PLT + movq 40(%rsp), %rdi + leaq .LC20(%rip), %rsi + call fopen@PLT + movq %rax, %rbp + testq %rax, %rax + je .L795 + leaq ntsys_asm_table(%rip), %r13 + jmp .L758 + .p2align 4,,10 + .p2align 3 +.L762: + leaq 64(%rsp), %rax + leaq 80(%rsp), %rdi + movq %rbp, 88(%rsp) + movq %rax, 80(%rsp) + movq 24(%rsp), %rax + movq %r14, 96(%rsp) + movq %rax, 128(%rsp) + leaq 56(%rsp), %rax + movq %rax, 136(%rsp) + leaq 52(%rsp), %rax + movq %r13, 104(%rsp) + movq $30, 112(%rsp) + movq %r12, 120(%rsp) + movb $1, 144(%rsp) + movq %rax, 152(%rsp) + movq $0, 160(%rsp) + movaps %xmm0, 64(%rsp) + call __ntsys_arg_function_loader + testl %eax, %eax + jne .L801 +.L758: + movq %r14, %rdi + movq %rbx, %rsi + call ntsys_get_str + movq %rax, %xmm0 + movq %rax, %r14 + punpcklqdq %xmm0, %xmm0 + testq %rax, %rax + jne .L762 + movq %rbp, %rdi + call fflush@PLT + movq %rbx, %rdi + call fclose@PLT + movq %rbp, %rdi + call fclose@PLT + testq %r15, %r15 + je .L763 + movq 32(%rsp), %rbp + movq %r12, %rbx + addq %r12, %rbp + .p2align 4,,10 + .p2align 3 +.L765: + movq (%rbx), %rdi + testq %rdi, %rdi + je .L764 + call free@PLT +.L764: + addq $8, %rbx + cmpq %rbp, %rbx + jne .L765 +.L763: + movq %r12, %rdi + call free@PLT + movq 24(%rsp), %rdi + call free@PLT + xorl %eax, %eax +.L747: + movq 168(%rsp), %rdx + subq %fs:40, %rdx + jne .L802 + addq $184, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 56 + popq %rbx + .cfi_def_cfa_offset 48 + popq %rbp + .cfi_def_cfa_offset 40 + popq %r12 + .cfi_def_cfa_offset 32 + popq %r13 + .cfi_def_cfa_offset 24 + popq %r14 + .cfi_def_cfa_offset 16 + popq %r15 + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L800: + .cfi_restore_state + movq %r14, %rdi + call free@PLT + movq %rbx, %rdi + call fclose@PLT + movq %rbp, %rdi + call fclose@PLT + testq %r15, %r15 + je .L759 + movq 32(%rsp), %rbp + movq %r12, %rbx + addq %r12, %rbp + .p2align 4,,10 + .p2align 3 +.L756: + movq (%rbx), %rdi + testq %rdi, %rdi + je .L755 + call free@PLT +.L755: + addq $8, %rbx + cmpq %rbp, %rbx + jne .L756 +.L759: + movq %r12, %rdi + call free@PLT + movq 24(%rsp), %rdi + call free@PLT +.L749: + movl $1, %eax + jmp .L747 + .p2align 4,,10 + .p2align 3 +.L801: + movq %r14, %rdi + call free@PLT + movq %rbx, %rdi + call fclose@PLT + movq %rbp, %rdi + call fclose@PLT + testq %r15, %r15 + je .L759 + movq 32(%rsp), %rbp + movq %r12, %rbx + addq %r12, %rbp + .p2align 4,,10 + .p2align 3 +.L761: + movq (%rbx), %rdi + testq %rdi, %rdi + je .L760 + call free@PLT +.L760: + addq $8, %rbx + cmpq %rbp, %rbx + jne .L761 + jmp .L759 +.L795: + leaq .LC19(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + movq %rbx, %rdi + call fclose@PLT + jmp .L749 +.L798: + leaq .LC18(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L749 +.L802: + call __stack_chk_fail@PLT + .cfi_endproc +.LFE79: + .size ntsys_compile_asm, .-ntsys_compile_asm + .section .rodata.str1.1 +.LC21: + .string "rb" +.LC22: + .string "Cannot open file!" + .section .rodata.str1.8 + .align 8 +.LC23: + .string "Header read error or digital signature is invalid!" + .section .rodata.str1.1 +.LC24: + .string "File size %lu 0x%lX\n" +.LC25: + .string "Memory size %u 0x%X\n" + .section .rodata.str1.8 + .align 8 +.LC26: + .string "Command %d 0x%X\nPosition %d 0x%X\nStack point %d 0x%X\n\n" + .section .rodata.str1.1 +.LC27: + .string "dump.bin" +.LC28: + .string "Cannot open dump file!" +.LC29: + .string "Press any key to continue..." + .text + .p2align 4 + .globl ntsys_api_call + .type ntsys_api_call, @function +ntsys_api_call: +.LFB82: + .cfi_startproc + endbr64 + pushq %r15 + .cfi_def_cfa_offset 16 + .cfi_offset 15, -16 + pushq %r14 + .cfi_def_cfa_offset 24 + .cfi_offset 14, -24 + pushq %r13 + .cfi_def_cfa_offset 32 + .cfi_offset 13, -32 + pushq %r12 + .cfi_def_cfa_offset 40 + .cfi_offset 12, -40 + pushq %rbp + .cfi_def_cfa_offset 48 + .cfi_offset 6, -48 + pushq %rbx + .cfi_def_cfa_offset 56 + .cfi_offset 3, -56 + movl %esi, %ebx + leaq .LC21(%rip), %rsi + subq $56, %rsp + .cfi_def_cfa_offset 112 + movq %fs:40, %rax + movq %rax, 40(%rsp) + xorl %eax, %eax + call fopen@PLT + testq %rax, %rax + je .L830 + movl $8, %edx + leaq 32(%rsp), %rdi + movq %rax, %rcx + movq %rax, %r12 + movl $1, %esi + call fread@PLT + movzwl 32(%rsp), %edx + movb $0, 24(%rsp) + movw %dx, 22(%rsp) + movl 34(%rsp), %edx + movl %edx, 25(%rsp) + movzwl 38(%rsp), %edx + movw %dx, 29(%rsp) + movzbl 22(%rsp), %edx + subl $77, %edx + je .L831 + cmpw $8, %ax + jne .L821 +.L835: + testw %dx, %dx + jne .L821 + movzwl 29(%rsp), %r14d + movl 25(%rsp), %r15d + movq %r14, %rdi + movq %r14, %rbp + call malloc@PLT + movq %rax, (%rsp) + testq %rax, %rax + je .L832 + leaq -8(%r15), %r13 + testb %bl, %bl + jne .L833 + movq (%rsp), %rax + movq %r13, %rdi + movl %r14d, __ntsys_stack_pointer(%rip) + movq %rax, __ntsys_stack(%rip) + call malloc@PLT + movq %r13, %rdx + movl $1, %esi + movq %r12, %rcx + movq %rax, %rdi + movq %rax, __ntsys_buffer(%rip) + movq %rax, %rbx + leaq fn_fGH6VSEzu7qNiGVE(%rip), %r13 + call fread@PLT + xorl %edx, %edx + xorl %esi, %esi + movl $0, __ntsys_buffer_ptr(%rip) + movq %rax, __ntsys_buffer_size(%rip) + testq %rax, %rax + je .L815 + .p2align 4,,10 + .p2align 3 +.L814: + movzbl (%rbx,%rsi), %eax + addl $1, %edx + movl %edx, __ntsys_buffer_ptr(%rip) + call *0(%r13,%rax,8) + movl __ntsys_buffer_ptr(%rip), %esi + cmpq __ntsys_buffer_size(%rip), %rsi + movq %rsi, %rdx + jb .L814 +.L815: + movq %rbx, %rdi + call free@PLT + movl fGH6VSEzu7qNiGVE_stat(%rip), %ebx +.L817: + movq %r12, %rdi + call fclose@PLT + movq (%rsp), %rdi + call free@PLT +.L803: + movq 40(%rsp), %rax + subq %fs:40, %rax + jne .L834 + addq $56, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 56 + movl %ebx, %eax + popq %rbx + .cfi_def_cfa_offset 48 + popq %rbp + .cfi_def_cfa_offset 40 + popq %r12 + .cfi_def_cfa_offset 32 + popq %r13 + .cfi_def_cfa_offset 24 + popq %r14 + .cfi_def_cfa_offset 16 + popq %r15 + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L831: + .cfi_restore_state + movzbl 23(%rsp), %edx + subl $90, %edx + cmpw $8, %ax + je .L835 +.L821: + leaq .LC23(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT +.L805: + movl $1, %ebx + jmp .L803 + .p2align 4,,10 + .p2align 3 +.L833: + movq %r15, %rcx + movq %r15, %rdx + leaq .LC24(%rip), %rsi + xorl %eax, %eax + movl $2, %edi + leaq .LC26(%rip), %r15 + call __printf_chk@PLT + movl %r14d, %ecx + movl %r14d, %edx + movl $2, %edi + leaq .LC25(%rip), %rsi + xorl %eax, %eax + call __printf_chk@PLT + movq (%rsp), %rax + movq %r13, %rdi + movl %r14d, __ntsys_stack_pointer(%rip) + leaq .LC20(%rip), %r14 + movq %rax, __ntsys_stack(%rip) + call malloc@PLT + movq %r13, %rdx + movq %r12, %rcx + movl $1, %esi + movq %rax, %rdi + movq %rax, __ntsys_buffer(%rip) + movq %rax, %rbx + leaq fn_fGH6VSEzu7qNiGVE(%rip), %r13 + call fread@PLT + movq stdout(%rip), %rsi + movl $10, %edi + movl $0, __ntsys_buffer_ptr(%rip) + movq %rax, __ntsys_buffer_size(%rip) + call putc@PLT + movl __ntsys_buffer_ptr(%rip), %eax + cmpq __ntsys_buffer_size(%rip), %rax + movq %rax, %r9 + jnb .L815 + movq %r12, 8(%rsp) + .p2align 4,,10 + .p2align 3 +.L812: + movl __ntsys_stack_pointer(%rip), %edx + subq $8, %rsp + .cfi_def_cfa_offset 120 + movzbl (%rbx,%rax), %r12d + xorl %eax, %eax + movq stdout(%rip), %rdi + movl $2, %esi + pushq %rdx + .cfi_def_cfa_offset 128 + movl %r12d, %ecx + movl %r12d, %r8d + pushq %rdx + .cfi_def_cfa_offset 136 + movq %r15, %rdx + pushq %r9 + .cfi_def_cfa_offset 144 + call __fprintf_chk@PLT + movslq %r12d, %r8 + addq $32, %rsp + .cfi_def_cfa_offset 112 + addl $1, __ntsys_buffer_ptr(%rip) + call *0(%r13,%r8,8) + movq %r14, %rsi + leaq .LC27(%rip), %rdi + call fopen@PLT + movq %rax, %r12 + testq %rax, %rax + je .L836 + movq __ntsys_stack(%rip), %rdi + movq %rax, %rcx + movq %rbp, %rdx + movl $1, %esi + call fwrite@PLT + movq %r12, %rdi + call fclose@PLT + leaq .LC29(%rip), %rdi + call puts@PLT + movq stdin(%rip), %rdi + call getc@PLT + movl __ntsys_buffer_ptr(%rip), %eax + cmpq __ntsys_buffer_size(%rip), %rax + movq %rax, %r9 + jb .L812 + movq 8(%rsp), %r12 + jmp .L815 +.L836: + leaq .LC28(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + movq 8(%rsp), %r12 + movl $1, %ebx + call __printf_chk@PLT + jmp .L817 +.L830: + leaq .LC22(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L805 +.L832: + leaq .LC1(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + call __printf_chk@PLT + jmp .L805 +.L834: + call __stack_chk_fail@PLT + .cfi_endproc +.LFE82: + .size ntsys_api_call, .-ntsys_api_call + .section .rodata.str1.1 +.LC30: + .string "out.exe" + .section .rodata + .align 8 +.LC31: + .ascii "BINARY Emulator - LICENSE GPL V3\n VM for micron files\nU" + .ascii "sing:\n ntsys [OPTIONS...] [FILENAME]\nExamples:\n nts" + .ascii "ys --asm FILE.asm\n ntsys [--asm] FILE.asm --out FILE.exe" + .ascii "\n ntsys FILE.exe" + .string "\nOptions:\n --help / -h - show this help\n --version / -v - show version\n --asm / -a - compile assembler program\n --out / -o - set output file name\n --debug / -d - display debugging info\n --mem / -m - asm output memory size" + .string "" + .section .rodata.str1.1 +.LC32: + .string "1.0" +.LC33: + .string "Unknown option!" +.LC34: + .string "Please specify the file name!" + .text + .p2align 4 + .globl _lib_ntsys_main + .type _lib_ntsys_main, @function +_lib_ntsys_main: +.LFB83: + .cfi_startproc + endbr64 + pushq %r15 + .cfi_def_cfa_offset 16 + .cfi_offset 15, -16 + pushq %r14 + .cfi_def_cfa_offset 24 + .cfi_offset 14, -24 + pushq %r13 + .cfi_def_cfa_offset 32 + .cfi_offset 13, -32 + pushq %r12 + .cfi_def_cfa_offset 40 + .cfi_offset 12, -40 + pushq %rbp + .cfi_def_cfa_offset 48 + .cfi_offset 6, -48 + pushq %rbx + .cfi_def_cfa_offset 56 + .cfi_offset 3, -56 + subq $24, %rsp + .cfi_def_cfa_offset 80 + cmpl $1, %edi + jbe .L838 + leal -2(%rdi), %eax + movb $0, 15(%rsp) + leaq 8(%rsi), %rbx + xorl %edx, %edx + leaq 16(%rsi,%rax,8), %r13 + xorl %ebp, %ebp + movl $82, %r8d + xorl %r12d, %r12d + leaq .LC30(%rip), %r15 + leaq .L842(%rip), %r14 + jmp .L851 + .p2align 4,,10 + .p2align 3 +.L839: + testb %bpl, %bpl + jne .L855 + testb %dl, %dl + jne .L860 + movq %rdi, %r12 +.L847: + addq $8, %rbx + cmpq %r13, %rbx + je .L861 +.L851: + movq (%rbx), %rdi + cmpb $45, (%rdi) + jne .L839 + xorl %eax, %eax + cmpb $45, 1(%rdi) + sete %al + movzbl 1(%rdi,%rax), %eax + subl $97, %eax + cmpb $21, %al + ja .L840 + movzbl %al, %eax + movslq (%r14,%rax,4), %rax + addq %r14, %rax + notrack jmp *%rax + .section .rodata + .align 4 + .align 4 +.L842: + .long .L854-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L846-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L845-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L844-.L842 + .long .L840-.L842 + .long .L843-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L840-.L842 + .long .L841-.L842 + .text + .p2align 4,,10 + .p2align 3 +.L855: + addq $8, %rbx + movq %rdi, %r15 + xorl %ebp, %ebp + cmpq %r13, %rbx + jne .L851 +.L861: + testq %r12, %r12 + je .L838 + testb %bpl, %bpl + jne .L838 + cmpb $82, %r8b + je .L862 + addq $24, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 56 + movq %r15, %rsi + movq %r12, %rdi + popq %rbx + .cfi_def_cfa_offset 48 + popq %rbp + .cfi_def_cfa_offset 40 + popq %r12 + .cfi_def_cfa_offset 32 + popq %r13 + .cfi_def_cfa_offset 24 + popq %r14 + .cfi_def_cfa_offset 16 + popq %r15 + .cfi_def_cfa_offset 8 + jmp ntsys_compile_asm + .p2align 4,,10 + .p2align 3 +.L860: + .cfi_restore_state + movl $10, %edx + xorl %esi, %esi + movb %r8b, 14(%rsp) + call strtol@PLT + movzbl 14(%rsp), %r8d + xorl %edx, %edx + movw %ax, fGH6VSEzu7qNiGVE_mem_size(%rip) + jmp .L847 + .p2align 4,,10 + .p2align 3 +.L840: + leaq .LC33(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT +.L850: + movl $1, %eax + jmp .L837 + .p2align 4,,10 + .p2align 3 +.L841: + leaq .LC32(%rip), %rdi + call puts@PLT +.L848: + xorl %eax, %eax +.L837: + addq $24, %rsp + .cfi_remember_state + .cfi_def_cfa_offset 56 + popq %rbx + .cfi_def_cfa_offset 48 + popq %rbp + .cfi_def_cfa_offset 40 + popq %r12 + .cfi_def_cfa_offset 32 + popq %r13 + .cfi_def_cfa_offset 24 + popq %r14 + .cfi_def_cfa_offset 16 + popq %r15 + .cfi_def_cfa_offset 8 + ret + .p2align 4,,10 + .p2align 3 +.L844: + .cfi_restore_state + movl $1, %edx + movl $65, %r8d + jmp .L847 + .p2align 4,,10 + .p2align 3 +.L845: + leaq .LC31(%rip), %rdi + call puts@PLT + jmp .L848 + .p2align 4,,10 + .p2align 3 +.L843: + movl $1, %ebp + movl $65, %r8d + jmp .L847 + .p2align 4,,10 + .p2align 3 +.L854: + movl $65, %r8d + jmp .L847 + .p2align 4,,10 + .p2align 3 +.L846: + movb $1, 15(%rsp) + jmp .L847 +.L838: + leaq .LC34(%rip), %rdx + leaq .LC0(%rip), %rsi + movl $2, %edi + xorl %eax, %eax + call __printf_chk@PLT + jmp .L850 +.L862: + movzbl 15(%rsp), %esi + addq $24, %rsp + .cfi_def_cfa_offset 56 + movq %r12, %rdi + popq %rbx + .cfi_def_cfa_offset 48 + popq %rbp + .cfi_def_cfa_offset 40 + popq %r12 + .cfi_def_cfa_offset 32 + popq %r13 + .cfi_def_cfa_offset 24 + popq %r14 + .cfi_def_cfa_offset 16 + popq %r15 + .cfi_def_cfa_offset 8 + jmp ntsys_api_call + .cfi_endproc +.LFE83: + .size _lib_ntsys_main, .-_lib_ntsys_main + .section .text.startup,"ax",@progbits + .p2align 4 + .globl main + .type main, @function +main: +.LFB84: + .cfi_startproc + endbr64 + jmp _lib_ntsys_main + .cfi_endproc +.LFE84: + .size main, .-main + .globl ntsys_asm_table + .section .rodata.str1.1 +.LC35: + .string "push=00:T:D" +.LC36: + .string "pop=01:T" +.LC37: + .string "push.string=02:S" +.LC38: + .string "add=03:T" +.LC39: + .string "sub=04:T" +.LC40: + .string "mul=05:T" +.LC41: + .string "div=06:T" +.LC42: + .string "not=07:T" +.LC43: + .string "shr=08:T" +.LC44: + .string "shl=09:T" +.LC45: + .string "or=0A:T" +.LC46: + .string "and=0B:T" +.LC47: + .string "xor=0C:T" +.LC48: + .string "jmp=0D" +.LC49: + .string "bnez=0E:T" +.LC50: + .string "bez=0F:T" +.LC51: + .string "up=10:T" +.LC52: + .string "down=11:T" +.LC53: + .string "eq=12:T" +.LC54: + .string "neq=13:T" +.LC55: + .string "upne=14:T" +.LC56: + .string "downe=15:T" +.LC57: + .string "mwrt=16:T" +.LC58: + .string "mread=17:T" +.LC59: + .string "getsp=18" +.LC60: + .string "setsp=19" +.LC61: + .string "syscall=1A" +.LC62: + .string "swap=1B:T" +.LC63: + .string "dup=1C:T" +.LC64: + .string "pass=" + .section .data.rel.local,"aw" + .align 32 + .type ntsys_asm_table, @object + .size ntsys_asm_table, 240 +ntsys_asm_table: + .quad .LC35 + .quad .LC36 + .quad .LC37 + .quad .LC38 + .quad .LC39 + .quad .LC40 + .quad .LC41 + .quad .LC42 + .quad .LC43 + .quad .LC44 + .quad .LC45 + .quad .LC46 + .quad .LC47 + .quad .LC48 + .quad .LC49 + .quad .LC50 + .quad .LC51 + .quad .LC52 + .quad .LC53 + .quad .LC54 + .quad .LC55 + .quad .LC56 + .quad .LC57 + .quad .LC58 + .quad .LC59 + .quad .LC60 + .quad .LC61 + .quad .LC62 + .quad .LC63 + .quad .LC64 + .globl ntsys_command_count + .section .rodata + .align 8 + .type ntsys_command_count, @object + .size ntsys_command_count, 8 +ntsys_command_count: + .quad 30 + .globl fGH6VSEzu7qNiGVE_hd_ew + .bss + .type fGH6VSEzu7qNiGVE_hd_ew, @object + .size fGH6VSEzu7qNiGVE_hd_ew, 1 +fGH6VSEzu7qNiGVE_hd_ew: + .zero 1 + .globl fGH6VSEzu7qNiGVE_mem_size + .data + .align 2 + .type fGH6VSEzu7qNiGVE_mem_size, @object + .size fGH6VSEzu7qNiGVE_mem_size, 2 +fGH6VSEzu7qNiGVE_mem_size: + .value 4096 + .globl fn_fGH6VSEzu7qNiGVE + .section .data.rel.local + .align 32 + .type fn_fGH6VSEzu7qNiGVE, @object + .size fn_fGH6VSEzu7qNiGVE, 232 +fn_fGH6VSEzu7qNiGVE: + .quad push + .quad pop + .quad push_str + .quad add + .quad sub + .quad mul + .quad div_r + .quad nt_not + .quad nt_shr + .quad nt_shl + .quad nt_or + .quad nt_and + .quad nt_xor + .quad nt_goto + .quad bnez + .quad bez + .quad up + .quad down + .quad eq + .quad neq + .quad upne + .quad downe + .quad mwrt + .quad mrd + .quad get_sp + .quad set_sp + .quad nt_fs_syscall + .quad stack_swap + .quad stack_copy + .globl arg2_fGH6VSEzu7qNiGVE + .bss + .align 8 + .type arg2_fGH6VSEzu7qNiGVE, @object + .size arg2_fGH6VSEzu7qNiGVE, 8 +arg2_fGH6VSEzu7qNiGVE: + .zero 8 + .globl arg1_fGH6VSEzu7qNiGVE + .align 8 + .type arg1_fGH6VSEzu7qNiGVE, @object + .size arg1_fGH6VSEzu7qNiGVE, 8 +arg1_fGH6VSEzu7qNiGVE: + .zero 8 + .globl fGH6VSEzu7qNiGVE_stat + .align 4 + .type fGH6VSEzu7qNiGVE_stat, @object + .size fGH6VSEzu7qNiGVE_stat, 4 +fGH6VSEzu7qNiGVE_stat: + .zero 4 + .globl __ntsys_buffer_ptr + .align 4 + .type __ntsys_buffer_ptr, @object + .size __ntsys_buffer_ptr, 4 +__ntsys_buffer_ptr: + .zero 4 + .globl __ntsys_buffer_size + .align 8 + .type __ntsys_buffer_size, @object + .size __ntsys_buffer_size, 8 +__ntsys_buffer_size: + .zero 8 + .globl __ntsys_buffer + .align 8 + .type __ntsys_buffer, @object + .size __ntsys_buffer, 8 +__ntsys_buffer: + .zero 8 + .globl __ntsys_stack_pointer + .align 4 + .type __ntsys_stack_pointer, @object + .size __ntsys_stack_pointer, 4 +__ntsys_stack_pointer: + .zero 4 + .globl __ntsys_stack + .align 8 + .type __ntsys_stack, @object + .size __ntsys_stack, 8 +__ntsys_stack: + .zero 8 + .ident "GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0" + .section .note.GNU-stack,"",@progbits + .section .note.gnu.property,"a" + .align 8 + .long 1f - 0f + .long 4f - 1f + .long 5 +0: + .string "GNU" +1: + .align 8 + .long 0xc0000002 + .long 3f - 2f +2: + .long 0x3 +3: + .align 8 +4: diff --git a/swap.asm b/swap.asm new file mode 100644 index 0000000..4d6f9c9 --- /dev/null +++ b/swap.asm @@ -0,0 +1,9 @@ +main: ; Метка main + push.string "Hello, world!\n" ; Строка + push byte 0x00 ; Дескриптор + syscall ; Системный вызов + push.string "Hello, world!\n" ; Строка + push byte 3 ; Кол-во блоков + swap word ; Блок размером в 2 байта + push byte 0x00 ; Дескриптор + syscall ; Системный вызов \ No newline at end of file diff --git a/swap.exe b/swap.exe new file mode 100644 index 0000000..77107b3 Binary files /dev/null and b/swap.exe differ