Function at 0x1001ece2
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x25c
mov eax, dword [0x1020f334]
xor eax, esp
mov dword [esp + 0x258], eax
push ebx
push esi
push edi
push ecx
mov edi, ecx
mov byte [esp + 0x18], 0
xor esi, esi
lea ecx, [esp + 0x48]
push 0x102174e0
mov dword [esp + 0x28], esi
call fcn.1000d9b0
test byte [edi + 0x20], 2
jne 0x1001f048
cmp dword [edi + 0x14], esi
je 0x1001ed3b
push dword [edi + 0x14]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
and dword [edi + 0x14], esi
pop ecx
mov byte [edi + 0x1d], 0
push 0x100
lea eax, [esp + 0x64]
push eax
push 0x6c
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
push 4
pop ebx
cmp eax, ebx
jle 0x1001eed9
xor ebx, ebx
test eax, eax
push 5
cmovns ebx, eax
xor edx, edx
pop ecx
mov eax, ebx
mov dword [esp + 0x24], ebx
div ecx
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov dword [edi + 0x14], eax
pop ecx
test eax, eax
jne 0x1001ed96
mov esi, 0x8007000e
jmp 0x1001f048
push 4
xor al, al
pop ecx
mov byte [esp + 0x13], al
cmp ebx, ecx
jbe 0x1001ee7f
mov dword [esp + 0x1c], ecx
lea ebx, [esp + 0x60]
push 8
mov edx, ebx
pop ecx
sub ecx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
push 0x3b
pop eax
cmp ax, word [ebx + 8]
mov eax, dword [esp + 0x1c]
jne 0x1001ee69
lea eax, [ecx + ebx]
cmp eax, 0x200
jae 0x1001f068
xor eax, eax
lea edx, [esp + 0x28]
mov ecx, ebx
mov word [ebx + 8], ax
call fcn.10020778
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
js 0x1001ee55
cmp byte [edi + 0x1d], 0
jbe 0x1001ee42
cmp byte [esp + 0x13], 1
jae 0x1001ee42
push ebx
push str.Hans
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x1001ee3b
push ebx
push str.Hant
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
je 0x1001ee3b
push ebx
push str.Jpan
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x1001ee42
mov al, byte [edi + 0x1d]
mov byte [esp + 0x13], al
movzx ecx, byte [edi + 0x1d]
mov edx, dword [edi + 0x14]
mov eax, dword [esp + 0x28]
mov dword [edx + ecx*4], eax
inc byte [edi + 0x1d]
jmp 0x1001ee5d
cmp esi, 0x8007000e
je 0x1001eea5
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add eax, 5
add ebx, 0xa
mov dword [esp + 0x1c], eax
cmp eax, edx
jb 0x1001edbe
mov al, byte [esp + 0x13]
cmp byte [edi + 0x1d], 0
jbe 0x1001eec2
test al, al
je 0x1001f028
mov esi, dword [edi + 0x14]
movzx ecx, al
mov eax, dword [esi]
mov edx, dword [esi + ecx*4]
mov dword [esi + ecx*4], eax
mov eax, dword [edi + 0x14]
mov dword [eax], edx
jmp 0x1001f028
cmp dword [edi + 0x14], 0
je 0x1001eeb5
push dword [edi + 0x14]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
and dword [edi + 0x14], 0
mov byte [edi + 0x1d], 0
jmp 0x1001f048
cmp dword [edi + 0x14], 0
je 0x1001eed2
push dword [edi + 0x14]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
and dword [edi + 0x14], 0
push 4
pop ebx
push 8
lea eax, [esp + 0x54]
push eax
push 0x1004
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
je 0x1001efc2
lea eax, [esp + 0x2c]
mov edx, str.CpgScript
push eax
push 0
lea eax, [esp + 0x58]
xor ecx, ecx
push eax
call fcn.10007398
mov esi, eax
mov dword [esp + 0x20], esi
test esi, esi
js 0x1001efc2
mov eax, dword [esp + 0x30]
xor ecx, ecx
mul ebx
mov dword [esp + 0x14], 1
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov dword [edi + 0x14], eax
pop ecx
test eax, eax
jne 0x1001ef4c
mov esi, 0x8007000e
jmp 0x1001f03f
xor ebx, ebx
cmp dword [esp + 0x30], ebx
jbe 0x1001ef8c
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x28]
mov ecx, dword [ecx + ebx*4]
call fcn.10020778
mov esi, eax
test esi, esi
js 0x1001ef7d
movzx ecx, byte [edi + 0x1d]
mov edx, dword [edi + 0x14]
mov eax, dword [esp + 0x28]
mov dword [edx + ecx*4], eax
inc byte [edi + 0x1d]
jmp 0x1001ef85
cmp esi, 0x8007000e
je 0x1001efa8
inc ebx
cmp ebx, dword [esp + 0x30]
jb 0x1001ef54
cmp byte [edi + 0x1d], 0
mov ecx, dword [esp + 0x14]
jne 0x1001f02c
mov eax, dword [edi + 0x14]
mov byte [edi + 0x1d], cl
and dword [eax], 0
jmp 0x1001f02c
cmp dword [edi + 0x14], 0
je 0x1001efb8
push dword [edi + 0x14]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
and dword [edi + 0x14], 0
mov byte [edi + 0x1d], 0
jmp 0x1001f03f
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov dword [edi + 0x14], eax
pop ecx
test eax, eax
je 0x1001ed8c
mov byte [edi + 0x1d], 1
and dword [eax], 0
lea eax, [esp + 0x60]
push 0x100
push eax
push ebx
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
je 0x1001f028
and dword [esp + 0x18], 0
lea edx, [esp + 0x18]
lea ecx, [esp + 0x60]
call fcn.1002252f
test eax, eax
je 0x1001f020
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x20]
mov esi, dword [edi + 0x14]
call fcn.10025283
mov dword [esi], eax
mov esi, dword [esp + 0x20]
cmp esi, 0x8007000e
je 0x1001f048
mov ecx, dword [esp + 0x14]
cmp dword [edi + 8], 0xc00
je 0x1001f039
or dword [edi + 0x20], 2
xor esi, esi
test cl, cl
je 0x1001f048
lea ecx, [esp + 0x2c]
call fcn.100075d4
lea ecx, [esp + 0x44]
call fcn.1000d98e
mov ecx, dword [esp + 0x264]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100042bb
mov esp, ebp
pop ebp
ret
call fcn.1016416b
int3