Function at 0x41e040
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a67c0
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x4c3518]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
push esi
push edi
mov eax, dword [0x4c3518]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x10], eax
xor esi, esi
cmp byte [0x4c72ab], 0
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 8]
jne 0x41e09f
call fcn.0041a7d0
test eax, eax
jne 0x41e0be
cmp byte [0x4c73c4], 0
je 0x41e0be
push 0
push 0
push edi
call dword [0x4c72d4]
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x41e0dd
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
push 0x32
call ebx
inc esi
cmp esi, 3
jl 0x41e086
mov eax, 0xfffff400
jmp 0x41e94e
cmp byte [0x4c73c5], 0
jne 0x41e0f4
call fcn.0044081f
test eax, eax
jne 0x41e0f4
or esi, 0xffffffff
jmp 0x41e10e
mov eax, dword [0x4c7440]
test eax, eax
jne 0x41e102
or esi, 0xffffffff
jmp 0x41e10e
mov ecx, dword [esp + 0x14]
push ecx
call eax
add esp, 4
mov esi, eax
cmp byte [0x4c73c5], 0
jne 0x41e125
call fcn.0044081f
test eax, eax
jne 0x41e125
or eax, 0xffffffff
jmp 0x41e135
mov eax, dword [0x4c744c]
test eax, eax
jne 0x41e133
or eax, 0xffffffff
jmp 0x41e135
call eax
cmp esi, eax
jne 0x41e911
cmp byte [0x4c73c5], 0
jne 0x41e153
call fcn.0044081f
test eax, eax
je 0x41e911
mov eax, dword [0x4c748c]
test eax, eax
je 0x41e911
mov edx, dword [esp + 0x14]
push edx
call eax
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
test ebx, ebx
jle 0x41e911
lea esi, [ebx*4]
push esi
call fcn.004860e8
add esp, 4
mov edi, eax
push esi
mov dword [esp + 0x24], edi
call fcn.004860e8
add esp, 4
cmp byte [0x4c73c5], 0
mov esi, eax
mov dword [esp + 0x1c], esi
jne 0x41e1af
call fcn.0044081f
test eax, eax
je 0x41e1c4
mov eax, dword [0x4c7490]
test eax, eax
je 0x41e1c4
mov ecx, dword [esp + 0x14]
push esi
push edi
push ecx
call eax
add esp, 0xc
test ebx, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x18], 0
jle 0x41e8fd
jmp 0x41e1e0
mov ecx, 7
xor eax, eax
xor edx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov word [esp + 0x2c], dx
mov dword [esp + 0x70], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
mov word [esp + 0x48], ax
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x28]
mov byte [esp + 0x70], 1
mov eax, dword [edx + esi*4]
push ecx
push eax
call fcn.0041c2a0
mov edx, dword [esp + 0x24]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x4c]
push ecx
push eax
call fcn.0041c2a0
mov edi, dword [esp + 0x4c]
add esp, 0x10
mov esi, edi
cmp edi, 0xb
jb 0x41e247
mov esi, 0xb
cmp dword [esp + 0x40], 8
mov edx, dword [esp + 0x2c]
jae 0x41e256
lea edx, [esp + 0x2c]
mov eax, str.DeviceClass
test esi, esi
jbe 0x41e285
nop
mov cx, word [edx]
cmp cx, word [eax]
jne 0x41e275
add edx, 2
add eax, 2
sub esi, 1
jne 0x41e260
jmp 0x41e285
mov dx, cx
cmp dx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x41e292
cmp edi, 0xb
jb 0x41e29e
xor eax, eax
cmp edi, 0xb
setne al
test eax, eax
jne 0x41e29e
lea ecx, [ebx + 0x1c]
jmp 0x41e880
mov esi, edi
cmp edi, 0xa
jb 0x41e2aa
mov esi, 0xa
cmp dword [esp + 0x40], 8
mov edx, dword [esp + 0x2c]
jae 0x41e2b9
lea edx, [esp + 0x2c]
mov eax, 0x4b42b4
test esi, esi
jbe 0x41e2e7
mov cx, word [edx]
cmp cx, word [eax]
jne 0x41e2d7
add edx, 2
add eax, 2
sub esi, 1
jne 0x41e2c2
jmp 0x41e2e7
mov dx, cx
cmp dx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x41e2f4
cmp edi, 0xa
jb 0x41e300
xor eax, eax
cmp edi, 0xa
setne al
test eax, eax
jne 0x41e300
lea ecx, [ebx + 0x38]
jmp 0x41e880
mov esi, edi
cmp edi, 0xb
jb 0x41e30c
mov esi, 0xb
cmp dword [esp + 0x40], 8
mov edx, dword [esp + 0x2c]
jae 0x41e31b
lea edx, [esp + 0x2c]
mov eax, str.ProductType
test esi, esi
jbe 0x41e349
mov cx, word [edx]
cmp cx, word [eax]
jne 0x41e339
add edx, 2
add eax, 2
sub esi, 1
jne 0x41e324
jmp 0x41e349
mov dx, cx
cmp dx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x41e356
cmp edi, 0xb
jb 0x41e362
xor eax, eax
cmp edi, 0xb
setne al
test eax, eax
jne 0x41e362
lea ecx, [ebx + 0x54]
jmp 0x41e880
mov esi, edi
cmp edi, 0xc
jb 0x41e36e
mov esi, 0xc
cmp dword [esp + 0x40], 8
mov edx, dword [esp + 0x2c]
jae 0x41e37d
lea edx, [esp + 0x2c]
mov eax, str.UniqueChipID
test esi, esi
jbe 0x41e3ab
mov cx, word [edx]
cmp cx, word [eax]
jne 0x41e39b
add edx, 2
add eax, 2
sub esi, 1
jne 0x41e386
jmp 0x41e3ab
mov dx, cx
cmp dx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x41e3b8
cmp edi, 0xc
jb 0x41e3c4
xor eax, eax
cmp edi, 0xc
setne al
test eax, eax
jne 0x41e3c4
lea ecx, [ebx + 0x70]
jmp 0x41e880
mov esi, edi
cmp edi, 0xe
jb 0x41e3d0
mov esi, 0xe
cmp dword [esp + 0x40], 8
mov edx, dword [esp + 0x2c]
jae 0x41e3df
lea edx, [esp + 0x2c]
mov eax, 0x4b4300
test esi, esi
jbe 0x41e40d
mov cx, word [edx]
cmp cx, word [eax]
jne 0x41e3fd
add edx, 2
add eax, 2
sub esi, 1
jne 0x41e3e8
jmp 0x41e40d
mov dx, cx
cmp dx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x41e41a
cmp edi, 0xe
jb 0x41e429
xor eax, eax
cmp edi, 0xe
setne al
test eax, eax
jne 0x41e429
lea ecx, [ebx + 0x8c]
jmp 0x41e880
mov edx, edi
cmp edi, 0xc
jb 0x41e435
mov edx, 0xc
cmp dword [esp + 0x40], 8
mov ecx, dword [esp + 0x2c]
jae 0x41e444
lea ecx, [esp + 0x2c]
mov eax, str.SerialNumber
test edx, edx
jbe 0x41e475
lea ecx, [ecx]
mov si, word [ecx]
cmp si, word [eax]
jne 0x41e465
add ecx, 2
add eax, 2
sub edx, 1
jne 0x41e450
jmp 0x41e475
mov cx, si
cmp cx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jne 0x41e482
cmp edi, 0xc
jb 0x41e491
xor eax, eax
cmp edi, 0xc
setne al
test eax, eax
jne 0x41e491
lea ecx, [ebx + 0xa8]
jmp 0x41e880
push 0x4b433c
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e4b1
lea ecx, [ebx + 0xc4]
jmp 0x41e880
push str.BasebandVersion
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e4d1
lea ecx, [ebx + 0xe0]
jmp 0x41e880
push str.BasebandBootloaderVersion
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e4f1
lea ecx, [ebx + 0xfc]
jmp 0x41e880
push str.ModelNumber
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e511
lea ecx, [ebx + 0x118]
jmp 0x41e880
push str.RegionInfo
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e531
lea ecx, [ebx + 0x134]
jmp 0x41e880
push str.InternationalMobileEquipmentIdentity
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e551
lea ecx, [ebx + 0x150]
jmp 0x41e880
push str.TimeZoneOffsetFromUTC
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e571
lea ecx, [ebx + 0x16c]
jmp 0x41e880
push str.ActivationState
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e591
lea ecx, [ebx + 0x188]
jmp 0x41e880
push str.BuildVersion
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e5b1
lea ecx, [ebx + 0x1a4]
jmp 0x41e880
push str.CPUArchitecture
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e5d1
lea ecx, [ebx + 0x1c0]
jmp 0x41e880
push str.DeviceColor
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e5f1
lea ecx, [ebx + 0x1dc]
jmp 0x41e880
push str.FirmwareVersion
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e611
lea ecx, [ebx + 0x1f8]
jmp 0x41e880
push str.HardwareModel
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e631
lea ecx, [ebx + 0x214]
jmp 0x41e880
push str.BluetoothAddress
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e651
lea ecx, [ebx + 0x230]
jmp 0x41e880
push str.WiFiAddress
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e671
lea ecx, [ebx + 0x24c]
jmp 0x41e880
push str.ActivationStateAcknowledged
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e691
lea ecx, [ebx + 0x268]
jmp 0x41e880
push str.BasebandChipId
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e6b1
lea ecx, [ebx + 0x284]
jmp 0x41e880
push str.BasebandGoldCertId
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e6d1
lea ecx, [ebx + 0x2a0]
jmp 0x41e880
push str.MLBSerialNumber
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e6f1
lea ecx, [ebx + 0x2bc]
jmp 0x41e880
push str.MobileSubscriberCountryCode
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e711
lea ecx, [ebx + 0x2d8]
jmp 0x41e880
push str.MobileSubscriberNetworkCode
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e731
lea ecx, [ebx + 0x2f4]
jmp 0x41e880
push str.PasswordProtected
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e751
lea ecx, [ebx + 0x310]
jmp 0x41e880
push str.PhoneNumber
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e771
lea ecx, [ebx + 0x32c]
jmp 0x41e880
push str.ProductionSOC
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e791
lea ecx, [ebx + 0x348]
jmp 0x41e880
push str.ProtocolVersion
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e7b1
lea ecx, [ebx + 0x364]
jmp 0x41e880
push str.SDIOProductInfo
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e7d1
lea ecx, [ebx + 0x380]
jmp 0x41e880
push str.SIMStatus
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e7f1
lea ecx, [ebx + 0x39c]
jmp 0x41e880
push str.SupportedDeviceFamilies
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e80e
lea ecx, [ebx + 0x3b8]
jmp 0x41e880
push 0x4b4730
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e82b
lea ecx, [ebx + 0x3d4]
jmp 0x41e880
push str.TimeZone
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e848
lea ecx, [ebx + 0x3f0]
jmp 0x41e880
push str.Uses24HourClock
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e865
lea ecx, [ebx + 0x40c]
jmp 0x41e880
push str.iTunesHasConnected
lea eax, [esp + 0x2c]
call fcn.0040dc23
add esp, 4
test al, al
je 0x41e88d
lea ecx, [ebx + 0x428]
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x4c]
call fcn.00409830
cmp dword [esp + 0x5c], 8
jb 0x41e8a1
mov edx, dword [esp + 0x48]
push edx
call fcn.00485321
add esp, 4
xor edi, edi
xor eax, eax
mov esi, 7
mov dword [esp + 0x70], 0xffffffff
cmp dword [esp + 0x40], 8
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
mov word [esp + 0x48], ax
jb 0x41e8d3
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00485321
add esp, 4
mov eax, dword [esp + 0x18]
inc eax
xor edx, edx
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov word [esp + 0x2c], dx
mov dword [esp + 0x18], eax
jl 0x41e1e0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
push edi
call fcn.0048556b
add esp, 4
push esi
call fcn.0048556b
add esp, 4
jmp 0x41e915
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx]
mov edx, dword [eax + 0x74]
mov ecx, ebx
call edx
cmp byte [0x4c73c5], 0
jne 0x41e930
call fcn.0044081f
test eax, eax
je 0x41e943
mov eax, dword [0x4c746c]
test eax, eax
je 0x41e943
mov ecx, dword [esp + 0x14]
push ecx
call eax
add esp, 4
mov edx, dword [ebx]
mov eax, dword [edx + 0x10]
mov ecx, ebx
call eax
xor eax, eax
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.0048532c
mov esp, ebp
pop ebp
ret 4