Function at 0x411a30
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbe8
push dword [ebp + 8]
call fcn.00410538
pop ecx
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
jne 0x411a54
mov eax, 1
jmp 0x412322
xor edx, edx
mov dword [ebp - 8], edx
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x129]
cmp al, 1
jne 0x411aac
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x12a]
add esp, 0xfffffff8
fstp qword [esp]
push str.SPEED__.1f_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 0x10
lea eax, [ebp - 0x418]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x12e]
cmp al, 1
jne 0x411af9
mov edx, dword [ebp + 0xc]
push dword [edx + 0x12f]
push str.DENSITY__d_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x138]
cmp al, 1
jne 0x411b68
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x13d]
test cl, cl
je 0x411b68
mov eax, dword [ebp + 0xc]
fld dword [eax + 0x13e]
add esp, 0xfffffff8
fstp qword [esp]
mov edx, dword [ebp + 0xc]
fld dword [edx + 0x139]
add esp, 0xfffffff8
fstp qword [esp]
push str.SIZE__.2f_mm__.2f_mm_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 0x18
lea eax, [ebp - 0x418]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x142]
cmp al, 1
jne 0x411c8f
xor edx, edx
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x143]
test eax, eax
jne 0x411be1
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x147]
cmp cl, 1
jne 0x411be1
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x14c]
cmp dl, 1
jne 0x411be1
mov ecx, dword [ebp + 0xc]
fld dword [ecx + 0x14d]
add esp, 0xfffffff8
fstp qword [esp]
mov eax, dword [ebp + 0xc]
fld dword [eax + 0x148]
add esp, 0xfffffff8
fstp qword [esp]
push str.GAP__.2f_mm__.2f_mm_r_n
lea edx, [ebp - 0x418]
push edx
call fcn.004a604c
add esp, 0x18
mov dword [ebp - 0x10], eax
jmp 0x411c65
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x143]
dec eax
jne 0x411c40
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x147]
cmp cl, 1
jne 0x411c40
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x14c]
cmp dl, 1
jne 0x411c40
mov ecx, dword [ebp + 0xc]
fld dword [ecx + 0x14d]
add esp, 0xfffffff8
fstp qword [esp]
mov eax, dword [ebp + 0xc]
fld dword [eax + 0x148]
add esp, 0xfffffff8
fstp qword [esp]
push str.BLINE__.2f_mm__.2f_mm_r_n
lea edx, [ebp - 0x418]
push edx
call fcn.004a604c
add esp, 0x18
mov dword [ebp - 0x10], eax
jmp 0x411c65
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x143]
cmp eax, 2
jne 0x411c65
push str.GAP_0_0_r_n
lea edx, [ebp - 0x418]
push edx
call fcn.004a604c
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x411c8f
lea eax, [ebp - 0x418]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x151]
cmp al, 1
jne 0x411d8e
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x152]
test ecx, ecx
jne 0x411cc6
push str.SET_TEAR_OFF_r_nSET_PEEL_OFF_r_nSET_CUTTER_OFF_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 8
jmp 0x411d6b
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x152]
dec ecx
jne 0x411ceb
push str.SET_TEAR_ON_r_nSET_PEEL_OFF_r_nSET_CUTTER_OFF_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 8
jmp 0x411d6b
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x152]
cmp ecx, 2
jne 0x411d0f
push str.SET_TEAR_OFF_r_nSET_PEEL_ON_r_nSET_CUTTER_OFF_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 8
jmp 0x411d6b
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x152]
cmp ecx, 3
jne 0x411d6b
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x156]
cmp dl, 1
jne 0x411d57
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x157]
test eax, eax
je 0x411d57
mov edx, dword [ebp + 0xc]
push dword [edx + 0x157]
push str.SET_TEAR_OFF_r_nSET_PEEL_OFF_r_nSET_CUTTER__d_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 0xc
jmp 0x411d6b
push str.SET_TEAR_OFF_r_nSET_PEEL_OFF_r_nSET_CUTTER_1_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 8
lea edx, [ebp - 0x418]
push edx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x15b]
cmp dl, 1
jne 0x411df2
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x160]
cmp al, 1
jne 0x411df2
mov edx, dword [ebp + 0xc]
push dword [edx + 0x161]
mov ecx, dword [ebp + 0xc]
push dword [ecx + 0x15c]
push str.REFERENCE__d__d_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 0x10
lea edx, [ebp - 0x418]
push edx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x165]
cmp dl, 1
jne 0x411e75
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x16a]
cmp al, 1
jne 0x411e35
mov edx, dword [ebp + 0xc]
push dword [edx + 0x16b]
mov ecx, dword [ebp + 0xc]
push dword [ecx + 0x166]
push str.DIRECTION__d__d_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 0x10
jmp 0x411e52
mov edx, dword [ebp + 0xc]
push dword [edx + 0x166]
push str.DIRECTION__d_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x16f]
cmp al, 1
jne 0x411ec2
mov edx, dword [ebp + 0xc]
push dword [edx + 0x170]
push str.OFFSET__d_dot_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x183]
cmp al, 1
je 0x411ee1
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x179]
cmp cl, 1
jne 0x411f86
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x183]
cmp dl, 1
jne 0x411efd
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x184]
mov dword [ebp - 0x14], eax
jmp 0x411f02
xor edx, edx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x179]
cmp al, 1
jne 0x411f1d
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x17a]
mov dword [ebp - 0x18], ecx
jmp 0x411f22
xor eax, eax
mov dword [ebp - 0x18], eax
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x183]
cmp cl, 1
jne 0x411f4c
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push str.SHIFT__d__d_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 0x10
jmp 0x411f63
push dword [ebp - 0x18]
push str.SHIFT__d_r_n
lea edx, [ebp - 0x418]
push edx
call fcn.004a604c
add esp, 0xc
lea ecx, [ebp - 0x418]
push ecx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
test eax, eax
jne 0x412311
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x18d]
cmp cl, 1
jne 0x411fee
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x18e]
test edx, edx
jne 0x411fb7
push str.SET_RIBBON_OFF_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 8
jmp 0x411fcb
push str.SET_RIBBON_ON_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 8
lea edx, [ebp - 0x418]
push edx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x192]
cmp dl, 1
jne 0x412043
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x193]
push dword [eax*4 + 0x4cb078]
push str.CODEPAGE__s_r_n
lea edx, [ebp - 0x418]
push edx
call fcn.004a604c
add esp, 0xc
lea ecx, [ebp - 0x418]
push ecx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
test eax, eax
jne 0x412311
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x197]
cmp cl, 1
jne 0x412098
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x198]
push dword [edx*4 + 0x4cb108]
push str.COUNTRY__s_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x19c]
cmp al, 1
jne 0x4120ff
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x19d]
test ecx, ecx
jne 0x4120c8
push str.SET_HEAD_OFF_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 8
jmp 0x4120dc
push str.SET_HEAD_ON_r_n
lea edx, [ebp - 0x418]
push edx
call fcn.004a604c
add esp, 8
lea ecx, [ebp - 0x418]
push ecx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
test eax, eax
jne 0x412311
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x1a1]
cmp cl, 1
jne 0x412167
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x1a2]
test edx, edx
jne 0x412130
push str.SET_REPRINT_OFF_r_n
lea ecx, [ebp - 0x418]
push ecx
call fcn.004a604c
add esp, 8
jmp 0x412144
push str.SET_REPRINT_ON_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 8
lea edx, [ebp - 0x418]
push edx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x1a6]
cmp dl, 1
jne 0x4121b5
mov ecx, dword [ebp + 0xc]
push dword [ecx + 0x1a7]
push 0x4cb5c4
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 0xc
lea edx, [ebp - 0x418]
push edx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x1ab]
cmp dl, 1
jne 0x412203
mov ecx, dword [ebp + 0xc]
push dword [ecx + 0x1ac]
push 0x4cb5d1
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 0xc
lea edx, [ebp - 0x418]
push edx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x1b0]
cmp dl, 1
jne 0x412251
mov ecx, dword [ebp + 0xc]
push dword [ecx + 0x1b1]
push str.SET_GAP__d_r_n
lea eax, [ebp - 0x418]
push eax
call fcn.004a604c
add esp, 0xc
lea edx, [ebp - 0x418]
push edx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x1b5]
cmp dl, 1
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov al, byte [ecx + 0x1ba]
cmp al, 1
jne 0x412311
mov edx, dword [ebp + 0xc]
mov cl, byte [edx + 0x1bf]
cmp cl, 1
jne 0x412311
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0x1c4]
cmp dl, 1
jne 0x412311
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x1c5]
mov edx, dword [eax*4 + 0x4cb1bc]
movsx ecx, byte [edx]
push ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x1bb]
mov ecx, dword [edx*4 + 0x4cb1a8]
movsx eax, byte [ecx]
push eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x1c0]
mov eax, dword [ecx*4 + 0x4cb1b0]
movsx edx, byte [eax]
push edx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x1b6]
push dword [eax*4 + 0x4cb160]
push str.SET_COM1__s__c__c__c_r_n
lea edx, [ebp - 0x418]
push edx
call fcn.004a604c
add esp, 0x18
lea ecx, [ebp - 0x418]
push ecx
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.00410be8
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
test eax, eax
push dword [ebp - 4]
push dword [ebp + 8]
call fcn.0041064c
add esp, 8
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret