Function at 0x404258
Capabilities:
Get geographical location
Read .ini file

Disassembly:
sub esp, 0x21c
push ebx
push ebp
push esi
push edi
mov ebx, ecx
push 0x3f
xor edx, edx
pop ecx
and byte [esp + 0x2c], dl
xor eax, eax
lea edi, [esp + 0x2d]
mov ebp, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
rep stosd dword es:[edi], eax
push edx
push edx
push 0x14b
push 0x40c
push dword [ebx + 4]
mov dword [esp + 0x3c], ebx
stosw word es:[edi], ax
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], edx
stosb byte es:[edi], al
call ebp
mov eax, dword [0x409240]
mov esi, 0x40c794
shl eax, 6
add eax, str.Deutschland
push esi
push eax
call fcn.004059a0
pop ecx
test eax, eax
pop ecx
je 0x404312
xor edi, edi
push 0x408648
push 0x40a194
call fcn.004059a0
test eax, eax
mov eax, dword [0x409240]
pop ecx
shl eax, 6
pop ecx
lea eax, [eax + edi + str.Deutschland]
push eax
push 0xffffffffffffffff
push 0x14a
push 0x40c
push dword [ebx + 4]
call ebp
mov eax, dword [0x409240]
add edi, 0x188
shl eax, 6
push esi
lea eax, [eax + edi + str.Deutschland]
push eax
call fcn.004059a0
pop ecx
test eax, eax
pop ecx
jne 0x4042bc
mov ebx, dword [sym.imp.KERNEL32.DLL_GetPrivateProfileStringA]
mov ebp, str.coder.ini
push ebp
push 0x20
push 0x409248
push esi
mov edi, 0x408850
push str.user
push edi
call ebx
push esi
push 0x409248
call fcn.004059a0
pop ecx
test eax, eax
pop ecx
jne 0x404394
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
push eax
call fcn.00405f1f
pop ecx
mov dword [esp + 0x18], 0x1e
call fcn.00405f29
push 0x1a
cdq
pop ecx
idiv ecx
lea eax, [esp + 0x2c]
push eax
push 0x409248
add dl, 0x41
mov byte [esp + 0x34], dl
call fcn.00405830
dec dword [esp + 0x20]
pop ecx
pop ecx
jne 0x404359
push ebp
push 0x409248
push str.user
push edi
call dword [sym.imp.KERNEL32.DLL_WritePrivateProfileStringA]
push ebp
push 0xa
push 0x409d8c
push esi
push str.prefix
push edi
call ebx
push ebp
lea eax, [esp + 0x30]
push 0x100
push eax
push 0x408d14
push str.tone
push edi
call ebx
lea eax, [esp + 0x2c]
push 0x408d14
push eax
call fcn.004059a0
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [0x40a08c], al
push ebp
lea eax, [esp + 0x130]
push 0x100
push eax
push esi
push str.modem
push edi
call ebx
mov ebx, 0x409c8c
push esi
push ebx
call fcn.00405820
pop ecx
and dword [esp + 0x18], 0
pop ecx
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x20]
push eax
push 0
call dword [0x409234]
cmp eax, 0x25b
jne 0x40464a
push dword [esp + 0x1c]
push pe_nt_image_headers32
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
lea ecx, [esp + 0x24]
mov dword [esp + 0x20], eax
push ecx
lea ecx, [esp + 0x20]
push ecx
push eax
mov dword [eax], 0x98
call dword [0x409234]
test eax, eax
jne 0x404640
cmp dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
jbe 0x404632
mov eax, dword [esp + 0x20]
add eax, 0x15
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
push str.modem
add eax, 0xffffffef
push eax
call fcn.00405ac0
pop ecx
test eax, eax
pop ecx
je 0x4044a0
mov eax, dword [esp + 0x10]
push str.isdn
add eax, 0xffffffef
push eax
call fcn.00405ac0
pop ecx
test eax, eax
pop ecx
jne 0x404618
push 0x408d44
push dword [esp + 0x14]
call fcn.00404934
pop ecx
test eax, eax
pop ecx
jne 0x404618
push str.Ethernet
push dword [esp + 0x14]
call fcn.00404934
pop ecx
test eax, eax
pop ecx
jne 0x404618
push dword [esp + 0x10]
lea eax, [esp + 0x30]
push eax
call fcn.00405820
lea eax, [esp + 0x34]
push 0x408668
push eax
call fcn.00405830
mov eax, dword [esp + 0x20]
add eax, 0xffffffef
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00405830
add esp, 0x18
cmp dword [esp + 0x14], 6
jae 0x404536
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00405ac0
pop ecx
test eax, eax
pop ecx
jne 0x404536
lea eax, [esp + 0x2c]
mov dword [esp + 0x14], 6
push eax
push ebx
call fcn.00405820
pop ecx
pop ecx
cmp dword [esp + 0x14], 5
jae 0x404566
push dword [esp + 0x10]
push 0x408d34
call fcn.00405ac0
pop ecx
test eax, eax
pop ecx
jne 0x404566
lea eax, [esp + 0x2c]
mov dword [esp + 0x14], 5
push eax
push ebx
call fcn.00405820
pop ecx
pop ecx
cmp dword [esp + 0x14], 4
jae 0x404596
push dword [esp + 0x10]
push str.internet
call fcn.00405ac0
pop ecx
test eax, eax
pop ecx
jne 0x404596
lea eax, [esp + 0x2c]
mov dword [esp + 0x14], 4
push eax
push ebx
call fcn.00405820
pop ecx
pop ecx
cmp dword [esp + 0x14], 3
jae 0x4045c6
push dword [esp + 0x10]
push str.capi
call fcn.00405ac0
pop ecx
test eax, eax
pop ecx
jne 0x4045c6
lea eax, [esp + 0x2c]
mov dword [esp + 0x14], 3
push eax
push ebx
call fcn.00405820
pop ecx
pop ecx
cmp dword [esp + 0x14], 2
jae 0x4045fa
mov eax, dword [esp + 0x10]
add eax, 0xffffffef
push eax
push str.isdn
call fcn.00405ac0
pop ecx
test eax, eax
pop ecx
jne 0x4045fa
lea eax, [esp + 0x2c]
mov dword [esp + 0x14], 2
push eax
push ebx
call fcn.00405820
pop ecx
pop ecx
push 1
pop eax
cmp dword [esp + 0x14], eax
jae 0x404614
mov dword [esp + 0x14], eax
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.00405820
pop ecx
pop ecx
inc dword [esp + 0x1c]
add dword [esp + 0x10], 0x98
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x24]
jb 0x40446c
push ebp
push ebx
push str.modem
push edi
call dword [sym.imp.KERNEL32.DLL_WritePrivateProfileStringA]
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
lea eax, [esp + 0x2c]
push 0x100
push eax
push str.AcceptLanguage
push str.SoftwareMicrosoftInternet_ExplorerInternational
push 0x80000001
call fcn.004049fd
or dword [esp + 0x24], 0xffffffff
and dword [esp + 0x2c], 0
mov ebx, str.DEsendman
push esi
push ebx
call fcn.004059a0
add esp, 0x1c
test eax, eax
je 0x4046e3
mov dword [esp + 0x20], ebx
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x24]
call fcn.00404934
pop ecx
test eax, eax
pop ecx
je 0x4046a5
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
inc dword [esp + 0x18]
add ebx, 0x188
push esi
push ebx
mov dword [esp + 0x28], ebx
call fcn.004059a0
pop ecx
test eax, eax
pop ecx
jne 0x404689
cmp dword [esp + 0x10], 0xffffffff
jle 0x4046e3
push eax
mov eax, dword [esp + 0x2c]
push dword [esp + 0x14]
push 0x14e
push 0x40c
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push ebp
lea eax, [esp + 0x30]
push 0x100
push eax
push 0x408644
push 0x408cf8
push edi
call dword [sym.imp.KERNEL32.DLL_GetPrivateProfileStringA]
lea eax, [esp + 0x2c]
push eax
call fcn.00405ed8
pop ecx
push 0
push eax
mov eax, dword [esp + 0x30]
push 0x14e
push 0x40c
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret