Function at 0x4576e0
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 0x45772c
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], getpeername
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 0x45778f
mov eax, dword [esp + 0x2c]
cmp byte [eax], 0
jne 0x45778f
mov eax, dword [esp + 0x28]
sub ecx, dword [eax]
sbb edi, dword [eax + 4]
test edi, edi
jg 0x45778f
jl 0x45778d
cmp ecx, edx
jae 0x45778f
mov edx, ecx
mov edi, dword [esp + 0x30]
test edx, edx
je 0x4577ca
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x70]
push edx
push edi
push dword [eax + 0x200]
push ebx
call fcn.004502b0
mov ebp, eax
add esp, 0x14
cmp ebp, 0x51
je 0x457c98
test ebp, ebp
jg 0x457de3
mov ecx, dword [esp + 0x14]
jmp 0x4577d0
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x457809
push 7
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.004604c0
add esp, 0xc
cmp dword [esi + 0x78], 0
jle 0x457805
lea eax, [esp + 0x54]
push eax
call fcn.004455a0
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 0x457820
cmp dword [esi + 0x90], ecx
jne 0x457820
mov al, 1
jmp 0x457822
xor al, al
mov byte [esp + 0x11], al
test ecx, ecx
jg 0x457832
test al, al
je 0x457c9f
mov byte [ecx + edi], 0
mov ecx, dword [esp + 0x6c]
mov dword [esi + 0x50], edi
mov eax, dword [ecx + 0x1e8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x457873
lea edx, [esp + 0x12]
push edx
lea edx, [esp + 0x18]
push edx
push ecx
push ebx
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x457de3
mov ecx, dword [esp + 0x6c]
cmp byte [esp + 0x12], al
jne 0x457d99
mov edi, dword [esp + 0x38]
mov dword [esp + 0x2c], edi
cmp byte [edi], 0
je 0x457904
lea eax, [esp + 0x13]
mov byte [esp + 0x13], 0
push eax
lea eax, [esp + 0x18]
push eax
push ecx
push ebx
call fcn.0045d610
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x457de3
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x1e8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x4578f0
cmp dword [esi + 0xc], ebp
jg 0x4578f0
jl 0x4578c4
cmp dword [esi + 8], ebp
ja 0x4578f0
cmp dword [esp + 0x14], 0
jle 0x4578f0
lea edx, [esp + 0x12]
push edx
lea edx, [esp + 0x18]
push edx
push ecx
push ebx
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x457de3
cmp byte [esp + 0x12], al
jne 0x457d95
cmp byte [esp + 0x13], 0
jne 0x457ca8
cmp byte [edi], 0
jne 0x457bfa
cmp dword [esp + 0x14], 0
mov dl, byte [esp + 0x11]
jg 0x457917
test dl, dl
je 0x457bfe
cmp byte [ebx + 0x154], 0
jne 0x457d13
cmp dword [esi + 0x90], 0
jne 0x457965
test dl, dl
jne 0x457965
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x1e8]
test dword [eax + 0x44], 0x40003
je 0x457965
mov edi, dword [esp + 0x78]
push edi
push ecx
push ebx
call fcn.0045c550
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x457de3
cmp byte [edi], al
jne 0x457de3
inc dword [esi + 0x90]
cmp byte [ebx + 0x6db], 0
je 0x4579b7
cmp dword [esi + 0x48], 0
je 0x4579a5
lea edi, [ebx + 0x8b8]
push edi
call fcn.00446080
add esp, 4
push eax
push edi
call fcn.00446090
add esp, 4
push eax
push 3
push ebx
call fcn.004500a0
add esp, 0x10
cmp dword [esi + 0x48], 1
jne 0x4579b7
push dword [esp + 0x14]
push dword [esi + 0x50]
push 3
push ebx
call fcn.004500a0
add esp, 0x10
cmp byte [esi + 0xc7], 0
je 0x457a0b
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1c]
push dword [esi + 0x50]
push ebx
call fcn.0047ffc0
add esp, 0x14
test eax, eax
jg 0x457cce
cmp eax, 0xffffffff
jne 0x457a0b
mov eax, dword [esp + 0x6c]
and dword [esi + 0x64], 0xfffffffe
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov eax, edx
or eax, ecx
je 0x457a0b
push ecx
push edx
push str.Leftovers_after_chunking:___I64du_bytes
push ebx
call fcn.00450210
add esp, 0x10
cmp dword [esi + 0x48], 1
jne 0x457a33
cmp byte [esi + 0xc5], 0
jne 0x457a33
lea eax, [ebx + 0x8b8]
push eax
call fcn.00446080
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 0x457a46
cmp edi, ecx
je 0x457acc
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 0x457acc
jg 0x457a62
cmp eax, ecx
jb 0x457acc
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 0x457aaf
cmp byte [esi + 0xc5], 0
jne 0x457aaf
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.00450210
mov eax, dword [esp + 0x90]
push 1
push eax
call fcn.00450ef0
add esp, 0x2c
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
sub eax, dword [ecx]
mov dword [esp + 0x14], eax
jns 0x457ac6
mov dword [esp + 0x14], 0
and dword [esi + 0x64], 0xfffffffe
jmp 0x457ad0
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.00460220
add esp, 0xc
cmp byte [esi + 0xc7], 0
jne 0x457bfa
cmp dword [esp + 0x14], 0
jne 0x457b16
cmp dword [esi + 0x48], 0
jne 0x457b1c
mov dl, byte [esp + 0x11]
test dl, dl
je 0x457bfe
cmp dword [esi + 0x48], 0
je 0x457b6e
cmp byte [esi + 0xc5], 0
jne 0x457b6e
lea ebp, [ebx + 0x8b8]
push ebp
call fcn.00446080
mov edi, dword [esi + 8]
add esp, 4
mov edx, dword [esi + 0xc]
mov ecx, edi
and ecx, edx
cmp ecx, 0xffffffff
je 0x457b4f
xor ecx, ecx
cmp ecx, edx
jl 0x457b4f
jg 0x457b51
cmp eax, edi
ja 0x457b51
mov edi, eax
push ebp
call fcn.00446090
push edi
push eax
push 1
push ebx
call fcn.004502a0
mov ebp, eax
add esp, 0x14
test ebp, ebp
jne 0x457de3
cmp dword [esi + 0x48], 2
jge 0x457beb
cmp byte [ebx + 0x6e3], 0
jne 0x457ba5
mov eax, dword [esi + 0x80]
test eax, eax
je 0x457ba5
cmp byte [esi + 0xc5], 0
jne 0x457beb
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x457beb
push ecx
push dword [esi + 0x50]
push eax
push ebx
call fcn.00455ca0
jmp 0x457be6
cmp byte [esi + 0xc5], 0
jne 0x457beb
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x457beb
mov eax, dword [esp + 0x6c]
mov edx, dword [esi + 0x50]
mov eax, dword [eax + 0x1e8]
test dword [eax + 0x44], 0xc000
je 0x457bd9
push ecx
push edx
push ebx
call fcn.0046c830
add esp, 0xc
jmp 0x457be9
push dword [esp + 0x14]
push edx
push 1
push ebx
call fcn.004502a0
add esp, 0x10
mov ebp, eax
mov dword [esi + 0x48], 0
test ebp, ebp
jne 0x457de3
mov dl, byte [esp + 0x11]
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x1e8]
cmp dword [eax + 0x34], 0
je 0x457c1a
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x457d3a
test dl, dl
je 0x457c22
and dword [esi + 0x64], 0xfffffffe
mov eax, dword [esi + 0x64]
test al, 0x10
jne 0x457d99
test al, 1
je 0x457d99
cmp dword [esp + 0x1c], 0
jl 0x457d95
jg 0x457c4d
cmp dword [esp + 0x20], 0
jbe 0x457d95
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x1e8]
mov eax, dword [eax + 0x44]
test al, 0xc
je 0x457c61
push 1
jmp 0x457c67
test al, 0x30
jne 0x457c78
push 0
push ebx
call fcn.0044fa10
add esp, 8
test al, al
je 0x457d95
mov ecx, dword [esp + 0x34]
mov eax, ecx
dec ecx
mov dword [esp + 0x34], ecx
test eax, eax
je 0x457d95
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
jmp 0x457751
xor ebp, ebp
jmp 0x457d95
and dword [esi + 0x64], 0xfffffffe
jmp 0x457d95
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x457d95
push dword [ebx + 0xcb4]
push ecx
push str.Excess_found:_excess___zd_url___s__zero_length_body_
push ebx
call fcn.00450210
add esp, 0x10
jmp 0x457d95
cmp eax, 6
jne 0x457cef
push str.Failed_reading_the_chunked_encoded_stream
push ebx
call fcn.00450140
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.0047ff30
push eax
push str._s_in_chunked_encoding
push ebx
call fcn.00450140
add esp, 0x10
mov ebp, 0x38
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
push 2
push dword [esp + 0x70]
call fcn.00450ef0
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 0x457d5f
mov eax, edi
sub eax, edx
add eax, ebp
jmp 0x457d63
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x12]
push edx
mov dword [esp + 0x18], eax
lea edx, [esp + 0x18]
push edx
mov eax, dword [ecx + 0x1e8]
push ecx
push ebx
mov eax, dword [eax + 0x34]
call eax
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x457de3
cmp byte [esp + 0x12], al
je 0x457d95
or dword [esi + 0x64], 1
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x457db1
cmp dword [esp + 0x1c], 0
jg 0x457dbf
jl 0x457db1
cmp dword [esp + 0x20], 0
ja 0x457dbf
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 0x457de3
cmp byte [ecx + 0x1ce], 0
je 0x457de3
push str.we_are_done_reading_and_this_is_set_to_close__stop_send
push ebx
call fcn.00450210
add esp, 8
and dword [esi + 0x64], 0xfffffffd
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x54
ret