Function at 0x40a090
Capabilities:
Get keyboard layout

Disassembly:
sub esp, 0x214
push ebx
push ebp
mov ebx, ecx
push esi
mov esi, 1
lea eax, [ebx + 0x64]
push esi
push eax
call fcn.0040b500
xor ebp, ebp
mov dword [ebx + 0x44], esi
push ebp
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push esi
mov ecx, ebx
mov dword [0x605764], eax
call fcn.00409110
test eax, eax
jne 0x40a0d3
pop esi
pop ebp
pop ebx
add esp, 0x214
ret 4
call fcn.00489140
call fcn.00485760
mov edx, dword [esp + 0x224]
lea ecx, [esp + 0xc]
push ecx
push 0x4e978c
push edx
mov dword [0x5e4094], esi
mov dword [0x5def50], esi
mov dword [esp + 0x18], ebp
call fcn.00442bc0
mov dword [0x5def54], eax
mov eax, dword [esp + 0x18]
add esp, 0xc
cmp eax, ebp
jne 0x40a11e
mov eax, dword [0x5e408c]
mov dword [0x5def54], eax
push edi
mov ecx, ebx
call fcn.0040b4c0
push esi
call fcn.0041b810
add esp, 4
mov ecx, ebx
call fcn.0040a350
push 0x16
push str.FavoriteCY
push str.ToolBar
call fcn.004bfb60
mov ecx, eax
call fcn.004c0780
mov edx, dword [0x5e2870]
mov dword [0x605520], eax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x1e]
mov word [esp + 0x1c], bp
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1c]
push 0x104
push ecx
push edx
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x1c]
push eax
call fcn.00443a70
add esp, 4
cmp ax, 0x804
jne 0x40a199
call fcn.004bfb60
mov dword [eax + 0x34], esi
call fcn.0043a360
mov edi, eax
mov dword [esp + 0x14], edi
call fcn.00485270
mov dword [esp + 0x18], eax
call fcn.00422f40
mov ecx, eax
call fcn.00423210
call fcn.00422f40
mov ecx, eax
call fcn.0042b420
call fcn.00422f40
mov ecx, eax
call fcn.004cf0c0
call fcn.004cf0c0
cmp word [0x506b10], bp
jne 0x40a28c
push 0x103
push 0x506b10
push esi
mov ecx, ebx
call fcn.0040ad50
lea ecx, [esp + 0x10]
test ecx, ecx
je 0x40a234
mov ecx, 0x104
mov eax, 0x506b10
xor esi, esi
cmp word [eax], bp
je 0x40a216
add eax, 2
dec ecx
jne 0x40a209
jmp 0x40a21a
cmp ecx, ebp
jne 0x40a21f
mov esi, 0x80070057
cmp esi, ebp
jl 0x40a22c
mov edx, 0x104
sub edx, ecx
jmp 0x40a22e
xor edx, edx
cmp esi, ebp
jl 0x40a28c
jmp 0x40a238
mov edx, dword [esp + 0x10]
mov ecx, 0x104
lea eax, [edx*2 + 0x506b10]
sub ecx, edx
je 0x40a280
mov edi, str.dataIECompat.dat
lea esi, [ecx + edx + 0x7ffffefb]
sub edi, eax
cmp esi, ebp
je 0x40a278
mov dx, word [edi + eax]
cmp dx, bp
je 0x40a278
mov word [eax], dx
add eax, 2
dec ecx
dec esi
cmp ecx, ebp
jne 0x40a256
mov edi, dword [esp + 0x14]
sub eax, 2
jmp 0x40a289
cmp ecx, ebp
jne 0x40a285
mov edi, dword [esp + 0x14]
sub eax, 2
jmp 0x40a289
mov edi, dword [esp + 0x14]
mov word [eax], bp
call fcn.0045cb40
mov ecx, eax
call fcn.0045cb90
cmp edi, ebp
je 0x40a2c5
mov edx, dword [esp + 0x228]
mov ecx, ebx
push edx
call fcn.0040a400
test eax, eax
je 0x40a2bd
mov ecx, ebx
call fcn.0040a680
mov ecx, edi
call fcn.0043b220
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
mov eax, dword [ebx + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebp
pop edi
je 0x40a2d9
push eax
call esi
mov dword [ebx + 0x10], ebp
mov eax, dword [ebx + 0x20]
cmp eax, ebp
je 0x40a2f0
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [ebx + 0x20]
push ecx
call esi
mov dword [ebx + 0x20], ebp
call fcn.00416fe0
cmp eax, ebp
je 0x40a301
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
mov ecx, dword [esp + 0x14]
cmp ecx, ebp
je 0x40a30f
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, 0x5e29a0
call fcn.004b7ac0
call fcn.004ae2d0
push ebp
call fcn.0041b810
add esp, 4
mov ecx, ebx
push ebp
call fcn.00409110
mov ebx, dword [ebx + 0x14]
cmp ebx, ebp
je 0x40a339
push ebx
call esi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x214
ret 4