Function at 0x10002110
Capabilities:
Check if file exists
Connect to http server
Create http request
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
mov eax, 0x142c
call fcn.1000e960
mov eax, dword [0x1001603c]
xor eax, esp
mov dword [esp + 0x1428], eax
push ebx
push ebp
mov ebp, dword [esp + 0x1438]
mov ebx, dword [ebp]
push esi
push edi
xor edi, edi
push 0x3ff
lea eax, [esp + 0x43d]
push edi
push eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], edi
mov byte [esp + 0x444], 0
call fcn.10006220
mov edx, dword [ebp + 0x14]
add esp, 0xc
lea ecx, [esp + 0x438]
push ecx
push edx
mov ecx, ebx
call sym.HttpLoad.dll_private:_void___thiscall_CHttpLoadThreads::GetMultiLoadTempFile_int__char__
lea eax, [esp + 0x438]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x1000230b
lea ecx, [esp + 0x438]
push 0x10013b64
push ecx
call fcn.10002fcf
mov esi, eax
add esp, 8
cmp esi, edi
je 0x100022ff
push 0x3ff
lea edx, [esp + 0x3d]
push edi
push edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0x44], 0
call fcn.10006220
push esi
lea eax, [esp + 0x48]
push 0x400
push eax
call fcn.10002d84
add esp, 0x18
test eax, eax
je 0x100021f8
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x3c]
push str.laoded_ld_n
push edx
call fcn.10002964
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [ebp + 0xc], eax
push esi
lea ecx, [esp + 0x3c]
push 0x400
push ecx
call fcn.10002d84
add esp, 0xc
test eax, eax
je 0x10002226
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x3c]
push str.total_ld_n
push eax
call fcn.10002964
add esp, 0xc
push esi
call fcn.10003479
add esp, 4
lea ebx, [ebp + 0x480]
mov edi, 0x10013bd6
mov esi, ebx
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x100022af
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
add edx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x20]
lea eax, [esp + 0x38]
jne 0x10002270
push edx
push ebx
push str._sRange:_bytes_ld__r_n
push eax
call fcn.10002881
add esp, 0x10
jmp 0x10002284
mov ecx, dword [ebp + 8]
push ecx
push edx
push ebx
push str._sRange:_bytes_ld__ld_r_n
push eax
call fcn.10002881
add esp, 0x14
lea eax, [esp + 0x38]
mov ecx, eax
sub ebx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [ebx + eax], cl
add eax, 1
test cl, cl
jne 0x10002290
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], 1
xor edi, edi
jmp 0x10002340
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
cmp edx, dword [eax + 0x20]
jne 0x100022e1
mov ecx, dword [ebp + 4]
add ecx, dword [esp + 0x10]
push ecx
push str.Range:_bytes_ld__r_n
push ebx
call fcn.10002881
mov ebx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x10], 1
xor edi, edi
jmp 0x10002340
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 8]
add eax, dword [esp + 0x10]
push edx
push eax
push str.Range:_bytes_ld__ld_r_n
push ebx
call fcn.10002881
mov ebx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x10], 1
xor edi, edi
jmp 0x10002340
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [ebx + 0x20]
mov edx, dword [ebp + 4]
lea eax, [ebp + 0x480]
jne 0x1000232d
push edx
push str.Range:_bytes_ld__r_n
push eax
call fcn.10002881
add esp, 0xc
jmp 0x10002340
mov ecx, dword [ebp + 8]
push ecx
push edx
push str.Range:_bytes_ld__ld_r_n
push eax
call fcn.10002881
add esp, 0x10
push 0x3ff
lea ecx, [esp + 0xc3d]
push edi
push ecx
mov byte [esp + 0xc44], 0
call fcn.10006220
push 0x3ff
lea edx, [esp + 0x1049]
push edi
push edx
mov byte [esp + 0x1050], 0
call fcn.10006220
lea esi, [ebp + 0x80]
push str.http:__
push esi
call fcn.10002ad0
add esp, 0x20
cmp eax, edi
je 0x10002393
add eax, 7
jmp 0x10002395
mov eax, esi
mov dl, byte [eax]
xor ecx, ecx
test dl, dl
je 0x100023b0
lea ecx, [ecx]
cmp dl, 0x2f
je 0x100023b0
mov dl, byte [ecx + eax + 1]
add ecx, 1
test dl, dl
jne 0x100023a0
push ecx
push eax
lea eax, [esp + 0xc40]
push eax
call fcn.10002c60
push str.http:__
push esi
call fcn.10002ad0
add esp, 0x14
cmp eax, edi
je 0x100023d6
add eax, 7
jmp 0x100023d8
mov eax, esi
push 0x10013b30
push eax
call fcn.10002ad0
add esp, 8
lea edx, [esp + 0x1038]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx], cl
add eax, 1
add edx, 1
test cl, cl
jne 0x100023f0
push edi
push edi
push edi
push 1
push str.CHttpLoadThreads
call dword [sym.imp.WININET.dll_InternetOpenA]
cmp eax, edi
mov dword [esp + 0x24], eax
je 0x100026e9
push edi
push edi
push 3
push edi
push edi
push 0x50
lea ecx, [esp + 0xc50]
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetConnectA]
cmp eax, edi
mov dword [esp + 0x2c], eax
je 0x100026e9
push 1
push 0x4000000
lea edx, [esp + 0x38]
push edx
push edi
push edi
lea ecx, [esp + 0x104c]
push ecx
lea edx, [ebp + 0x1c]
push edx
push eax
mov dword [esp + 0x50], 0x10013ba8
mov dword [esp + 0x54], 0x10013bac
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
cmp eax, edi
mov dword [esp + 0x18], eax
je 0x100026e9
lea edx, [ebp + 0x480]
mov edi, 0x10013bd6
mov esi, edx
mov ecx, 1
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x100024a4
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10002497
sub eax, esi
jmp 0x100024a6
xor eax, eax
mov ecx, dword [esp + 0x18]
xor edi, edi
push edi
push edi
push eax
push edx
push ecx
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x100026e9
push 0x3ff
lea edx, [esp + 0x83d]
push edi
push edx
mov dword [esp + 0x2c], edi
mov byte [esp + 0x844], 0
call fcn.10006220
mov ecx, dword [ebp + 0x14]
add esp, 0xc
lea eax, [esp + 0x438]
push eax
push ecx
mov ecx, ebx
mov dword [esp + 0x24], edi
call sym.HttpLoad.dll_private:_void___thiscall_CHttpLoadThreads::GetMultiLoadSaveFile_int__char__
cmp dword [esp + 0x10], edi
je 0x1000250d
push 0x10013b60
lea edx, [esp + 0x43c]
push edx
jmp 0x1000251a
push 0x10013b44
lea eax, [esp + 0x43c]
push eax
call fcn.10002fcf
add esp, 8
cmp eax, edi
mov dword [esp + 0x10], eax
je 0x100026c7
mov eax, dword [esp + 0x14]
xor ebx, ebx
cmp dword [eax + 0x28], 3
je 0x1000261c
mov edi, edi
cmp dword [eax + 0x28], 2
jne 0x10002553
push 0x28
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1000260c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [esp + 0x1c]
push ecx
push 0x400
lea edx, [esp + 0x840]
mov esi, eax
mov eax, dword [esp + 0x20]
push edx
push eax
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esp + 0x20], 0
je 0x1000263a
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jbe 0x1000263a
cmp edi, 0x1f4
jbe 0x100025d7
test ebx, ebx
mov dword [esp + 0x28], ebx
fild dword [esp + 0x28]
jge 0x100025b3
fadd dword [0x10013c18]
fmul qword [0x10013c10]
shl edi, 0xa
test edi, edi
mov dword [esp + 0x28], edi
fild dword [esp + 0x28]
jge 0x100025ce
fadd dword [0x10013c18]
fdivp st(1)
xor ebx, ebx
xor edi, edi
fstp dword [ebp + 0x10]
mov edx, dword [esp + 0x10]
add dword [ebp + 0xc], ecx
push edx
sub eax, esi
push 1
add edi, eax
push ecx
lea eax, [esp + 0x844]
push eax
add ebx, ecx
call fcn.10003379
push 0x400
lea ecx, [esp + 0x84c]
push 0
push ecx
call fcn.10006220
add esp, 0x1c
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x28], 3
mov eax, edx
jne 0x10002540
cmp dword [eax + 0x24], 0
je 0x1000263a
sub esp, 0x880
mov edi, esp
mov ecx, 0x220
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call sym.HttpLoad.dll_private:_void___thiscall_CHttpLoadThreads::SaveMultiLoadTempFile_struct_LoadInfo_
mov eax, dword [esp + 0x10]
push eax
call fcn.10003479
add esp, 4
cmp dword [esp + 0x1c], 0
jne 0x100026b3
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x438]
push ecx
push edx
mov ecx, esi
call sym.HttpLoad.dll_private:_void___thiscall_CHttpLoadThreads::GetMultiLoadTempFile_int__char__
lea eax, [esp + 0x438]
push eax
call fcn.10002c2e
xor eax, eax
add esp, 4
mov dword [ebp + 0x18], 1
cmp dword [esi + 0x20], eax
jle 0x100026a3
mov ecx, dword [esi + 0x1c]
add ecx, 0x18
lea esp, [esp]
cmp dword [ecx], 0
je 0x100026ce
add eax, 1
add ecx, 0x880
cmp eax, dword [esi + 0x20]
jl 0x10002690
mov ecx, esi
call sym.HttpLoad.dll_private:_void___thiscall_CHttpLoadThreads::CombineLoadFile_void_
mov dword [esi + 0x28], 4
jmp 0x100026ce
cmp dword [esp + 0x20], 0
jne 0x100026ce
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], 0xffffffff
jmp 0x100026ce
mov dword [ebx + 0x28], 0xffffffff
mov edx, dword [esp + 0x18]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push edx
call esi
mov eax, dword [esp + 0x2c]
push eax
call esi
mov ecx, dword [esp + 0x24]
push ecx
call esi
mov ecx, dword [esp + 0x1438]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.10002872
add esp, 0x142c
ret 4