Function at 0x407190
Capabilities:
Acquire debug privileges
Get keyboard layout

Disassembly:
sub esp, 0x18
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
mov ebx, 1
push edi
mov dword [esi + 0x34], ebx
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push ebx
mov ecx, esi
mov dword [0x6d575c], eax
call fcn.004065b0
test eax, eax
jne 0x4071c3
pop edi
pop esi
pop ebx
add esp, 0x18
ret 4
cmp dword [0x5e8048], edi
je 0x4071dd
call fcn.00485880
push str.tw.windows7.taskbar
call fcn.00485930
add esp, 4
push ebp
push edi
push section..taihang
call fcn.00469dd0
mov ebp, dword [esp + 0x34]
mov eax, dword [0x6b4094]
lea ecx, [esp + 0x1c]
mov dword [0x5e8278], eax
push ecx
push 0x4f69dc
push ebp
mov dword [esp + 0x28], edi
call fcn.00434250
mov dword [0x5e827c], eax
mov eax, dword [esp + 0x28]
add esp, 0x14
cmp eax, edi
jne 0x407227
mov edx, dword [0x6b408c]
mov dword [0x5e827c], edx
mov ecx, esi
call fcn.004070a0
call fcn.004404d0
call fcn.00413220
test eax, eax
je 0x407245
push ebx
call fcn.004141a0
add esp, 4
push 0x6d5544
push 0x4f69cc
push str.Main
call fcn.004082f0
push 0x103
push 0x6d5548
push str.Skin
push str.Path
call fcn.00408230
mov eax, dword [0x6b40d0]
mov ecx, dword [0x5eb4e4]
push str.TheWorld_Default
push eax
push 0x34
push 0x33
push ecx
push 0x64
push 0x66
call fcn.0048bca0
add esp, 0x38
push 0x16
push str.FavoriteCY
push str.ToolBar
call fcn.0049d270
mov ecx, eax
call fcn.0049dd60
lea edx, [esp + 0x10]
mov dword [0x6d5520], eax
push edx
push 0x28
mov dword [esp + 0x18], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x407309
lea eax, [esp + 0x1c]
push eax
push str.SeDebugPrivilege
push edi
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
mov edx, dword [esp + 0x10]
push edi
push edi
lea ecx, [esp + 0x20]
push edi
push ecx
push edi
push edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push edi
push 0x1f0fff
mov dword [esi + 0x38], eax
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [esi + 0x10], eax
call fcn.0042cbe0
mov edi, eax
call fcn.00469810
mov ebx, eax
call fcn.00461190
mov ecx, eax
call fcn.004611e0
call fcn.0041bc60
mov ecx, eax
call fcn.0041bf10
mov ecx, 0x5e8378
call fcn.00480750
test edi, edi
je 0x407366
push ebp
mov ecx, esi
call fcn.004073e0
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
call fcn.004108e0
test eax, eax
pop ebp
je 0x407378
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
test ebx, ebx
je 0x407384
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
mov ecx, 0x5eb608
call fcn.004953b0
call fcn.0048bcf0
call fcn.0046a230
push 0
call fcn.004141a0
add esp, 4
mov ecx, esi
push 0
call fcn.004065b0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4073c0
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0xc], 0
mov esi, dword [esi + 0x10]
test esi, esi
je 0x4073ce
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x18
ret 4