Function at 0x4281c0
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 0xc
mov edx, dword [esp + 0x10]
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
movsx eax, byte [ebp + 0x16d]
shl eax, 6
mov ebx, dword [eax + edx + 0x54]
push esi
push edi
lea edi, [eax + edx + 0x24]
movsx eax, byte [ebp + 0x166]
add eax, 0xfffffff6
cmp eax, 5
mov dword [esp + 0x24], ebx
mov esi, ebx
ja case.default.0x4281f6
jmp dword [eax*4 + 0x4284d0]
push ebp
call fcn.00429db0
add esp, 4
neg eax
sbb eax, eax
neg eax
sub eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
test byte [ecx + 6], 0x20
je 0x428248
mov eax, dword [ecx]
push eax
push ebp
push str.Proxy_connection__p__fd_d__dead_n
mov esi, 2
call fcn.004214d0
add esp, 0xc
push 0
push ebp
call fcn.00420ae0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov ecx, dword [ebp + 0x13c]
push 0
push 0x1000
push ebx
push ecx
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jge 0x428292
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je case.default.0x4281f6
push 0
push ebp
call fcn.00420ae0
push str.ERROR_reading_from_proxy_socket_n
mov esi, 1
call fcn.004214d0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov edx, dword [edi + 0x30]
mov edi, str.HTTP_1.0_200
mov ecx, 0xe
xor eax, eax
mov byte [edx + 0xd], 0
repe cmpsb byte [esi], byte es:[edi]
je 0x4282df
mov edi, str.HTTP_1.1_200
mov esi, ebx
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4282df
push edx
push ebp
call fcn.00420ae0
push ebx
push str.ERROR_proxy:__s_n
mov esi, 1
call fcn.004214d0
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
push 0
xor ebx, ebx
mov esi, ebp
call fcn.00420a20
add esp, 4
push 0
push 2
mov eax, ebp
call fcn.00420700
add esp, 8
test eax, eax
jne 0x4284c2
mov edi, 0x60000
test dword [ebp + 0x160], edi
je 0x42833e
cmp dword [ebp + 0x12c], eax
jne 0x42831f
mov esi, ebp
call fcn.004275a0
test dword [ebp + 0x160], edi
je 0x42833e
mov eax, ebp
call fcn.00427650
test eax, eax
je case.default.0x4281f6
jl 0x428495
jmp 0x42834f
mov dword [ebp + 0x12c], 0
jmp 0x42834f
mov edi, 0x60000
test dword [ebp + 0x160], edi
je 0x42836e
mov edi, ebp
call fcn.004276f0
test eax, eax
je case.default.0x4281f6
jl 0x428495
jmp 0x428378
mov dword [ebp + 0x12c], 0
mov eax, dword [esp + 0x20]
mov byte [ebp + 0x166], 0xd
mov ecx, dword [eax + 0x21c]
push ecx
mov ebx, 0xb
mov esi, ebp
call fcn.00420a20
mov ebx, dword [esp + 0x28]
add esp, 4
mov esi, ebx
push ebx
mov edi, ebp
call fcn.00429120
add esp, 4
test eax, eax
jne 0x4283c3
push str.Failed_to_generate_handshake_for_client_n
lea esi, [eax + 1]
call fcn.004214d0
add esp, 4
jmp 0x428233
mov ecx, eax
sub ecx, esi
mov edx, esi
mov esi, ebp
call fcn.00426980
cmp eax, 0xfffffffe
je 0x4283df
cmp eax, 0xffffffff
jne 0x4283e6
jmp 0x428233
mov eax, ebp
call fcn.004207c0
mov edx, dword [esp + 0x20]
mov byte [ebp + 0x24], 0x57
mov word [ebp + 0x1c], 0
mov byte [ebp + 0x166], 0xf
mov eax, dword [edx + 0x21c]
push eax
mov ebx, 4
call fcn.00420a20
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
movzx eax, word [ecx + 6]
test al, 0x20
jne 0x428495
test al, 9
je case.default.0x4281f6
cmp byte [ebp + 0x24], 0x5a
je 0x428472
nop
mov ebx, 1
lea ecx, [esp + 0x18]
mov eax, ebp
call fcn.00426890
cmp eax, 0xfffffffe
je case.default.0x4281f6
jle 0x42844f
test eax, eax
jle 0x428495
mov ecx, dword [esp + 0x18]
push ecx
mov eax, ebp
call fcn.004248c0
add esp, 4
test eax, eax
jne 0x428483
cmp byte [ebp + 0x24], 0x5a
jne 0x428430
cmp byte [ebp + 0x24], 0x5a
jne case.default.0x4281f6
push ebp
call fcn.00428520
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
push str.problems_parsing_header_n
mov esi, 2
call fcn.004214d0
add esp, 4
mov ecx, dword [ebp + 0x110]
mov edx, dword [ebp + 0xec]
mov eax, dword [edx + 0x118]
mov edx, dword [eax + 4]
push 0
push 0
push ecx
push 1
push ebp
call edx
add esp, 0x14
push 0
push ebp
call fcn.00420ae0
add esp, 8
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xc
ret