Function at 0x49df90
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov esi, ecx
mov eax, dword [0x540010]
xor eax, ebp
mov dword [esp + 0x70], eax
mov ecx, dword [0x546b6c]
test ecx, ecx
je 0x49dfd4
push dword [ebp + 8]
call fcn.0049df90
mov ebx, eax
mov ecx, dword [esp + 0x70]
xor ecx, ebp
call fcn.004e0685
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
movzx eax, byte [esi + 0x1b]
test al, al
jns 0x49dfdf
mov eax, dword [esi + 0x14]
xor ebx, ebx
test eax, eax
je 0x49dff4
mov ecx, dword [esp + 0x70]
xor ecx, ebp
call fcn.004e0685
mov eax, ebx
jmp 0x49dfca
lea edi, [esp + 0x60]
mov dword [edi], ebx
lea eax, [esp + 0x5c]
mov dword [eax], 4
push ebx
push eax
push edi
push 0x20000013
push dword [esi + 0x58]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
setne cl
mov eax, dword [edi]
cmp eax, 0xc8
sete bl
and bl, cl
jne 0x49dfe5
mov dword [esp + 4], ebx
xor ecx, ecx
dec ecx
lea ebx, [esp + 0x64]
mov dword [ebx + 4], ecx
mov dword [ebx], ecx
mov word [ebx + 8], 0xffff
push 0xa
push ebx
push eax
call fcn.004f2ff0
add esp, 0xc
push 0x18
call fcn.004dfb05
add esp, 4
mov edi, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], 0x80000018
mov dword [esp + 0x54], 0x11
add eax, 0x11
cmp edi, str.final_query_info_
ja 0x49e080
cmp eax, str.final_query_info_
ja 0x49e23b
mov dword [esp], eax
movups xmm0, xmmword [str.final_query_info_]
movups xmmword [edi], xmm0
mov word [edi + 0x10], 0x2d
push ebx
call fcn.004fb1c0
add esp, 4
mov edx, ebx
mov ebx, eax
cmp eax, 6
jbe 0x49e1ac
mov eax, ebx
add eax, 0xfffffffa
lea edi, [esp + 0x50]
mov ecx, edi
push edx
push ebx
push 0
mov edx, 0x11
push edx
push edx
push eax
push 0x17
call fcn.00477c80
movzx eax, byte [edi + 0xb]
test al, al
js 0x49e1e7
mov edx, 0xa
cmp eax, 0xa
jne 0x49e201
xor eax, eax
inc eax
lea ecx, [esp + 0x50]
push 0x525b11
push eax
push 0
push edx
push edx
push eax
push edx
call fcn.00477c80
cmp byte [esp + 0x5b], 0
js 0x49e106
lea edx, [esp + 0x50]
jmp 0x49e10a
mov edx, dword [esp + 0x50]
lea edi, [esi + 0x10]
lea ecx, [esp + 8]
call fcn.0049dc60
cmp byte [esi + 0x1b], 0
jns 0x49e126
push dword [edi]
call fcn.004dfb35
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [edi + 8], eax
movsd xmm0, qword [esp + 8]
movsd qword [edi], xmm0
mov byte [esp + 0x13], 0
mov word [esp + 8], 0
cmp byte [esp + 0x5b], 0
jns 0x49e156
push dword [esp + 0x50]
call fcn.004dfb35
add esp, 4
lea edi, [esp + 8]
mov ecx, edi
push 0x144
push str.FinalizeDownload
push 2
call fcn.00455190
lea ebx, [esp + 0x10]
lea ecx, [esp + 0x44]
push 0x5309ce
push str.Unsuccessful_download:
call fcn.004147c0
add esi, 4
mov ecx, ebx
push esi
call fcn.00414700
mov ecx, edi
call fcn.004553c0
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x49e1a3
mov eax, dword [esp + 0x60]
mov dword [ecx], eax
mov ebx, dword [esp + 4]
jmp 0x49dfe5
test ebx, ebx
je 0x49e1e7
mov ecx, dword [esp]
lea eax, [ecx + ebx]
lea edx, [esp + 0x64]
cmp eax, edx
seta al
cmp ecx, edx
ja 0x49e1c7
test al, al
jne 0x49e23b
push ebx
lea eax, [esp + 0x68]
push eax
push dword [esp + 8]
call fcn.004e3510
add esp, 0xc
mov eax, ebx
add eax, 0x11
mov dword [esp + 0x54], eax
mov byte [edi + ebx + 0x11], 0
mov edx, 0x7fffffff
and edx, dword [esp + 0x58]
dec edx
mov eax, dword [esp + 0x54]
cmp edx, eax
je 0x49e0e1
mov edi, dword [esp + 0x50]
lea ecx, [edi + eax]
cmp ecx, 0x525b11
ja 0x49e218
lea edx, [edi + eax]
inc edx
cmp edx, 0x525b11
ja 0x49e23b
mov byte [ecx], 0x2d
inc eax
cmp byte [esp + 0x5b], 0
js 0x49e235
mov ecx, eax
and cl, 0x7f
mov byte [esp + 0x5b], cl
mov byte [edi + eax], 0
jmp 0x49e0f9
mov dword [esp + 0x54], eax
jmp 0x49e22c
push str....._third_partylibc_srcinclude__stringchar_traits.h:245:_assertion__std::__is_pointer_in_range___s1____s1____n____s2__failed:_char_traits::copy:_source_and_destination_ranges_overlap_n
push 0x521354
call fcn.0044d640
int3