Function at 0x40b89d
Capabilities:
Get geographical location
Reference google public dns server

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor ebx, ebx
push edi
mov dword [ebp - 4], ebx
call fcn.0040ac2c
mov ecx, dword [0x479740]
test ecx, ecx
je 0x40c518
mov edi, 0x417cd8
push 0x417cc8
mov edx, edi
call fcn.0040aa26
push ebx
push 1
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40b904
xor edx, edx
push ebx
push 1
inc edx
call fcn.0040b859
mov ecx, 0x4513e0
add esp, 8
sub ecx, esi
mov al, byte [esi]
mov byte [ecx + esi], al
inc esi
test al, al
jne 0x40b8f8
jmp 0x40b90a
mov byte [0x4513e0], bl
mov ecx, dword [0x479740]
mov edx, edi
push 0x417ce4
call fcn.0040aa26
push ebx
push 0x800
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 0xc
test esi, esi
je 0x40b9b9
xor edx, edx
push ebx
push 0x800
inc edx
call fcn.0040b859
push 0x414d0c
push esi
call edi
mov ecx, dword [0x479740]
neg eax
mov esi, 0x417cd8
sbb eax, eax
mov edx, esi
neg eax
push 0x417cf0
mov dword [0x451658], eax
call fcn.0040aa26
mov ecx, eax
add esp, 0x14
test ecx, ecx
je 0x40b98d
mov edx, 0x45167c
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40b983
mov ecx, dword [0x479740]
mov edx, esi
push 0x417d00
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40b9c8
mov edx, 0x45168c
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40b9ad
jmp 0x40b9c8
mov dword [0x451658], 1
mov esi, 0x417cd8
cmp dword [0x451658], ebx
je 0x40ba4a
mov ecx, dword [0x479740]
mov edx, esi
push 0x417d10
call fcn.0040aa26
push ebx
push 0x100
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40ba4a
xor edx, edx
push ebx
push 0x100
inc edx
call fcn.0040b859
mov ecx, 0x45165c
add esp, 8
sub ecx, esi
mov al, byte [esi]
mov byte [ecx + esi], al
inc esi
test al, al
jne 0x40ba13
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417d20
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40ba4a
mov edx, 0x45166c
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40ba40
push 0x417d2c
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x80000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40ba90
xor edx, edx
push ebx
push 0x80000
inc edx
call fcn.0040b859
xor eax, eax
add esp, 8
test esi, esi
setne al
mov dword [0x4516e8], eax
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417d3c
call fcn.0040aa26
push ebx
push 0x200
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40bae4
xor edx, edx
push ebx
push 0x200
inc edx
call fcn.0040b859
push 0x414d0c
push esi
call edi
add esp, 0x10
neg eax
sbb eax, eax
neg eax
mov dword [0x45169c], eax
jmp 0x40baee
mov dword [0x45169c], 1
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417d4c
call fcn.0040aa26
push ebx
push 0x200
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40bb45
xor edx, edx
push ebx
push 0x200
inc edx
call fcn.0040b859
push 0x414d0c
push esi
call edi
add esp, 0x10
neg eax
sbb eax, eax
xor esi, esi
neg eax
inc esi
mov dword [0x4516a0], eax
jmp 0x40bb4e
xor esi, esi
inc esi
mov dword [0x4516a0], esi
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417d60
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bb7b
mov edx, 0x45174c
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bb71
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417d74
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bba8
mov edx, 0x45179c
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bb9e
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417d88
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bbd5
mov edx, 0x45183c
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bbcb
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417d9c
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bc02
mov edx, 0x45193c
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bbf8
push 0x417db4
mov edx, 0x417cd8
call fcn.0040ac03
pop ecx
cmp eax, 0xffffffff
je 0x40bc1c
mov dword [0x4519dc], eax
push 0x417dc8
mov edx, 0x417cd8
call fcn.0040ac03
pop ecx
cmp eax, esi
jne 0x40bc36
mov dword [0x4519e0], esi
mov ecx, dword [0x479740]
mov esi, 0x417cd8
push 0x417de0
mov edx, esi
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bc65
mov edx, 0x451a84
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bc5b
mov ecx, dword [0x479740]
mov edx, esi
push 0x417df0
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bc8f
mov edx, 0x451a94
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bc85
mov ecx, dword [0x479740]
mov edx, esi
push 0x417e00
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bcb9
mov edx, 0x451aa4
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bcaf
push 0x417e10
mov edx, esi
call fcn.0040ac03
push ebx
push 2
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40bcf9
xor edx, edx
push ebx
push 2
inc edx
call fcn.0040b859
xor eax, eax
add esp, 8
cmp esi, 1
sete al
mov dword [0x451430], eax
jmp 0x40bd03
mov dword [0x451430], 1
push 0x417e1c
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x200000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40bd4c
xor edx, edx
push ebx
push 0x200000
inc edx
call fcn.0040b859
xor eax, eax
add esp, 8
cmp esi, 1
sete al
mov dword [0x451740], eax
jmp 0x40bd52
mov dword [0x451740], ebx
push 0x417e34
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x1000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
xor eax, eax
add esp, 0xc
inc eax
cmp esi, eax
jne 0x40bdba
push ebx
push 0x1000
mov edx, eax
call fcn.0040b859
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417e48
mov dword [0x4516ac], ebx
call fcn.0040aa26
add esp, 0xc
test eax, eax
je 0x40bdbf
mov ecx, eax
call fcn.00401a81
mov dword [0x4516b0], eax
jmp 0x40bdbf
mov dword [0x4516ac], eax
push 0x417e54
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x2000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
jne 0x40be00
push ebx
inc esi
push 0x2000
mov edx, esi
call fcn.0040b859
add esp, 8
mov dword [0x4516b4], esi
jmp 0x40be06
mov dword [0x4516b4], ebx
push 0x417e60
mov edx, 0x417cd8
call fcn.0040ac03
xor edx, edx
lea ecx, [ebp - 4]
push ebx
push 0x4000
inc edx
mov esi, eax
call fcn.0040b859
xor eax, eax
add esp, 0xc
inc eax
cmp esi, eax
jne 0x40be66
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417e74
mov dword [0x4516b8], eax
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40be66
mov edx, 0x4516bc
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40be5a
jmp 0x40be6c
mov dword [0x4516b8], ebx
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417e84
call fcn.0040aa26
push ebx
push 0x8000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40bebc
xor edx, edx
push ebx
push 0x8000
inc edx
call fcn.0040b859
mov ecx, 0x4516cc
add esp, 8
sub ecx, esi
mov al, byte [esi]
mov byte [ecx + esi], al
inc esi
test al, al
jne 0x40beb2
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417e94
call fcn.0040aa26
push ebx
push 0x10000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40bf2c
xor edx, edx
push ebx
push 0x10000
inc edx
call fcn.0040b859
push 0x415dbc
push esi
call edi
add esp, 0x10
test eax, eax
jne 0x40bf13
mov dword [0x4516dc], 8
jmp 0x40bf2c
push 0x415dc4
push esi
call edi
neg eax
pop ecx
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
pop ecx
mov dword [0x4516dc], eax
push 0x417ea0
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x1000000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40bf73
xor edx, edx
push ebx
push 0x1000000
inc edx
call fcn.0040b859
xor eax, eax
add esp, 8
cmp esi, 1
sete al
mov dword [0x451ab4], eax
push 0x417eb8
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x100000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40bff5
xor edx, edx
push ebx
push 0x100000
inc edx
call fcn.0040b859
add esp, 8
test esi, esi
je 0x40bfef
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417ec8
mov dword [0x4516ec], 1
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40bfea
mov edx, 0x4516f0
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40bfde
jmp 0x40bff5
mov eax, dword [ebp - 4]
mov dword [eax], ebx
mov dword [0x4516ec], ebx
push 0x417ed8
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x20000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c03b
xor edx, edx
push ebx
push 0x20000
inc edx
call fcn.0040b859
xor eax, eax
add esp, 8
test esi, esi
setne al
mov dword [0x4516e0], eax
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417ee4
call fcn.0040aa26
push ebx
push 0x800000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40c08b
xor edx, edx
push ebx
push 0x800000
inc edx
call fcn.0040b859
mov ecx, 0x451744
add esp, 8
sub ecx, esi
mov al, byte [esi]
mov byte [ecx + esi], al
inc esi
test al, al
jne 0x40c081
push 0x417ef4
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x400
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c0cd
xor edx, edx
push ebx
push 0x400
inc edx
call fcn.0040b859
add esp, 8
mov dword [0x4516a4], esi
jmp 0x40c0d3
mov dword [0x4516a4], ebx
push 0x417f00
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x400
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c115
xor edx, edx
push ebx
push 0x400
inc edx
call fcn.0040b859
add esp, 8
mov dword [0x4516a8], esi
jmp 0x40c11b
mov dword [0x4516a8], ebx
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417f10
call fcn.0040aa26
push ebx
push 0x40000
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40c184
xor edx, edx
push ebx
push 0x40000
inc edx
call fcn.0040b859
push 0x415e7c
push esi
call edi
add esp, 0x10
test eax, eax
je 0x40c17e
push 0x415e70
push esi
call edi
mov dword [0x4516e4], 1
pop ecx
pop ecx
test eax, eax
je 0x40c184
mov dword [0x4516e4], ebx
mov ecx, dword [0x479740]
mov edx, 0x417cd8
push 0x417f1c
call fcn.0040aa26
push ebx
push 0x80
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
test esi, esi
je 0x40c27a
xor edx, edx
push ebx
push 0x80
inc edx
call fcn.0040b859
push 0x415604
push esi
call edi
add esp, 0x10
test eax, eax
jne 0x40c27a
mov ecx, dword [0x479740]
mov edi, 0x417cd8
push 0x417f24
mov edx, edi
mov dword [0x451634], ebx
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40c20c
mov edx, 0x451638
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40c202
mov ecx, dword [0x479740]
mov edx, edi
push 0x417f30
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40c236
mov edx, 0x451648
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x40c22c
xor edi, edi
inc edi
push 0x417f40
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 4
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c285
push ebx
push 4
mov edx, edi
call fcn.0040b859
xor eax, eax
add esp, 8
cmp esi, edi
sete al
mov dword [0x451438], eax
jmp 0x40c28b
xor edi, edi
inc edi
mov dword [0x451634], edi
jmp 0x40c239
mov dword [0x451438], edi
push 0x417f54
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x10
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c2cc
push ebx
push 0x10
mov edx, edi
call fcn.0040b859
xor eax, eax
add esp, 8
cmp esi, edi
sete al
mov dword [0x451434], eax
jmp 0x40c2d2
mov dword [0x451434], edi
push 0x417f68
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 8
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c319
push ebx
push 8
mov edx, edi
call fcn.0040b859
add esp, 8
lea eax, [esi - 1]
cmp eax, 5
push 3
pop ecx
cmovbe ecx, esi
mov dword [0x45143c], ecx
jmp 0x40c323
mov dword [0x45143c], 3
push 0x417f74
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x20
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c364
push ebx
push 0x20
mov edx, edi
call fcn.0040b859
xor eax, eax
add esp, 8
cmp esi, edi
sete al
mov dword [0x451440], eax
jmp 0x40c36a
mov dword [0x451440], edi
push 0x417f8c
mov edx, 0x417cd8
call fcn.0040ac03
push ebx
push 0x40
xor edx, edx
lea ecx, [ebp - 4]
mov esi, eax
call fcn.0040b859
add esp, 0xc
cmp esi, 0xffffffff
je 0x40c3ab
push ebx
push 0x40
mov edx, edi
call fcn.0040b859
xor eax, eax
add esp, 8
cmp esi, edi
sete al
mov dword [0x451444], eax
jmp 0x40c3b1
mov dword [0x451444], edi
mov ecx, dword [0x479740]
mov esi, 0x417cd8
push 0x417fa8
mov edx, esi
call fcn.0040aa26
pop ecx
test eax, eax
je 0x40c3e8
mov ecx, dword [0x476148]
mov edx, eax
add ecx, 8
push ecx
push ecx
mov ecx, 0x451448
call fcn.0040c83c
pop ecx
pop ecx
jmp 0x40c3ee
mov byte [0x451448], bl
mov ecx, dword [0x479740]
mov edx, esi
push 0x417fc0
call fcn.0040aa26
pop ecx
test eax, eax
je 0x40c420
mov ecx, dword [0x476148]
mov edx, eax
add ecx, 8
push ecx
push ecx
mov ecx, 0x4514ec
call fcn.0040c83c
pop ecx
pop ecx
jmp 0x40c426
mov byte [0x4514ec], bl
mov ecx, dword [0x479740]
mov edx, esi
push 0x417fcc
call fcn.0040aa26
pop ecx
test eax, eax
je 0x40c458
mov ecx, dword [0x476148]
mov edx, eax
add ecx, 8
push ecx
push ecx
mov ecx, 0x451590
call fcn.0040c83c
pop ecx
pop ecx
jmp 0x40c45e
mov byte [0x451590], bl
mov ecx, dword [0x479740]
mov edx, esi
push 0x417fd8
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40c490
mov edx, 0x451498
sub edx, ecx
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x40c47e
mov dword [0x4514e8], edi
jmp 0x40c49c
mov byte [0x451498], bl
mov dword [0x4514e8], ebx
mov ecx, dword [0x479740]
mov edx, esi
push 0x417fe8
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40c4ce
mov edx, 0x45153c
sub edx, ecx
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x40c4bc
mov dword [0x45158c], edi
jmp 0x40c4da
mov byte [0x45153c], bl
mov dword [0x45158c], ebx
mov ecx, dword [0x479740]
mov edx, esi
push 0x417ff8
call fcn.0040aa26
pop ecx
mov ecx, eax
test ecx, ecx
je 0x40c506
mov edx, 0x4515e0
sub edx, ecx
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x40c4fa
jmp 0x40c512
mov byte [0x451590], bl
mov byte [0x4515e0], bl
mov dword [0x451630], edi
call fcn.0040acd5
pop edi
pop esi
pop ebx
leave
ret