Function at 0x100bad40
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Create tcp socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Send http request
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1024db2b
push eax
mov eax, 0x1160
mov dword fs:[0], esp
call fcn.1006fb30
push esi
push edi
push dword [ebp + 8]
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x1c], 0
call fcn.1001a380
mov dword [ebp - 4], 0
cmp byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment], 0
mov esi, 1
mov edi, dword [sym.imp.VCRUNTIME140.dll_strstr]
mov dword [ebp - 0x64], 0xffffffff
jne 0x100badb5
lea ecx, [ebp - 0x74]
call sym.WMCommon.dll_private:_bool___thiscall_WM::GMSocket::InitEnvironment_void_
movzx ecx, byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment]
test al, al
cmovne ecx, esi
mov byte [sym.WMCommon.dll_bool_WM::GMSocket::m_isInitEnvironment], cl
push 6
push 1
push 2
mov byte [ebp - 4], 1
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x64], eax
cmp eax, 0xffffffff
je 0x100bbb89
push 4
xor eax, eax
mov dword [ebp - 0x134], 0
push str.http
lea ecx, [ebp - 0x144]
mov dword [ebp - 0x130], 7
mov word [ebp - 0x144], ax
call fcn.1001a600
xor eax, eax
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 7
mov word [ebp - 0x12c], ax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], 7
mov word [ebp - 0x110], ax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], 7
mov word [ebp - 0xf8], ax
sub esp, 0x18
mov byte [ebp - 4], 2
cmp dword [ebp - 0xc0], 8
lea ecx, [ebp - 0xd4]
mov esi, esp
cmovae ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x58], ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0xc4]
cmp eax, 8
jae 0x100bae94
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
mov dword [esi + 0x14], 7
jmp 0x100baf28
mov edi, eax
mov eax, accept
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, eax
lea eax, [edi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x100baeb9
or ecx, 0xffffffff
jmp 0x100baec1
cmp ecx, 0x1000
jb 0x100baeea
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.1006e6a7
add esp, 4
test eax, eax
je 0x100bb80d
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x100baefd
test ecx, ecx
je 0x100baefb
push ecx
call fcn.1006e6a7
add esp, 4
mov ecx, eax
jmp 0x100baefd
xor ecx, ecx
mov eax, dword [ebp - 0xc4]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x58]
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov dword [esi + 0x14], edi
mov edi, dword [sym.imp.VCRUNTIME140.dll_strstr]
lea ecx, [ebp - 0x144]
mov dword [esi + 0x10], eax
call sym.WMCommon.dll_public:_bool___thiscall_WM::GMUrlParser::Parse_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___
push 0
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x54]
push eax
call sym.WMCommon.dll_public:_static_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_WM::GMStringConvert::UnicodeStringToMultiByte_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int_
mov eax, dword [ebp - 0x1c]
add esp, 0xc
or eax, 4
cmp dword [ebp - 0x40], 0x10
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x54]
cmovae eax, dword [ebp - 0x54]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ecx, eax
test ecx, ecx
jne 0x100baf70
xor esi, esi
jmp 0x100baf97
movsx eax, word [ecx + 0xa]
push eax
mov eax, dword [ecx + 0xc]
push dword [eax]
lea eax, [ebp - 0x168]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [ebp - 0x168]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov esi, eax
mov edx, dword [ebp - 0x40]
cmp edx, 0x10
jb 0x100bafcb
mov ecx, dword [ebp - 0x54]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bafc1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bb80d
push edx
push ecx
call fcn.1006e6d7
add esp, 8
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
test esi, esi
je 0x100bbb54
push 4
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0x1770
push eax
push 0x1005
push 0xffff
push dword [ebp - 0x64]
call dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea eax, [ebp - 0x14]
push eax
push 0x1006
push 0xffff
push dword [ebp - 0x64]
call dword [sym.imp.WS2_32.dll_setsockopt]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push dword [ebp - 0x114]
mov dword [ebp - 0x58], eax
mov eax, 2
mov word [ebp - 0x74], ax
call dword [sym.imp.WS2_32.dll_htons]
push esi
mov word [ebp - 0x72], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x74]
push 0x10
push eax
push dword [ebp - 0x64]
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jne 0x100bbb54
push 0x1000
push eax
lea eax, [ebp - 0x116c]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x8c]
lea ecx, [ebp - 0x144]
push eax
call sym.WMCommon.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_WM::GMUrlParser::GetFilePath_void_
mov ecx, eax
mov byte [ebp - 4], 3
cmp dword [ecx + 0x14], 8
jb 0x100bb096
mov ecx, dword [ecx]
cmp dword [ebp - 0x118], 8
lea eax, [ebp - 0x12c]
push 0
cmovae eax, dword [ebp - 0x12c]
push ecx
push dword [ebp - 0x114]
push eax
lea eax, [ebp - 0x116c]
push eax
call sym.WMCommon.dll_private:_static_void___cdecl_WM::GMSocketDownload::SetRequest_char___wchar_t_const___unsigned_short_int__wchar_t_const___char_const__
add esp, 0x14
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x8c]
call fcn.1001a5a0
lea ecx, [ebp - 0x116c]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100bb0e0
push 0
sub ecx, edx
lea eax, [ebp - 0x116c]
push ecx
push eax
push dword [ebp - 0x64]
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
je 0x100bbb54
push 0x1000
lea eax, [ebp - 0x116c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x116c]
push 0
push 0x1000
push eax
push dword [ebp - 0x64]
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x60], eax
cmp eax, 0xffffffff
je 0x100bbb54
push 4
lea eax, [ebp - 0x116c]
push str.HTTP
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x100bbb54
lea eax, [ebp - 0x116c]
push 0x10266f10
push eax
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x100bbb54
inc esi
push 0x10266f10
push esi
call edi
add esp, 8
test eax, eax
je 0x100bbb54
sub eax, esi
cmp eax, 8
jg 0x100bbb54
push eax
lea eax, [ebp - 0xe0]
mov word [ebp - 0xd8], 0
xorps xmm0, xmm0
push esi
push eax
movq qword [ebp - 0xe0], xmm0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
lea eax, [ebp - 0xe0]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__atoi64]
add esp, 0x10
cmp eax, 0xc8
je 0x100bb1e3
cmp eax, 0x12d
je 0x100bb1e3
cmp eax, 0x12e
jne 0x100bbb54
lea eax, [ebp - 0x116c]
push 0x10266dc4
push eax
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x100bbb54
add esi, 2
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], 0
call fcn.1001d1f0
mov dword [ebp - 0x24], eax
nop word [eax + eax]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
push 2
push 0x10266dc4
push esi
mov byte [ebp - 4], 6
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x100bb406
push 0x10267f24
push esi
call edi
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x100bb7e7
mov edx, dword [ebp - 0x2c]
mov ecx, eax
mov eax, dword [ebp - 0x28]
sub ecx, esi
sub eax, edx
push ecx
cmp ecx, eax
ja 0x100bb2b5
cmp dword [ebp - 0x28], 0x10
lea esi, [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
lea edi, [ecx + edx]
cmovae esi, dword [ebp - 0x3c]
push eax
mov dword [ebp - 0x2c], edi
lea eax, [esi + edx]
push eax
call sub.VCRUNTIME140.dll_memmove
mov byte [edi + esi], 0
add esp, 0xc
mov edi, dword [sym.imp.VCRUNTIME140.dll_strstr]
jmp 0x100bb2cc
push esi
mov byte [ebp - 0xa8], 0
push dword [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.1001c8e0
mov esi, dword [ebp - 0x14]
inc esi
mov al, byte [esi]
test al, al
je 0x100bb2e2
cmp al, 0x20
jne 0x100bb2e2
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x100bb2d6
push 0x10266dc4
push esi
call edi
mov edi, eax
add esp, 8
test edi, edi
je 0x100bb7e7
lea eax, [edi + 2]
sub edi, esi
mov dword [ebp - 0x18], eax
push edi
push esi
cmp edi, 0xf
ja 0x100bb31c
lea eax, [ebp - 0x54]
mov dword [ebp - 0x44], edi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebp + edi - 0x54], 0
jmp 0x100bb332
mov byte [ebp - 0xac], 0
lea ecx, [ebp - 0x54]
push dword [ebp - 0xac]
push edi
call fcn.1001c8e0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003b920
mov esi, dword [ebp - 0xb0]
cmp esi, dword [ebp - 0x24]
je 0x100bb395
cmp dword [esi + 0x24], 0x10
lea edx, [esi + 0x10]
mov edi, dword [edx + 0x10]
jb 0x100bb35e
mov edx, dword [edx]
cmp dword [ebp - 0x28], 0x10
lea ecx, [ebp - 0x3c]
mov eax, dword [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x3c]
cmp edi, eax
cmovb eax, edi
push eax
call fcn.1001bc40
add esp, 4
test eax, eax
jne 0x100bb38e
mov eax, dword [ebp - 0x2c]
cmp edi, eax
jbe 0x100bb38a
or eax, 0xffffffff
jmp 0x100bb38e
sbb eax, eax
neg eax
shr eax, 0x1f
test al, al
je 0x100bb3c4
lea eax, [ebp - 0x3c]
push ecx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push ecx
lea ecx, [ebp - 0x24]
call fcn.1003c190
push eax
add eax, 0x10
lea ecx, [ebp - 0x24]
push eax
push esi
lea eax, [ebp - 0xb4]
push eax
call fcn.1003bb90
mov esi, dword [ebp - 0xb4]
lea ecx, [esi + 0x28]
lea eax, [ebp - 0x54]
cmp ecx, eax
je 0x100bb3df
cmp dword [ebp - 0x40], 0x10
push dword [ebp - 0x44]
cmovae eax, dword [ebp - 0x54]
push eax
call fcn.1001c2f0
lea ecx, [ebp - 0x54]
call fcn.1001be60
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 4
call fcn.1001be60
mov esi, dword [ebp - 0x18]
cmp byte [esi], 0
je 0x100bb43e
mov edi, dword [sym.imp.VCRUNTIME140.dll_strstr]
jmp 0x100bb220
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x100bb43e
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb434
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100bb80d
push edx
push ecx
call fcn.1006e6d7
add esp, 8
push 0xe
push str.Content_Length
lea ecx, [ebp - 0x54]
mov byte [ebp - 0xd], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
call fcn.1001c2f0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003b920
mov esi, dword [ebp - 0xb8]
cmp esi, dword [ebp - 0x24]
je 0x100bb4ca
cmp dword [esi + 0x24], 0x10
lea edx, [esi + 0x10]
mov edi, dword [edx + 0x10]
jb 0x100bb493
mov edx, dword [edx]
cmp dword [ebp - 0x40], 0x10
lea ecx, [ebp - 0x54]
mov eax, dword [ebp - 0x44]
cmovae ecx, dword [ebp - 0x54]
cmp edi, eax
cmovb eax, edi
push eax
call fcn.1001bc40
add esp, 4
test eax, eax
jne 0x100bb4c3
mov eax, dword [ebp - 0x44]
cmp edi, eax
jbe 0x100bb4bf
or eax, 0xffffffff
jmp 0x100bb4c3
sbb eax, eax
neg eax
shr eax, 0x1f
test al, al
je 0x100bb4f9
lea eax, [ebp - 0x54]
push ecx
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push ecx
lea ecx, [ebp - 0x24]
call fcn.1003bb30
push eax
add eax, 0x10
lea ecx, [ebp - 0x24]
push eax
push esi
lea eax, [ebp - 0xbc]
push eax
call fcn.1003bb90
mov esi, dword [ebp - 0xbc]
lea edi, [esi + 0x28]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
cmp dword [edi + 0x14], 0x10
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x14], eax
jb 0x100bb51e
mov edi, dword [edi]
cmp eax, 0x10
jae 0x100bb539
movups xmm0, xmmword [edi]
mov dword [ebp - 0x90], 0xf
movups xmmword [ebp - 0xa4], xmm0
jmp 0x100bb573
mov esi, eax
mov eax, accept
or esi, 0xf
cmp esi, 0x7fffffff
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.1001c470
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0xa4], eax
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x94], eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xb
call fcn.1001be60
cmp dword [ebp - 0x94], 0
je 0x100bb5b2
cmp dword [ebp - 0x90], 0x10
lea eax, [ebp - 0xa4]
push 0
cmovae eax, dword [ebp - 0xa4]
push eax
call sym.WMCommon.dll_public:_static_unsigned_long_long_unsigned___int64____cdecl_WM::GMStringUtils::ConvertStringToUInt64_char_const___char_const___
add esp, 8
mov dword [ebp - 0x18], eax
jmp 0x100bb5bd
mov byte [ebp - 0xd], 1
mov dword [ebp - 0x18], 0xa00000
push 8
push str.Location
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
call fcn.1001c2f0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003b920
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x24]
je 0x100bb647
cmp dword [eax + 0x24], 0x10
lea edx, [eax + 0x10]
mov esi, dword [edx + 0x10]
jb 0x100bb604
mov edx, dword [edx]
cmp dword [ebp - 0x28], 0x10
lea ecx, [ebp - 0x3c]
mov edi, dword [ebp - 0x2c]
mov eax, edi
cmovae ecx, dword [ebp - 0x3c]
cmp esi, edi
cmovb eax, esi
push eax
call fcn.1001bc40
add esp, 4
test eax, eax
jne 0x100bb633
cmp esi, edi
jbe 0x100bb62f
or eax, 0xffffffff
jmp 0x100bb633
sbb eax, eax
neg eax
shr eax, 0x1f
test al, al
jne 0x100bb647
test dword [ebp + 0x14], 0x200000
mov byte [ebp - 0xe], 1
je 0x100bb64b
mov byte [ebp - 0xe], 0
and dword [ebp - 0x1c], 0xfffffffe
lea ecx, [ebp - 0x3c]
call fcn.1001be60
cmp byte [ebp - 0xe], 0
je 0x100bb83a
push 8
push str.Location
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
call fcn.1001c2f0
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x24]
call fcn.1003b7f0
mov edi, eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
cmp dword [edi + 0x14], 0x10
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x14], eax
jb 0x100bb6b9
mov edi, dword [edi]
cmp eax, 0x10
jae 0x100bb6ce
movups xmm0, xmmword [edi]
mov dword [ebp - 0x28], 0xf
movups xmmword [ebp - 0x3c], xmm0
jmp 0x100bb702
mov esi, eax
mov eax, accept
or esi, 0xf
cmp esi, 0x7fffffff
cmova esi, eax
lea eax, [esi + 1]
push eax
call fcn.1001c470
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x3c], eax
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xe
call fcn.1001be60
cmp dword [ebp - 0x2c], 0
je 0x100bb82e
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
push 0
cmovae eax, dword [ebp - 0x3c]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x15c]
push eax
call sym.WMCommon.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_WM::GMStringConvert::MultiByteToUnicodeString_char_const___int__unsigned_int_
or dword [ebp - 0x1c], 0x10
lea ecx, [ebp - 0xd4]
add esp, 0x10
call fcn.1001a5a0
movups xmm0, xmmword [ebp - 0x15c]
xor eax, eax
lea ecx, [ebp - 0x15c]
mov word [ebp - 0x15c], ax
movups xmmword [ebp - 0xd4], xmm0
movq xmm0, qword [ebp - 0x14c]
movq qword [ebp - 0xc4], xmm0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 7
call fcn.1001a5a0
lea ecx, [ebp - 0x3c]
call fcn.1001be60
lea ecx, [ebp - 0xa4]
call fcn.1001be60
lea ecx, [ebp - 0x24]
call fcn.1003b6c0
lea ecx, [ebp - 0xf8]
call fcn.1001a5a0
lea ecx, [ebp - 0x110]
call fcn.1001a5a0
lea ecx, [ebp - 0x12c]
call fcn.1001a5a0
lea ecx, [ebp - 0x144]
call fcn.1001a5a0
push dword [ebp - 0x64]
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x100bad80
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x100bb81d
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100bb813
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100bb813
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1006e6d7
add esp, 8
lea ecx, [ebp - 0x24]
mov byte [ebp - 0xd], 0
call fcn.1003b6c0
jmp 0x100bbb58
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xb
call fcn.1001be60
cmp byte [ebp - 0xd], 0
mov byte [ebp - 0x14], 0
je 0x100bb876
push str.Transfer_Encoding
lea ecx, [ebp - 0x8c]
call fcn.1001c070
or dword [ebp - 0x1c], 2
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x24]
call fcn.1003b720
mov byte [ebp - 0xe], 1
mov eax, dword [eax]
cmp eax, dword [ebp - 0x24]
jne 0x100bb87a
mov byte [ebp - 0xe], 0
test byte [ebp - 0x1c], 2
je 0x100bb88b
lea ecx, [ebp - 0x8c]
call fcn.1001be60
cmp byte [ebp - 0xe], 0
je 0x100bb8e7
push str.Transfer_Encoding
lea ecx, [ebp - 0x8c]
call fcn.1001c070
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x24]
call fcn.1003b7f0
push 0
push str.chunked
mov ecx, eax
call fcn.1003b8e0
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xb
mov esi, eax
call fcn.1001be60
mov eax, dword [ebp - 0x14]
cmp esi, 0xffffffff
movzx eax, al
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x14], eax
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x100bb8f8
cmp byte [ebp - 0xd], 0
je 0x100bb9e8
mov esi, dword [ebp + 0x1c]
test esi, esi
je 0x100bb910
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x58]
cmp eax, esi
ja 0x100bb9e8
lea esi, [edi + 1]
mov edi, dword [ebp + 0xc]
push esi
mov ecx, edi
call fcn.10020ab0
push esi
push 0
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memset
lea eax, [ebp - 0x116c]
push str._r_n_r_n
push eax
call dword [sym.imp.VCRUNTIME140.dll_strstr]
add esp, 0x14
test eax, eax
je 0x100bb9e8
mov ecx, dword [ebp - 0x60]
lea esi, [ebp - 0x116c]
add eax, 4
sub ecx, eax
add esi, ecx
push esi
push eax
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x18]
add esp, 0xc
xor edi, edi
cmp esi, ecx
jae 0x100bb9e0
mov eax, dword [ebp + 0x18]
nop
test eax, eax
je 0x100bb981
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x100bb9db
cmp dword [ebp + 0x1c], 0
je 0x100bb995
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x58]
cmp eax, dword [ebp + 0x1c]
ja 0x100bb9db
cmp byte [ebp - 0xd], 0
mov ecx, 0x1000
jne 0x100bb9aa
mov eax, dword [ebp - 0x18]
sub eax, esi
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [ebp + 0xc]
push 0
push ecx
mov eax, dword [eax + 8]
add eax, esi
push eax
push dword [ebp - 0x64]
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
je 0x100bb9db
test eax, eax
jne 0x100bba04
cmp byte [ebp - 0xd], al
jne 0x100bb9db
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 3
jbe 0x100bba06
mov ecx, dword [ebp - 0x18]
cmp esi, ecx
je 0x100bba16
cmp byte [ebp - 0xd], 0
jne 0x100bba1c
mov byte [ebp - 0xd], 0
lea ecx, [ebp - 0xa4]
call fcn.1001be60
lea ecx, [ebp - 0x24]
call fcn.1003b6c0
jmp 0x100bbb58
add esi, eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp + 0x18]
cmp esi, ecx
jb 0x100bb970
jmp 0x100bb9de
cmp byte [ebp - 0xd], 0
je 0x100bba38
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [eax], esi
cmp esi, 0xa00000
jae 0x100bba40
mov eax, dword [ecx + 8]
mov byte [eax + esi], 0
mov eax, dword [ebp + 0x10]
jmp 0x100bba40
mov eax, dword [ebp + 0x10]
mov dword [eax], ecx
mov ecx, dword [ebp + 0xc]
cmp byte [ebp - 0x14], 0
je 0x100bbb4b
mov esi, dword [ecx + 8]
mov eax, dword [eax]
add eax, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x5c], eax
nop word [eax + eax]
push 0x10266dc4
push esi
call dword [sym.imp.VCRUNTIME140.dll_strstr]
mov edi, eax
add esp, 8
test edi, edi
je 0x100bbb4b
sub eax, esi
cmp eax, 8
jg 0x100bbb4b
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], 0
push eax
push esi
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x10
call fcn.1001c410
cmp dword [ebp - 0x40], 0x10
lea eax, [ebp - 0x54]
push 0
cmovae eax, dword [ebp - 0x54]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x8c]
push eax
call sym.WMCommon.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_WM::GMStringConvert::MultiByteToUnicodeString_char_const___int__unsigned_int_
lea eax, [ebp - 0x8c]
mov byte [ebp - 4], 0x11
push eax
call sym.WMCommon.dll_public:_static_unsigned_int___cdecl_WM::GMStringUtils::ConvertHexToUInt32_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__
add esp, 0x14
mov byte [ebp - 4], 0x10
mov esi, eax
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x60], esi
call fcn.1001a5a0
test esi, esi
je 0x100bbb27
push esi
mov esi, dword [ebp - 0x14]
lea ecx, [edi + 2]
push ecx
push esi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x54]
add esi, eax
mov byte [ebp - 4], 0xb
add esp, 0xc
mov dword [ebp - 0x14], esi
lea esi, [eax + 4]
add esi, edi
call fcn.1001be60
cmp esi, dword [ebp - 0x5c]
jb 0x100bba60
mov byte [ebp - 0xd], 1
jmp 0x100bb9ec
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x10]
mov byte [ecx], 0
sub ecx, dword [edx + 8]
mov dword [eax], ecx
mov eax, dword [edx + 4]
cmp ecx, eax
cmovbe eax, ecx
lea ecx, [ebp - 0x54]
mov dword [edx + 0xc], eax
call fcn.1001be60
mov byte [ebp - 0xd], 1
jmp 0x100bb9ec
mov byte [ebp - 0xd], 0
lea ecx, [ebp - 0xf8]
call fcn.1001a5a0
lea ecx, [ebp - 0x110]
call fcn.1001a5a0
lea ecx, [ebp - 0x12c]
call fcn.1001a5a0
lea ecx, [ebp - 0x144]
call fcn.1001a5a0
mov eax, dword [ebp - 0x64]
jmp 0x100bbb8d
mov byte [ebp - 0xd], 0
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
lea ecx, [ebp - 0xd4]
call fcn.1001a5a0
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0xd]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret