Function at 0x10012c10
Capabilities:
Identify system language via api

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10036947
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x2d8
mov eax, dword [0x10055674]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2e0], ecx
xor eax, eax
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x2e8], 0
mov dword [ebp - 0x2e4], 0xffffffff
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], 7
mov word [ebp - 0x2a0], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], 7
mov word [ebp - 0x288], ax
lea ecx, [ebp - 0x288]
mov byte [ebp - 4], 1
call fcn.100148b0
cmp dword [ebp - 0x274], 8
lea eax, [ebp - 0x288]
lea ecx, [ebp - 0x2d8]
cmovae eax, dword [ebp - 0x288]
push eax
call fcn.10014ec0
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
mov edx, 0x10047ebc
and ecx, 0x3ff
mov eax, 0x10047eb4
cmp ecx, 0x12
lea ecx, [ebp - 0x2d4]
push 2
cmovne eax, edx
push eax
call fcn.100114e0
cmp dword [ebp - 0x2c0], 8
lea eax, [ebp - 0x2d4]
cmovae eax, dword [ebp - 0x2d4]
push eax
push 0x100477ac
push 0x1004754c
push 0x174
push str.lilib::lisps_run_ui
push 0x14
call fcn.10011b70
add esp, 0x14
lea eax, [ebp - 0x2a0]
lea ecx, [ebp - 0x2d8]
push eax
push str.ESM_UI_ALREADY_EXIST
call fcn.10015050
mov esi, dword [sym.imp.USER32.dll_FindWindowW]
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
nop dword [eax + eax]
push str.Smart_Printing_Manager
push 0
call esi
test eax, eax
je 0x10012dba
push eax
call edi
cmp dword [ebp - 0x28c], 8
lea eax, [ebp - 0x2a0]
push 1
cmovae eax, dword [ebp - 0x2a0]
push str.Smart_Printing_Manager
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
je 0x10012d70
mov edi, dword [ebp - 0x2e0]
mov dword [edi], 2
jmp 0x10013230
mov edi, dword [ebp - 0x2e0]
cmp dword [edi], 2
je 0x10013230
xor eax, eax
mov dword [ebp - 0x270], 0
push eax
push 0x10046cec
lea ecx, [ebp - 0x270]
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x25c], 7
mov word [ebp - 0x270], ax
call fcn.100114e0
xor eax, eax
mov byte [ebp - 4], 3
push eax
mov dword [ebp - 0x238], 0
lea ecx, [ebp - 0x238]
push 0x10046cec
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 7
mov word [ebp - 0x238], ax
call fcn.100114e0
mov byte [ebp - 4], 4
mov ecx, dword [0x10056228]
test ecx, ecx
jne 0x10012e72
push str.invalid__inst_root_dir
push 0x100463e4
push 0x46
push str.lisps_get_inst_root_dir
push 0x28
call fcn.10011a70
add esp, 0x14
mov eax, 0x196
mov ecx, str.fail_to_lisps_get_inst_root_dir
jmp 0x10012eab
cmp dword [0x1005622c], 8
mov eax, 0x10056218
push ecx
cmovae eax, dword [0x10056218]
lea ecx, [ebp - 0x270]
push eax
call fcn.100114e0
lea ecx, [ebp - 0x238]
call fcn.10014b30
test al, al
jne 0x10012ec6
mov eax, 0x19c
mov ecx, str.fail_to_lisps_get_ui_exe_path
push ecx
push 0x100463e4
push eax
push str.lilib::lisps_run_ui
push 0x28
call fcn.10011a70
add esp, 0x14
jmp 0x100130b2
push 0x208
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.1001c680
add esp, 0xc
lea eax, [ebp - 0x238]
cmp dword [ebp - 0x224], 8
cmovae eax, dword [ebp - 0x238]
push eax
push str.__s__authmode
push 0xffffffffffffffff
lea eax, [ebp - 0x220]
push 0x104
push eax
call fcn.10010280
add esp, 0x14
lea eax, [ebp - 0x220]
push eax
push str.cmd_str___s
push 0x10047574
push 0x1a6
push str.lilib::lisps_run_ui
push 0xa
call fcn.10011b70
xorps xmm0, xmm0
add esp, 0x18
movups xmmword [ebp - 0x258], xmm0
mov dword [ebp - method.lirpc::RPCClient.virtual_0], vtable.lirpc::RPCClient.0
movups xmmword [ebp - 0x248], xmm0
mov dword [ebp - method.lirpc::RPCTransfer.virtual_0], vtable.lirpc::RPCTransfer.0
mov dword [ebp - method.lirpc::RPCPipe.virtual_0], vtable.lirpc::RPCPipe.0
mov dword [ebp - 0x24c], 0xffffffff
mov dword [ebp - 0x248], 0
mov byte [ebp - 0x244], 1
mov dword [ebp - 0x240], 0x40000
mov dword [ebp - 0x23c], 0
lea ecx, [ebp - 0x258]
mov byte [ebp - 4], 5
call fcn.10015a40
test al, al
jne 0x10012fc2
push str.fail_to_connect
push 0x100463e4
push 0x1ac
push str.lilib::lisps_run_ui
push 0x28
call fcn.10011a70
add esp, 0x14
jmp 0x10013025
cmp dword [ebp - 0x25c], 8
lea ecx, [ebp - 0x2e4]
push ecx
lea ecx, [ebp - 0x2e8]
push ecx
push ecx
lea eax, [ebp - 0x270]
cmovae eax, dword [ebp - 0x270]
lea ecx, [ebp - 0x258]
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.10016b30
test al, al
jne 0x1001315b
lea eax, [ebp - 0x220]
push eax
push str.fail_to_cmd_str___s
push str.ERROR
push 0x1b2
push str.lilib::lisps_run_ui
push 0x28
call fcn.10011b70
add esp, 0x18
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x23c]
mov dword [ebp - method.lirpc::RPCClient.virtual_0], vtable.lirpc::RPCClient.0
test eax, eax
je 0x10013057
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [ebp - 0x23c], 0
mov eax, dword [ebp - 0x254]
lea ecx, [ebp - 0x254]
call dword [eax + 4]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x250]
mov eax, dword [ebp - 0x250]
mov dword [ebp - method.lirpc::RPCTransfer.virtual_0], vtable.lirpc::RPCTransfer.0
call dword [eax + 4]
cmp byte [ebp - 0x244], 0
mov dword [ebp - method.lirpc::RPCPipe.virtual_0], vtable.lirpc::RPCPipe.0
je 0x100130b2
mov eax, dword [ebp - 0x24c]
cmp eax, 0xffffffff
je 0x100130b2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x24c], 0xffffffff
mov edx, dword [ebp - 0x224]
cmp edx, 8
jb 0x100130f2
mov ecx, dword [ebp - 0x238]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x100130e8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100132de
push edx
push ecx
call fcn.1001aa24
add esp, 8
mov edx, dword [ebp - 0x25c]
xor eax, eax
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 7
mov word [ebp - 0x238], ax
cmp edx, 8
jb 0x1001314f
mov ecx, dword [ebp - 0x270]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10013145
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100132de
push edx
push ecx
call fcn.1001aa24
add esp, 8
mov byte [ebp - 0x2d9], 0
jmp 0x10013237
mov esi, dword [ebp - 0x2e4]
push esi
push dword [ebp - 0x2e8]
push str.dbg_pid___d__exit_code___d
push 0x1004754c
push 0x1b6
push str.lilib::lisps_run_ui
push 0x14
call fcn.10011b70
add esp, 0x1c
mov dword [edi], esi
lea ecx, [ebp - 0x258]
call fcn.10015960
mov edx, dword [ebp - 0x224]
cmp edx, 8
jb 0x100131d3
mov ecx, dword [ebp - 0x238]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x100131c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100132de
push edx
push ecx
call fcn.1001aa24
add esp, 8
mov edx, dword [ebp - 0x25c]
xor eax, eax
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 7
mov word [ebp - 0x238], ax
cmp edx, 8
jb 0x10013230
mov ecx, dword [ebp - 0x270]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10013226
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100132de
push edx
push ecx
call fcn.1001aa24
add esp, 8
mov byte [ebp - 0x2d9], 1
lea ecx, [ebp - 0x2d8]
call fcn.10014fa0
mov edx, dword [ebp - 0x274]
cmp edx, 8
jb 0x1001327e
mov ecx, dword [ebp - 0x288]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10013274
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100132e3
push edx
push ecx
call fcn.1001aa24
add esp, 8
mov edx, dword [ebp - 0x28c]
cmp edx, 8
jb 0x100132ba
mov ecx, dword [ebp - 0x2a0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x100132b0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100132e3
push edx
push ecx
call fcn.1001aa24
add esp, 8
mov al, byte [ebp - 0x2d9]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1001a6c7
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1002637a
call fcn.1002637a
int3