Function at 0x403770
Capabilities:
Get socket status
Receive data
Receive data on socket
Receive http request
Send data
Send data on socket
Send http request
Send http request with host header
Send http response

Disassembly:
push edi
mov eax, 0x2b78
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
call fcn.0040f5e0
mov ecx, 0x46
mov esi, 0x27350b89
sub esp, eax
lea edi, [ebp - 0x28f8]
lea ebx, [ebp - 0x1810]
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, 0x10
lea edi, [ebp - 0x2b08]
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateEventA]
xor ecx, ecx
mov dword [ebp - 0x2b0c], eax
sub esp, 0x10
lea esi, [esi]
mov eax, ecx
mul esi
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 6
mov byte [ebx + ecx], dl
add ecx, 1
cmp ecx, 0x800
jne 0x4037e8
lea eax, [ebp - 0x2b28]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.httpapi.dll_HttpCreateHttpHandle]
sub esp, 8
mov esi, eax
mov eax, 0x294
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0x2b28]
call fcn.00401d20
movzx edi, ax
mov eax, edi
mov dword [ebp - 0x2b50], edi
call fcn.00401b10
mov dword [ebp - 0x2b30], eax
mov esi, eax
lea eax, [ebp - 0x2ac4]
mov dword [esp + 8], edi
mov dword [esp + 4], str.POST__xyzzy_HTTP_1.1_r_nHost:_localhost:_u_r_nConnection:_keep_alive_r_nContent_Length:_5_r_n_r_nping
mov dword [esp], eax
call fcn.00401040
mov edi, dword [sym.imp.msvcrt.dll_strlen]
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov dword [ebp - 0x2b34], edi
call edi
mov dword [esp], esi
add eax, 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x2ac4]
mov dword [esp + 4], eax
mov eax, dword [sym.imp.ws2_32.dll_send]
mov dword [ebp - 0x2b40], eax
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x29a
call fcn.00401190
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
call edi
mov dword [esp + 8], esi
lea edi, [ebp - 0x1010]
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, esi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [sym.imp.kernel32.dll_Sleep]
mov dword [esp], 0x64
mov dword [ebp - 0x2b48], eax
call eax
mov eax, 0xcccccccc
mov ecx, 0x400
rep stosd dword es:[edi], eax
sub esp, 4
lea eax, [ebp - 0x2b2c]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [sym.imp.httpapi.dll_HttpReceiveHttpRequest]
mov dword [ebp - 0x2b44], eax
call eax
sub esp, 0x20
mov esi, eax
mov eax, 0x2a4
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2a5
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 0x1d0
mov dword [esp + 8], eax
seta al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2a6
call fcn.00401190
mov eax, dword [ebp - 0x1010]
mov dword [esp + 4], str.Got_flags__lx._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2a7
call fcn.00401190
mov eax, dword [ebp - 0xe5c]
mov edx, dword [ebp - 0xe60]
test eax, eax
je 0x4060f7
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str._lx_08lx
call fcn.00401000
mov esi, eax
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 4], str.Got__s_bytes._n
add eax, 1
xor edx, dword [ebp - 0xe5c]
xor eax, dword [ebp - 0xe60]
or eax, edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2a8
call fcn.00401190
movzx edx, word [ebp - 0xf54]
mov dword [esp + 4], str.Got_header_length__u._n
cmp dx, 1
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2aa
call fcn.00401190
mov edx, dword [ebp - 0xf50]
movzx eax, byte [edx]
sub eax, 0x35
jne 0x403aba
movzx eax, byte [edx + 1]
test eax, eax
mov dword [esp + 8], edx
mov esi, 2
lea edi, [ebp - 0x2010]
sete al
mov dword [esp + 4], str.Got_header_value__s._n
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2ac
call fcn.00401190
movzx edx, word [ebp - 0xe58]
mov dword [esp + 4], str.Got__u_entity_chunks._n
test dx, dx
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2ad
call fcn.00401190
mov eax, dword [ebp - 0xe54]
mov dword [esp + 4], str.Got_entity_chunks__p._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b08]
mov word [ebp - 0x27e8], si
mov dword [ebp - 0x27e4], eax
lea eax, [ebp - 0x28f8]
mov dword [ebp - 0x28ec], str.Im_a_teapot
mov dword [ebp - 0x28f0], 0xc01a2
mov dword [ebp - 0x2b08], 0
mov dword [ebp - 0x2b00], str.pong
mov dword [ebp - 0x2afc], 4
mov dword [ebp - 0x2ae8], 0
mov dword [ebp - 0x2ae0], str.pang
mov dword [ebp - 0x2adc], 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [sym.imp.httpapi.dll_HttpSendHttpResponse]
mov dword [ebp - 0x2b58], eax
call eax
sub esp, 0x2c
mov esi, eax
mov eax, 0x2bb
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
xor eax, eax
mov ecx, 0x200
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2010]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x800
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b30]
mov dword [esp], eax
mov eax, dword [sym.imp.ws2_32.dll_recv]
mov dword [ebp - 0x2b4c], eax
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x2c0
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 4], str.recv___failed._n
setg al
mov dword [esp], eax
call fcn.00401af0
cmp dword [0x410008], 1
jle 0x403cc0
mov eax, 0x2c2
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], str._.s_n
call fcn.00401550
mov eax, 0x2c3
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 8], 0x1b
mov dword [esp + 4], str.HTTP_1.1_418_Im_a_teapot_r_n
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
mov dword [esp + 4], str.Got_incorrect_status_line._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2c4
call fcn.00401190
mov edi, dword [sym.imp.msvcrt.dll_strstr]
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str._r_nContent_Length:_8_r_n
mov dword [esp], eax
mov dword [ebp - 0x2b38], edi
call edi
mov dword [esp + 4], str.Missing_or_malformed_Content_Length_header._n
test eax, eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2c5
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str._r_nDate:
mov dword [esp], eax
call edi
mov dword [esp + 4], str.Missing_Date_header._n
test eax, eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2c6
call fcn.00401190
lea eax, [ebp + esi - 0x201c]
cmp dword [eax], 0xa0d0a0d
je 0x406168
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.Response_did_not_end_with_entity_data._n
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b44]
call edi
sub esp, 0x20
mov esi, eax
mov eax, 0x2c9
call fcn.00401190
xor eax, eax
cmp esi, 0x4cd
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
lea esi, [ebp - 0x2ac4]
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 0xc], 0
add eax, 1
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov esi, dword [ebp - 0x2b30]
mov dword [esp], esi
mov ecx, dword [ebp - 0x2b40]
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x2d0
call fcn.00401190
lea ecx, [ebp - 0x2ac4]
mov dword [esp], ecx
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], esi
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, esi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
call edi
sub esp, 0x20
mov esi, eax
mov eax, 0x2d2
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov ecx, 0xa
mov edx, 1
lea eax, [ebp - 0x28f8]
mov word [ebp - 0x28c8], cx
mov word [ebp - 0x2880], dx
mov dword [ebp - 0x287c], 0x4128e8
mov dword [ebp - 0x28c4], str.yesteryear
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b58]
call eax
sub esp, 0x2c
mov esi, eax
mov eax, 0x2d9
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2010]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x800
mov dword [esp + 4], eax
mov esi, dword [ebp - 0x2b30]
mov dword [esp], esi
mov eax, dword [ebp - 0x2b4c]
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x2dc
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 4], str.recv___failed._n
setg al
mov dword [esp], eax
call fcn.00401af0
cmp dword [0x410008], 1
jle 0x404050
mov eax, 0x2de
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], str._.s_n
call fcn.00401550
mov eax, 0x2df
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 8], 0x1b
mov dword [esp + 4], str.HTTP_1.1_418_Im_a_teapot_r_n
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
mov dword [esp + 4], str.Got_incorrect_status_line._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2e0
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str._r_nContent_Length:_6_r_n
mov dword [esp], eax
mov edi, dword [ebp - 0x2b38]
call edi
mov dword [esp + 4], str.Missing_or_malformed_Content_Length_header._n
test eax, eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2e1
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str._r_nDate:
mov dword [esp], eax
call edi
mov dword [esp + 4], str.Missing_Date_header._n
test eax, eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2e2
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str.yesteryear
mov dword [esp], eax
call edi
mov dword [esp + 4], str.Unexpected_Date_value._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2e3
call fcn.00401190
lea eax, [ebp + esi - 0x201c]
cmp dword [eax], 0xa0d0a0d
je 0x406147
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.Response_did_not_end_with_entity_data._n
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b34]
call edi
mov dword [esp + 0xc], 0
add eax, 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x2ac4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b30]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b40]
call eax
sub esp, 0x10
mov esi, eax
mov eax, 0x2e8
call fcn.00401190
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
call edi
mov dword [esp + 8], esi
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, esi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov eax, dword [ebp - 0x2b48]
call eax
lea eax, [ebp - 0x2b2c]
sub esp, 4
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b44]
call eax
sub esp, 0x20
mov esi, eax
mov eax, 0x2ed
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2ee
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 0x1d0
mov dword [esp + 8], eax
seta al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2ef
call fcn.00401190
mov eax, dword [ebp - 0x1010]
mov dword [esp + 4], str.Got_flags__lx._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2f0
call fcn.00401190
mov eax, dword [ebp - 0xe5c]
mov edx, dword [ebp - 0xe60]
test eax, eax
je 0x4060e0
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str._lx_08lx
call fcn.00401000
mov esi, eax
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 4], str.Got__s_bytes._n
add eax, 1
xor edx, dword [ebp - 0xe5c]
xor eax, dword [ebp - 0xe60]
or eax, edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2f1
call fcn.00401190
movzx edx, word [ebp - 0xf54]
mov dword [esp + 4], str.Got_header_length__u._n
cmp dx, 1
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2f3
call fcn.00401190
mov edx, dword [ebp - 0xf50]
movzx eax, byte [edx]
sub eax, 0x35
jne 0x40437f
movzx eax, byte [edx + 1]
test eax, eax
mov dword [esp + 8], edx
sete al
mov dword [esp + 4], str.Got_header_value__s._n
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2f5
call fcn.00401190
movzx edx, word [ebp - 0xe58]
mov dword [esp + 4], str.Got__u_entity_chunks._n
cmp dx, 1
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2f6
call fcn.00401190
mov eax, dword [ebp - 0xe54]
mov eax, dword [eax]
mov dword [esp + 4], str.Got_chunk_type__u._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2f8
call fcn.00401190
mov eax, dword [ebp - 0xe54]
mov eax, dword [eax + 0xc]
mov dword [esp + 4], str.Got_chunk_length__lu._n
cmp eax, 5
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x2fa
call fcn.00401190
mov eax, dword [ebp - 0xe54]
mov edx, dword [eax + 8]
cmp dword [edx], 0x676e6970
je 0x406136
mov eax, 1
xor eax, 1
mov dword [esp + 8], edx
lea esi, [ebp - 0x2ac4]
mov dword [esp], eax
mov dword [esp + 4], str.Got_chunk_data__s._n
call fcn.00401af0
mov edi, dword [ebp - 0x2b30]
mov dword [esp], edi
mov edx, dword [ebp - 0x1000]
mov ecx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x2b28]
call fcn.00401be0
mov eax, dword [ebp - 0x2b50]
mov dword [esp + 4], str.POST__xyzzy_HTTP_1.1_r_nHost:_localhost:_u_r_nConnection:_keep_alive_r_nContent_Length:_2048_r_n_r_n
mov dword [esp + 8], eax
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
call fcn.00401040
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
mov esi, dword [ebp - 0x2b40]
call esi
sub esp, 0x10
mov esi, eax
mov eax, 0x301
call fcn.00401190
lea ecx, [ebp - 0x2ac4]
mov dword [esp], ecx
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], esi
cmp esi, eax
mov dword [esp + 4], str.send___returned__d._n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x800
mov dword [esp + 4], ebx
mov dword [esp], edi
mov esi, dword [ebp - 0x2b40]
call esi
sub esp, 0x10
mov esi, eax
mov eax, 0x303
call fcn.00401190
xor eax, eax
cmp esi, 0x800
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.send___returned__d._n
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov eax, dword [ebp - 0x2b48]
call eax
lea eax, [ebp - 0x2b2c]
sub esp, 4
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b44]
call eax
sub esp, 0x20
mov esi, eax
mov eax, 0x309
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x30a
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 0x7d0
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x30b
call fcn.00401190
mov eax, dword [ebp - 0x1010]
mov dword [esp + 4], str.Got_flags__lx._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x30c
call fcn.00401190
mov eax, dword [ebp - 0xe5c]
mov edx, dword [ebp - 0xe60]
test eax, eax
je 0x4060c9
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str._lx_08lx
call fcn.00401000
mov esi, eax
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], esi
xor edx, edx
mov dword [esp + 4], str.Got__s_bytes._n
add eax, 0x800
xor edx, dword [ebp - 0xe5c]
xor eax, dword [ebp - 0xe60]
or eax, edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x30d
call fcn.00401190
movzx edx, word [ebp - 0xf54]
mov dword [esp + 4], str.Got_header_length__u._n
cmp dx, 4
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x30f
call fcn.00401190
mov esi, dword [ebp - 0xf50]
mov dword [esp + 4], str.2048
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_strcmp]
mov dword [esp + 8], esi
test eax, eax
mov dword [esp + 4], str.Got_header_value__s._n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x311
call fcn.00401190
movzx edx, word [ebp - 0xe58]
mov dword [esp + 4], str.Got__u_entity_chunks._n
cmp dx, 1
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x312
call fcn.00401190
mov eax, dword [ebp - 0xe54]
mov eax, dword [eax]
mov dword [esp + 4], str.Got_chunk_type__u._n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0xe54]
mov esi, dword [eax + 0xc]
mov eax, 0x315
call fcn.00401190
mov dword [esp + 4], str.Got_chunk_size__u._n
lea eax, [esi - 1]
mov dword [esp + 8], esi
cmp eax, 0x7ce
setbe al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x316
call fcn.00401190
mov dword [esp + 8], esi
lea esi, [ebp - 0x2b2c]
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0xe54]
mov eax, dword [eax + 8]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.Chunk_data_didnt_match._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov edi, dword [ebp - 0x2b30]
mov dword [esp], edi
mov ecx, dword [ebp - 0xffc]
mov edx, dword [ebp - 0x1000]
mov eax, dword [ebp - 0x2b28]
call fcn.00401be0
mov edi, dword [sym.imp.httpapi.dll_HttpReceiveRequestEntityBody]
mov dword [ebp - 0x2b2c], 0xdeadbeef
mov dword [esp + 0x18], esi
lea esi, [ebp - 0x27e0]
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], 0
call edi
sub esp, 0x20
mov esi, eax
mov eax, 0x31e
call fcn.00401190
xor eax, eax
cmp esi, 6
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
lea esi, [ebp - 0x2b1c]
mov dword [esp], eax
call fcn.00401af0
lea edx, [ebp - 0x27e0]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [ebp - 0x2b3c], edi
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x320
call fcn.00401190
xor eax, eax
cmp edi, 6
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov edx, dword [ebp - 0x2b50]
mov dword [esp + 4], str.POST__xyzzy_HTTP_1.1_r_nHost:_localhost:_u_r_nConnection:_keep_alive_r_nContent_Length:_5_r_n_r_nping
mov dword [esp + 8], edx
lea edx, [ebp - 0x2ac4]
mov dword [esp], edx
call fcn.00401040
lea edx, [ebp - 0x2ac4]
mov dword [esp], edx
mov eax, dword [ebp - 0x2b34]
call eax
lea edx, [ebp - 0x2ac4]
mov dword [esp + 0xc], 0
add eax, 1
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x2b30]
mov dword [esp], ecx
mov ecx, dword [ebp - 0x2b40]
call ecx
sub esp, 0x10
mov edi, eax
mov eax, 0x324
call fcn.00401190
lea ecx, [ebp - 0x2ac4]
mov dword [esp], ecx
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], edi
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, edi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov eax, dword [ebp - 0x2b48]
call eax
lea eax, [ebp - 0x2b2c]
sub esp, 4
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b44]
call eax
sub esp, 0x20
mov edi, eax
mov eax, 0x328
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x27e0]
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b3c]
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x32b
call fcn.00401190
xor eax, eax
cmp edi, 0x4cd
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b2c]
mov dword [ebp - 0x2b2c], 0xdeadbeef
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x27e0]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b3c]
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x32f
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x330
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 5
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x331
call fcn.00401190
cmp dword [ebp - 0x27e0], 0x676e6970
je 0x406122
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.Entity_body_didnt_match._n
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b2c]
mov dword [ebp - 0x2b2c], 0xdeadbeef
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x27e0]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b3c]
call eax
sub esp, 0x20
mov edi, eax
mov eax, 0x335
call fcn.00401190
xor eax, eax
cmp edi, 0x26
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x336
call fcn.00401190
mov edx, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp edx, 0xdeadbeef
mov dword [esp + 8], edx
sete al
test edx, edx
sete dl
or eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov ecx, dword [ebp - 0x2b30]
mov dword [esp], ecx
mov ecx, dword [ebp - 0xffc]
mov edx, dword [ebp - 0x1000]
mov eax, dword [ebp - 0x2b28]
call fcn.00401be0
lea edx, [ebp - 0x2b2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x27e0]
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b3c]
call eax
sub esp, 0x20
mov edi, eax
mov eax, 0x33b
call fcn.00401190
xor eax, eax
cmp edi, 0x4cd
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
lea edx, [ebp - 0x2ac4]
mov dword [esp], edx
mov edx, dword [ebp - 0x2b34]
call edx
mov dword [esp + 0xc], 0
add eax, 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x2ac4]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x2b30]
mov dword [esp], ecx
mov eax, dword [ebp - 0x2b40]
call eax
sub esp, 0x10
mov edi, eax
mov eax, 0x33e
call fcn.00401190
lea edx, [ebp - 0x2ac4]
mov dword [esp], edx
mov edx, dword [ebp - 0x2b34]
call edx
mov dword [esp + 8], edi
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, edi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov edi, dword [ebp - 0x2b48]
call edi
lea eax, [ebp - 0x2b2c]
sub esp, 4
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b44]
call eax
sub esp, 0x20
mov edi, eax
mov eax, 0x342
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
lea edi, [ebp - 0x27e0]
mov dword [esp], eax
call fcn.00401af0
mov eax, 0xcccccccc
lea edx, [ebp - 0x2b2c]
mov ecx, 0x1f4
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2b2c], 0xdeadbeef
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x27e0]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b3c]
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x347
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x348
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x349
call fcn.00401190
mov dword [esp + 4], str.Entity_body_didnt_match._n
xor eax, eax
cmp word [ebp - 0x27e0], 0x6970
sete al
mov dword [esp], eax
call fcn.00401af0
lea edx, [ebp - 0x27e0]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b3c]
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x34c
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x34d
call fcn.00401190
mov dword [esp + 4], str.Entity_body_didnt_match._n
xor eax, eax
cmp byte [ebp - 0x27e0], 0x6e
sete al
mov dword [esp], eax
call fcn.00401af0
lea edx, [ebp - 0x2b2c]
mov dword [ebp - 0x2b2c], 0xdeadbeef
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x27e0]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b3c]
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x351
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x352
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 2
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x353
call fcn.00401190
mov dword [esp + 4], str.Entity_body_didnt_match._n
xor eax, eax
cmp word [ebp - 0x27e0], 0x67
sete al
mov dword [esp], eax
call fcn.00401af0
lea edx, [ebp - 0x2b2c]
mov dword [ebp - 0x2b2c], 0xdeadbeef
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x27e0]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b3c]
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x357
call fcn.00401190
xor eax, eax
cmp edi, 0x26
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x358
call fcn.00401190
mov edx, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp edx, 0xdeadbeef
mov dword [esp + 8], edx
sete al
test edx, edx
sete dl
or eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov edi, dword [ebp - 0x2b30]
mov dword [esp], edi
mov ecx, dword [ebp - 0xffc]
mov edx, dword [ebp - 0x1000]
mov eax, dword [ebp - 0x2b28]
call fcn.00401be0
lea edx, [ebp - 0x2ac4]
mov dword [esp], edx
mov edx, dword [ebp - 0x2b34]
call edx
lea edx, [ebp - 0x2ac4]
mov dword [esp], edi
add eax, 1
mov dword [esp + 4], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x2b40]
call ecx
sub esp, 0x10
mov edi, eax
mov eax, 0x35d
call fcn.00401190
lea ecx, [ebp - 0x2ac4]
mov dword [esp], ecx
mov edx, dword [ebp - 0x2b34]
call edx
mov dword [esp + 8], edi
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, edi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov ecx, dword [ebp - 0x2b48]
call ecx
lea edx, [ebp - 0x2b2c]
sub esp, 4
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x1010]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2b44]
call ecx
sub esp, 0x20
mov edi, eax
mov eax, 0x361
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
lea edi, [ebp - 0x27e0]
mov dword [esp], eax
call fcn.00401af0
mov eax, 0xcccccccc
mov ecx, 0x1f4
mov dword [ebp - 0x2b2c], 0xdeadbeef
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x27e0]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b3c]
call edi
sub esp, 0x20
mov edi, eax
mov eax, 0x366
call fcn.00401190
test edi, edi
mov dword [esp + 8], edi
sete al
cmp edi, 0x3e5
mov dword [esp + 4], str.Got_error__u._n
sete dl
or eax, edx
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b2c]
mov dword [esp + 4], esi
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetOverlappedResult]
sub esp, 0x10
mov edi, eax
mov eax, 0x368
call fcn.00401190
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.Got_error__lu._n
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00401af0
mov eax, 0x369
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 5
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x36a
call fcn.00401190
cmp dword [ebp - 0x27e0], 0x676e6970
je 0x40610e
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.Entity_body_didnt_match._n
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x27e0]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b3c]
call eax
sub esp, 0x20
mov edi, eax
mov eax, 0x36d
call fcn.00401190
xor eax, eax
cmp edi, 0x26
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov edi, dword [ebp - 0x2b30]
mov dword [esp], edi
mov edx, dword [ebp - 0x1000]
mov ecx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x2b28]
call fcn.00401be0
lea ecx, [ebp - 0x2ac4]
mov dword [esp], ecx
mov eax, dword [ebp - 0x2b34]
call eax
lea ecx, [ebp - 0x2ac4]
mov dword [esp + 0xc], 0
add eax, 1
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [ebp - 0x2b30], edi
mov dword [esp], edi
mov ecx, dword [ebp - 0x2b40]
call ecx
sub esp, 0x10
mov edi, eax
mov eax, 0x372
call fcn.00401190
lea edx, [ebp - 0x2ac4]
mov dword [esp], edx
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], edi
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, edi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov edx, dword [ebp - 0x2b48]
call edx
lea edx, [ebp - 0x2b2c]
sub esp, 4
mov dword [esp + 0x18], edx
lea edx, [ebp - 0x1010]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edx, dword [ebp - 0x2b44]
call edx
sub esp, 0x20
mov edi, eax
mov eax, 0x377
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov dword [esp + 0x1c], esi
lea esi, [ebp - 0x27e0]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov esi, dword [ebp - 0x2b3c]
call esi
sub esp, 0x20
mov esi, eax
mov eax, 0x37a
call fcn.00401190
xor eax, eax
cmp esi, 0x26
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov edi, dword [ebp - 0x2b30]
mov dword [esp], edi
mov edx, dword [ebp - 0x1000]
mov ecx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x2b28]
call fcn.00401be0
mov esi, dword [ebp - 0x2b50]
lea eax, [ebp - 0x2ac4]
mov dword [esp + 4], str.POST__xyzzy_HTTP_1.1_r_nHost:_localhost:_u_r_nConnection:_keep_alive_r_nContent_Length:_2048_r_n_r_n
mov dword [esp], eax
mov dword [esp + 8], esi
call fcn.00401040
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [ebp - 0x2ac4]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x2b40]
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x380
call fcn.00401190
lea eax, [ebp - 0x2ac4]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b34]
call eax
mov dword [esp + 8], esi
cmp esi, eax
mov dword [esp + 4], str.send___returned__d._n
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x800
mov dword [ebp - 0x2b30], edi
mov dword [esp], edi
mov ecx, dword [ebp - 0x2b40]
lea edi, [ebp - 0x27e0]
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x382
call fcn.00401190
xor eax, eax
cmp esi, 0x800
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.send___returned__d._n
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov esi, dword [ebp - 0x2b48]
call esi
lea eax, [ebp - 0x2b2c]
sub esp, 4
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov ecx, dword [ebp - 0x2b44]
call ecx
sub esp, 0x20
mov esi, eax
mov eax, 0x388
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x389
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 0x7d0
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x38a
call fcn.00401190
mov eax, dword [ebp - 0x1010]
mov dword [esp + 4], str.Got_flags__lx._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0xe54]
mov ecx, 0x1f4
mov dword [ebp - 0x2b2c], 0xdeadbeef
mov esi, dword [eax + 0xc]
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x2b2c]
mov dword [ebp - 0x2b54], ecx
mov dword [esp + 0x18], edi
lea edi, [ebp - 0x27e0]
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x7d0
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x1000]
mov edx, dword [ebp - 0xffc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edx, dword [ebp - 0x2b3c]
call edx
sub esp, 0x20
mov edi, eax
mov eax, 0x390
call fcn.00401190
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x391
call fcn.00401190
mov edx, dword [ebp - 0x2b2c]
mov eax, 0x800
mov dword [esp + 4], str.Got_size__lu._n
sub eax, esi
cmp eax, edx
mov dword [esp + 8], edx
sete al
add ebx, esi
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x392
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x27e0]
mov dword [esp], ebx
lea ebx, [ebp - 0x2b08]
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.Entity_body_didnt_match._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov edi, dword [ebp - 0x2b30]
mov dword [esp], edi
mov ecx, dword [ebp - 0xffc]
mov edx, dword [ebp - 0x1000]
mov eax, dword [ebp - 0x2b28]
call fcn.00401be0
mov dword [esp + 0x14], ebx
mov ebx, dword [sym.imp.httpapi.dll_HttpSendResponseEntityBody]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
call ebx
sub esp, 0x2c
mov esi, eax
mov eax, 0x399
call fcn.00401190
xor eax, eax
cmp esi, 0x4cd
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov esi, dword [ebp - 0x2b50]
mov dword [esp + 4], str.POST__xyzzy_HTTP_1.1_r_nHost:_localhost:_u_r_nConnection:_keep_alive_r_nContent_Length:_5_r_n_r_nping
mov dword [esp + 8], esi
lea esi, [ebp - 0x2ac4]
mov dword [esp], esi
call fcn.00401040
mov dword [esp], esi
mov esi, dword [ebp - 0x2b34]
call esi
mov dword [esp], edi
lea edi, [ebp - 0x2ac4]
add eax, 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x2ac4]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0x2b40]
call edx
sub esp, 0x10
mov esi, eax
mov eax, 0x39d
call fcn.00401190
mov dword [esp], edi
mov edi, dword [ebp - 0x2b34]
call edi
mov dword [esp + 8], esi
lea edi, [ebp - 0x1010]
add eax, 1
mov dword [esp + 4], str.send___returned__d._n
cmp eax, esi
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov dword [esp], 0x64
mov esi, dword [ebp - 0x2b48]
call esi
mov eax, 0xcccccccc
mov ecx, 0x400
rep stosd dword es:[edi], eax
sub esp, 4
lea edi, [ebp - 0x2b2c]
mov dword [esp + 0x18], edi
lea edi, [ebp - 0x1010]
mov dword [esp + 0x10], edi
lea edi, [ebp - 0x28f8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edx, dword [ebp - 0x2b44]
call edx
sub esp, 0x20
mov esi, eax
mov eax, 0x3a3
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x3a4
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 0x1d0
mov dword [esp + 8], eax
seta al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0x2b54]
mov ecx, 0x46
mov dword [ebp - 0x2b08], 0
mov dword [ebp - 0x2b00], str.pong
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x2b08]
mov eax, 2
mov dword [ebp - 0x28ec], str.Im_a_teapot
mov dword [ebp - 0x27e4], edi
lea edi, [ebp - 0x28f8]
mov word [ebp - 0x27e8], ax
mov dword [ebp - 0x28f0], 0xc01a2
mov dword [ebp - 0x2afc], 4
mov dword [ebp - 0x2ae8], 0
mov dword [ebp - 0x2ae0], str.pang
mov dword [ebp - 0x2adc], 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 2
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov edi, dword [ebp - 0x2b58]
call edi
lea edi, [ebp - 0x2b08]
sub esp, 0x2c
mov esi, eax
mov eax, 0x3b4
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 2
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
call ebx
sub esp, 0x2c
mov esi, eax
mov eax, 0x3b7
call fcn.00401190
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.Got_error__u._n
mov esi, 0x64
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0x2b54]
mov ecx, 0x10
mov dword [ebp - 0x2b2c], 0xdeadbeef
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x2b2c]
mov dword [ebp - 0x2b00], 0x4129b7
mov dword [ebp - 0x2afc], 3
mov dword [ebp - 0x2ae0], 0x4129bb
mov dword [ebp - 0x2adc], 3
mov dword [esp + 0x18], edi
lea edi, [ebp - 0x2b08]
mov dword [esp + 0x14], edi
lea edi, [ebp - 0x2010]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
call ebx
sub esp, 0x2c
mov ebx, eax
mov eax, 0x3c2
call fcn.00401190
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x3c3
call fcn.00401190
mov eax, dword [ebp - 0x2b2c]
mov dword [esp + 4], str.Got_size__lu._n
cmp eax, 6
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0x2b54]
mov ecx, 0x200
rep stosd dword es:[edi], eax
xor edi, edi
jmp 0x405e37
mov eax, dword [ebp - 0x2b30]
lea ebx, [ebp - 0x2b24]
mov dword [ebp - 0x2b24], 0
mov dword [ebp - 0x2b20], 0x2710
mov dword [ebp - 0x29fc], 1
mov dword [ebp - 0x29f8], eax
mov dword [esp + 0x10], ebx
lea ebx, [ebp - 0x29fc]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], 1
call dword [sym.imp.ws2_32.dll_select]
sub esp, 0x14
mov ebx, eax
call fcn.0040ded0
mov dword [eax], 0x412056
mov dword [eax + 4], 0x3d9
mov eax, ebx
not eax
mov dword [esp + 8], ebx
shr eax, 0x1f
mov dword [esp + 4], str.select___failed__ret___d._n
mov dword [esp], eax
call fcn.00401af0
test ebx, ebx
jle 0x405e32
mov eax, 0x800
lea ebx, [ebp - 0x2010]
mov dword [esp + 0xc], 0
sub eax, edi
mov dword [esp + 8], eax
lea eax, [ebx + edi]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b30]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b4c]
call eax
sub esp, 0x10
mov ebx, eax
call fcn.0040ded0
mov dword [eax], 0x412056
mov dword [eax + 4], 0x3de
xor eax, eax
test ebx, ebx
setg al
mov dword [esp + 4], str.recv___failed._n
add edi, ebx
mov dword [esp], eax
call fcn.00401af0
sub esi, 1
je 0x405e58
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str.foobar
mov dword [esp], eax
mov eax, dword [ebp - 0x2b38]
call eax
test eax, eax
je 0x405d40
cmp dword [0x410008], 1
jle 0x405e85
mov eax, 0x3e5
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp], str._.s_n
call fcn.00401550
mov eax, 0x3e6
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 8], 0x1b
mov dword [esp + 4], str.HTTP_1.1_418_Im_a_teapot_r_n
mov dword [esp], eax
call sub.msvcrt.dll_strncmp
mov dword [esp + 4], str.Got_incorrect_status_line._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x3e7
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str._r_nContent_Length:
mov dword [esp], eax
mov esi, dword [ebp - 0x2b38]
call esi
mov dword [esp + 4], str.Unexpected_Content_Length_header._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x3e8
call fcn.00401190
lea eax, [ebp - 0x2010]
mov dword [esp + 4], str._r_nDate:
mov dword [esp], eax
call esi
mov dword [esp + 4], str.Missing_Date_header._n
test eax, eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
mov eax, 0x3e9
call fcn.00401190
lea eax, [ebp + edi - 0x2022]
mov dword [esp + 8], 0x12
mov dword [esp + 4], str._r_n_r_npongpangfoobar
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.Response_did_not_end_with_entity_data._n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401af0
lea eax, [ebp - 0x2b2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x1010]
mov dword [esp + 0x14], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0xffc]
mov eax, dword [ebp - 0x1000]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2b28]
mov dword [esp], eax
mov eax, dword [ebp - 0x2b44]
call eax
sub esp, 0x20
mov ebx, eax
mov eax, 0x3ec
call fcn.00401190
xor eax, eax
cmp ebx, 0x4cd
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0x2b0c]
mov esi, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x2b50]
mov ebx, dword [ebp - 0x2b28]
sub esp, 4
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x29fc]
mov dword [esp + 8], 0x4121d4
mov dword [esp + 4], 0x32
mov dword [esp], eax
call fcn.00401400
lea eax, [ebp - 0x29fc]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.httpapi.dll_HttpRemoveUrl]
sub esp, 8
mov ebx, eax
mov eax, 0x3f0
call fcn.00401190
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Got_error__u._n
mov dword [esp], eax
call fcn.00401af0
mov eax, dword [ebp - 0x2b30]
mov dword [esp], eax
call dword [sym.imp.ws2_32.dll_closesocket]
mov eax, dword [ebp - 0x2b28]
sub esp, 4
mov dword [esp], eax
call esi
sub esp, 4
mov ebx, eax
mov eax, 0x3f3
call fcn.00401190
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.Failed_to_close_queue_handle__error__lu._n
mov dword [esp + 8], eax
call fcn.00401af0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov dword [esp + 4], edx
mov dword [esp], 0x41248e
call fcn.00401000
mov esi, eax
jmp 0x404677
mov dword [esp + 4], edx
mov dword [esp], 0x41248e
call fcn.00401000
mov esi, eax
jmp 0x4042f6
mov dword [esp + 4], edx
mov dword [esp], 0x41248e
call fcn.00401000
mov esi, eax
jmp 0x403a31
xor eax, eax
cmp byte [ebp - 0x27dc], 0
je 0x40535f
jmp 0x40535a
xor eax, eax
cmp byte [ebp - 0x27dc], 0
je 0x404b75
jmp 0x404b70
xor eax, eax
cmp byte [edx + 4], 0
je 0x40444c
jmp 0x404447
cmp dword [eax + 4], 0x676e6f70
jne 0x404152
cmp dword [eax + 8], 0x676e6170
jne 0x404152
xor eax, eax
jmp 0x404157
cmp dword [eax + 4], 0x676e6f70
jne 0x403d93
cmp dword [eax + 8], 0x676e6170
jne 0x403d93
xor eax, eax
jmp 0x403d98