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

Disassembly:
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov esi, 1
push ebx
mov dword [esp + 0x18], ebx
mov dword [edi + 0x2c], esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push esi
mov ecx, edi
mov dword [0x6ba73c], eax
call fcn.004058e0
test eax, eax
jne 0x406287
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 4
cmp dword [0x5ccd1c], ebx
je 0x406294
call fcn.00476280
push ebp
push ebx
push section..taihang
call fcn.00461350
mov ebp, dword [esp + 0x38]
mov eax, dword [0x699094]
lea ecx, [esp + 0x1c]
mov dword [0x5ccf44], eax
push ecx
push 0x4e36e0
push ebp
mov dword [esp + 0x28], ebx
call fcn.0042f530
mov dword [0x5ccf48], eax
mov eax, dword [esp + 0x28]
add esp, 0x14
cmp eax, ebx
jne 0x4062de
mov edx, dword [0x69908c]
mov dword [0x5ccf48], edx
mov ecx, edi
call fcn.004061b0
call fcn.0043a6a0
call fcn.004117e0
test eax, eax
je 0x4062fc
push esi
call fcn.00412870
add esp, 4
push 0x6ba520
push 0x4e36d0
push str.Main
call fcn.004072f0
push 0x103
push 0x6ba524
push str.Skin
push str.Path
call fcn.00407230
mov eax, dword [0x6990cc]
mov ecx, dword [0x5d00a4]
push str.TheWorld_Default
push eax
push 0x34
push 0x33
push ecx
push 0x64
push 0x66
call fcn.0047af40
add esp, 0x38
push 0x16
push str.FavoriteCY
push str.ToolBar
call fcn.0048c2a0
mov ecx, eax
call fcn.0048cd90
lea edx, [esp + 0x10]
mov dword [0x6ba508], eax
push edx
push 0x28
mov dword [esp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x4063c0
lea eax, [esp + 0x20]
push eax
push str.SeDebugPrivilege
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
mov edx, dword [esp + 0x10]
push ebx
push ebx
lea ecx, [esp + 0x24]
push ebx
push ecx
push ebx
push edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], 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 ebx
push 0x1f0fff
mov dword [edi + 0x30], eax
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [edi + 0xc], eax
call fcn.00429600
mov esi, eax
call fcn.00459340
mov ecx, eax
call fcn.00459390
call fcn.00419470
mov ecx, eax
call fcn.00419700
mov ecx, 0x5ccf50
call fcn.004715d0
cmp esi, ebx
je 0x40643d
push ebx
push 0x4e35ec
push ebp
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
mov ecx, esi
neg eax
sbb eax, eax
and al, 0xfd
add eax, 3
push eax
call fcn.00429e30
mov ecx, esi
call fcn.00429fe0
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
mov esi, 1
jmp 0x406441
mov esi, dword [esp + 0x18]
call fcn.0040e840
cmp eax, ebx
pop ebp
je 0x406453
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
mov ecx, 0x5d01c0
call fcn.00484440
call fcn.0047af90
call fcn.00461780
push ebx
call fcn.00412870
add esp, 4
mov ecx, edi
push ebx
call fcn.004058e0
mov eax, dword [edi + 8]
cmp eax, ebx
je 0x406489
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 8], ebx
mov edi, dword [edi + 0xc]
cmp edi, ebx
je 0x406497
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x1c
ret 4