Function at 0x41f149
Capabilities:
Check http status code
Get http content length
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x30
mov eax, dword [esp + 0x64]
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov esi, ecx
push ebx
push 3
push dword [esp + 0x68]
mov dword [eax], ebx
push dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push dword [esp + 0x60]
mov dword [esp + 0x24], esi
push dword [eax]
push dword [esp + 0x5c]
call fcn.0041f833
test eax, eax
jne 0x41f829
mov eax, dword [esi + 4]
mov edi, 0x84c0c000
cmp byte [esp + 0x6c], bl
mov dword [esi + 8], eax
mov dword [esp + 0x30], eax
mov eax, 0x8440c000
cmove edi, eax
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], 0x444628
mov dword [esp + 0x3c], ebx
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.0040ab13
mov ecx, dword [esp + 0x64]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x54], eax
mov ecx, dword [ecx]
cmp dword [ecx - 0xc], ebx
je 0x41f1e8
push dword [ecx - 0xc]
push ecx
lea ecx, [esp + 0x5c]
call fcn.00402b67
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
push edi
lea ecx, [esp + 0x3c]
push ecx
push ecx
push ecx
push eax
push dword [esp + 0x60]
mov ecx, esi
push dword [esi + 8]
call fcn.0041f88c
mov ebx, eax
test ebx, ebx
jne 0x41f812
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
cmp byte [esp + 0x6c], bl
je 0x41f259
cmp byte [esi + 0x94], bl
je 0x41f259
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], 4
push ecx
lea ecx, [esp + 0x70]
push ecx
push 0x1f
push eax
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
push dword [esp + 0x54]
or dword [esp + 0x70], 0x3380
lea eax, [esp + 0x70]
push eax
push 0x1f
push dword [esi + 4]
call dword [sym.imp.WININET.dll_InternetSetOptionW]
call fcn.0040522e
push eax
lea ecx, [esp + 0x58]
call fcn.004028b4
mov ebx, dword [esp + 0x70]
xor ecx, ecx
cmp dword [ebx], ecx
jbe 0x41f2b2
call fcn.0040522e
push eax
lea ecx, [esp + 0x70]
call fcn.004028b4
push dword [ebx]
lea eax, [esp + 0x70]
push str.Range:_bytes_u__r_n
push eax
call fcn.0040a5cf
mov esi, dword [esp + 0x78]
lea ecx, [esp + 0x60]
add esp, 0xc
push dword [esi - 0xc]
push esi
call fcn.00402b67
lea ecx, [esi - 0x10]
call fcn.004052ff
mov esi, dword [esp + 0x10]
lea edx, [esi + 0x42]
xor ebx, ebx
cmp word [edx], bx
jbe 0x41f310
lea ecx, [esp + 0x60]
call fcn.0041a66b
call fcn.0040522e
push eax
lea ecx, [esp + 0x70]
call fcn.004028b4
mov edi, dword [esp + 0x60]
lea eax, [esp + 0x6c]
push edi
push str.If_Modified_Since:__s_r_n
push eax
call fcn.0040a5cf
mov esi, dword [esp + 0x78]
lea ecx, [esp + 0x60]
add esp, 0xc
push dword [esi - 0xc]
push esi
call fcn.00402b67
lea ecx, [esi - 0x10]
call fcn.004052ff
lea ecx, [edi - 0x10]
call fcn.004052ff
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x4c], ebx
call fcn.0040522e
push eax
lea ecx, [esp + 0x70]
call fcn.004028b4
mov eax, dword [esi + 0x8c]
cmp dword [eax - 0xc], ebx
je 0x41f378
push str.Content_Type:_application_x_www_form_urlencoded__charsetutf_8_r_n
lea ecx, [esp + 0x58]
call fcn.004028da
push ecx
mov ecx, dword [esi + 0x8c]
lea edx, [esp + 0x70]
call fcn.0041a411
mov edi, dword [esp + 0x70]
pop ecx
cmp dword [edi - 4], 1
jle 0x41f36b
push dword [edi - 0xc]
lea ecx, [esp + 0x70]
call fcn.004029f0
mov edi, dword [esp + 0x6c]
mov eax, dword [edi - 0xc]
mov dword [esp + 0x14], edi
mov dword [esp + 0x4c], eax
jmp 0x41f37c
mov edi, dword [esp + 0x6c]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x41f387
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [esp + 0x54]
mov ebx, eax
mov esi, dword [esi + 4]
mov ebp, dword [eax - 0xc]
xor eax, eax
test ebp, ebp
cmove ebx, eax
mov eax, dword [esp + 0x10]
xor ecx, ecx
push dword [eax + 0x64]
mov dword [eax + 0x34], 7
mov byte [eax + 0x38], cl
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push dword [esp + 0x4c]
push dword [esp + 0x18]
push ebp
push ebx
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x41f3dd
mov ecx, esi
call fcn.0041f941
mov ebx, eax
test ebx, ebx
je 0x41f3dd
xor eax, eax
jmp 0x41f3e9
xor eax, eax
mov ebx, eax
cmp dword [esi + 0x30], eax
jne 0x41f3e9
mov ebx, dword [esi + 0x2c]
push eax
lea ebp, [esi + 0x98]
mov dword [esp + 0x1c], 4
mov dword [ebp], eax
lea eax, [esp + 0x1c]
push eax
push ebp
push 0x20000013
push dword [esi + 4]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x41f7ed
xor eax, eax
push eax
mov dword [esp + 0x70], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x74]
push eax
push 0x20000005
push dword [esi + 4]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov ecx, eax
neg ecx
sbb ecx, ecx
and ecx, dword [esp + 0x6c]
cmp byte [esi + 0x62], 0
mov dword [esp + 0x6c], ecx
je 0x41f48f
cmp dword [ebp], 0x130
je 0x41f48f
xor ecx, ecx
mov dword [esp + 0x20], 0x10
push ecx
lea eax, [esp + 0x24]
push eax
lea ebp, [esi + 0x52]
push ebp
push 0x4000000b
push dword [esi + 4]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x41f485
push 0x10
push eax
push ebp
call fcn.00425780
add esp, 0xc
mov ecx, dword [esp + 0x6c]
lea ebp, [esi + 0x98]
mov eax, dword [esi + 0x8c]
xor edx, edx
cmp dword [eax - 0xc], edx
je 0x41f54c
cmp dword [ebp], 0xc8
jne 0x41f54c
push 0x43a4f1
mov ebp, 0x410
push ebp
call fcn.00424bbb
pop ecx
pop ecx
mov esi, eax
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x10]
xor eax, eax
push eax
lea eax, [esp + 0x64]
push eax
push esi
push 1
push dword [ebp + 4]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x41f526
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x41f78d
push esi
call fcn.00424704
mov dword [esp], 0x43a4f1
push dword [esp + 0x64]
call fcn.00424bbb
pop ecx
pop ecx
mov esi, eax
xor eax, eax
push eax
lea eax, [esp + 0x64]
push eax
push esi
push 1
push dword [ebp + 4]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x41f787
mov eax, dword [esp + 0x60]
test eax, eax
je 0x41f53d
shr eax, 1
lea ecx, [ebp + 0x90]
push eax
push esi
call fcn.00402b67
push esi
call fcn.00424704
pop ecx
mov ecx, dword [esp + 0x6c]
mov esi, ebp
xor edx, edx
lea ebp, [esi + 0x98]
mov eax, dword [ebp]
cmp eax, 0x193
ja 0x41f6dc
je 0x41f7a6
sub eax, 0xc8
je 0x41f6bf
sub eax, 6
je 0x41f6a0
sub eax, 0x62
je 0x41f798
sub eax, 0x61
jne 0x41f6f9
mov ebx, 0xe0000012
cmp ebx, 0x2f0d
je 0x41f712
cmp ebx, 0x2f0c
je 0x41f712
cmp ebx, 0x2f06
je 0x41f712
cmp ebx, 0x2f05
je 0x41f712
cmp ebx, 0xe0000012
jne 0x41f7d8
call fcn.0040522e
push eax
lea ecx, [esp + 0x54]
call fcn.004028b4
lea eax, [esp + 0x50]
push eax
push dword [ebp]
push dword [esi + 4]
call fcn.0041fdc6
mov esi, dword [ebp]
mov ebp, 0x197
cmp esi, ebp
sete byte [esp + 0x24]
call fcn.0040522e
push eax
lea ecx, [esp + 0x60]
call fcn.004028b4
cmp esi, ebp
mov esi, dword [esp + 0x10]
jne 0x41f61f
lea eax, [esp + 0x5c]
push eax
push dword [esi + 4]
call fcn.0041fef5
call fcn.0040522e
push eax
lea ecx, [esp + 0x68]
call fcn.004028b4
call fcn.0040522e
push eax
lea ecx, [esp + 0x5c]
call fcn.004028b4
lea eax, [esp + 0x58]
mov ecx, esi
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x5c]
push dword [esi + 4]
call fcn.0041fe6a
mov ecx, dword [esp + 0x58]
lea ecx, [ecx - 0x10]
test al, al
je 0x41f7ad
call fcn.004052ff
mov ecx, dword [esp + 0x64]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov ecx, dword [esp + 0x50]
lea ecx, [ecx - 0x10]
call fcn.004052ff
jmp 0x41f387
mov eax, dword [esp + 0x70]
test ecx, ecx
jne 0x41f6b0
mov dword [eax], edx
mov eax, dword [esp + 0x74]
jmp 0x41f6d5
mov eax, dword [eax]
add eax, ecx
mov ecx, dword [esp + 0x74]
mov dword [ecx], eax
jmp 0x41f591
mov eax, dword [esp + 0x74]
mov dword [eax], ecx
mov eax, dword [esp + 0x70]
test ecx, ecx
je 0x41f6d5
cmp dword [eax], ecx
jae 0x41f79f
mov dword [eax], edx
jmp 0x41f591
sub eax, 0x194
je 0x41f7e6
sub eax, 3
je 0x41f58c
sub eax, 3
je 0x41f7e6
test ebx, ebx
jne 0x41f591
mov eax, dword [esp + 0x70]
mov dword [eax], edx
mov eax, dword [esp + 0x74]
mov dword [eax], ecx
jmp 0x41f7dc
cmp byte [esi + 0x81], 0
je 0x41f768
mov ebp, dword [esi + 4]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x48]
mov dword [esp + 0x24], 4
push eax
push 0x1f
push ebp
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
test eax, eax
je 0x41f7f5
or dword [esp + 0x44], 0x3f05
lea eax, [esp + 0x44]
push 4
push eax
push 0x1f
push ebp
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
setne al
test al, al
je 0x41f7f5
jmp 0x41f779
push dword [esi + 4]
push ebx
push ecx
lea ecx, [esi + 0xc]
call fcn.00423101
test eax, eax
jne 0x41f7f5
lea ecx, [esp + 0x54]
call fcn.00404fb9
jmp 0x41f387
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov ebx, eax
call fcn.00424704
pop ecx
jmp 0x41f7f5
mov ebx, 0xe0000013
jmp 0x41f7f5
mov ebx, 0xe0000010
jmp 0x41f7f5
mov ebx, 0xe0000016
jmp 0x41f7f5
call fcn.004052ff
mov ecx, dword [esp + 0x64]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov ecx, dword [esp + 0x50]
lea ecx, [ecx - 0x10]
call fcn.004052ff
jmp 0x41f7f5
test ebx, ebx
jne 0x41f7f5
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], edx
jmp 0x41f7f5
mov ebx, 0xe0000018
jmp 0x41f7f5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [edi - 0x10]
call fcn.004052ff
mov ecx, dword [esp + 0x54]
add ecx, 0xfffffff0
call fcn.004052ff
lea ecx, [esp + 0x28]
call fcn.0041ffc0
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.004052ff
lea ecx, [esp + 0x30]
call fcn.0041ffa6
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x34