Function at 0x428910
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket
Send http request

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5c7787
mov eax, dword fs:[0]
push eax
sub esp, 0x5a8
mov eax, dword [0x62f570]
xor eax, esp
mov dword [esp + 0x5a0], eax
push ebx
push esi
push edi
mov eax, dword [0x62f570]
xor eax, esp
push eax
lea eax, [esp + 0x5b8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
xor edi, edi
mov ebx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x154], 0xf
mov dword [esp + 0x150], edi
mov byte [esp + 0x140], 0
lea ecx, [esp + 0xbc]
push ecx
mov dword [esp + 0x5c4], edi
mov dword [esp + 0x34], 1
call fcn.0042a550
mov eax, dword [ebp + 8]
push edi
push 0x400
lea edx, [esp + 0x1b4]
push edx
push eax
mov byte [esp + 0x5d0], 1
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp esi, edi
je 0x4289fd
jmp 0x4289c0
lea ecx, [esp + 0x1ac]
push ecx
lea edx, [esp + 0xc0]
push edx
mov ecx, esi
call fcn.0042a270
cmp esi, 0x400
jl 0x4289fd
mov ecx, dword [ebp + 8]
push edi
push 0x400
lea eax, [esp + 0x1b4]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp esi, edi
jne 0x4289c0
lea ecx, [esp + 0x158]
lea eax, [esp + 0xbc]
call fcn.0042a670
mov byte [esp + 0x5c0], 2
cmp dword [esp + 0x170], 0x10
mov eax, dword [esp + 0x15c]
jae 0x428a30
lea eax, [esp + 0x15c]
push eax
push str._n_s_n
call fcn.00583141
mov eax, dword [esp + 0x174]
add esp, 8
mov dword [esp + 0x24], edi
cmp eax, edi
jbe 0x428b9f
cmp dword [esp + 0x24], eax
jbe 0x428a5c
call fcn.005807d8
cmp dword [esp + 0x170], 0x10
mov eax, dword [esp + 0x15c]
jae 0x428a74
lea eax, [esp + 0x15c]
mov edx, dword [esp + 0x24]
mov al, byte [eax + edx]
mov byte [esp + 0x1c], al
cmp esi, edi
je 0x428b38
cmp esi, 0xffffffff
je 0x428b38
cmp al, 0xd
je 0x428ab4
cmp al, 0xa
je 0x428ab4
test al, al
je 0x428ab4
mov eax, dword [esp + 0x1c]
push eax
mov eax, 1
lea edi, [esp + 0x140]
call fcn.0041b670
jmp 0x428b1c
cmp dword [esp + 0x150], edi
je 0x428b10
sub esp, 0x1c
mov ecx, esp
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], edi
mov byte [ecx + 4], 0
cmp dword [esp + 0x4c], edi
je 0x428af6
mov dword [esp + 0x4c], esp
push 0xffffffffffffffff
push edi
lea edx, [esp + 0x160]
push edx
call fcn.00402ed0
push ebx
call fcn.00429150
mov dword [esp + 0x30], edi
jmp 0x428b10
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
push edi
lea eax, [esp + 0x160]
push eax
call fcn.00402ed0
push ebx
call fcn.004292b0
lea edi, [esp + 0x13c]
call fcn.00429f80
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x16c]
inc ecx
xor edi, edi
mov dword [esp + 0x24], ecx
cmp ecx, eax
jb 0x428a51
jmp 0x428b9f
cmp dword [esp + 0x150], edi
je 0x428bfe
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], edi
mov byte [ecx + 4], 0
push edi
cmp dword [esp + 0x54], edi
je 0x428b7e
lea edx, [esp + 0x160]
push edx
call fcn.00402ed0
push ebx
call fcn.00429150
mov dword [esp + 0x30], edi
jmp 0x428b91
lea eax, [esp + 0x160]
push eax
call fcn.00402ed0
push ebx
call fcn.004292b0
lea edi, [esp + 0x13c]
call fcn.00429f80
xor edi, edi
cmp dword [esp + 0x150], edi
je 0x428bfe
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], edi
mov byte [ecx + 4], 0
push edi
cmp dword [esp + 0x54], edi
je 0x428bdd
lea edx, [esp + 0x160]
push edx
call fcn.00402ed0
push ebx
call fcn.00429150
jmp 0x428bf0
lea eax, [esp + 0x160]
push eax
call fcn.00402ed0
push ebx
call fcn.004292b0
lea edi, [esp + 0x13c]
call fcn.00429f80
xor edi, edi
cmp dword [ebx + 0x1c], 0x10
jb 0x428c09
mov eax, dword [ebx + 8]
jmp 0x428c0c
lea eax, [ebx + 8]
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 4]
push eax
push edx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push 0x5e15bc
call fcn.00583141
mov esi, 0x10
add esp, 0xc
mov dword [esp + 0x34], edi
cmp dword [ebx + 0x1c], esi
jb 0x428c3c
mov eax, dword [ebx + 8]
jmp 0x428c3f
lea eax, [ebx + 8]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
lea ecx, [esp + 0x34]
push ecx
push eax
mov ecx, ebx
call edx
test eax, eax
je 0x428d61
push 0x1a
push str.HTTP_1.1_404_Not_Found_r_n_r_n
lea ecx, [esp + 0x17c]
mov dword [esp + 0x194], 0xf
mov dword [esp + 0x190], edi
mov byte [esp + 0x180], 0
call fcn.00403830
mov eax, dword [esp + 0x178]
cmp dword [esp + 0x18c], esi
jae 0x428c9a
lea eax, [esp + 0x178]
mov ecx, dword [esp + 0x188]
mov ebx, dword [ebp + 8]
push edi
push ecx
push eax
push ebx
call dword [sym.imp.WS2_32.dll_send]
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
cmp dword [esp + 0x18c], esi
jb 0x428cce
mov edx, dword [esp + 0x178]
push edx
call fcn.0053a859
add esp, 4
mov ebx, 0xf
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x188], edi
mov byte [esp + 0x178], 0
cmp dword [esp + 0x170], esi
jb 0x428d02
mov eax, dword [esp + 0x15c]
push eax
call fcn.0053a859
add esp, 4
lea ecx, [esp + 0x108]
mov dword [esp + 0x170], ebx
mov dword [esp + 0x16c], edi
mov byte [esp + 0x15c], 0
mov byte [esp + 0x5c0], 0
call fcn.0042a5e0
lea ecx, [esp + 0x108]
push ecx
mov dword [esp + method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.005b8237
add esp, 4
cmp dword [esp + 0x154], esi
jb 0x429106
mov edx, dword [esp + 0x140]
push edx
jmp 0x4290fe
or eax, 0xffffffff
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, ebx
call fcn.00429650
mov edx, dword [ebx]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
push eax
mov ecx, ebx
call edx
mov esi, eax
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
call fcn.0042a550
mov byte [esp + 0x5c0], 3
cmp dword [esp + 0x38], edi
je 0x428f19
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, eax
or edx, ecx
jne 0x428ec8
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
je 0x428f13
cmp edi, dword [esp + 0x18]
jg 0x428df8
jl 0x428df2
cmp esi, dword [esp + 0x14]
jae 0x428df8
add esi, 1
adc edi, 0
lea edx, [esp + 0x3c]
push str.HTTP_1.1_206_Partial_Content_r_n
push edx
call fcn.0042e210
add esp, 8
push 0x5e1608
push ecx
mov eax, esi
sub eax, dword [esp + 0x24]
mov ecx, edi
sbb ecx, dword [esp + 0x28]
lea edx, [esp + 0x44]
push ecx
push eax
push str.Content_Length:
push edx
call fcn.0042e210
add esp, 8
push eax
call fcn.0042a120
add esp, 4
push eax
call fcn.0042e210
mov eax, dword [esp + 0x20]
add esp, 8
push 0x5e1608
push ecx
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push 0x5e1620
push ecx
mov edx, esi
sub edx, 1
mov eax, edi
sbb eax, 0
push eax
push edx
mov edx, dword [esp + 0x3c]
push 0x5e1624
push ecx
mov ecx, dword [esp + 0x48]
push ecx
push edx
lea eax, [esp + 0x6c]
push str.Content_Range:_bytes
push eax
call fcn.0042e210
add esp, 8
push eax
call fcn.0042a120
add esp, 4
push eax
call fcn.0042e210
add esp, 8
push eax
call fcn.0042a120
add esp, 4
push eax
call fcn.0042e210
add esp, 8
push eax
call fcn.0042a120
add esp, 4
push eax
call fcn.0042e210
push 0x5e1608
lea ecx, [esp + 0x48]
push ecx
jmp 0x428f78
and eax, ecx
cmp eax, 0xffffffff
jne 0x428ef1
mov edi, dword [esp + 0x18]
mov eax, esi
sub eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
sbb eax, dword [esp + 0x28]
add esi, 1
mov dword [esp + 0x20], eax
adc edi, 0
jmp 0x428ef9
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x428de4
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
jmp 0x428df2
mov esi, dword [esp + 0x14]
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
lea edx, [esp + 0x3c]
push str.HTTP_1.1_200_OK_r_n
add esi, 1
push edx
adc edi, 0
call fcn.0042e210
mov eax, dword [esp + 0x20]
add esp, 8
push 0x5e1608
push ecx
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x4c]
push str.Content_Length:
push edx
call fcn.0042e210
add esp, 8
push eax
call fcn.0042a120
add esp, 4
push eax
call fcn.0042e210
push 0x5e1608
lea eax, [esp + 0x48]
push eax
call fcn.0042e210
add esp, 0x10
lea ecx, [esp + 0x190]
lea eax, [esp + 0x3c]
call fcn.0042a670
mov byte [esp + 0x5c0], 4
cmp dword [esp + 0x1a8], 0x10
mov eax, dword [esp + 0x194]
jae 0x428fb0
lea eax, [esp + 0x194]
push eax
push 0x5e1654
call fcn.00583141
mov eax, dword [esp + 0x19c]
add esp, 8
cmp dword [esp + 0x1a8], 0x10
jae 0x428fd6
lea eax, [esp + 0x194]
mov ecx, dword [esp + 0x1a4]
mov edx, dword [ebp + 8]
push 0
push ecx
push eax
push edx
call dword [sym.imp.WS2_32.dll_send]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx]
push ecx
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push edi
push esi
mov esi, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [eax + 0xc]
push ecx
push esi
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
push ecx
mov ecx, ebx
call edx
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, 0x10
cmp dword [esp + 0x1a8], esi
jb 0x429046
mov eax, dword [esp + 0x194]
push eax
call fcn.0053a859
add esp, 4
xor ebx, ebx
lea ecx, [esp + 0x88]
mov dword [esp + 0x1a8], 0xf
mov dword [esp + 0x1a4], ebx
mov byte [esp + 0x194], bl
mov byte [esp + 0x5c0], 2
call fcn.0042a5e0
lea ecx, [esp + 0x88]
mov edi, vtable.std::ios_base.0
push ecx
mov dword [esp + 0x8c], edi
call fcn.005b8237
add esp, 4
cmp dword [esp + 0x170], esi
jb 0x4290aa
mov edx, dword [esp + 0x15c]
push edx
call fcn.0053a859
add esp, 4
lea ecx, [esp + 0x108]
mov dword [esp + 0x170], 0xf
mov dword [esp + 0x16c], ebx
mov byte [esp + 0x15c], bl
mov byte [esp + 0x5c0], bl
call fcn.0042a5e0
lea eax, [esp + 0x108]
push eax
mov dword [esp + 0x10c], edi
call fcn.005b8237
add esp, 4
cmp dword [esp + 0x154], esi
jb 0x429106
mov ecx, dword [esp + 0x140]
push ecx
call fcn.0053a859
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x5b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5a0]
xor ecx, esp
call fcn.0057ffd2
mov esp, ebp
pop ebp
ret 8