Function at 0x4779e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x54
push ebx
mov ebx, dword [esp + 0x5c]
push ebp
push esi
mov esi, dword [esp + 0x6c]
xor ebp, ebp
mov edx, dword [ebx + 0x234]
push edi
mov edi, dword [ebx + 0x230]
mov eax, edi
or eax, edx
mov dword [esp + 0x24], ebp
mov byte [esp + 0x12], 0
mov dword [esp + 0x34], 0x64
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edx
jne 0x477a2c
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], connect
mov eax, dword [ebx + 0x8c8]
lea ecx, [esi + 0xc2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], ecx
mov byte [eax], 0
mov eax, dword [esp + 0x7c]
mov byte [eax], 0
lea eax, [esi + 0x10]
mov edi, dword [esi + 4]
mov edx, dword [ebx + 0x4b8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esi]
mov dword [esp + 0x28], eax
mov eax, ecx
and eax, edi
cmp eax, 0xffffffff
je 0x477a8f
mov eax, dword [esp + 0x2c]
cmp byte [eax], 0
jne 0x477a8f
mov eax, dword [esp + 0x28]
sub ecx, dword [eax]
sbb edi, dword [eax + 4]
test edi, edi
jg 0x477a8f
jl 0x477a8d
cmp ecx, edx
jae 0x477a8f
mov edx, ecx
mov edi, dword [esp + 0x6c]
test edx, edx
je 0x477aca
mov ebp, dword [esp + 0x30]
lea eax, [esp + 0x14]
push eax
push edx
push ebp
push dword [edi + 0x200]
push ebx
call fcn.00406af5
mov ebp, eax
add esp, 0x14
cmp ebp, 0x51
je 0x477fc9
test ebp, ebp
jg 0x47810d
mov ecx, dword [esp + 0x14]
jmp 0x477ad0
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x477b09
push 7
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.00404f48
add esp, 0xc
cmp dword [esi + 0x78], 0
jle 0x477b05
lea eax, [esp + 0x54]
push eax
call fcn.004070cc
add esp, 4
movups xmm0, xmmword [eax]
movups xmmword [esi + 0x68], xmm0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
or dword [eax], 1
test ecx, ecx
jne 0x477b20
cmp dword [esi + 0x90], ecx
jne 0x477b20
mov al, 1
jmp 0x477b22
xor al, al
mov byte [esp + 0x11], al
test ecx, ecx
jg 0x477b32
test al, al
je 0x477fd0
mov eax, dword [esp + 0x30]
mov byte [ecx + eax], 0
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x1e8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x477b6f
lea ecx, [esp + 0x12]
push ecx
lea ecx, [esp + 0x18]
push ecx
push edi
push ebx
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x47810d
cmp byte [esp + 0x12], al
jne 0x4780c3
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
cmp byte [eax], 0
je 0x477c00
lea eax, [esp + 0x13]
mov byte [esp + 0x13], 0
push eax
lea eax, [esp + 0x18]
push eax
push edi
push ebx
call fcn.00402c75
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x47810d
mov eax, dword [edi + 0x1e8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x477be8
cmp dword [esi + 0xc], ebp
jg 0x477be8
jl 0x477bbc
cmp dword [esi + 8], ebp
ja 0x477be8
cmp dword [esp + 0x14], 0
jle 0x477be8
lea ecx, [esp + 0x12]
push ecx
lea ecx, [esp + 0x18]
push ecx
push edi
push ebx
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x47810d
cmp byte [esp + 0x12], al
jne 0x4780c3
cmp byte [esp + 0x13], 0
jne 0x477fd9
mov eax, dword [esp + 0x38]
cmp byte [eax], 0
jne 0x477f21
cmp dword [esp + 0x14], 0
mov cl, byte [esp + 0x11]
jg 0x477c13
test cl, cl
je 0x477f25
cmp byte [ebx + 0x154], 0
jne 0x478044
cmp dword [esi + 0x90], 0
jne 0x477c61
test cl, cl
jne 0x477c61
mov eax, dword [edi + 0x1e8]
test dword [eax + 0x44], 0x40003
je 0x477c61
push dword [esp + 0x78]
push edi
push ebx
call fcn.004031b1
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x47810d
mov eax, dword [esp + 0x78]
cmp byte [eax], 0
jne 0x47810d
inc dword [esi + 0x90]
cmp byte [ebx + 0x6db], 0
je 0x477cce
cmp dword [esi + 0x48], 0
je 0x477cbc
lea edi, [ebx + 0x8b8]
push edi
call fcn.0040637a
add esp, 4
push eax
push edi
call fcn.004010d2
add esp, 4
push eax
push 3
push ebx
call fcn.00406b59
add esp, 0x10
cmp dword [esi + 0x48], 1
jne 0x477cb6
push dword [esp + 0x14]
push dword [esi + 0x50]
push 3
push ebx
call fcn.00406b59
mov edi, dword [esp + 0x7c]
jmp 0x477ccb
mov edi, dword [esp + 0x6c]
jmp 0x477cce
push dword [esp + 0x14]
push dword [esi + 0x50]
push 3
push ebx
call fcn.00406b59
add esp, 0x10
cmp byte [esi + 0xc7], 0
je 0x477d1e
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1c]
push dword [esi + 0x50]
push ebx
call fcn.00406064
add esp, 0x14
test eax, eax
jg 0x477fff
cmp eax, 0xffffffff
jne 0x477d1e
and dword [esi + 0x64], 0xfffffffe
mov edx, dword [edi + 0x10]
mov eax, edx
mov ecx, dword [edi + 0x14]
or eax, ecx
je 0x477d1e
push ecx
push edx
push str.Leftovers_after_chunking:___I64du_bytes
push ebx
call fcn.0040365c
add esp, 0x10
cmp dword [esi + 0x48], 1
jne 0x477d46
cmp byte [esi + 0xc5], 0
jne 0x477d46
lea eax, [ebx + 0x8b8]
push eax
call fcn.0040637a
mov edx, dword [esp + 0x1c]
add esp, 4
add dword [edx], eax
adc dword [edx + 4], 0
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0xc]
cmp ecx, 0xffffffff
jne 0x477d59
cmp edi, ecx
je 0x477ddc
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cdq
add eax, dword [ebx]
adc edx, dword [ebx + 4]
mov ebx, dword [esp + 0x68]
cmp edx, edi
jl 0x477ddc
jg 0x477d75
cmp eax, ecx
jb 0x477ddc
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov esi, eax
sub esi, ecx
add esi, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x70]
je 0x477dc1
cmp byte [esi + 0xc5], 0
jne 0x477dc1
push dword [edx + 4]
push eax
push edi
push ecx
push dword [esi + 4]
push dword [esi]
push dword [esp + 0x3c]
push str.Excess_found_in_a_read:_excess___zu__size___I64d__maxdownload___I64d__bytecount___I64d
push ebx
call fcn.0040365c
push 1
push dword [esp + 0x94]
call fcn.00407b2b
add esp, 0x2c
mov ecx, dword [esp + 0x18]
mov edx, 0
mov eax, dword [esi + 8]
sub eax, dword [ecx]
cmovs eax, edx
and dword [esi + 0x64], 0xfffffffe
mov dword [esp + 0x14], eax
jmp 0x477de0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
push dword [ecx + 4]
sub dword [esp + 0x24], eax
push dword [ecx]
sbb dword [esp + 0x24], edx
push ebx
call fcn.00407c66
add esp, 0xc
cmp byte [esi + 0xc7], 0
jne 0x477f1d
cmp dword [esp + 0x14], 0
jne 0x477e26
cmp dword [esi + 0x48], 0
jne 0x477e2c
mov cl, byte [esp + 0x11]
test cl, cl
je 0x477f17
cmp dword [esi + 0x48], 0
je 0x477e7e
cmp byte [esi + 0xc5], 0
jne 0x477e7e
lea ebp, [ebx + 0x8b8]
push ebp
call fcn.0040637a
mov edi, dword [esi + 8]
add esp, 4
mov edx, dword [esi + 0xc]
mov ecx, edi
and ecx, edx
cmp ecx, 0xffffffff
je 0x477e5f
xor ecx, ecx
cmp ecx, edx
jl 0x477e5f
jg 0x477e61
cmp eax, edi
ja 0x477e61
mov edi, eax
push ebp
call fcn.004010d2
push edi
push eax
push 1
push ebx
call fcn.00406d16
mov ebp, eax
add esp, 0x14
test ebp, ebp
jne 0x47810d
cmp dword [esi + 0x48], 2
jge 0x477eb8
cmp byte [ebx + 0x6e3], 0
jne 0x477ecd
mov eax, dword [esi + 0x80]
test eax, eax
je 0x477ecd
cmp byte [esi + 0xc5], 0
jne 0x477eb8
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x477eb8
push ecx
push dword [esi + 0x50]
push eax
push ebx
call fcn.00402ac2
add esp, 0x10
mov ebp, eax
mov edi, dword [esp + 0x6c]
mov dword [esi + 0x48], 0
test ebp, ebp
jne 0x47810d
jmp 0x477f21
cmp byte [esi + 0xc5], 0
jne 0x477eb8
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x6c]
test ecx, ecx
je 0x477ebc
mov eax, dword [edi + 0x1e8]
mov edx, dword [esi + 0x50]
test dword [eax + 0x44], 0xc000
je 0x477f03
push ecx
push edx
push ebx
call fcn.0040777f
add esp, 0xc
mov ebp, eax
jmp 0x477ebc
push dword [esp + 0x14]
push edx
push 1
push ebx
call fcn.00406d16
add esp, 0x10
mov ebp, eax
jmp 0x477ebc
mov edi, dword [esp + 0x6c]
jmp 0x477f25
mov edi, dword [esp + 0x6c]
mov cl, byte [esp + 0x11]
mov eax, dword [edi + 0x1e8]
cmp dword [eax + 0x34], 0
je 0x477f3d
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x478068
test cl, cl
je 0x477f45
and dword [esi + 0x64], 0xfffffffe
mov eax, dword [esi + 0x64]
test al, 0x10
jne 0x4780c3
test al, 1
je 0x4780c3
cmp dword [esp + 0x1c], 0
jl 0x4780c3
jg 0x477f70
cmp dword [esp + 0x20], 0
jbe 0x4780c3
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x1e8]
mov eax, dword [eax + 0x44]
test al, 0xc
je 0x477f92
push 1
push ebx
call fcn.00408ac6
movzx eax, al
add esp, 8
test eax, eax
jmp 0x477fa3
test al, 0x30
jne 0x477fa9
push 0
push ebx
call fcn.00408ac6
add esp, 8
test al, al
je 0x4780c3
mov ecx, dword [esp + 0x34]
mov eax, ecx
dec ecx
mov dword [esp + 0x34], ecx
test eax, eax
je 0x4780c3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
jmp 0x477a51
xor ebp, ebp
jmp 0x4780c3
and dword [esi + 0x64], 0xfffffffe
jmp 0x4780c3
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x4780c3
push dword [ebx + 0xcb4]
push ecx
push str.Excess_found:_excess___zd_url___s__zero_length_body_
push ebx
call fcn.0040365c
add esp, 0x10
jmp 0x4780c3
cmp eax, 6
jne 0x478020
push str.Failed_reading_the_chunked_encoded_stream
push ebx
call fcn.00407be9
mov ebp, dword [esp + 0x48]
add esp, 8
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
push eax
call fcn.004048b3
push eax
push str._s_in_chunked_encoding
push ebx
call fcn.00407be9
add esp, 0x10
mov ebp, 0x38
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
push 2
push edi
call fcn.00407b2b
mov eax, dword [esp + 0x80]
add esp, 8
mov ebp, 8
pop edi
pop esi
mov byte [eax], 1
mov eax, ebp
pop ebp
pop ebx
add esp, 0x54
ret
mov edx, dword [esi + 0x50]
add edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
add eax, edx
mov dword [esi + 0x50], edx
mov edi, dword [ebx + 0x4b8]
lea ecx, [edi + ebp]
cmp eax, ecx
jbe 0x47808d
mov eax, edi
sub eax, edx
add eax, ebp
jmp 0x478091
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x6c]
lea ecx, [esp + 0x12]
push ecx
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x18]
push ecx
mov eax, dword [edi + 0x1e8]
push edi
push ebx
mov eax, dword [eax + 0x34]
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x47810d
cmp byte [esp + 0x12], al
je 0x4780c3
or dword [esi + 0x64], 1
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4780db
cmp dword [esp + 0x1c], 0
jg 0x4780e9
jl 0x4780db
cmp dword [esp + 0x20], 0
ja 0x4780e9
mov eax, dword [esp + 0x7c]
mov byte [ebx + 0xd5f], 1
mov byte [eax], 1
mov eax, dword [esi + 0x64]
and al, 3
cmp al, 2
jne 0x47810d
cmp byte [edi + 0x1ce], 0
je 0x47810d
push str.we_are_done_reading_and_this_is_set_to_close__stop_send
push ebx
call fcn.0040365c
add esp, 8
and dword [esi + 0x64], 0xfffffffd
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x54
ret