Function at 0x404df0
Capabilities:
Create http request
Query remote server for available data
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x354
mov eax, dword [0x41f3b8]
mov dword [esp + 0x350], eax
xor eax, eax
push ebx
push esi
push edi
mov byte [esp + 0x98], 0
mov ecx, 0xf
lea edi, [esp + 0x99]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0xd8], 0
mov ecx, 0x1f
lea edi, [esp + 0xd9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x158], 0
mov ecx, 0x3f
lea edi, [esp + 0x159]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 0x18], 0
mov ecx, 0x1f
lea edi, [esp + 0x19]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push pe_nt_image_headers32
lea eax, [esp + 0x15c]
push eax
push str._IP
push 0x459468
mov dword [0x45965c], 0
call fcn.004037c0
mov ebx, eax
mov eax, 0x41d580
add esp, 0x10
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x404ea4
sub eax, ecx
push eax
push 0x41fc80
push 0x41d580
mov ecx, 0x4a1f50
call fcn.00402ef0
mov eax, 0x41d5b4
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x404ed0
sub eax, ecx
push eax
push 0x4a1c54
push 0x41d5b4
mov ecx, 0x4a1f50
call fcn.00402ef0
mov eax, 0x41d558
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x404ef6
sub eax, ecx
push eax
push 0x420118
push 0x41d558
mov ecx, 0x4a1f50
call fcn.00402ef0
mov eax, 0x41d56c
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x404f20
sub eax, ecx
push eax
push 0x41fba4
push 0x41d56c
mov ecx, 0x4a1f50
call fcn.00402ef0
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push 0x420118
push 0x41fc80
push 0x41a768
push 0x4a1d00
call esi
push 0x420118
push 0x4a1c54
push 0x41a768
push 0x459668
call esi
push 0x41fba4
push 0x41fc80
push 0x41a768
push 0x41ff38
call esi
push 0x41fba4
push 0x4a1c54
push 0x41a768
push 0x420260
call esi
xor eax, eax
mov ecx, 0x2000
mov edi, 0x499b50
rep stosd dword es:[edi], eax
add esp, 0x40
test ebx, ebx
mov ecx, 0x8000
mov edi, 0x420350
rep stosd dword es:[edi], eax
je 0x40515d
mov edx, 0x440560
lea ecx, [esp + 0x158]
sub edx, ecx
mov esi, 3
lea eax, [esp + 0x158]
jmp 0x404fe0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x404fe0
add edx, 0x100
dec esi
jne 0x404fd4
mov edx, dword [str._HANGAME]
mov eax, dword [0x41a760]
mov cl, byte [0x41a764]
push 0
push 0
push 0
push 0
push str.HTTPTEST
mov dword [0x41fcb8], edx
mov dword [0x41fcbc], eax
mov byte [0x41fcc0], cl
call dword [sym.imp.WININET.dll_InternetOpenA]
mov edi, eax
test edi, edi
je 0x405052
push 0
push 0x80000000
push 0
push 0
push 0x4a1d00
push edi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov esi, eax
test esi, esi
jne 0x405067
push edi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor eax, eax
mov ecx, dword [esp + 0x35c]
call fcn.004119a1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
lea edx, [esp + 0x18]
push edx
push esi
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
lea eax, [esp + 0x14]
push eax
push 0x8000
push 0x499b50
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push edi
call esi
push str.SERVER_NAME
push 0x499b50
call fcn.00411ad0
push str.SERVER1
push 0x499b50
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
je 0x4050c4
test eax, eax
jne 0x405127
xor eax, eax
push eax
mov ecx, 0x2000
mov edi, 0x499b50
push 0x499b50
rep stosd dword es:[edi], eax
mov ecx, dword [0x41fcb4]
push 0x459668
push ecx
call fcn.004035b0
add esp, 0x10
test eax, eax
je 0x405052
push str.SERVER_NAME
push 0x499b50
call fcn.00411ad0
push str.SERVER1
push 0x499b50
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
je 0x405052
test eax, eax
je 0x405052
mov edx, dword [0x41fcb4]
push 0
push 0x41d5f4
push edx
mov dword [0x45965c], 1
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, 1
mov ecx, dword [esp + 0x35c]
call fcn.004119a1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push pe_nt_image_headers32
lea eax, [esp + 0x15c]
push eax
push str._URL
push 0x459468
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x4054e7
xor eax, eax
mov byte [esp + 0x258], 0
mov ecx, 0x3f
lea edi, [esp + 0x259]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov cl, byte [esp + eax + 0x158]
mov byte [esp + eax + 0x258], cl
inc eax
test cl, cl
jne 0x4051a1
lea eax, [esp + 0x258]
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4051c0
sub eax, edx
test eax, eax
jle 0x405211
mov cl, 0x2f
nop
cmp byte [esp + eax + 0x258], cl
je 0x4051e0
dec eax
test eax, eax
jg 0x4051d0
jmp 0x405211
lea edi, [esp + 0x258]
mov byte [esp + eax + 0x258], 0
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4051f0
mov ecx, dword [str._notice.asp]
mov edx, dword [0x41a730]
mov eax, dword [0x41a734]
mov dword [edi], ecx
mov dword [edi + 4], edx
mov dword [edi + 8], eax
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0x160]
push eax
call fcn.00403660
add esp, 0xc
test eax, eax
je 0x405052
mov edx, dword [0x41fcb4]
push 0
push 0x499b50
lea ecx, [esp + 0x160]
push ecx
push edx
call fcn.004035b0
add esp, 0x10
test eax, eax
je 0x405052
push str.SERVER_NAME
push 0x499b50
call fcn.00411ad0
push str.SERVER1
push 0x499b50
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
je 0x405052
test eax, eax
je 0x405052
mov eax, dword [str._HANGAME]
mov ecx, dword [0x41a760]
mov dl, byte [0x41a764]
mov dword [0x41fcb8], eax
lea eax, [esp + 0xd8]
mov dword [0x41fcbc], ecx
push eax
lea ecx, [esp + 0x9c]
mov byte [0x41fcc0], dl
push ecx
lea edx, [esp + 0x260]
push edx
call fcn.00403660
add esp, 0xc
test eax, eax
je 0x405052
mov ecx, dword [0x41fcb4]
push 1
push 0x420350
lea eax, [esp + 0x260]
push eax
push ecx
call fcn.004035b0
add esp, 0x10
test eax, eax
je 0x405052
push 0x41a724
push 0x420350
call fcn.00411ad0
push str._notice_
push 0x420350
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
jne 0x405331
test eax, eax
je 0x405052
mov edx, dword [0x41fcb4]
push 0
push 0x41d5f4
push edx
mov dword [0x45965c], 2
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405356
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.HOME_URL
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x4053af
xor eax, eax
jmp 0x4053a0
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x41feb0], cl
inc eax
test cl, cl
jne 0x4053a0
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4053b6
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.SOD_URL
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x40540f
xor eax, eax
jmp 0x405400
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x4a1d80], cl
inc eax
test cl, cl
jne 0x405400
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405416
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.CLAN_URL
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x40546f
xor eax, eax
jmp 0x405460
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x4201e0], cl
inc eax
test cl, cl
jne 0x405460
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405476
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.VOICE_SERVER
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x4054cf
xor eax, eax
jmp 0x4054c0
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x41ffe0], cl
inc eax
test cl, cl
jne 0x4054c0
mov eax, 1
mov ecx, dword [esp + 0x35c]
call fcn.004119a1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0x9c]
push edx
push 0x41ff38
call fcn.00403660
add esp, 0xc
test eax, eax
je 0x405052
mov eax, dword [0x41fcb4]
push 1
push 0x420350
push 0x41ff38
push eax
call fcn.004035b0
add esp, 0x10
test eax, eax
je 0x405052
push 0x41a724
push 0x420350
call fcn.00411ad0
push str._notice_
push 0x420350
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
jne 0x4055e3
test eax, eax
jne 0x4055e3
mov ecx, 0x8000
mov edi, 0x420350
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0x9c]
push edx
push 0x420260
call fcn.00403660
add esp, 0xc
test eax, eax
je 0x405052
mov eax, dword [0x41fcb4]
push 1
push 0x420350
push 0x420260
push eax
call fcn.004035b0
add esp, 0x10
test eax, eax
je 0x405052
push 0x41a724
push 0x420350
call fcn.00411ad0
push str._notice_
push 0x420350
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
jne 0x4055e3
test eax, eax
je 0x405052
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0x9c]
push edx
push 0x4a1d00
call fcn.00403660
add esp, 0xc
test eax, eax
je 0x405052
mov eax, dword [0x41fcb4]
push 0
push 0x499b50
push 0x4a1d00
push eax
call fcn.004035b0
add esp, 0x10
test eax, eax
je 0x405052
push str.SERVER_NAME
push 0x499b50
call fcn.00411ad0
push str.SERVER1
push 0x499b50
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
je 0x405659
test eax, eax
jne 0x4056e0
lea ecx, [esp + 0xd8]
push ecx
lea edx, [esp + 0x9c]
push edx
push 0x459668
call fcn.00403660
add esp, 0xc
test eax, eax
je 0x405052
xor eax, eax
push eax
mov ecx, 0x4000
mov edi, 0x499b50
push 0x499b50
rep stosd dword es:[edi], eax
mov eax, dword [0x41fcb4]
push 0x459668
push eax
call fcn.004035b0
add esp, 0x10
test eax, eax
je 0x405052
push str.SERVER_NAME
push 0x499b50
call fcn.00411ad0
push str.SERVER1
push 0x499b50
mov esi, eax
call fcn.00411ad0
add esp, 0x10
test esi, esi
je 0x405052
test eax, eax
je 0x405052
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4056e7
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.HOME_URL
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x40573f
xor eax, eax
jmp 0x405730
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x41feb0], cl
inc eax
test cl, cl
jne 0x405730
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405746
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.SOD_URL
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x40579f
xor eax, eax
jmp 0x405790
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x4a1d80], cl
inc eax
test cl, cl
jne 0x405790
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4057a6
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.CLAN_URL
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x4057ff
xor eax, eax
jmp 0x4057f0
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x4201e0], cl
inc eax
test cl, cl
jne 0x4057f0
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405806
sub eax, edx
mov ecx, eax
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push 0x80
lea eax, [esp + 0x1c]
push eax
push str.VOICE_SERVER
push 0x499b50
call fcn.004037c0
add esp, 0x10
test eax, eax
je 0x40585f
xor eax, eax
jmp 0x405850
mov cl, byte [esp + eax + 0x18]
mov byte [eax + 0x41ffe0], cl
inc eax
test cl, cl
jne 0x405850
mov ecx, dword [esp + 0x35c]
mov eax, 1
call fcn.004119a1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret