Function at 0x406863
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Hash data with crc32

Disassembly:
push 0x1f4
mov eax, 0x467c03
call fcn.00466ebb
mov ebx, ecx
mov dword [ebp - 0x1b4], ebx
xor eax, eax
mov dword [ebp - 0x1d0], eax
cmp dword [ebx + 0x2c], eax
je 0x40736e
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], eax
push str.Accept_Encoding
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], eax
call fcn.00401a65
push str.gzip_deflate
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 1
call fcn.00401a65
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x1e0]
call fcn.004019d3
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0
call fcn.0040168e
push 0x3b
push str.kugou::net_detect::AckChecker::StartCheck
push str.net_detect_ack_checker.cpp
mov edx, str.AckChecker
lea ecx, [ebp - 0x1f0]
call fcn.004457d2
add esp, 0xc
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x1f0]
mov eax, dword [esi]
mov dword [ebp - 0x1b0], eax
jmp 0x406956
lea edx, [eax + 0x10]
lea eax, [edx + 0x18]
push eax
lea ecx, [ebp - 0x58]
call fcn.0040244d
pop ecx
push eax
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 4], 4
call fcn.004019d3
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
call fcn.0040168e
lea ecx, [ebp - 0x1b0]
call fcn.00401e05
mov eax, dword [ebp - 0x1b0]
cmp eax, esi
jne 0x406919
xor eax, eax
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], eax
push 0x47b574
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 5
call fcn.00401a65
push str.1001
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 6
call fcn.00401a65
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 5
call fcn.0040168e
mov edi, dword [sym.imp.infra.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_base::IntToString_int_]
lea eax, [ebp - 0xa0]
push 0x2af9
push eax
call edi
push eax
lea ecx, [ebp - 0xbc]
call fcn.00407bae
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x88]
push dword [esi]
call fcn.00401a65
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x70]
call fcn.00401a42
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x88]
call fcn.0040168e
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.00401c5e
push 0
push 1
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 5
call fcn.00401c5e
lea ecx, [ebp - 0xa0]
call fcn.00446170
push eax
lea ecx, [ebp - 0xbc]
call fcn.00407bca
pop ecx
mov esi, eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x88]
push dword [esi]
call fcn.00401a65
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x70]
call fcn.00401a42
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x88]
call fcn.0040168e
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.00401c5e
push 0
push 1
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 5
call fcn.00401c5e
lea eax, [ebp - 0x1e8]
push eax
call dword [sym.imp.infra.dll_public:_static_class_base::Time___cdecl_base::Time::Now_void_]
pop ecx
mov ecx, eax
call dword [sym.imp.infra.dll_public:_double___thiscall_base::Time::ToDoubleT_void_const]
call fcn.00467060
push eax
lea eax, [ebp - 0x11c]
push eax
call edi
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 0xe
push 0x2af9
push eax
call edi
add esp, 0x10
mov edi, eax
push str.105k9_4a04py5dt
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0xf
call fcn.00401a65
mov esi, eax
push str.1001
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x10
call fcn.00401a65
push esi
mov edx, eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x1ac]
call fcn.00407c12
push edi
mov edx, eax
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x194]
call fcn.00407c12
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 0x13
push ecx
mov edx, eax
lea ecx, [ebp - 0xa0]
call fcn.00407be6
add esp, 0xc
push eax
lea ecx, [ebp - 0x1d4]
mov byte [ebp - 4], 0x14
call fcn.00407857
lea eax, [ebp - 0x1d4]
push eax
lea eax, [ebp - 0x17c]
push eax
call dword [sym.imp.infra.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_base::MD5String_class_base::BasicStringPiece_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____const__]
pop ecx
pop ecx
xor edi, edi
push 0
inc edi
push edi
lea ecx, [ebp - 0xa0]
call fcn.00401c5e
push 0
push edi
lea ecx, [ebp - 0x194]
call fcn.00401c5e
push 0
push edi
lea ecx, [ebp - 0x1ac]
call fcn.00401c5e
push 0
push edi
lea ecx, [ebp - 0x134]
call fcn.00401c5e
push 0
push edi
lea ecx, [ebp - 0x14c]
call fcn.00401c5e
push 0
push edi
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x1b
call fcn.00401c5e
lea eax, [ebp - 0x17c]
push eax
lea ecx, [ebp - 0x74]
call fcn.00407c62
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x58]
push dword [esi]
call fcn.00401a65
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x40]
call fcn.00401a42
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x1d
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
call fcn.0040168e
push 0
push edi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x1b
call fcn.00401c5e
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x74]
call fcn.00407c89
pop ecx
mov esi, eax
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x58]
push dword [esi]
call fcn.00401a65
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x40]
call fcn.00401a42
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
call fcn.0040168e
mov byte [ebp - 4], 0x1b
push 0
push edi
lea ecx, [ebp - 0x70]
call fcn.00401c5e
and dword [ebp - 0x1cc], 0
and dword [ebp - 0x1c8], 0
call fcn.00407b46
mov dword [ebp - 0x1cc], eax
mov byte [ebp - 4], 0x20
mov esi, 0x4762c4
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x1d4]
push esi
push ecx
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040848a
add esi, 4
cmp esi, 0x476594
jl 0x406cab
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x1b0]
mov dword [ebp - 0x1b0], 0x3e7
push eax
push ecx
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040848a
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x1b0]
mov dword [ebp - 0x1b0], 0x400
push eax
push ecx
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040848a
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x1b0]
mov dword [ebp - 0x1b0], 0x2710
push eax
push ecx
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040848a
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x1b0]
mov dword [ebp - 0x1b0], 0x2712
push eax
push ecx
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebp - 0x1cc]
call fcn.0040848a
lea ecx, [ebp - 0x200]
call dword [sym.imp.infra.dll_public:_void___thiscall_base::DictionaryValue::constructor_void_]
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x1cc]
mov esi, dword [eax]
mov dword [ebp - 0x1b0], esi
cmp esi, eax
je 0x406e11
push 0x47b5ac
lea ecx, [ebp - 0xa0]
call fcn.00401a65
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0xb8]
push dword [esi + 0x10]
push eax
call dword [sym.imp.infra.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_base::IntToString_int_]
pop ecx
pop ecx
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x23
push ecx
push eax
lea ecx, [ebp - 0x200]
call dword [sym.imp.infra.dll_public:_void___thiscall_base::DictionaryValue::SetString_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push 0
push edi
lea ecx, [ebp - 0xb8]
call fcn.00401c5e
push 0
push edi
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x21
call fcn.00401c5e
lea ecx, [ebp - 0x1b0]
call fcn.00401e05
mov esi, dword [ebp - 0x1b0]
cmp esi, dword [ebp - 0x1cc]
jne 0x406d9a
push 0x47b4f4
lea ecx, [ebp - 0x104]
call fcn.00401a65
lea eax, [ebp - 0x104]
mov byte [ebp - 4], 0x24
push eax
lea eax, [ebp - 0x200]
push eax
call dword [sym.imp.infra.dll_public:_static_bool___cdecl_base::JSONWriter::Write_class_base::Value_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____]
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp - 0x74]
call fcn.00407cb0
add esp, 0xc
mov esi, eax
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x58]
push dword [esi]
call fcn.00401a65
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x40]
call fcn.00401a42
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x26
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
call fcn.0040168e
push 0
push edi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x24
call fcn.00401c5e
push str.url_host_map
lea ecx, [ebp - 0x58]
call fcn.00401a65
push 0x47b5b8
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x27
call fcn.00401a65
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x28
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x24
call fcn.0040168e
push 0x47b5cc
lea ecx, [ebp - 0x58]
call fcn.00401a65
mov esi, 0x47b5ac
mov byte [ebp - 4], 0x29
push esi
lea ecx, [ebp - 0x40]
call fcn.00401a65
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x2a
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x24
call fcn.0040168e
push str.area
lea ecx, [ebp - 0x58]
call fcn.00401a65
push esi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x2b
call fcn.00401a65
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x2c
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x24
call fcn.0040168e
push 0xffff
push 0
call dword [sym.imp.infra.dll_int___cdecl_base::RandInt_int__int_]
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.infra.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_base::UintToString_unsigned_int_]
mov byte [ebp - 4], 0x2d
push dword [ebp - 0x18]
call fcn.00465da0
mov esi, eax
mov dword [ebp - 0x1d0], esi
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
mov edi, dword [ebp - 0x18]
add esp, 0x20
mov edx, edi
mov ecx, esi
call fcn.004401ef
and dword [ebp - 0x1e4], 0
mov edx, esi
mov dword [ebp - 0x1b0], eax
test edi, edi
jle 0x406fda
mov ebx, dword [ebp - 0x1e4]
mov esi, eax
lea ecx, [ebx + esi]
and ecx, 0x3ff
mov al, byte [ecx + 0x476820]
xor byte [edx], al
inc edx
inc ebx
cmp ebx, edi
jl 0x406fb4
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1d0]
mov ebx, dword [ebp - 0x1b4]
cmp dword [ebp - 0x14], 0x10
lea edx, [ebp - 0x28]
lea eax, [edi + esi]
cmovae edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
add edx, edi
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x14], 0x10
mov edi, eax
lea eax, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
sub edx, ecx
cmp esi, edi
jne 0x40701c
cmp dword [ebp - 0x14], 0x10
push edx
cmovae eax, dword [ebp - 0x28]
sub ecx, eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00401ff7
jmp 0x407034
cmp dword [ebp - 0x14], 0x10
cmovae eax, dword [ebp - 0x28]
sub edi, esi
push edi
push esi
sub ecx, eax
push edx
push ecx
lea ecx, [ebp - 0x28]
call fcn.004033b3
push dword [ebp - 0x1b0]
lea eax, [ebp - 0x164]
push eax
call dword [sym.imp.infra.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_base::UintToString_unsigned_int_]
and dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
mov byte [ebp - 4], 0x30
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 0x10
cmovae eax, dword [ebp - 0x28]
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1b4], eax
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x1b8]
push eax
call dword [sym.imp.infra.dll_void___cdecl_base::Base64Encode_class_base::BasicStringPiece_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____]
add esp, 0x10
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004076fd
push eax
lea ecx, [ebp - 0x74]
call fcn.00407cd7
pop ecx
mov edi, eax
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x58]
push dword [edi]
call fcn.00401a65
lea eax, [edi + 4]
push eax
lea ecx, [ebp - 0x40]
call fcn.00401a42
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x33
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
call fcn.0040168e
push 0
push 1
lea ecx, [ebp - 0x70]
call fcn.00401c5e
push 0
push 1
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x30
call fcn.00401c5e
lea eax, [ebp - 0x164]
push eax
lea ecx, [ebp - 0x74]
call fcn.00407cf3
pop ecx
mov edi, eax
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x58]
push dword [edi]
call fcn.00401a65
lea eax, [edi + 4]
push eax
lea ecx, [ebp - 0x40]
call fcn.00401a42
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x35
push eax
lea ecx, [ebp - 0x1c4]
call fcn.004019d3
lea ecx, [ebp - 0x58]
call fcn.0040168e
push 0
push 1
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x30
call fcn.00401c5e
push 0x47b4f4
lea ecx, [ebp - 0xd4]
call fcn.00401a65
mov byte [ebp - 4], 0x36
mov edi, dword [ebp - 0x1c4]
jmp 0x407205
push edi
mov edx, 0x47b5e4
lea ecx, [ebp - 0x134]
call fcn.00407d1a
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x14c]
mov edx, eax
mov dword [esp], 0x47b5e0
call fcn.00407d8d
lea ecx, [edi + 0x18]
mov byte [ebp - 4], 0x38
push ecx
mov edx, eax
lea ecx, [ebp - 0xb8]
call fcn.00407be6
pop ecx
pop ecx
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x39
call fcn.00407a0f
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.00401c5e
push 0
push 1
lea ecx, [ebp - 0x14c]
call fcn.00401c5e
push 0
push 1
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x36
call fcn.00401c5e
add edi, 0x30
cmp edi, dword [ebp - 0x1c0]
jne 0x40717d
push 0x47b5e8
lea ecx, [ebp - 0xa0]
call fcn.00401a65
mov dword [ebp - 4], 0x3a
sub esp, 0x28
mov edx, dword [ebx + 0x2c]
mov ecx, esp
push 1
mov dword [ecx], 0x47b694
mov dword [ecx + 4], fcn.0040739a
mov al, byte [ebp - 0x1dc]
mov byte [ecx + 8], al
mov al, byte [ebp - 0x1db]
mov byte [ecx + 9], al
mov al, byte [ebp - 0x1da]
mov byte [ecx + 0xa], al
mov al, byte [ebp - 0x1d9]
mov byte [ecx + 0xb], al
lea eax, [ebp - 0xd4]
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x24], ecx
push dword [ebp - 0xc4]
cmp dword [ebp - 0xc0], 0x10
mov ecx, dword [edx]
cmovae eax, dword [ebp - 0xd4]
push eax
lea eax, [ebp - 0x1e0]
push eax
lea eax, [ebp - 0xa0]
push eax
push edx
call dword [ecx + 0xb8]
push 0
push 1
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x36
mov edi, eax
call fcn.00401c5e
test edi, edi
je 0x4072c3
xor eax, eax
mov ecx, ebx
push eax
push eax
push edi
push eax
call fcn.0040739a
jmp 0x4072cc
lea ecx, [ebx + 0x28]
call dword [sym.imp.infra.dll_public:_void___thiscall_base::WaitableEvent::Wait_void_]
xor ebx, ebx
lea ecx, [ebp - 0xd4]
xor edi, edi
push ebx
inc edi
push edi
call fcn.00401c5e
push ebx
push edi
lea ecx, [ebp - 0xec]
call fcn.00401c5e
push ebx
push edi
lea ecx, [ebp - 0x164]
call fcn.00401c5e
test esi, esi
je 0x407305
push edi
push esi
call fcn.00465d6f
pop ecx
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x28]
call fcn.00401c5e
push ebx
push edi
lea ecx, [ebp - 0x104]
call fcn.00401c5e
lea ecx, [ebp - 0x200]
call dword [sym.imp.infra.dll_public_virtual:_void___thiscall_base::DictionaryValue::destructor_void_]
lea ecx, [ebp - 0x1cc]
call fcn.004077b4
push ebx
push edi
lea ecx, [ebp - 0x17c]
call fcn.00401c5e
push ebx
push edi
lea ecx, [ebp - 0x11c]
call fcn.00401c5e
lea ecx, [ebp - 0x1c4]
call fcn.00401b92
lea ecx, [ebp - 0x1f0]
call fcn.00401772
lea ecx, [ebp - 0x1e0]
call fcn.00401b92
call fcn.00466e65
ret