Function at 0x10016cf9
Capabilities:
Create http request
Encode data using xor
Read data from internet
Receive data

Disassembly:
mov eax, 0x10047814
call fcn.10020040
sub esp, 0x50
push ebx
push esi
mov esi, ecx
mov ebx, str.Z:ProjectsCOTHER_PROJECTSALL_SF_PLUGINSFriendListSFPlugin_auto_assets_nlohmannjson.hpp
push edi
cmp dword [esi], 0
jne 0x10016bfe
push 0x32ec
push ebx
push str.m_object___nullptr
call fcn.1002ed88
add esp, 0xc
mov edi, dword [esi]
movzx eax, byte [edi]
cmp eax, 9
ja case.0x10016c0f.3
movzx eax, byte [eax + 0x10016cef]
jmp dword [eax*4 + 0x10016cdf]
mov ecx, dword [edi + 8]
mov eax, dword [esi + 4]
cmp eax, dword [ecx]
jne 0x10016c33
push 0x32f2
push ebx
push str.m_it.object_iterator___m_object__m_data.m_value.object__end__
call fcn.1002ed88
add esp, 0xc
mov eax, dword [esi + 4]
add eax, 0x28
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
mov ecx, dword [edi + 8]
mov eax, dword [esi + 8]
cmp eax, dword [ecx + 4]
jne 0x10016c66
push 0x32f8
push ebx
push str.m_it.array_iterator___m_object__m_data.m_value.array__end__
call fcn.1002ed88
add esp, 0xc
mov eax, dword [esi + 8]
jmp 0x10016c39
cmp dword [esi + 0xc], 0
jne 0x10016c75
mov eax, edi
jmp 0x10016c39
push str.cannot_get_value
lea ecx, [ebp - 0x24]
call fcn.100017d8
push edi
lea eax, [ebp - 0x24]
mov dword [ebp - 4], 1
push eax
lea eax, [ebp - 0x5c]
push 0xd6
push eax
call fcn.100062df
add esp, 0x10
lea eax, [ebp - 0x5c]
push 0x10057a5c
jmp 0x10016cd8
push str.cannot_get_value
lea ecx, [ebp - 0x24]
call fcn.100017d8
and dword [ebp - 4], 0
lea eax, [ebp - 0x24]
push edi
push eax
lea eax, [ebp - 0x40]
push 0xd6
push eax
call fcn.100062df
add esp, 0x10
lea eax, [ebp - 0x40]
push 0x10057a5c
push eax
call fcn.10020f25
nop
test eax, 0x1610016c
insb byte es:[edi], dx
add dword [eax], edx
dec eax
insb byte es:[edi], dx
add dword [eax], edx
imul ebp, dword [ecx + eax + 0x10], 0
add dword [edx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add edx, dword [ebp - 125]
push ebp
sub esp, 0x6c
mov eax, 0x10047876
call fcn.10020040
push ecx
mov eax, 0x10f4
call fcn.10020120
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor ebx, ebx
push ebx
push ebx
push ebx
push 1
push str.HTTPGET
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x1001708d
push 0x11
pop ecx
mov esi, str.XEFCG
lea edi, [ebp - 0xfc]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
xor edx, edx
mov eax, ecx
push 0x3a
pop esi
div esi
add edx, 0x30
xor word [ebp + ecx*2 - 0xfc], dx
inc ecx
cmp ecx, 0x22
jl 0x10016d47
lea eax, [ebp - 0xfc]
push eax
lea ecx, [ebp - 0x38]
call fcn.10009b3c
lea eax, [ebp - 0x38]
mov dword [ebp - 4], ebx
push eax
lea ecx, [ebp]
call fcn.10009b09
cmp dword [ebp + 0x14], 8
lea eax, [ebp]
mov esi, dword [ebp + 0x6c]
cmovae eax, dword [ebp]
push ebx
push 0x80000000
push ebx
push ebx
push eax
push esi
mov byte [ebp - 4], 1
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov ecx, eax
mov dword [ebp + 0x64], ecx
test ecx, ecx
jne 0x10016db6
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x1001707d
xor eax, eax
lea edi, [ebp + 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x3c], 0xf
mov byte [ebp + 0x28], bl
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
lea eax, [ebp + 0x5c]
push eax
push 0x1000
lea eax, [ebp - 0x1100]
mov byte [ebp - 4], 2
push eax
push ecx
call edi
mov esi, dword [ebp + 0x64]
test eax, eax
je 0x10016e1d
cmp dword [ebp + 0x5c], 0
jbe 0x10016e1d
push dword [ebp + 0x5c]
lea eax, [ebp - 0x1100]
push eax
lea ecx, [ebp + 0x28]
call fcn.1000ff9c
lea eax, [ebp + 0x5c]
push eax
push 0x1000
lea eax, [ebp - 0x1100]
push eax
push esi
call edi
jmp 0x10016dec
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp + 0x6c]
call esi
push ebx
lea ecx, [ebp + 0x4c]
call fcn.100096f5
sub esp, 0x10
mov byte [ebp - 4], 4
mov ecx, esp
push ebx
push 1
sub esp, 0x28
mov eax, esp
mov dword [eax + 0x24], ebx
lea eax, [ebp + 0x28]
push eax
push ecx
call fcn.10008022
add esp, 0x38
lea ecx, [ebp + 0x4c]
call fcn.1000aded
and dword [ebp + 0x6c], 0
lea eax, [ebp + 0x63]
push eax
lea eax, [ebp + 0x6c]
mov dword [ebp - 4], 3
push eax
lea ecx, [ebp - 0x58]
call fcn.10001770
lea eax, [ebp + 0x4c]
mov dword [ebp + 0x6c], eax
lea ecx, [ebp + 0x6c]
lea eax, [ebp - 0xa0]
push eax
call fcn.10017579
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp + 0x6c]
call fcn.100175ff
mov byte [ebp - 4], 9
jmp 0x10016f79
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0xa
call fcn.10016bcf
mov esi, eax
lea ecx, [ebp + 0x18]
push esi
call fcn.10009cd8
lea ecx, [ebp + 0x18]
call fcn.10014469
push esi
lea ecx, [ebp - 0x20]
call fcn.10009cd8
lea ecx, [ebp - 0x20]
call fcn.100144df
jmp 0x10016f26
lea ecx, [ebp + 0x18]
call fcn.10016bcf
push dword [ebp + 0x6c]
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, eax
call fcn.1001692a
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp + 0x40]
call fcn.10002dca
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xa
call fcn.100019ca
lea ecx, [ebp + 0x18]
call fcn.1000b317
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp + 0x18]
call fcn.10001fed
test al, al
je 0x10016ee3
lea ecx, [ebp - 0xa0]
call fcn.1001769d
push eax
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x58]
call fcn.10016739
lea ecx, [ebp + 0x40]
push ecx
mov ecx, dword [eax]
add ecx, 0x20
call fcn.10016ba7
lea ecx, [ebp + 0x40]
mov byte [ebp - 4], 9
call fcn.10001992
lea ecx, [ebp - 0xa0]
call fcn.1000b317
inc dword [ebp - 0x90]
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0xa0]
call fcn.10001fed
test al, al
je 0x10016ea5
lea ecx, [ebp - 0xd0]
call fcn.100019ca
lea ecx, [ebp - 0xe8]
call fcn.100019ca
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 7
call fcn.100019ca
lea ecx, [ebp - 0x88]
call fcn.100019ca
lea eax, [ebp - 0x58]
mov ecx, 0x1005c690
push eax
call fcn.10016b32
lea ecx, [ebp - 0x4c]
call fcn.10001953
lea ecx, [ebp - 0x54]
call fcn.10001979
push ebx
lea ecx, [ebp + 0x4c]
call fcn.1000fff8
push dword [ebp + 0x4c]
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0xc
call fcn.1001029b
lea ecx, [ebp + 0x28]
call fcn.100019ca
lea ecx, [ebp]
call fcn.1000fc2c
lea ecx, [ebp - 0x38]
call fcn.1000fc2c
xor eax, eax
jmp 0x10017090
lea ecx, [ebp]
call fcn.1000fc2c
lea ecx, [ebp - 0x38]
call fcn.1000fc2c
xor eax, eax
inc eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add ebp, 0x70
leave
ret