Function at 0x1003e2b9
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
mov eax, dword [0x1001c40c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
and dword [ebp - 0x108], esi
and dword [ebp - 0x10c], esi
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], ecx
cmp dword [0x100a32a0], esi
jne 0x1003e309
mov esi, 0x8ff000ff
jmp 0x1003e7b5
test eax, eax
je 0x1003e7b0
push ebx
call fcn.1003ea68
test al, al
je 0x1003e7b0
push dword [ebx]
call fcn.1003a956
mov dword [ebp - 0x114], eax
test eax, eax
je 0x1003e7b5
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x1003e355
lea eax, [ebp - 0x10c]
push eax
push 1
push dword [ebx]
call fcn.10039dc1
mov ecx, dword [ebp - 0x10c]
mov esi, eax
jmp 0x1003e35b
mov dword [ebp - 0x10c], ecx
test esi, esi
js 0x1003e7b5
test ecx, ecx
je 0x1003e7b5
mov eax, dword [0x100a3208]
push 0
add ecx, ecx
push dword [eax + ecx*8 + 4]
lea eax, [ebp - 0x104]
push 0x7f
push eax
call fcn.1004003c
test al, al
je 0x1003e7b5
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x10c]
call fcn.10039d2a
mov esi, eax
test esi, esi
js 0x1003e7b5
push 0x100a3288
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x10
mov ecx, 0x100a32a4
call fcn.10040137
test eax, eax
je 0x1003e3d0
mov ecx, eax
call fcn.1003f96c
mov ecx, eax
jmp 0x1003e3d2
xor ecx, ecx
mov eax, dword [ebp - 0x108]
mov dword [0x100a327c], ecx
mov dword [0x100a3280], eax
test ecx, ecx
je 0x1003e79e
mov ecx, dword [ebp + 0xc]
push edi
test cl, 0x54
je 0x1003e562
or dword [0x100a3284], 0x54
push 2
lea eax, [ebp - 0x134]
mov edi, 0x10014f28
push eax
mov dword [ebp - 0x118], edi
push 0x21
test ecx, 0x100
je 0x1003e421
push 0
jmp 0x1003e42a
mov eax, dword [ebp - 0x114]
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
je 0x1003e456
movzx eax, word [ebp - 0x134]
sub eax, 0x30
dec eax
je 0x1003e44b
dec eax
jne 0x1003e456
mov edi, 0x10014f88
jmp 0x1003e450
mov edi, 0x10014f58
mov dword [ebp - 0x118], edi
mov ecx, dword [ebp + 0xc]
xor ebx, ebx
test dword [ebx + 0x10013d24], ecx
je 0x1003e54a
lea eax, [ebp - 0x130]
push eax
push 0
push dword [ebx + 0x10013d28]
push edi
push 0
call fcn.1003cea7
mov esi, eax
test esi, esi
js 0x1003e4d1
mov eax, dword [ebp - 0x12c]
xor edi, edi
test eax, eax
je 0x1003e4c3
mov ecx, dword [ebp - 0x130]
cmp dword [ecx + edi*4], 0
je 0x1003e4be
push dword [0x100a3284]
push 0
push dword [ecx + edi*4]
mov ecx, dword [0x100a327c]
push dword [ebp - 0x108]
call fcn.1003f9b3
mov eax, dword [ebp - 0x12c]
inc edi
cmp edi, eax
jb 0x1003e490
lea eax, [ebp - 0x130]
push eax
call fcn.1003cf1a
jmp 0x1003e547
lea eax, [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x110]
push 0
push dword [ebx + 0x10013d28]
push 0x10014f00
push dword [eax]
call fcn.1003cea7
mov esi, eax
test esi, esi
js 0x1003e539
mov eax, dword [ebp - 0x12c]
xor edi, edi
test eax, eax
je 0x1003e4c3
mov ecx, dword [ebp - 0x130]
cmp dword [ecx + edi*4], 0
je 0x1003e532
push dword [0x100a3284]
push 0
push dword [ecx + edi*4]
mov ecx, dword [0x100a327c]
push dword [ebp - 0x108]
call fcn.1003f9b3
mov eax, dword [ebp - 0x12c]
inc edi
cmp edi, eax
jb 0x1003e504
jmp 0x1003e4c3
cmp esi, 0x8007000e
je 0x1003e780
xor esi, esi
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x118]
add ebx, 0xc
cmp ebx, 0x30
jb 0x1003e45b
mov ebx, dword [ebp - 0x110]
xor edi, edi
mov eax, dword [edi + 0x10013cd0]
test ecx, eax
je 0x1003e6e7
mov dword [0x100a3284], eax
test cl, cl
jns 0x1003e585
or eax, 0x80
mov dword [0x100a3284], eax
push dword [ebx]
call fcn.1003a9b3
test al, al
jne 0x1003e68a
lea eax, [ebp - 0x130]
push eax
push 0
push dword [edi + 0x10013cd4]
push 0x10014e0c
push dword [ebx]
call fcn.1003cea7
mov esi, eax
test esi, esi
js 0x1003e602
mov eax, dword [ebp - 0x12c]
xor esi, esi
test eax, eax
je 0x1003e5f4
mov ecx, dword [ebp - 0x130]
cmp dword [ecx + esi*4], 0
je 0x1003e5ef
push dword [0x100a3284]
push 0
push dword [ecx + esi*4]
mov ecx, dword [0x100a327c]
push dword [ebp - 0x108]
call fcn.1003f9b3
mov eax, dword [ebp - 0x12c]
inc esi
cmp esi, eax
jb 0x1003e5c1
lea eax, [ebp - 0x130]
push eax
call fcn.1003cf1a
jmp 0x1003e60e
cmp esi, 0x8007000e
je 0x1003e780
lea eax, [ebp - 0x130]
push eax
push 0
push dword [edi + 0x10013cd4]
lea eax, [ebp - 0x104]
push eax
push dword [ebx]
call fcn.1003cea7
mov esi, eax
test esi, esi
js 0x1003e67e
mov eax, dword [ebp - 0x12c]
xor esi, esi
test eax, eax
je 0x1003e670
mov ecx, dword [ebp - 0x130]
cmp dword [ecx + esi*4], 0
je 0x1003e66b
push dword [0x100a3284]
push 0
push dword [ecx + esi*4]
mov ecx, dword [0x100a327c]
push dword [ebp - 0x108]
call fcn.1003f9b3
mov eax, dword [ebp - 0x12c]
inc esi
cmp esi, eax
jb 0x1003e63d
lea eax, [ebp - 0x130]
push eax
call fcn.1003cf1a
jmp 0x1003e68a
cmp esi, 0x8007000e
je 0x1003e780
mov eax, dword [edi + 0x10013cd0]
test al, 0xb
je 0x1003e6b2
mov eax, dword [ebp - 0x114]
push 0
push dword [edi + 0x10013cd8]
push dword [eax + 4]
push 0x1003fb47
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsExEx]
jmp 0x1003e6ce
test al, 0x20
je 0x1003e6ce
mov eax, dword [ebp - 0x114]
push 0
push 0
push dword [eax + 4]
push 0x1003fb82
call dword [sym.imp.KERNEL32.dll_EnumTimeFormatsEx]
mov eax, dword [0x100a327c]
mov esi, dword [eax + 0xc]
cmp esi, 0x8007000e
je 0x1003e780
mov ecx, dword [ebp + 0xc]
xor esi, esi
add edi, 0xc
cmp edi, 0x54
jb 0x1003e564
mov eax, dword [0x100a327c]
xor edi, edi
add eax, 4
cmp dword [eax], edi
jbe 0x1003e780
xor ebx, ebx
cmp edi, dword [eax]
jb 0x1003e70b
xor eax, eax
jmp 0x1003e715
mov eax, dword [0x100a327c]
mov eax, dword [eax]
mov eax, dword [eax + ebx]
lea ecx, [ebp - 0x110]
push ecx
push eax
call fcn.10039cd1
mov esi, eax
test esi, esi
js 0x1003e766
mov ecx, dword [0x100a327c]
cmp edi, dword [ecx + 4]
jb 0x1003e737
xor edx, edx
jmp 0x1003e73d
mov eax, dword [ecx]
mov edx, dword [ebx + eax + 0xc]
cmp edi, dword [ecx + 4]
jb 0x1003e746
xor eax, eax
jmp 0x1003e74c
mov eax, dword [ecx]
mov eax, dword [ebx + eax + 4]
push dword [ebp - 0x138]
push edx
push eax
push dword [ebp - 0x110]
call dword [ebp - 0x13c]
test eax, eax
je 0x1003e780
jmp 0x1003e770
cmp esi, 0x8007000e
je 0x1003e780
xor esi, esi
mov eax, dword [0x100a327c]
inc edi
add eax, 4
add ebx, 0x10
cmp edi, dword [eax]
jb 0x1003e70b
mov ecx, dword [0x100a327c]
call fcn.1003fafa
push dword [0x100a327c]
mov ecx, 0x100a32a4
call fcn.10040161
pop edi
jmp 0x1003e7a3
mov esi, 0x8007000e
push 0x100a3288
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1003e7b5
mov esi, 0x80004005
mov ecx, dword [ebp - 4]
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.10048c09
leave
ret 0x10