Function at 0x549990
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 0x5499dc
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], closesocket
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 0x549a3f
mov eax, dword [esp + 0x2c]
cmp byte [eax], 0
jne 0x549a3f
mov eax, dword [esp + 0x28]
sub ecx, dword [eax]
sbb edi, dword [eax + 4]
test edi, edi
jg 0x549a3f
jl 0x549a3d
cmp ecx, edx
jae 0x549a3f
mov edx, ecx
mov edi, dword [esp + 0x6c]
test edx, edx
je 0x549a7a
mov ebp, dword [esp + 0x30]
lea eax, [esp + 0x14]
push eax
push edx
push ebp
push dword [edi + 0x200]
push ebx
call fcn.005240f0
mov ebp, eax
add esp, 0x14
cmp ebp, 0x51
je 0x549f79
test ebp, ebp
jg 0x54a0bd
mov ecx, dword [esp + 0x14]
jmp 0x549a80
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x549ab9
push 7
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.0054aa80
add esp, 0xc
cmp dword [esi + 0x78], 0
jle 0x549ab5
lea eax, [esp + 0x54]
push eax
call fcn.005210f0
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 0x549ad0
cmp dword [esi + 0x90], ecx
jne 0x549ad0
mov al, 1
jmp 0x549ad2
xor al, al
mov byte [esp + 0x11], al
test ecx, ecx
jg 0x549ae2
test al, al
je 0x549f80
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 0x549b1f
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 0x54a0bd
cmp byte [esp + 0x12], al
jne 0x54a073
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
cmp byte [eax], 0
je 0x549bb0
lea eax, [esp + 0x13]
mov byte [esp + 0x13], 0
push eax
lea eax, [esp + 0x18]
push eax
push edi
push ebx
call fcn.0053b560
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x54a0bd
mov eax, dword [edi + 0x1e8]
mov eax, dword [eax + 0x34]
test eax, eax
je 0x549b98
cmp dword [esi + 0xc], ebp
jg 0x549b98
jl 0x549b6c
cmp dword [esi + 8], ebp
ja 0x549b98
cmp dword [esp + 0x14], 0
jle 0x549b98
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 0x54a0bd
cmp byte [esp + 0x12], al
jne 0x54a073
cmp byte [esp + 0x13], 0
jne 0x549f89
mov eax, dword [esp + 0x38]
cmp byte [eax], 0
jne 0x549ed1
cmp dword [esp + 0x14], 0
mov cl, byte [esp + 0x11]
jg 0x549bc3
test cl, cl
je 0x549ed5
cmp byte [ebx + 0x154], 0
jne 0x549ff4
cmp dword [esi + 0x90], 0
jne 0x549c11
test cl, cl
jne 0x549c11
mov eax, dword [edi + 0x1e8]
test dword [eax + 0x44], 0x40003
je 0x549c11
push dword [esp + 0x78]
push edi
push ebx
call fcn.0053a4a0
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x54a0bd
mov eax, dword [esp + 0x78]
cmp byte [eax], 0
jne 0x54a0bd
inc dword [esi + 0x90]
cmp byte [ebx + 0x6db], 0
je 0x549c7e
cmp dword [esi + 0x48], 0
je 0x549c6c
lea edi, [ebx + 0x8b8]
push edi
call fcn.00510e70
add esp, 4
push eax
push edi
call fcn.00510e80
add esp, 4
push eax
push 3
push ebx
call fcn.00523ee0
add esp, 0x10
cmp dword [esi + 0x48], 1
jne 0x549c66
push dword [esp + 0x14]
push dword [esi + 0x50]
push 3
push ebx
call fcn.00523ee0
mov edi, dword [esp + 0x7c]
jmp 0x549c7b
mov edi, dword [esp + 0x6c]
jmp 0x549c7e
push dword [esp + 0x14]
push dword [esi + 0x50]
push 3
push ebx
call fcn.00523ee0
add esp, 0x10
cmp byte [esi + 0xc7], 0
je 0x549cce
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1c]
push dword [esi + 0x50]
push ebx
call fcn.0054cdd0
add esp, 0x14
test eax, eax
jg 0x549faf
cmp eax, 0xffffffff
jne 0x549cce
and dword [esi + 0x64], 0xfffffffe
mov edx, dword [edi + 0x10]
mov eax, edx
mov ecx, dword [edi + 0x14]
or eax, ecx
je 0x549cce
push ecx
push edx
push str.Leftovers_after_chunking:___I64du_bytes
push ebx
call fcn.00524050
add esp, 0x10
cmp dword [esi + 0x48], 1
jne 0x549cf6
cmp byte [esi + 0xc5], 0
jne 0x549cf6
lea eax, [ebx + 0x8b8]
push eax
call fcn.00510e70
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 0x549d09
cmp edi, ecx
je 0x549d8c
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 0x549d8c
jg 0x549d25
cmp eax, ecx
jb 0x549d8c
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 0x549d71
cmp byte [esi + 0xc5], 0
jne 0x549d71
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.00524050
push 1
push dword [esp + 0x94]
call fcn.00524d30
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 0x549d90
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.0054a7e0
add esp, 0xc
cmp byte [esi + 0xc7], 0
jne 0x549ecd
cmp dword [esp + 0x14], 0
jne 0x549dd6
cmp dword [esi + 0x48], 0
jne 0x549ddc
mov cl, byte [esp + 0x11]
test cl, cl
je 0x549ec7
cmp dword [esi + 0x48], 0
je 0x549e2e
cmp byte [esi + 0xc5], 0
jne 0x549e2e
lea ebp, [ebx + 0x8b8]
push ebp
call fcn.00510e70
mov edi, dword [esi + 8]
add esp, 4
mov edx, dword [esi + 0xc]
mov ecx, edi
and ecx, edx
cmp ecx, 0xffffffff
je 0x549e0f
xor ecx, ecx
cmp ecx, edx
jl 0x549e0f
jg 0x549e11
cmp eax, edi
ja 0x549e11
mov edi, eax
push ebp
call fcn.00510e80
push edi
push eax
push 1
push ebx
call fcn.005240e0
mov ebp, eax
add esp, 0x14
test ebp, ebp
jne 0x54a0bd
cmp dword [esi + 0x48], 2
jge 0x549e68
cmp byte [ebx + 0x6e3], 0
jne 0x549e7d
mov eax, dword [esi + 0x80]
test eax, eax
je 0x549e7d
cmp byte [esi + 0xc5], 0
jne 0x549e68
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x549e68
push ecx
push dword [esi + 0x50]
push eax
push ebx
call fcn.0051b9c0
add esp, 0x10
mov ebp, eax
mov edi, dword [esp + 0x6c]
mov dword [esi + 0x48], 0
test ebp, ebp
jne 0x54a0bd
jmp 0x549ed1
cmp byte [esi + 0xc5], 0
jne 0x549e68
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x6c]
test ecx, ecx
je 0x549e6c
mov eax, dword [edi + 0x1e8]
mov edx, dword [esi + 0x50]
test dword [eax + 0x44], 0xc000
je 0x549eb3
push ecx
push edx
push ebx
call fcn.005306a0
add esp, 0xc
mov ebp, eax
jmp 0x549e6c
push dword [esp + 0x14]
push edx
push 1
push ebx
call fcn.005240e0
add esp, 0x10
mov ebp, eax
jmp 0x549e6c
mov edi, dword [esp + 0x6c]
jmp 0x549ed5
mov edi, dword [esp + 0x6c]
mov cl, byte [esp + 0x11]
mov eax, dword [edi + 0x1e8]
cmp dword [eax + 0x34], 0
je 0x549eed
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x54a018
test cl, cl
je 0x549ef5
and dword [esi + 0x64], 0xfffffffe
mov eax, dword [esi + 0x64]
test al, 0x10
jne 0x54a073
test al, 1
je 0x54a073
cmp dword [esp + 0x1c], 0
jl 0x54a073
jg 0x549f20
cmp dword [esp + 0x20], 0
jbe 0x54a073
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x1e8]
mov eax, dword [eax + 0x44]
test al, 0xc
je 0x549f42
push 1
push ebx
call fcn.00523850
movzx eax, al
add esp, 8
test eax, eax
jmp 0x549f53
test al, 0x30
jne 0x549f59
push 0
push ebx
call fcn.00523850
add esp, 8
test al, al
je 0x54a073
mov ecx, dword [esp + 0x34]
mov eax, ecx
dec ecx
mov dword [esp + 0x34], ecx
test eax, eax
je 0x54a073
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
jmp 0x549a01
xor ebp, ebp
jmp 0x54a073
and dword [esi + 0x64], 0xfffffffe
jmp 0x54a073
mov ecx, dword [esp + 0x14]
test ecx, ecx
jle 0x54a073
push dword [ebx + 0xcbc]
push ecx
push str.Excess_found:_excess___zd_url___s__zero_length_body_
push ebx
call fcn.00524050
add esp, 0x10
jmp 0x54a073
cmp eax, 6
jne 0x549fd0
push str.Failed_reading_the_chunked_encoded_stream
push ebx
call fcn.00523f80
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.0054cd40
push eax
push str._s_in_chunked_encoding
push ebx
call fcn.00523f80
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.00524d30
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 0x54a03d
mov eax, edi
sub eax, edx
add eax, ebp
jmp 0x54a041
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 0x54a0bd
cmp byte [esp + 0x12], al
je 0x54a073
or dword [esi + 0x64], 1
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x54a08b
cmp dword [esp + 0x1c], 0
jg 0x54a099
jl 0x54a08b
cmp dword [esp + 0x20], 0
ja 0x54a099
mov eax, dword [esp + 0x7c]
mov byte [ebx + 0xd67], 1
mov byte [eax], 1
mov eax, dword [esi + 0x64]
and al, 3
cmp al, 2
jne 0x54a0bd
cmp byte [edi + 0x1ce], 0
je 0x54a0bd
push str.we_are_done_reading_and_this_is_set_to_close__stop_send
push ebx
call fcn.00524050
add esp, 8
and dword [esi + 0x64], 0xfffffffd
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x54
ret