Function at 0x592d90
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ce774
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x623ec0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x12c], edi
mov dword [edi], vtable.TreeNode.0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov byte [edi + 0x14], 0
mov dword [edi + 0x18], 0xffffffff
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
mov dword [ebp - 4], 0
or eax, 0xffffffff
mov dword [edi], vtable.TMScene.0
mov dword [0x9c25a8], 0x21
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x100], 0
mov dword [edi + 0x104], 0
mov word [edi + 0x2011c], ax
mov dword [edi + 0xfc], 0
mov dword [edi + 0x20120], 0
mov dword [edi + 0x20130], 0
mov dword [edi + 0x2012c], 0
mov dword [edi + 0x20118], 0
mov dword [edi + 0x4c], 0
mov dword [edi + 0x44], 0
mov dword [edi + 0x48], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0xa4], 0
mov dword [edi + 0x58], 0
mov dword [edi + 0x5c], 0
mov dword [edi + 0x60], 0
mov dword [edi + 0x64], 0
mov dword [edi + 0x10c], 0
mov dword [edi + 0x50], 0
mov dword [edi + 0x54], 0
mov dword [edi + 0x20124], 0
mov dword [edi + 0x20128], 0
mov dword [edi + 0xa0], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0
mov dword [edi + 0x70], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x78], 0
mov dword [edi + 0x7c], 0
mov dword [edi + 0x80], 0
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
mov dword [edi + 0x8c], 0
mov dword [edi + 0x90], 0
mov dword [edi + 0x94], 0
mov dword [edi + 0x98], 0
mov dword [edi + 0x9c], 0
mov dword [edi + 0x26e98], 0
mov dword [edi + 0x26e9c], 0
push 0x154
mov dword [0x626d5c], 0x428c0000
mov dword [0x9c2584], 0
mov dword [0x626e24], 2
mov dword [edi + 0xec], 0
mov dword [edi + 0xf4], 0
mov dword [edi + 0xf0], 0
mov dword [edi + 0xf8], 0
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x114], esi
mov byte [ebp - 4], 1
push 0x154
push 0
push esi
call fcn.00468b40
add esp, 0x10
mov ecx, esi
push edi
call fcn.004cf660
mov byte [ebp - 4], 0
push 0x24
mov dword [edi + 0x28], eax
call fcn.0046677d
mov ecx, eax
add esp, 4
mov dword [ebp - 0x120], ecx
mov byte [ebp - 4], 2
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], 0
mov dword [ecx], vtable.TreeNode.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [ecx + 0x14], 0
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov byte [ebp - 4], 0
mov dword [edi + 0x3c], ecx
mov dword [ecx + 4], edi
mov eax, dword [edi + 0x10]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x10], ecx
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x593096
mov dword [eax + 8], ecx
push 0x24
call fcn.0046677d
mov ecx, eax
add esp, 4
mov dword [ebp - 0x120], ecx
mov byte [ebp - 4], 3
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], 0
mov dword [ecx], vtable.TreeNode.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [ecx + 0x14], 0
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov byte [ebp - 4], 0
mov dword [edi + 0x2c], ecx
mov dword [ecx + 4], edi
mov eax, dword [edi + 0x10]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x10], ecx
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x593115
mov dword [eax + 8], ecx
push 0x24
call fcn.0046677d
mov ecx, eax
add esp, 4
mov dword [ebp - 0x120], ecx
mov byte [ebp - 4], 4
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], 0
mov dword [ecx], vtable.TreeNode.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [ecx + 0x14], 0
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov byte [ebp - 4], 0
mov dword [edi + 0x30], ecx
mov dword [ecx + 4], edi
mov eax, dword [edi + 0x10]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x10], ecx
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x593194
mov dword [eax + 8], ecx
push 0x24
call fcn.0046677d
mov ecx, eax
add esp, 4
mov dword [ebp - 0x120], ecx
mov byte [ebp - 4], 5
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], 0
mov dword [ecx], vtable.TreeNode.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [ecx + 0x14], 0
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov byte [ebp - 4], 0
mov dword [edi + 0xe8], ecx
mov dword [ecx + 4], edi
mov eax, dword [edi + 0x10]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x10], ecx
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x593216
mov dword [eax + 8], ecx
push 0x24
call fcn.0046677d
mov ecx, eax
add esp, 4
mov dword [ebp - 0x120], ecx
mov byte [ebp - 4], 6
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
movups xmmword [ecx + 0x10], xmm0
mov dword [ecx + 0x20], 0
mov dword [ecx], vtable.TreeNode.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov byte [ecx + 0x14], 0
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], 0
mov byte [ebp - 4], 0
mov dword [edi + 0x34], ecx
mov dword [ecx + 4], edi
mov eax, dword [edi + 0x10]
mov dword [ecx + 0xc], eax
mov dword [edi + 0x10], ecx
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x593295
mov dword [eax + 8], ecx
push 0xe4c
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x120], esi
mov byte [ebp - 4], 7
push 0xe4c
push 0
push esi
call fcn.00468b40
add esp, 0x10
mov ecx, esi
push 1
push 1
push 0xaaff0000
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0x41a00000
mov dword [esp + 8], 0x44070000
mov dword [esp + 4], 0x428c0000
mov dword [esp], 0x42f00000
push 0xffffffffffffffff
push 0x602204
push 0xfffffffffffffffe
call fcn.004cd940
mov byte [ebp - 4], 0
mov dword [edi + 0x10c], eax
mov dword [eax + 0x3c], 0
mov ecx, dword [edi + 0x10c]
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov eax, dword [0x9c25a4]
push 0x1fc
mov eax, dword [eax + 0xa8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b18]
subss xmm0, dword [0x60526c]
mulss xmm0, dword [0x604d2c]
movss dword [ebp - 0x114], xmm0
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x11c], esi
mov byte [ebp - 4], 8
push 0x1fc
push 0
push esi
call fcn.00468b40
movss xmm3, dword [0x605184]
mov ecx, esi
movss xmm2, dword [ebp - 0x114]
mov dword [esp + 8], 0x41c00000
mov dword [esp + 4], 0x43f00000
call fcn.004c6ae0
mov byte [ebp - 4], 0
push 0x218
mov dword [edi + 0x108], eax
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x128], esi
mov byte [ebp - 4], 9
push 0x218
push 0
push esi
call fcn.00468b40
mov ecx, dword [0x9c25a4]
mov eax, dword [ecx + 0xac]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b1c]
subss xmm0, dword [0x6051e8]
mulss xmm0, dword [0x604d2c]
mov eax, dword [ecx + 0xa8]
add esp, 0xc
movss dword [esp], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
push 0
push ecx
mov ecx, esi
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm3, xmm0
divss xmm3, dword [0x626b18]
subss xmm3, dword [0x605228]
mulss xmm3, dword [0x604d2c]
call fcn.004c7140
mov byte [ebp - 4], 0
push 0x218
mov dword [edi + 0x110], eax
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x124], esi
mov byte [ebp - 4], 0xa
push 0x218
push 0
push esi
call fcn.00468b40
mov ecx, dword [0x9c25a4]
add esp, 0xc
mov eax, dword [ecx + 0xac]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x605750]
mov eax, dword [ecx + 0xa8]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b1c]
subss xmm0, dword [0x6051e8]
mulss xmm0, dword [0x604d2c]
movss dword [esp], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
push 4
push ecx
mov ecx, esi
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm3, xmm0
divss xmm3, dword [0x626b18]
subss xmm3, dword [0x605228]
mulss xmm3, dword [0x604d2c]
call fcn.004c7140
mov byte [ebp - 4], 0
mov dword [edi + 0x114], eax
lea eax, [edi + 0x68]
mov dword [ebp - 0x114], eax
xor edi, edi
nop word [eax + eax]
push 0xe4c
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x124], esi
mov byte [ebp - 4], 0xb
push 0xe4c
push 0
push esi
call fcn.00468b40
mov ecx, dword [0x9c25a4]
add esp, 0x10
mov eax, dword [ecx + 0xac]
push 0
push 1
push 0x9955aa55
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push 1
sub esp, 0x10
shr eax, 0x1f
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43330000
addsd xmm0, qword [eax*8 + 0x605750]
mov eax, dword [ecx + 0xa8]
mov ecx, esi
cvtpd2ps xmm1, xmm0
movd xmm0, edi
divss xmm1, dword [0x626b1c]
cvtdq2ps xmm0, xmm0
subss xmm1, dword [0x6051f8]
addss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [esp + 4], xmm1
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b18]
subss xmm0, dword [0x605200]
movss dword [esp], xmm0
push 0xffffffffffffffff
push 0x5fcdc8
push 0xfffffffffffffffe
call fcn.004cd940
mov byte [ebp - 4], 0
add edi, 0x10
mov ecx, dword [ebp - 0x114]
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x114], ecx
cmp edi, 0xa0
jl 0x593520
push 0xe4c
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x124], esi
mov byte [ebp - 4], 0xc
push 0xe4c
push 0
push esi
call fcn.00468b40
mov eax, dword [0x9c25a4]
add esp, 0x10
mov ecx, esi
mov eax, dword [eax + 0xac]
push 0
push 1
push 0xaa55aa55
push 1
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b1c]
subss xmm0, dword [0x605124]
movss dword [esp + 4], xmm0
mov dword [esp], 0
push 0xffffffffffffffff
push 0x5fcdc8
push 0xfffffffffffffffe
call fcn.004cd940
mov byte [ebp - 4], 0
mov edi, dword [ebp - 0x118]
push 0xe4c
mov dword [edi + 0x90], eax
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x128], esi
mov byte [ebp - 4], 0xd
push 0xe4c
push 0
push esi
call fcn.00468b40
mov eax, dword [0x9c25a4]
add esp, 0x10
mov ecx, esi
mov eax, dword [eax + 0xac]
push 0
push 1
push 0xaa55aa55
push 1
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b1c]
subss xmm0, dword [0x605124]
movss dword [esp + 4], xmm0
mov dword [esp], 0
push 0xffffffffffffffff
push 0x5fcdc8
push 0xfffffffffffffffe
call fcn.004cd940
mov byte [ebp - 4], 0
push 0xe4c
mov dword [edi + 0x98], eax
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x120], esi
mov byte [ebp - 4], 0xe
push 0xe4c
push 0
push esi
call fcn.00468b40
mov eax, dword [0x9c25a4]
add esp, 0x10
mov ecx, esi
mov eax, dword [eax + 0xac]
push 0
push 1
push 0xaa55aa55
push 0
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b1c]
subss xmm0, dword [0x605124]
movss dword [esp + 4], xmm0
mov dword [esp], 0
push 0xffffff00
push 0x5fcdc8
push 0xfffffffffffffffe
call fcn.004cd940
mov byte [ebp - 4], 0
push 0xe4c
mov dword [edi + 0x94], eax
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x11c], esi
mov byte [ebp - 4], 0xf
push 0xe4c
push 0
push esi
call fcn.00468b40
mov eax, dword [0x9c25a4]
add esp, 0x10
mov ecx, esi
mov eax, dword [eax + 0xac]
push 0
push 1
push 0xaa55aa55
push 0
sub esp, 0x10
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43480000
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x626b1c]
subss xmm0, dword [0x605124]
movss dword [esp + 4], xmm0
mov dword [esp], 0
push 0xffffff00
push 0x5fcdc8
push 0xfffffffffffffffe
call fcn.004cd940
mov byte [ebp - 4], 0
mov ecx, dword [edi + 0x90]
mov dword [edi + 0x9c], eax
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x98]
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x94]
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x9c]
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x108]
mov eax, dword [ecx]
push 1
push 0
call dword [eax + 0x88]
mov ecx, dword [edi + 0x110]
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x114]
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x110]
mov esi, dword [edi + 0x28]
mov eax, dword [ecx]
test esi, esi
je 0x59390e
mov edx, dword [eax + 0x50]
lea eax, [esi + 0x24]
push eax
call edx
jmp 0x593913
push 0
call dword [eax + 0x50]
mov ecx, dword [edi + 0x114]
mov esi, dword [edi + 0x28]
mov eax, dword [ecx]
test esi, esi
je 0x59392d
mov edx, dword [eax + 0x50]
lea eax, [esi + 0x24]
push eax
call edx
jmp 0x593932
push 0
call dword [eax + 0x50]
mov eax, dword [edi + 0x110]
mov dword [eax + 0x60], 1
mov eax, dword [edi + 0x114]
mov dword [eax + 0x60], 1
mov eax, dword [edi + 0x108]
mov dword [eax + 0x3c], 0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x110]
mov dword [ecx + 0x134], eax
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x114]
mov dword [ecx + 0x144], eax
mov ecx, dword [edi + 0x28]
push dword [edi + 0x108]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [edi + 0x28]
push dword [edi + 0x110]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [edi + 0x28]
push dword [edi + 0x114]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [edi + 0x28]
push dword [edi + 0x10c]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov dword [ebp - 0x114], 0xa
lea esi, [edi + 0x68]
nop dword [eax]
mov ecx, dword [esi]
push 0
mov eax, dword [ecx]
call dword [eax + 0x60]
mov ecx, dword [edi + 0x28]
push dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x44]
sub dword [ebp - 0x114], 1
lea esi, [esi + 4]
jne 0x5939c0
mov ecx, dword [edi + 0x28]
push dword [edi + 0x94]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [edi + 0x28]
push dword [edi + 0x9c]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [edi + 0x28]
push dword [edi + 0x90]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [edi + 0x28]
push dword [edi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov eax, dword [0x9c25a4]
push 0xe4c
mov eax, dword [eax + 0xac]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [0x6050f0]
movss dword [ebp - 0x114], xmm0
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x124], esi
mov byte [ebp - 4], 0x10
push 0xe4c
push 0
push esi
call fcn.00468b40
movss xmm0, dword [ebp - 0x114]
add esp, 0x10
mov ecx, esi
push 0
push 1
push 0xaa000077
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x41e00000
movss dword [esp + 4], xmm0
mov dword [esp], 0
push 0xffffffffffffffdd
push 0x5fdb80
push 0xfffffffffffffffe
call fcn.004cd940
mov ecx, eax
mov byte [ebp - 4], 0
mov dword [edi + 0xa4], ecx
mov eax, dword [ecx]
push 0
call dword [eax + 0x60]
mov ecx, dword [edi + 0x28]
push dword [edi + 0xa4]
mov eax, dword [ecx]
call dword [eax + 0x44]
push 0xe4c
call fcn.0046677d
mov esi, eax
mov dword [ebp - 0x128], esi
mov byte [ebp - 4], 0x11
push 0xe4c
push 0
push esi
call fcn.00468b40
movss xmm0, dword [ebp - 0x114]
add esp, 0x10
push 0
push 1
push 0xaa000077
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0x41800000
mov dword [esp + 8], 0x43340000
movss dword [esp + 4], xmm0
mov dword [esp], 0x41f00000
mov ecx, esi
push 0xffffffffffffffdd
push str.IME_Desc
push 0xfffffffffffffffe
call fcn.004cd940
mov ecx, eax
mov byte [ebp - 4], 0
mov dword [edi + 0xa0], ecx
mov eax, dword [ecx]
push 0
call dword [eax + 0x60]
mov ecx, dword [edi + 0x28]
push dword [edi + 0xa0]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov eax, dword [0x9c25d8]
mov dword [ebp - 0x11c], eax
test eax, eax
je 0x593cb0
push dword [eax + 0x444]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
call dword [sym.imp.IMM32.dll_ImmGetContext]
mov esi, eax
test esi, esi
je 0x593bbf
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x114]
push eax
push esi
call dword [sym.imp.IMM32.dll_ImmGetConversionStatus]
mov eax, dword [ebp - 0x11c]
push esi
push dword [eax + 0x444]
call dword [sym.imp.IMM32.dll_ImmReleaseContext]
mov ax, word [0x5fdb80]
lea edx, [ebp - 0x114]
mov ecx, dword [edi + 0xa4]
test byte [ebp - 0x114], 1
mov word [ebp - 0x114], ax
mov al, byte [0x5fdb82]
push 0
mov byte [ebp - 0x112], al
mov eax, dword [ecx]
push edx
je 0x593caa
call dword [eax + 0x80]
push 0x100
lea eax, [ebp - 0x110]
push 0
push eax
call fcn.00468b40
add esp, 0xc
lea eax, [ebp - 0x110]
push 0x100
push eax
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
call dword [sym.imp.IMM32.dll_ImmGetDescriptionA]
mov ecx, dword [edi + 0xa0]
lea edx, [ebp - 0x110]
push 0
push edx
mov eax, dword [ecx]
call dword [eax + 0x80]
mov edx, dword [edi + 0xa0]
lea ecx, [ebp - 0x110]
mov eax, dword [edx]
mov esi, dword [eax + 0x74]
lea eax, [ecx + 1]
mov dword [ebp - 0x11c], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x593c60
sub ecx, dword [ebp - 0x11c]
sub esp, 8
lea eax, [ecx*8]
mov dword [esp + 4], 0x41800000
movd xmm0, eax
mov ecx, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x605750]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [0x6050e0]
movss dword [esp], xmm0
call esi
jmp 0x593cb0
call dword [eax + 0x80]
push 0x10000
lea esi, [edi + 0x118]
push 0
push esi
call fcn.00468b40
push 0x10000
lea eax, [edi + 0x10118]
push 0
push eax
call fcn.00468b40
add esp, 0x18
mov ecx, esi
call fcn.0049be20
xorps xmm0, xmm0
movups xmmword [edi + 0xa8], xmm0
movups xmmword [edi + 0xb8], xmm0
movups xmmword [edi + 0xc8], xmm0
movups xmmword [edi + 0xd8], xmm0
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046676f
mov esp, ebp
pop ebp
ret