Function at 0x405040
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47c8df
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x274
push ebx
push esi
push edi
mov eax, dword [0x49b1b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1ac], ecx
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 4], 0
mov byte [ebp - 4], 1
push 0x481e50
lea ecx, [ebp - 0xb4]
call fcn.00409840
mov dword [ebp - 0x1b0], eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1a8]
or eax, 1
mov dword [ebp - 0x1a8], eax
lea ecx, [ebp - 0xc4]
push ecx
lea ecx, [ebp + 8]
call fcn.00409c30
mov dword [ebp - 0x1b4], eax
lea edx, [ebp - 0xb4]
push edx
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp + 8]
call fcn.00409c60
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x1b4]
push ecx
mov ecx, dword [ebp - 0x1b8]
call fcn.0040aea0
mov byte [ebp - 0x1b9], al
movzx edx, byte [ebp - 0x1b9]
test edx, edx
je 0x405172
push 0x481e6c
lea ecx, [ebp - 0xe0]
call fcn.00409840
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x1a8]
or eax, 2
mov dword [ebp - 0x1a8], eax
lea ecx, [ebp - 0xe0]
push ecx
lea ecx, [ebp + 8]
call fcn.004099a0
mov dword [ebp - 0x1c4], eax
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [edx]
call fcn.0041c900
mov byte [ebp - 0x1c5], al
movzx eax, byte [ebp - 0x1c5]
test eax, eax
je 0x405172
mov dword [ebp - 0x1cc], 1
jmp 0x40517c
mov dword [ebp - 0x1cc], 0
mov cl, byte [ebp - 0x1cc]
mov byte [ebp - 0x95], cl
mov dword [ebp - 4], 2
mov edx, dword [ebp - 0x1a8]
and edx, 2
je 0x4051ac
and dword [ebp - 0x1a8], 0xfffffffd
lea ecx, [ebp - 0xe0]
call fcn.00409880
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x1a8]
and eax, 1
je 0x4051d0
and dword [ebp - 0x1a8], 0xfffffffe
lea ecx, [ebp - 0xb4]
call fcn.00409880
movzx ecx, byte [ebp - 0x95]
test ecx, ecx
je 0x40596e
push str.downloadinfo
lea ecx, [ebp - 0xfc]
call fcn.00409840
mov dword [ebp - 0x1d0], eax
mov byte [ebp - 4], 4
lea edx, [ebp - 0xfc]
push edx
lea ecx, [ebp + 8]
call fcn.004099a0
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x1d4]
mov ecx, dword [ecx]
call fcn.0041c9c0
mov dword [ebp - 0x1d8], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xfc]
call fcn.00409880
mov dword [ebp - 0x2c], 0
jmp 0x405246
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
lea ecx, [ebp - 0x28]
call fcn.00409920
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x1dc]
jae 0x405962
mov ecx, dword [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x28]
call fcn.00409940
mov dword [ebp - 0x1e0], eax
lea edx, [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [eax]
call fcn.0041ca00
mov dword [ebp - 0x1e4], eax
mov byte [ebp - 4], 7
push str.downloadurl
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x100], esp
lea edx, [ebp - 0x4c]
push edx
call fcn.004085b0
mov dword [ebp - 0x1e8], eax
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x1ec], eax
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x1f0], ecx
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x1f0]
push edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x28
mov ecx, dword [ebp + 0x28]
imul ecx, ecx, 0x498
lea ecx, [ecx + eax + 0x49c81c]
call fcn.0040f8b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x104]
call fcn.0040f890
push str.exename
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x108], esp
lea edx, [ebp - 0x4c]
push edx
call fcn.004085b0
mov dword [ebp - 0x1f4], eax
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x1f8], eax
mov ecx, dword [ebp - 0x1f8]
mov dword [ebp - 0x1fc], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x1fc]
push edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x28
mov ecx, dword [ebp + 0x28]
imul ecx, ecx, 0x498
lea ecx, [ecx + eax + 0x49c820]
call fcn.0040f8b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x10c]
call fcn.0040f890
push 0x481ecc
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x110], esp
lea edx, [ebp - 0x4c]
push edx
call fcn.004085b0
mov dword [ebp - 0x200], eax
lea eax, [ebp - 0x114]
push eax
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x204], eax
mov ecx, dword [ebp - 0x204]
mov dword [ebp - 0x208], ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x208]
push edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x28
mov ecx, dword [ebp + 0x28]
imul ecx, ecx, 0x498
lea ecx, [ecx + eax + 0x49c824]
call fcn.0040f8b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x114]
call fcn.0040f890
push 0x481ed8
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x118], esp
lea edx, [ebp - 0x4c]
push edx
call fcn.004085b0
mov dword [ebp - 0x20c], eax
lea eax, [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x210], eax
mov ecx, dword [ebp - 0x210]
mov dword [ebp - 0x214], ecx
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x214]
push edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x28
mov ecx, dword [ebp + 0x28]
imul ecx, ecx, 0x498
lea ecx, [ecx + eax + 0x49c82c]
call fcn.0040f8b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x11c]
call fcn.0040f890
push 0x481ee8
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x120], esp
lea edx, [ebp - 0x4c]
push edx
call fcn.004085b0
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x124]
push eax
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x220], ecx
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x220]
push edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x28
mov ecx, dword [ebp + 0x28]
imul ecx, ecx, 0x498
lea ecx, [ecx + eax + 0x49c830]
call fcn.0040f8b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x124]
call fcn.0040f890
push str.post_install_check
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x128], esp
lea edx, [ebp - 0x4c]
push edx
call fcn.004085b0
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x1ac]
call fcn.00401c90
lea edx, [ebp - 0x50]
push edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x28
mov ecx, dword [ebp + 0x28]
imul ecx, ecx, 0x498
lea ecx, [ecx + eax + 0x49c834]
call fcn.0040f8b0
push str.switches
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x12c], esp
lea edx, [ebp - 0x4c]
push edx
call fcn.004085b0
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x1ac]
call fcn.00401bb0
lea edx, [ebp - 0x54]
push edx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x28
mov ecx, dword [ebp + 0x28]
imul ecx, ecx, 0x498
lea ecx, [ecx + eax + 0x49c828]
call fcn.0040f8b0
push 0x481f34
lea ecx, [ebp - 0x14c]
call fcn.00409840
mov dword [ebp - 0x234], eax
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x1a8]
or edx, 4
mov dword [ebp - 0x1a8], edx
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00409c30
mov dword [ebp - 0x238], eax
lea ecx, [ebp - 0x14c]
push ecx
lea edx, [ebp - 0x154]
push edx
lea ecx, [ebp - 0x4c]
call fcn.00409c60
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x238]
push eax
mov ecx, dword [ebp - 0x23c]
call fcn.0040aea0
mov byte [ebp - 0x23d], al
movzx ecx, byte [ebp - 0x23d]
test ecx, ecx
je 0x40569c
push 0x481f60
lea ecx, [ebp - 0x178]
call fcn.00409840
mov dword [ebp - 0x244], eax
mov dword [ebp - 4], 0x10
mov edx, dword [ebp - 0x1a8]
or edx, 8
mov dword [ebp - 0x1a8], edx
lea eax, [ebp - 0x178]
push eax
lea ecx, [ebp - 0x4c]
call fcn.004099a0
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x248]
mov ecx, dword [ecx]
call fcn.0041c900
mov byte [ebp - 0x249], al
movzx edx, byte [ebp - 0x249]
test edx, edx
je 0x40569c
mov dword [ebp - 0x250], 1
jmp 0x4056a6
mov dword [ebp - 0x250], 0
mov al, byte [ebp - 0x250]
mov byte [ebp - 0x12d], al
mov dword [ebp - 4], 0xf
mov ecx, dword [ebp - 0x1a8]
and ecx, 8
je 0x4056d6
and dword [ebp - 0x1a8], 0xfffffff7
lea ecx, [ebp - 0x178]
call fcn.00409880
mov dword [ebp - 4], 0xe
mov edx, dword [ebp - 0x1a8]
and edx, 4
je 0x4056fa
and dword [ebp - 0x1a8], 0xfffffffb
lea ecx, [ebp - 0x14c]
call fcn.00409880
movzx eax, byte [ebp - 0x12d]
test eax, eax
je 0x405897
push str.post_install_check_v2
lea ecx, [ebp - 0x194]
call fcn.00409840
mov dword [ebp - 0x254], eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x194]
push ecx
lea ecx, [ebp - 0x4c]
call fcn.004099a0
mov dword [ebp - 0x258], eax
lea edx, [ebp - 0x74]
push edx
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax]
call fcn.0041c9c0
mov dword [ebp - 0x25c], eax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x194]
call fcn.00409880
push 0
lea ecx, [ebp - 0x74]
call fcn.00409940
mov dword [ebp - 0x260], eax
lea ecx, [ebp - 0x94]
push ecx
mov edx, dword [ebp - 0x260]
mov ecx, dword [edx]
call fcn.0041ca00
mov dword [ebp - 0x264], eax
mov byte [ebp - 4], 0x14
push 0x481fb8
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x198], esp
lea eax, [ebp - 0x94]
push eax
call fcn.004085b0
mov dword [ebp - 0x268], eax
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x26c], eax
mov byte [ebp - 4], 0x15
lea edx, [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x1ac]
call fcn.00401c90
push 0x481fc0
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x19c], esp
lea eax, [ebp - 0x94]
push eax
call fcn.004085b0
mov dword [ebp - 0x270], eax
lea ecx, [ebp - 0x1a0]
push ecx
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x274], eax
mov edx, dword [ebp - 0x274]
mov dword [ebp - 0x278], edx
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x278]
push eax
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 0x28]
imul edx, edx, 0x498
lea ecx, [edx + ecx + 0x49c838]
call fcn.0040f8b0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1a0]
call fcn.0040f890
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 0x28]
imul edx, edx, 0x498
lea ecx, [edx + ecx + 0x49c83c]
call fcn.0040f8b0
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x5c]
call fcn.0040f890
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x94]
call fcn.00408570
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x74]
call fcn.004098c0
push str.execute
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x1a4], esp
lea eax, [ebp - 0x4c]
push eax
call fcn.004085b0
mov dword [ebp - 0x27c], eax
lea ecx, [ebp - 0x58]
push ecx
mov ecx, dword [ebp - 0x1ac]
call fcn.004068c0
mov dword [ebp - 0x280], eax
mov byte [ebp - 4], 0x17
push 0x481fdc
lea ecx, [ebp - 0x58]
call fcn.00408e50
mov dword [ebp - 0x284], eax
cmp dword [ebp - 0x284], 0
jne 0x40590d
push 0x481fe4
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x28
mov eax, dword [ebp + 0x28]
imul eax, eax, 0x498
lea ecx, [eax + edx + 0x49c840]
call fcn.0040f8d0
jmp 0x40592d
push 0x481fec
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 0x28]
imul edx, edx, 0x498
lea ecx, [edx + ecx + 0x49c840]
call fcn.0040f8d0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x58]
call fcn.0040f890
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x54]
call fcn.0040f890
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x50]
call fcn.0040f890
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4c]
call fcn.00408570
jmp 0x40523d
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.004098c0
jmp 0x40597d
mov dword [ebp - 4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00408570
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24