Function at 0x1003b340
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x7c
mov ecx, 0x10061580
push ebx
push ebp
push esi
push edi
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
push ecx
push ebx
call fcn.1003cad0
add esp, 8
test eax, eax
jne 0x1003b3b1
test esi, esi
jne 0x1003b37a
mov esi, 0x10061580
jmp 0x1003b388
push 0x10061580
push esi
call fcn.100086d0
add esp, 8
test ebp, ebp
je 0x1003b7d3
xor eax, eax
mov word [ebp + 4], ax
mov word [ebp + 6], ax
mov word [ebp + 0xc], ax
mov word [ebp + 0xe], ax
mov dword [ebp], eax
mov dword [ebp + 8], eax
mov word [ebp + 0x10], ax
jmp 0x1003b7d3
push 0x46
push 0
lea edx, [esp + 0x30]
push edx
call fcn.10004e04
mov byte [esp + 0x7a], 0x2f
add esp, 0xc
push 0x10061584
push ebx
call fcn.1003cd98
add esp, 8
mov edi, eax
test eax, eax
jne 0x1003b3e3
mov cl, byte [ebx + edi]
inc ebx
mov byte [esp + 0x6e], cl
cmp byte [esp + 0x6e], 0
je 0x1003b486
push 0x10061584
push ebx
call fcn.1003cd98
mov edi, eax
add esp, 8
movsx edx, byte [esp + 0x6e]
cmp edx, 0x2f
je 0x1003b417
cmp edx, 0x5f
je 0x1003b436
cmp edx, 0x2e
je 0x1003b455
jmp 0x1003b748
cmp edi, 0x20
jae 0x1003b420
mov ecx, edi
jmp 0x1003b425
mov ecx, 0x1f
push ecx
push ebx
lea edx, [esp + 0x30]
push edx
call fcn.1003c690
add esp, 0xc
jmp 0x1003b472
cmp edi, 0x20
jae 0x1003b43f
mov ecx, edi
jmp 0x1003b444
mov ecx, 0x1f
push ecx
push ebx
lea edx, [esp + 0x50]
push edx
call fcn.1003c690
add esp, 0xc
jmp 0x1003b472
cmp edi, 6
jae 0x1003b45e
mov ecx, edi
jmp 0x1003b463
mov ecx, 5
push ecx
push ebx
lea edx, [esp + 0x70]
push edx
call fcn.1003c690
add esp, 0xc
mov cl, byte [ebx + edi]
lea edx, [edi + 1]
add ebx, edx
mov byte [esp + 0x6e], cl
test cl, cl
jne 0x1003b3ee
xor eax, eax
mov word [esp + 0x18], ax
mov word [esp + 0x1a], ax
cmp byte [esp + 0x28], al
je 0x1003b4b3
lea ebx, [esp + 0x28]
push ebx
call fcn.1003b22c
mov word [esp + 0x1c], ax
add esp, 4
test ax, ax
je 0x1003b748
xor edi, edi
mov word [esp + 0x20], di
mov word [esp + 0x22], di
cmp byte [esp + 0x48], 0
je 0x1003b4e1
lea ecx, [esp + 0x48]
push ecx
call fcn.1003b29c
mov word [esp + 0x24], ax
add esp, 4
test ax, ax
je 0x1003b748
mov dword [esp + 0x74], edi
mov word [esp + 0x24], di
cmp byte [esp + 0x68], 0
je 0x1003b542
push 0x10061588
lea edx, [esp + 0x6c]
push edx
call fcn.1003cad0
add esp, 8
test eax, eax
jne 0x1003b511
mov dword [esp + 0x74], 1
jmp 0x1003b542
push 0x1006158c
lea eax, [esp + 0x6c]
push eax
call fcn.1003cad0
add esp, 8
test eax, eax
je 0x1003b542
lea ebx, [esp + 0x68]
push ebx
call fcn.1003cb44
mov word [esp + 0x28], ax
add esp, 4
test ax, ax
je 0x1003b748
mov di, word [esp + 0x18]
and edi, 0xffff
test edi, edi
je 0x1003b553
jmp 0x1003b5a4
mov cx, word [esp + 0x20]
and ecx, 0xffff
test ecx, ecx
je 0x1003b564
jmp 0x1003b579
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov word [esp + 0x20], ax
mov word [esp + 0x18], ax
jmp 0x1003b653
mov dx, word [esp + 0x20]
and edx, 0xffff
push edx
call fcn.1003b2e0
mov ax, word [eax*8 + 0x10061432]
mov word [esp + 0x24], ax
mov word [esp + 0x1c], ax
add esp, 4
jmp 0x1003b653
mov bx, word [esp + 0x20]
and ebx, 0xffff
test ebx, ebx
je 0x1003b5b5
jmp 0x1003b5c4
mov di, word [esp + 0x18]
mov word [esp + 0x20], di
jmp 0x1003b653
mov cx, word [esp + 0x18]
and cx, 0x3ff
mov dx, word [esp + 0x20]
mov word [esp + 0x78], cx
xor ebx, ebx
and edx, 0xffff
push edx
call fcn.1003b2e0
lea edi, [eax*8 + 0x10061432]
mov dword [esp + 0x74], eax
add esp, 4
mov dx, word [esp + 0x78]
mov ax, word [edi + ebx*2]
test ax, ax
je 0x1003b62a
mov ecx, eax
and cx, 0x3ff
cmp cx, dx
jne 0x1003b62a
mov dx, word [esp + 0x18]
and edx, 0xffff
sar edx, 0xa
jne 0x1003b623
mov word [esp + 0x18], ax
mov word [esp + 0x20], ax
jmp 0x1003b630
inc ebx
cmp ebx, 3
jb 0x1003b5f9
mov ecx, 3
cmp ebx, ecx
jl 0x1003b653
mov eax, dword [esp + 0x70]
mov bx, word [eax*8 + 0x10061432]
mov word [esp + 0x20], bx
test bx, bx
je 0x1003b748
mov di, word [esp + 0x1a]
mov dx, word [esp + 0x18]
mov cx, word [esp + 0x22]
mov ax, word [esp + 0x20]
and edi, 0xffff
shl edi, 0x10
and edx, 0xffff
or edi, edx
and ecx, 0xffff
shl ecx, 0x10
mov dword [esp + 0x14], edi
and eax, 0xffff
or ecx, eax
mov dword [esp + 0x1c], ecx
cmp word [esp + 0x24], 0
jne 0x1003b6e1
cmp dword [esp + 0x74], 0
je 0x1003b6a6
mov ebx, 0xb
jmp 0x1003b6ab
mov ebx, 0x1004
push 0x10
lea edx, [esp + 0x80]
push edx
push ebx
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x1003b748
push 0xa
push 0
lea ebx, [esp + 0x84]
push ebx
call fcn.1003c8a0
mov word [esp + 0x30], ax
add esp, 0xc
mov di, word [esp + 0x24]
and edi, 0xffff
push edi
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
test eax, eax
je 0x1003b748
push 0x20
lea ecx, [esp + 0x2c]
push ecx
push 0x1001
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x1003b748
push 0x20
lea eax, [esp + 0x4c]
push eax
push 0x1002
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x1003b748
push 0xa
lea edx, [esp + 0x6c]
mov bx, word [esp + 0x28]
push edx
and ebx, 0xffff
push ebx
call fcn.1003c898
add esp, 0xc
jmp 0x1003b752
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
lea ecx, [esp + 0x68]
push ecx
push 0x10061594
lea edx, [esp + 0x50]
push edx
push 0x10061590
lea ecx, [esp + 0x38]
push ecx
push 0
push esi
call fcn.1003b300
add esp, 0xc
push eax
push esi
call fcn.1003b300
add esp, 0xc
push eax
push esi
call fcn.1003b300
add esp, 0xc
push eax
push esi
call fcn.1003b300
add esp, 0xc
push eax
push esi
call fcn.1003b300
add esp, 0xc
mov edi, eax
test esi, esi
jne 0x1003b7b6
lea edx, [edi + 1]
push edx
call fcn.1000884c
add esp, 4
mov esi, eax
test eax, eax
jne 0x1003b752
test ebp, ebp
je 0x1003b7d3
mov dword [esp + 0x94], esi
lea esi, [esp + 0x14]
mov edi, ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x94]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret