Function at 0x1000250d
Capabilities:
Get geographical location
Identify system language via api

Disassembly:
push ebp
sub esp, 0x26c
lea ebp, [esp - 4]
mov eax, dword [0x10053130]
xor eax, ebp
mov dword [ebp + 0x26c], eax
push 0x54
mov eax, 0x10038f04
call fcn.1002205b
mov eax, dword [ebp + 0x278]
mov edi, dword [ebp + 0x27c]
mov esi, dword [ebp + 0x284]
and dword [ebp - 0x18], 0
mov ebx, ecx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x4c], 0x80004005
call fcn.100179d6
push eax
lea ecx, [ebp - 0x28]
call fcn.100012fb
and dword [ebp - 4], 0
call fcn.100179d6
push eax
lea ecx, [ebp - 0x1c]
call fcn.100012fb
mov byte [ebp - 4], 1
call fcn.100179d6
push eax
lea ecx, [ebp - 0x30]
call fcn.100012fb
push edi
push dword [ebp - 0x24]
mov ecx, ebx
mov byte [ebp - 4], 3
call sym.SoftwareUpdateFiles.dll_public:_long_int___thiscall_ASUResourceProxy::GetNonLocResourceDirectory_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t______wchar_t_const__
mov dword [ebp - 0x4c], eax
test eax, eax
jge 0x100025af
mov dword [ebp - 0x60], eax
push 0x100467d0
lea eax, [ebp - 0x60]
push eax
call fcn.10022566
cmp dword [ebp + 0x280], 0
je 0x100025da
push sym.SoftwareUpdateFiles.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const_SUConstants::Resources::Default_Language_Code
lea ecx, [ebp - 0x28]
call fcn.10001e57
test esi, esi
je 0x10002964
mov eax, 0x409
mov word [esi], ax
jmp 0x10002964
cmp word [ebx + 4], 0
jne 0x100025eb
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov word [ebx + 4], ax
test esi, esi
je 0x100025f6
mov ax, word [ebx + 4]
mov word [esi], ax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov esi, eax
movzx eax, word [ebx + 4]
shr esi, 0x10
push 7
and esi, 0xf
pop ecx
shl esi, 0x10
or esi, eax
xor eax, eax
mov word [ebp + 0x24c], ax
lea edi, [ebp + 0x24e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 7
pop ecx
xor eax, eax
mov word [ebp + 0x22c], ax
lea edi, [ebp + 0x22e]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
push 0x10
lea eax, [ebp + 0x24c]
push eax
push 0x59
push esi
call edi
push 0x10
lea eax, [ebp + 0x22c]
push eax
push 0x5a
push esi
call edi
lea eax, [ebp + 0x24c]
push eax
lea ecx, [ebp - 0x20]
call fcn.10001630
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
call fcn.10001e57
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
lea eax, [ebp + 0x22c]
push eax
lea ecx, [ebp - 0x20]
call fcn.10001630
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
call fcn.10001e57
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
push 0x1003d9ac
lea ecx, [ebp - 0x14]
call fcn.100020f0
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 6
call fcn.10001ea4
add esp, 0xc
lea ecx, [ebp - 0x30]
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 7
call fcn.10001ea4
add esp, 0xc
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
call fcn.10001e57
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
push 0x1003d9a4
lea ecx, [ebp - 0x14]
call fcn.10001630
push dword [eax]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 9
call fcn.100017f4
mov ecx, dword [ebp - 0x14]
test eax, eax
sete bl
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
test bl, bl
je 0x10002796
mov ecx, dword [ebp - 0x44]
mov eax, 0x804
cmp word [ecx + 4], ax
lea ecx, [ebp - 0x14]
jne 0x1000277d
push str.zh_CN
call fcn.10001630
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xa
call fcn.10002146
mov ecx, dword [ebp - 0x14]
jmp 0x10002958
push str.zh_TW
call fcn.10001630
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xb
call fcn.10001e57
jmp 0x10002775
push 0x1003d984
lea ecx, [ebp - 0x34]
call fcn.10001630
push dword [eax]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x18], 1
call fcn.100017f4
test eax, eax
je 0x100027e8
push 0x1003d97c
lea ecx, [ebp - 0x14]
call fcn.10001630
push 3
pop esi
push dword [eax]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xd
mov dword [ebp - 0x18], esi
call fcn.100017f4
test eax, eax
je 0x100027eb
xor bl, bl
jmp 0x100027ed
push 3
pop esi
mov bl, 1
test byte [ebp - 0x18], 2
je 0x10002802
mov ecx, dword [ebp - 0x14]
and dword [ebp - 0x18], 0xfffffffd
add ecx, 0xfffffff0
call fcn.10001128
test byte [ebp - 0x18], 1
mov dword [ebp - 4], esi
je 0x1000281a
mov ecx, dword [ebp - 0x34]
and dword [ebp - 0x18], 0xfffffffe
add ecx, 0xfffffff0
call fcn.10001128
lea ecx, [ebp - 0x14]
test bl, bl
je 0x10002858
push 0x1003d974
call fcn.10001630
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xe
call fcn.10001e57
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x28]
call fcn.10001e57
jmp 0x10002964
mov edi, 0x1003d96c
push edi
call fcn.10001630
push dword [eax]
or dword [ebp - 0x18], 4
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call fcn.100017f4
test eax, eax
jne 0x1000288b
mov ecx, dword [ebp - 0x44]
mov eax, 0x816
cmp word [ecx + 4], ax
jne 0x1000288b
mov bl, 1
jmp 0x1000288d
xor bl, bl
test byte [ebp - 0x18], 4
mov dword [ebp - 4], esi
je 0x100028a5
mov ecx, dword [ebp - 0x14]
and dword [ebp - 0x18], 0xfffffffb
add ecx, 0xfffffff0
call fcn.10001128
test bl, bl
je 0x10002964
push edi
lea ecx, [ebp - 0x14]
call fcn.10001630
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x10
call fcn.10001e57
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
push 0x1003d964
lea ecx, [ebp - 0x14]
call fcn.10001630
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x11
call fcn.10001e57
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
push 0x1003d9ac
lea ecx, [ebp - 0x20]
call fcn.100020f0
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 0x12
call fcn.10001ea4
add esp, 0xc
lea ecx, [ebp - 0x30]
push ecx
push eax
lea eax, [ebp - 0x14]
push eax
mov byte [ebp - 4], 0x13
call fcn.10001ea4
add esp, 0xc
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x14
call fcn.10001e57
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov byte [ebp - 4], 3
call fcn.10001128
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x20]
call fcn.10001320
mov esi, 0x1003d960
push esi
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x15
call fcn.100020f0
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 0x16
call fcn.10001ea4
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
push eax
lea eax, [ebp - 0x14]
push eax
mov byte [ebp - 4], 0x17
call fcn.10001ea4
add esp, 0xc
mov edi, sym.SoftwareUpdateFiles.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const_SUConstants::Resources::Language_Directory_Fragment
push edi
push eax
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 0x18
call fcn.10001ea4
add esp, 0xc
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x5c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.10001128
xor ebx, ebx
lea eax, [ebp]
push eax
push dword [ebp - 0x40]
mov dword [ebp], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
call fcn.100189bd
cmp eax, ebx
jne 0x10002a32
push 0x1003d958
lea ecx, [ebp - 0x48]
call fcn.10001630
push dword [eax]
or dword [ebp - 0x18], 8
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1d
call fcn.100017f4
cmp eax, ebx
jne 0x10002a32
mov bl, 1
jmp 0x10002a34
xor bl, bl
test byte [ebp - 0x18], 8
mov dword [ebp - 4], 0x1c
je 0x10002a4c
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.10001128
test bl, bl
je 0x10002c10
mov eax, dword [ebp - 0x44]
movzx eax, word [eax + 4]
mov ecx, 0x300a
cmp eax, ecx
jg 0x10002ab6
je 0x10002afd
mov ecx, 0x1c0a
cmp eax, ecx
jg 0x10002a9a
je 0x10002afd
cmp eax, 0x80a
je 0x10002afd
cmp eax, 0x100a
je 0x10002afd
cmp eax, 0x140a
je 0x10002afd
cmp eax, 0x180a
je 0x10002afd
jmp 0x10002c10
cmp eax, 0x200a
je 0x10002afd
cmp eax, 0x240a
je 0x10002afd
cmp eax, 0x280a
je 0x10002afd
cmp eax, 0x2c0a
jmp 0x10002a93
mov ecx, 0x440a
cmp eax, ecx
jg 0x10002add
je 0x10002afd
cmp eax, 0x340a
je 0x10002afd
cmp eax, 0x380a
je 0x10002afd
cmp eax, 0x3c0a
je 0x10002afd
cmp eax, 0x400a
jmp 0x10002a93
cmp eax, 0x480a
je 0x10002afd
cmp eax, 0x4c0a
je 0x10002afd
cmp eax, 0x500a
je 0x10002afd
cmp eax, 0x540a
jne 0x10002c10
push 0x1003d954
lea ecx, [ebp - 0x48]
call fcn.100020f0
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x1e
call fcn.10001e57
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.10001128
push 0x1003d9ac
lea ecx, [ebp - 0x58]
call fcn.100020f0
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 0x1f
call fcn.10001ea4
add esp, 0xc
lea ecx, [ebp - 0x30]
push ecx
push eax
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 0x20
call fcn.10001ea4
add esp, 0xc
push eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x21
call fcn.10001e57
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x58]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.10001128
push esi
lea ecx, [ebp - 0x2c]
call fcn.100020f0
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x22
call fcn.10001ea4
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
push eax
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x23
call fcn.10001ea4
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x50]
push eax
mov byte [ebp - 4], 0x24
call fcn.10001ea4
add esp, 0xc
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x25
call fcn.10001e57
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.10001128
lea eax, [ebp]
push eax
push dword [ebp - 0x40]
call fcn.100189bd
test eax, eax
jne 0x10002d1a
push esi
lea ecx, [ebp - 0x50]
call fcn.100020f0
push eax
push dword [ebp - 0x24]
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x26
call fcn.10001ea4
add esp, 0xc
lea ecx, [ebp - 0x1c]
push ecx
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x27
call fcn.10001ea4
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x28
call fcn.10001ea4
add esp, 0xc
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x29
call fcn.10001e57
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.10001128
lea eax, [ebp]
push eax
push dword [ebp - 0x40]
call fcn.100189bd
test eax, eax
jne 0x10002ce0
push sym.SoftwareUpdateFiles.dll_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const_SUConstants::Resources::Default_Language_Directory_Fragment
lea eax, [ebp - 0x2c]
push 0x1003d890
push eax
call fcn.10001f5f
add esp, 0xc
mov ecx, dword [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x2a
call fcn.10002146
mov ecx, dword [ebp - 0x2c]
jmp 0x10002d74
push 0x1003d890
lea ecx, [ebp - 0x38]
call fcn.10001630
lea ecx, [ebp - 0x1c]
push ecx
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x2b
call fcn.10001ea4
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x2c
call fcn.10001ea4
add esp, 0xc
mov byte [ebp - 4], 0x2d
jmp 0x10002d52
push 0x1003d890
lea ecx, [ebp - 0x38]
call fcn.10001630
lea ecx, [ebp - 0x20]
push ecx
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x2e
call fcn.10001ea4
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x2f
call fcn.10001ea4
add esp, 0xc
mov byte [ebp - 4], 0x30
mov ecx, dword [ebp - 0x24]
push eax
call fcn.10002146
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1c
call fcn.10001128
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x24]
call fcn.10001320
mov ecx, dword [ebp - 0x44]
lea eax, [ebp - 0x24]
add ecx, 0x10
push eax
mov byte [ebp - 4], 0x31
call fcn.10001e57
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x40]
and dword [ebp - 0x4c], 0
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.10001128
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.10001128
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x26c]
xor ecx, ebp
call fcn.10022019
add ebp, 0x270
leave
ret 0x10