Function at 0x402780
Capabilities:
Get geographical location

Disassembly:
push 0xffffffffffffffff
push 0x456e66
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x140
push ebx
push ebp
push esi
push edi
push str.CActivationTracking::CreateTrackingURL___begin_n
push 2
mov ebx, ecx
push 2
call fcn.004048e0
mov ebp, dword [esp + 0x16c]
add esp, 0xc
mov ecx, ebp
call sub.MFC42.DLL_CString::Empty
xor esi, esi
push 0x4845b8
lea ecx, [esp + 0x1c]
mov dword [esp + 0x38], 0x104
mov dword [esp + 0x18], esi
call sub.MFC42.DLL_CString::CString_3
mov ecx, 0x484ca0
mov dword [esp + 0x158], esi
call fcn.00428820
test eax, eax
je 0x402814
lea eax, [esp + 0x34]
lea ecx, [esp + 0x4c]
push eax
push str.ActivationTrackingURL
push ecx
mov ecx, 0x484ca0
call fcn.00428100
test eax, eax
jne 0x402cd7
jmp 0x40283a
mov edi, str.http:__act.nvtl.com_act_index.asp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x4c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x484ca0
call fcn.00428820
test eax, eax
je 0x402a0b
mov ecx, dword [ebx + 0x10]
add ecx, 0x90
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_3
push str.EXPEDITE_EV
push str.EXPEDITE_ES
lea ecx, [esp + 0x18]
mov byte [esp + 0x160], 1
call sub.MFC42.DLL_CString::Replace_1
test eax, eax
jne 0x402891
push str.EXPEDITE_EV
push str.EXPEDITE_ET
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Replace_1
lea edx, [esp + 0x4c]
mov ecx, ebp
push edx
call sub.MFC42.DLL_CString::operator_1
push str._actionadd
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
push str.product
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
lea eax, [esp + 0x10]
mov ecx, ebp
push eax
call fcn.00455af8
push str.fwversion
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov ecx, dword [ebx + 0x10]
sub esp, 8
lea edx, [esp + 0x24]
fld dword [ecx + 0xc]
fstp qword [esp]
push 0x468834
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [esp + 0x1c]
mov ecx, ebp
push eax
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x18]
push ecx
call fcn.00428b10
add esp, 4
mov ecx, ebp
push str.swversion
call sub.MFC42.DLL_CString::operator
lea edx, [esp + 0x18]
mov ecx, ebp
push edx
call fcn.00455af8
mov ecx, 0x484ca0
call fcn.004286e0
add eax, 0xfffffff2
cmp eax, 0x1f
ja case.0x40293b.17
xor ecx, ecx
mov cl, byte [eax + 0x402d30]
jmp dword [ecx*4 + 0x402d20]
mov edx, dword [ebx + 0x10]
add edx, 0x170
push edx
call dword [sym.imp.MSVCRT.dll_atoi]
push eax
call dword [sym.imp.MSVCRT.dll_srand]
add esp, 8
call dword [sym.imp.MSVCRT.dll_rand]
push str.imei
mov ecx, ebp
mov esi, eax
call sub.MFC42.DLL_CString::operator
lea eax, [esp + 0x38]
push 0xa
push eax
push esi
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea ecx, [esp + 0x38]
jmp 0x4029e5
push str.esn
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov eax, dword [ebx + 0x10]
lea edx, [esp + 0x28]
push 0x10
push edx
mov ecx, dword [eax + 0x170]
push ecx
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea edx, [esp + 0x28]
push edx
jmp 0x4029e6
push str.imei
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov eax, dword [ebx + 0x10]
mov ecx, ebp
add eax, 0x170
push eax
call sub.MFC42.DLL_CString::operator
push str.iccid
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov ecx, dword [ebx + 0x10]
add ecx, 0x1dc
push ecx
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], 1
mov byte [esp + 0x158], 0
call sub.MFC42.DLL_CString::CString
jmp 0x402cd7
lea edx, [esp + 0x10]
lea eax, [esp + 0x28]
mov esi, 8
push edx
push eax
mov ecx, ebx
mov dword [esp + 0x18], esi
call fcn.00402680
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 0x168]
cmp eax, 4
je 0x402c0e
cmp eax, 9
je 0x402c0e
cmp eax, esi
je 0x402a4d
cmp eax, 7
jne 0x402cd7
lea edx, [esp + 0x4c]
mov ecx, ebp
push edx
call sub.MFC42.DLL_CString::operator_1
push str._actionadd
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
push str.product
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov eax, dword [ebx + 0x10]
mov ecx, ebp
add eax, 0x90
push eax
call sub.MFC42.DLL_CString::operator
push str.swversion
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov ecx, dword [ebx + 0x10]
sub esp, 8
lea edx, [esp + 0x24]
fld dword [ecx + 0xc]
fstp qword [esp]
push 0x468834
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [esp + 0x1c]
mov ecx, ebp
push eax
call sub.MFC42.DLL_CString::operator
push str.imei
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov ecx, dword [ebx + 0x10]
add ecx, 0x170
push ecx
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
push str.imsi
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov edx, dword [ebx + 0x10]
cmp dword [edx + 0x168], esi
jne 0x402b08
push str.iccid
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov eax, dword [ebx + 0x10]
mov ecx, ebp
add eax, 0x1dc
push eax
call sub.MFC42.DLL_CString::operator
push str.servicetagnumber
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
push str.countrycode
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov edi, 0x4687e0
or ecx, 0xffffffff
xor eax, eax
mov esi, dword [sym.imp.MSVCRT.dll__mbsnbcmp]
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x10]
not ecx
dec ecx
add eax, 0x1c6
push ecx
push 0x4687e0
push eax
call esi
add esp, 0xc
test eax, eax
jne 0x402b63
push 0x4687dc
jmp 0x402cc8
mov edi, 0x4687d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x10]
not ecx
dec ecx
add eax, 0x1c6
push ecx
push 0x4687d8
push eax
call esi
add esp, 0xc
test eax, eax
je 0x402c04
mov edi, 0x4687d4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x10]
not ecx
dec ecx
add eax, 0x1c6
push ecx
push 0x4687d4
push eax
call esi
add esp, 0xc
test eax, eax
je 0x402c04
mov edi, 0x4687d0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x10]
not ecx
dec ecx
add eax, 0x1c6
push ecx
push 0x4687d0
push eax
call esi
add esp, 0xc
test eax, eax
je 0x402c04
mov edi, 0x4687cc
or ecx, 0xffffffff
xor eax, eax
mov ebx, dword [ebx + 0x10]
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebx, 0x1c6
push ecx
push 0x4687cc
push ebx
call esi
add esp, 0xc
test eax, eax
jne 0x402ccf
push str.Europe
jmp 0x402cc8
lea edx, [esp + 0x4c]
mov ecx, ebp
push edx
call sub.MFC42.DLL_CString::operator_1
push str._actionadd
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
push str.product
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov eax, dword [ebx + 0x10]
mov ecx, ebp
add eax, 0x90
push eax
call sub.MFC42.DLL_CString::operator
push str.swversion
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov ecx, dword [ebx + 0x10]
sub esp, 8
lea edx, [esp + 0x40]
fld dword [ecx + 0xc]
fstp qword [esp]
push 0x468834
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [esp + 0x38]
mov ecx, ebp
push eax
call sub.MFC42.DLL_CString::operator
push str.esn
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov edx, dword [ebx + 0x10]
lea ecx, [esp + 0x1c]
push 0x10
push ecx
mov eax, dword [edx + 0x170]
push eax
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
push str.mdn
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
push str.servicetagnumber
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
lea edx, [esp + 0x28]
push edx
mov ecx, ebp
call sub.MFC42.DLL_CString::operator
mov dword [esp + 0x14], 1
mov esi, dword [esp + 0x14]
push esi
push str.CActivationTracking::CreateTrackingURL___end:_returning__d_n
push 2
push 2
call fcn.004048e0
add esp, 0x10
lea ecx, [esp + 0x18]
mov dword [esp + 0x158], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x150]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14c
ret 4