Function at 0x5267dd
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x5c0c70]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
push edi
mov edi, ecx
lea esi, [edi - 0x288]
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
mov ecx, esi
mov dword [ebp - 0x3c], edi
call dword [eax + 0x17c]
test al, al
je 0x52684a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x188]
test al, al
je 0x52684a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x190]
test al, al
jne 0x526838
mov eax, dword [ebp + 8]
add eax, 0xfffffe00
cmp eax, 0xe
jbe 0x52684a
mov eax, dword [ebp + 8]
mov ebx, 0x20a
cmp eax, ebx
jne 0x52685d
test byte [ebp + 0xc], 8
jne 0x5268bc
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0053ea90
leave
ret 0x10
cmp eax, 0x10f
jne 0x5268bc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, eax
call fcn.0050766f
push eax
call sub.IMM32.dll_ImmGetContext
mov edi, eax
test edi, edi
je 0x52684a
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetCaretPos]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
push eax
push edi
mov dword [ebp - 0x30], 2
call sub.IMM32.dll_ImmSetCompositionWindow
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x18]
mov ecx, eax
call fcn.0050766f
push eax
call sub.IMM32.dll_ImmReleaseContext
jmp 0x52684a
mov byte [ebp - 0x31], 1
cmp eax, 0x200
jb 0x5268ce
cmp eax, 0x20e
jbe 0x5268d7
cmp eax, 0x20
jne 0x5269e9
mov ecx, dword [edi + 8]
test dword [ecx + 0x14], 0x100
jne 0x526922
cmp eax, 0x201
jb 0x526922
cmp eax, 0x205
ja 0x526922
mov ecx, dword [ebp + 0x10]
movsx eax, word [ebp + 0x10]
shr ecx, 0x10
movsx ecx, cx
push ecx
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, eax
call fcn.00509190
lea ecx, [edi - 0x290]
neg ecx
sbb ecx, ecx
and ecx, esi
cmp eax, ecx
jne 0x52684a
mov eax, dword [edi + 8]
mov ecx, dword [eax + 0x14]
and ecx, 0x100
neg ecx
sbb ecx, ecx
and ecx, 3
jne 0x5269b2
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x38]
mov dword [ebp - 8], ecx
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x14], ecx
mov eax, dword [eax + 0x34]
mov dword [ebp - 0xc], eax
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cwde
mov dword [ebp - 0x40], eax
cmp dword [ebp + 8], ebx
jne 0x52697e
lea eax, [ebp - 0x44]
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, eax
call fcn.0050766f
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x40]
lea eax, [ebp - 0x14]
push dword [ebp - 0x44]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x52684a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, eax
call fcn.00507f1f
test al, al
jne 0x52684a
push 3
mov byte [ebp - 0x31], al
pop ecx
cmp ecx, 3
jne 0x52684a
cmp dword [ebp + 8], 0x201
je 0x5269da
cmp dword [ebp + 8], 0x203
je 0x5269da
cmp dword [ebp + 8], 0x204
jne 0x526cbe
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1a4]
jmp 0x526cbe
lea ecx, [eax - 0x100]
cmp ecx, 9
ja 0x526a0b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1a0]
test al, al
jne 0x526cbe
jmp 0x52684a
cmp eax, 0x7b
jne 0x526c15
movsx eax, word [ebp + 0x10]
mov ecx, dword [ebp + 0x10]
shr ecx, 0x10
movsx ecx, cx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x58]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 8], ecx
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, eax
call fcn.0050766f
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x54]
mov eax, dword [esi]
push dword [ebp - 0x58]
mov ecx, esi
call dword [eax + 0x18]
mov ecx, eax
call fcn.00509190
lea ecx, [edi - 0x290]
neg ecx
sbb ecx, ecx
and ecx, esi
cmp eax, ecx
jne 0x52684a
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
mov ecx, 0x804
xor ebx, ebx
cmp cx, ax
je 0x526af5
push str.Undo
push 0x65
push ebx
push edi
call esi
push str.Redo
push 0x6b
push ebx
push edi
call esi
push 0x582b94
push ebx
mov ebx, 0x800
push ebx
push edi
call esi
push str.Cut
push 0x66
push 0
push edi
call esi
push str.Copy
push 0x67
push 0
push edi
call esi
push str.Paste
push 0x68
push 0
push edi
call esi
push str.Clear
push 0x69
push 0
push edi
call esi
push 0x582b94
push 0
push ebx
push edi
call esi
push str.Select_All
jmp 0x526b5a
push 0x59e66c
push 0x65
push ebx
push edi
call esi
push str.ZP_
push 0x6b
push ebx
push edi
call esi
push 0x582b94
push ebx
mov ebx, 0x800
push ebx
push edi
call esi
push str.jR_aR_
push 0x66
push 0
push edi
call esi
push str._rY6R_
push 0x67
push 0
push edi
call esi
push 0x59e62c
push 0x68
push 0
push edi
call esi
push 0x59e61c
push 0x69
push 0
push edi
call esi
push 0x582b94
push 0
push ebx
push edi
call esi
push 0x59e60c
push 0x6a
push 0
push edi
call esi
mov ebx, dword [ebp - 0x3c]
add ebx, 0xfffffd70
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x110]
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
xor ecx, ecx
test al, al
sete cl
push ecx
push 0x65
push edi
call esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
xor ecx, ecx
test al, al
sete cl
push ecx
push 0x6b
push edi
call esi
mov ecx, ebx
call fcn.005257ae
mov ebx, dword [ebp - 0x3c]
xor ecx, ecx
test ax, ax
sete cl
xor eax, eax
cmp byte [ebx + 0x11], al
setne al
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x48], eax
or eax, ecx
push eax
push 0x66
push edi
mov dword [ebp - 0x40], eax
call esi
push dword [ebp - 0x50]
push 0x67
push edi
call esi
push dword [ebp - 0x40]
push 0x69
push edi
call esi
push dword [ebp - 0x48]
push 0x68
push edi
call esi
lea ecx, [ebx - 0x288]
mov eax, dword [ecx]
push 0
call dword [eax + 0x18]
mov ecx, eax
call fcn.0050766f
push eax
push 0
push dword [ebp - 8]
push dword [ebp - 0xc]
push 2
push edi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
push edi
call dword [sym.imp.USER32.dll_DestroyMenu]
mov edi, ebx
jmp 0x526cbe
cmp eax, 0x111
jne 0x526cb1
mov eax, dword [ebp - 0x38]
mov byte [eax], 0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1a0]
test al, al
je 0x52684a
mov eax, dword [ebp + 0xc]
sub eax, 0x65
je 0x526ca4
dec eax
je 0x526c97
dec eax
je 0x526c8a
dec eax
je 0x526c7d
dec eax
je 0x526c70
dec eax
je 0x526c5f
dec eax
jne 0x526cbe
lea ecx, [edi - 0x290]
call fcn.00525b2e
jmp 0x526cbe
push 0xffffffffffffffff
push 0
lea ecx, [edi - 0x290]
call fcn.005256ad
jmp 0x526cbe
lea ecx, [edi - 0x290]
call fcn.00525b92
jmp 0x526cbe
lea ecx, [edi - 0x290]
call fcn.00525bcb
jmp 0x526cbe
lea ecx, [edi - 0x290]
call fcn.00525ba5
jmp 0x526cbe
lea ecx, [edi - 0x290]
call fcn.00525bb8
jmp 0x526cbe
lea ecx, [edi - 0x290]
call fcn.00525b60
jmp 0x526cbe
cmp eax, 0x53
jne 0x52684a
mov byte [ebp - 0x31], 0
and dword [ebp - 0x4c], 0
lea edx, [ebp - 0x4c]
push edx
push dword [ebp + 0x10]
lea ecx, [edi - 0x290]
push dword [ebp + 0xc]
mov eax, dword [ecx]
push dword [ebp + 8]
call dword [eax + 0x11c]
test eax, eax
je 0x526d18
mov ecx, dword [ebp + 8]
mov eax, pe_nt_image_headers32
cmp ecx, eax
jb 0x526cf5
cmp ecx, 0x109
jbe 0x526d18
cmp ecx, 0x102
je 0x526d18
cmp ecx, 0x286
je 0x526d18
add ecx, 0xfffffe00
cmp ecx, 0xe
ja 0x526d20
mov ecx, dword [edi + 8]
test dword [ecx + 0x14], eax
je 0x526d20
mov ecx, dword [ebp - 0x38]
mov al, byte [ebp - 0x31]
mov byte [ecx], al
mov eax, dword [ebp - 0x4c]
jmp 0x52684c