Function at 0x101c37e
Capabilities:
Identify system language via api

Disassembly:
push 0x60
mov eax, 0x102ab29
call fcn.01008cf9
mov esi, ecx
mov ecx, dword [0x1034008]
call fcn.0100d64c
mov eax, dword [0x1034008]
mov eax, dword [eax + 0x248]
xor ebx, ebx
cmp eax, ebx
jne 0x101c3da
mov ecx, esi
xor edi, edi
call dword [sym.imp.DUI70.dll_public:_struct_HWND______thiscall_DirectUI::TaskPage::GetParentHWND_void_]
jmp 0x101c3bd
push eax
mov edi, eax
call dword [sym.imp.USER32.dll_GetParent]
cmp eax, ebx
jne 0x101c3b4
push edi
call dword [sym.imp.USER32.dll_SetActiveWindow]
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [0x1034008]
mov dword [eax + 0x248], edi
mov eax, dword [esi + 0x44]
lea edi, [esi + 0x28]
mov ecx, esi
mov dword [eax + 0xe4], edi
call fcn.0101b3a3
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx]
call dword [eax + 0xd8]
test eax, eax
je 0x101c438
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
mov edi, eax
cmp edi, ebx
jbe 0x101c438
cmp edi, 3
ja 0x101c438
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov ecx, dword [esi + 0x44]
mov ecx, dword [ecx + 0xec]
push edi
push 2
movzx eax, ax
push eax
push 2
push ecx
push 2
push 3
push 0x5cd
call fcn.0102933f
add esp, 0x20
cmp dword [esi + 0x48], ebx
jne 0x101c469
mov ecx, esi
call dword [sym.imp.DUI70.dll_protected:_class_DirectUI::Element____thiscall_DirectUI::TaskPage::GetElement_void_]
mov dword [esi + 0x48], eax
cmp eax, ebx
jne 0x101c469
mov eax, dword [0x103440c]
mov eax, dword [eax + 0xec]
push 0x1006
push eax
mov ecx, esi
call fcn.0101a256
jmp 0x101cc03
cmp dword [esi + 0x40], 0x77
jne 0x101c47a
mov ecx, dword [0x1034008]
call fcn.0100d575
mov ecx, esi
call fcn.0101a3d4
mov ecx, dword [esi + 0x3c]
add ecx, 0x24
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x24], ebx
call fcn.01014878
test eax, eax
jle 0x101cb80
push dword [ebp - 0x24]
mov ecx, dword [esi + 0x3c]
call fcn.01014c64
mov dword [esi + 0x4c], eax
cmp eax, ebx
je 0x101cb69
mov ecx, eax
call fcn.0101aefc
push eax
lea ecx, [ebp - 0x10]
call fcn.0100e15b
push dword [ebp - 0x10]
mov dword [ebp - 4], ebx
call sub.DUI70.dll_StrToID
mov ecx, dword [esi + 0x48]
movzx eax, ax
push eax
call dword [sym.imp.DUI70.dll_public:_class_DirectUI::Element____thiscall_DirectUI::Element::FindDescendent_unsigned_short_int_]
mov edi, eax
mov dword [ebp - 0x14], edi
cmp edi, ebx
je 0x101cc09
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x80]
cmp eax, ebx
je 0x101c4fc
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
jmp 0x101c501
mov eax, 0x1004468
push eax
lea ecx, [ebp - 0x2c]
call fcn.0100ca5c
push 0x1004454
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.0100fba7
test eax, eax
jne 0x101c52f
push esi
push 0x101b76f
mov ecx, edi
call dword [sym.imp.DUI70.dll_public:_void___thiscall_DirectUI::CCBase::SetNotifyHandler_int____stdcall___unsigned_int__unsigned_int__long_int__long_int___void____void__]
jmp 0x101c578
push 0x1004448
lea ecx, [ebp - 0x2c]
call fcn.0100fba7
test eax, eax
jne 0x101c578
cmp dword [esi + 0x2c], ebx
jne 0x101c56d
push 8
call fcn.010086aa
pop ecx
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x101c564
push dword [esi + 0x48]
mov ecx, eax
call fcn.0101a188
jmp 0x101c566
xor eax, eax
mov byte [ebp - 4], 1
mov dword [esi + 0x2c], eax
push dword [esi + 0x2c]
mov ecx, edi
call dword [sym.imp.DUI70.dll_public:_void___thiscall_DirectUI::PText::SetDataEntry_struct_DirectUI::IDataEntry__]
mov ecx, dword [esi + 0x4c]
call fcn.0101af6c
push eax
lea ecx, [ebp - 0x28]
call fcn.0100e15b
push 0x103451c
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.0100a535
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 4
cmp dword [eax - 0xc], ebx
je 0x101c5cb
mov eax, dword [esi + 0x44]
push 0x4f
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [eax + 0x124]
call fcn.01018f06
push dword [ebp - 0x18]
mov ecx, esi
push dword [ebp - 0x10]
call fcn.0101a33d
mov ecx, dword [esi + 0x4c]
call fcn.0101afa4
push eax
lea ecx, [ebp - 0x1c]
call fcn.0100e15b
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax - 0xc]
xor ecx, ecx
cmp eax, ebx
setne cl
push 0x100423c
mov byte [ebp - 4], 5
mov edi, ecx
lea ecx, [ebp - 0x1c]
call fcn.0100fba7
test eax, eax
jne 0x101c635
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax - 0xc]
cmp ecx, ebx
je 0x101c645
mov edx, dword [0x103440c]
mov edx, dword [edx + 0xec]
jl 0x101cc27
movzx eax, word [eax]
push eax
push edx
call fcn.010215aa
cmp eax, ebx
je 0x101c635
push eax
lea ecx, [ebp - 0x1c]
call fcn.0100c743
mov edi, eax
cmp edi, ebx
je 0x101c645
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
call dword [sym.imp.DUI70.dll_public:_long_int___thiscall_DirectUI::Element::SetFontFace_unsigned_short_int_const__]
mov ecx, dword [esi + 0x4c]
call fcn.0101b12c
push eax
lea ecx, [ebp - 0x50]
call fcn.0100e15b
mov edx, dword [ebp - 0x50]
mov eax, dword [edx - 0xc]
xor ecx, ecx
cmp eax, ebx
setne cl
mov byte [ebp - 4], 6
mov eax, ecx
cmp eax, ebx
je 0x101c6b5
mov ecx, 0x1004440
mov eax, edx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x101c69a
cmp dx, bx
je 0x101c696
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x101c69a
add eax, 4
add ecx, 4
cmp dx, bx
jne 0x101c674
xor eax, eax
jmp 0x101c69f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
xor ecx, ecx
test al, al
setne cl
push ecx
mov ecx, dword [ebp - 0x14]
call dword [sym.imp.DUI70.dll_public:_long_int___thiscall_DirectUI::Element::SetDirection_int_]
push ebx
push 0x1004428
lea ecx, [ebp - 0x10]
call fcn.0101a6b4
test eax, eax
setge al
test al, al
je 0x101c77b
push 0
push 0x5f
lea ecx, [ebp - 0x10]
call fcn.0101a678
mov ebx, eax
test ebx, ebx
setge al
test al, al
je 0x101c77b
mov ecx, dword [0x1034008]
call fcn.0100d626
test eax, eax
mov eax, dword [0x1034008]
push 0x48
push dword [eax + 0x40]
je 0x101c711
push 0x45
call dword [sym.imp.KERNEL32.dll_MulDiv]
imul eax, eax, 0x52
jmp 0x101c71c
push 0x34
call dword [sym.imp.KERNEL32.dll_MulDiv]
imul eax, eax, 0x3a
cdq
push 0x64
pop ecx
idiv ecx
lea ecx, [ebp - 0x10]
mov edi, eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax - 0xc]
sub eax, ebx
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.010173d7
push 0x1004420
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 7
call fcn.0100fba7
test eax, eax
jne 0x101c762
mov eax, dword [0x1034008]
push 0x48
push dword [eax + 0x3c]
push 6
call dword [sym.imp.KERNEL32.dll_MulDiv]
add edi, eax
mov ecx, dword [ebp - 0x14]
push edi
call dword [sym.imp.DUI70.dll_public:_long_int___thiscall_DirectUI::Element::SetWidth_int_]
mov ecx, dword [ebp - 0x54]
add ecx, 0xfffffff0
mov byte [ebp - 4], 6
call fcn.0100a344
mov ecx, dword [esi + 0x4c]
call fcn.01023f9b
mov ebx, eax
test ebx, ebx
je 0x101c930
mov ecx, dword [esi + 0x4c]
or dword [ebp - 0x5c], 0xffffffff
or dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x64], 1
call fcn.0101b0f4
lea ecx, [ebp - 0x58]
push ecx
mov ecx, dword [esi + 0x44]
push eax
call fcn.0100d3f3
mov ecx, dword [esi + 0x4c]
call fcn.0101b0bc
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, dword [esi + 0x44]
push eax
call fcn.0100d3f3
push dword [ebp - 0x10]
mov ecx, dword [esi + 0x44]
call fcn.0100ee6b
mov edi, eax
test edi, edi
jne 0x101c8ef
push dword [ebp - 0x10]
mov ecx, dword [esi + 0x44]
call fcn.0100eeb9
mov edi, eax
test edi, edi
je 0x101cc31
push dword [ebp - 0x58]
mov ecx, edi
push dword [ebp - 0x5c]
push ebx
call fcn.0101d9ef
lea eax, [ebp - 0x18]
lea ecx, [edi + 0x18]
push eax
call fcn.010132ac
mov ecx, dword [esi + 0x4c]
call fcn.01023ffa
mov dword [edi + 0x1c], eax
mov ecx, dword [esi + 0x4c]
call fcn.0101b164
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
xor edx, edx
test ecx, ecx
setne dl
mov ecx, edx
test ecx, ecx
je 0x101c86a
mov ecx, 0x1004414
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x101c85a
test dx, dx
je 0x101c856
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x101c85a
add eax, 4
add ecx, 4
test dx, dx
jne 0x101c834
xor eax, eax
jmp 0x101c85f
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x101c875
mov ecx, dword [0x1034008]
call fcn.0100d639
mov dword [edi + 0x20], eax
mov ecx, dword [esi + 0x4c]
add ecx, 0x24
call fcn.01014878
and dword [ebp - 0x20], 0
mov dword [ebp - 0x6c], eax
test eax, eax
jle 0x101c915
push dword [ebp - 0x20]
mov ecx, dword [esi + 0x4c]
call fcn.01014c64
mov ebx, eax
lea eax, [ebp - 0x60]
push eax
mov ecx, ebx
call fcn.0101ae58
lea eax, [ebp - 0x68]
push eax
mov ecx, ebx
mov byte [ebp - 4], 8
call fcn.0101aeaa
mov ebx, dword [ebp - 0x68]
push ebx
push dword [ebp - 0x60]
mov ecx, edi
mov byte [ebp - 4], 9
call fcn.0101e00a
lea ecx, [ebx - 0x10]
call fcn.0100a344
mov ecx, dword [ebp - 0x60]
add ecx, 0xfffffff0
mov byte [ebp - 4], 6
call fcn.0100a344
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x6c]
jl 0x101c892
jmp 0x101c915
lea ebx, [edi + 0x18]
push ebx
lea eax, [ebp - 0x18]
push eax
call fcn.0101a738
test al, al
je 0x101c915
lea eax, [ebp - 0x18]
push eax
mov ecx, ebx
call fcn.010132ac
mov eax, dword [edi]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x34]
mov ecx, dword [ebp - 0x14]
push esi
push edi
call fcn.010139a6
test eax, eax
jne 0x101c930
push 0x1007
push eax
mov ecx, esi
call fcn.0101a256
mov ecx, dword [esi + 0x4c]
call fcn.0101b04c
push eax
lea ecx, [ebp - 0x4c]
call fcn.0100e15b
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
mov byte [ebp - 4], 0xa
mov edi, 0x103451c
cmp dword [eax - 0xc], ebx
je 0x101c9c3
push edi
lea ecx, [ebp - 0x30]
call fcn.0100a535
mov eax, dword [esi + 0x44]
push 0x4f
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [eax + 0x124]
mov byte [ebp - 4], 0xb
call fcn.01018f06
cmp eax, ebx
jl 0x101c9b4
push dword [0x1005108]
lea eax, [ebp - 0x30]
push eax
call fcn.01010607
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx + ecx - 3]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x14]
call dword [sym.imp.DUI70.dll_public:_int___thiscall_DirectUI::Element::GetLayoutPos_void_]
cmp eax, dword [ebp - 0x20]
je 0x101c9b4
push dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
call dword [sym.imp.DUI70.dll_public:_long_int___thiscall_DirectUI::Element::SetLayoutPos_int_]
mov ecx, dword [ebp - 0x30]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.0100a344
mov ecx, dword [esi + 0x4c]
call fcn.0101b084
push eax
lea ecx, [ebp - 0x48]
call fcn.0100e15b
mov eax, dword [ebp - 0x48]
mov byte [ebp - 4], 0xc
cmp dword [eax - 0xc], ebx
je 0x101ca34
push edi
lea ecx, [ebp - 0x34]
call fcn.0100a535
mov eax, dword [esi + 0x44]
push 0x4f
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [eax + 0x124]
mov byte [ebp - 4], 0xd
call fcn.01018f06
cmp eax, ebx
jl 0x101ca25
lea eax, [ebp - 0x34]
push eax
push dword [0x1005108]
call fcn.0101a71a
mov ecx, dword [ebp - 0x14]
movzx eax, al
push eax
call dword [sym.imp.DUI70.dll_public:_long_int___thiscall_DirectUI::Element::SetEnabled_bool_]
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xc
call fcn.0100a344
mov ecx, dword [esi + 0x4c]
call fcn.0101b014
push eax
lea ecx, [ebp - 0x44]
call fcn.0100e15b
mov eax, dword [ebp - 0x44]
mov byte [ebp - 4], 0xe
cmp dword [eax - 0xc], ebx
je 0x101ca95
push edi
lea ecx, [ebp - 0x38]
call fcn.0100a535
mov eax, dword [esi + 0x44]
push 0x4f
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [eax + 0x124]
mov byte [ebp - 4], 0xf
call fcn.01018f06
cmp eax, ebx
jl 0x101ca86
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x14]
call dword [sym.imp.DUI70.dll_public:_long_int___thiscall_DirectUI::Element::SetAccDesc_unsigned_short_int_const__]
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xe
call fcn.0100a344
mov ecx, dword [esi + 0x4c]
call fcn.0101afdc
push eax
lea ecx, [ebp - 0x40]
call fcn.0100e15b
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 0x10
cmp dword [eax - 0xc], ebx
je 0x101caf2
push edi
lea ecx, [ebp - 0x3c]
call fcn.0100a535
mov eax, dword [esi + 0x44]
push 0x4f
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [eax + 0x124]
mov byte [ebp - 4], 0x11
call fcn.01018f06
cmp eax, ebx
jl 0x101cae7
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
call dword [sym.imp.DUI70.dll_public:_long_int___thiscall_DirectUI::Element::SetAccName_unsigned_short_int_const__]
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
mov dword [esi + 0x4c], ebx
call fcn.0100a344
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x4c]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
add ecx, 0xfffffff0
call fcn.0100a344
xor ebx, ebx
mov ecx, dword [esi + 0x3c]
inc dword [ebp - 0x24]
add ecx, 0x24
call fcn.01014878
cmp dword [ebp - 0x24], eax
jl 0x101c49a
mov ecx, esi
call fcn.0101a6f6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x60]
mov ecx, esi
call fcn.0101c196
mov ecx, esi
call fcn.0101b55d
cmp dword [ebp - 0x64], ebx
jne 0x101cbf6
push 0x103451c
lea ecx, [ebp - 0x64]
call fcn.0100a535
mov eax, dword [0x103440c]
mov edi, dword [eax + 0xec]
mov ecx, dword [esi + 0x44]
mov edx, dword [ecx]
lea eax, [esi + 0x28]
push eax
mov dword [ebp - 4], 0x12
call dword [edx + 0xc]
push eax
push edi
lea eax, [ebp - 0x64]
push 0x10043f0
push eax
call fcn.01011bb1
mov edi, dword [ebp - 0x64]
add esp, 0x10
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_RegisterApplicationRestart]
or dword [ebp - 4], 0xffffffff
lea ecx, [edi - 0x10]
call fcn.0100a344
mov ecx, dword [esi + 0x44]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov dword [esi + 0x34], eax
xor eax, eax
call fcn.01008de5
ret
push 0x1006
push ebx
mov ecx, esi
call fcn.0101a256
mov esi, eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0100a344
mov eax, esi
jmp 0x101cc03
push 0x80070057
call fcn.01008514
push 0x1006
push 0
mov ecx, esi
call fcn.0101a256
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffff0
mov esi, eax
call fcn.0100a344
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x28]
add ecx, 0xfffffff0
call fcn.0100a344
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.0100a344
jmp 0x101cc18