169 похожих чатов

В чём тут может быть косяк? вроде явных ошибок не

замечаю
;uint32_t send_resp(RESPD* ptr, char* content, uint32_t length)
send_resp:
push esi edi ebp
; get full size
mov ebp, [esp + 4*3 + 4]
mov ecx, [ebp + RESPD.count_header]
shl ecx, 1 ; *2
add ecx, 4 + 2 + 2 ; status code + 0x0d 0x0a + 0x0d 0x0a
add ecx, [ebp + RESPD.http_ver_len]
; add size all headers
xor edx, edx
@@:
cmp edx, [ebp + RESPD.count_header]
je @f
add ecx, [ebp + edx*8 + RESPD.header.len]
inc edx
jmp @b
@@:
; add size content
;add ecx, [esp + 4*3 + 12]

; alloc buffer
push ecx
stdcall Alloc, ecx
pop ecx
test eax, eax
jz .error_alloc

mov [ebp + RESPD.buffer], eax
mov [ebp + RESPD.buffer_size], ecx
mov edi, eax
; copy data
mov ecx, [ebp + RESPD.http_ver_len]
mov esi, [ebp + RESPD.http_ver_ptr]
rep movsb ; copy http ver

mov esi, base_response + response.code
mov ecx, response.end_headers - response.code
mov edx, edi
rep movsb ; copy default status code + headers

mov eax, [ebp + RESPD.http_status]
mov [edx], eax

test [ebp + RESPD.flags], FLAG_KEEP_ALIVE
jz @f

add edx, response.connection - response.code
mov dword[edx], 'keep'
mov dword[edx + 4], '-ali'
mov word[edx + 8], 've'
@@:
sub edx, response.connection
push edx
; copy addition headers
lea eax, [ebp + RESPD.header.ptr]
xor edx, edx
@@:
cmp edx, [ebp + RESPD.count_header]
je @f

mov esi, [eax]
mov ecx, [eax + 4]
rep movsb

mov cx, 0x0a0d
stosw

add eax, 8
inc edx
jmp @b
@@:
mov ax, 0x0A0D
stosw

pop ecx
; set content length
add ecx, response.content_len + 21
@@:
xor edx, edx
test eax, eax
jz @f
div dword[_DIV_10_]
add byte[ecx], dl
sub ecx, 1
jmp @b
@@:
; send response status line and headers
mov eax, [ebp + RESPD.session]

push dword 0
push dword[ebp + RESPD.buffer_size]
push dword[ebp + RESPD.buffer]
push dword[eax + CONNECT_DATA.socket]
call netfunc_send

cmp eax, -1
jz .exit
; send content

mov ecx, [esp + 4*3 + 8] ; ptr
test ecx, ecx
jz .free

push dword 0
push dword[esp + 4*4 + 12] ; size
push ecx
push dword[eax + CONNECT_DATA.socket]
call netfunc_send

cmp eax, -1
jz .exit
.free:
xor eax, eax
; free buffer
push eax
stdcall Free, [ebp + RESPD.buffer]
pop eax
.exit:
pop ebp edi esi
ret

.error_alloc:
mov eax, -1
jmp .exit

7 ответов

47 просмотров

В очередь!!))

КТ315
В очередь!!))

А вы поделитесь своим ботом ? Я хочу изучить его команды и операции по отдельности?

КТ315
Так я скинул выше.

Замечательно, спасибо большое

Mixail-Frolov Автор вопроса
.... ....
А вы поделитесь своим ботом ? Я хочу изучить его к...

да что там изучать, открыть бот апи и всё понятно

Mixail-Frolov Автор вопроса

вот он ассемблер с вечными проблемами пограничных значений и офсетов

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
96
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Вопрос вроде правильно, но что надо сделать, чтоб текст был виден нормально ? ghci> TE.decodeUtf8 $ TE.encodeUtf8 "test - проба" "test - \1087\1088\1086\1073\1072"
Fedor
7
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Кто может подсказать? Я преобрпзовал изображение в бинарное(у меня установлен трекбар который при установленном значении меняет пиксели на белый если меньше и чёрный если боль...
Константин VS
6
Карта сайта