Function at 0x1000fa50
Capabilities:
Get keyboard layout
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ecx
push 0x400
push 0xffffffffffffffff
push 0x1009ce08
call fcn.10052980
movaps xmm0, xmmword [0x10091280]
add esp, 0xc
movups xmmword [0x1009cec8], xmm0
mov ecx, 0x10
mov dword [0x1009cee8], 8
movaps xmm0, xmmword [0x10091290]
movups xmmword [0x1009ced8], xmm0
mov dword [0x1009ceec], 9
movaps xmm0, xmmword [0x100912a0]
movups xmmword [0x1009cf0c], xmm0
movaps xmm0, xmmword [0x100912b0]
movups xmmword [0x1009cf1c], xmm0
movaps xmm0, xmmword [0x100912c0]
movups xmmword [0x1009cf2c], xmm0
movaps xmm0, xmmword [0x100912d0]
movups xmmword [0x1009cf3c], xmm0
lea eax, [ecx + 0xa]
mov dword [ecx*4 + 0x1009cf0c], eax
inc ecx
cmp ecx, 0x1a
jl 0x1000fad5
movaps xmm0, xmmword [str.____eeee]
push ebx
push esi
movups xmmword [0x1009cf88], xmm0
push edi
movaps xmm0, xmmword [0x100912f0]
xor edi, edi
movups xmmword [0x1009cf98], xmm0
mov dword [0x1009cfa8], 0x2c
mov dword [0x1009cfac], 0x2d
mov dword [0x1009cfc4], 0x2e
mov dword [0x1009cfb0], 0x2f
mov dword [0x1009cfbc], 0x30
mov dword [0x1009cfb4], 0x31
mov dword [0x1009cfc0], 0x33
mov dword [0x1009d174], 0x34
mov dword [0x1009d17c], 0x35
mov dword [0x1009d0f0], 0x36
mov dword [0x1009d180], 0x37
mov dword [0x1009d108], 0x38
mov dword [0x1009d0f8], 0x39
mov dword [0x1009d100], 0x3a
mov dword [0x1009d104], 0x3b
mov dword [0x1009d178], 0x3c
mov dword [0x1009d0fc], 0x3d
mov dword [0x1009d0f4], 0x3e
mov dword [0x1009ce3c], 0x3f
mov dword [0x1009ce88], 0x40
mov dword [0x1009ce28], 0x41
mov dword [0x1009ce2c], 0x42
mov dword [0x1009ce58], 0x43
mov dword [0x1009d048], 0x44
mov dword [0x1009ce74], 0x45
mov dword [0x1009d04c], 0x46
mov dword [0x1009cebc], 0x47
mov dword [0x1009cec0], 0x48
mov dword [0x1009ce98], 0x49
mov dword [0x1009ce94], 0x4a
mov dword [0x1009ce8c], 0x4b
mov dword [0x1009ce90], 0x4c
mov dword [0x1009ce54], 0x4d
mov dword [0x1009ce48], 0x4e
mov dword [0x1009ce50], 0x50
mov dword [0x1009ce4c], 0x52
mov dword [0x1009cf74], 0x54
mov dword [0x1009cf78], 0x55
mov dword [0x1009cf7c], 0x56
mov dword [0x1009cea0], 0x57
mov dword [0x1009ce9c], 0x58
mov dword [0x1009cea8], 0x59
mov dword [0x1009cea4], 0x5a
lea eax, [edi + 0x5e]
lea ecx, [edi + 0x5d]
movd xmm3, eax
lea edx, [edi + 0x5c]
movd xmm0, ecx
lea esi, [edi + 0x5b]
movd xmm1, edx
movd xmm2, esi
punpckldq xmm2, xmm0
punpckldq xmm1, xmm3
punpckldq xmm2, xmm1
movups xmmword [edi*4 + 0x1009cfc8], xmm2
add edi, 4
cmp edi, 0xc
jl 0x1000fcb4
mov dword [0x1009ce0c], 0x6a
xor ecx, ecx
mov dword [0x1009ce10], 0x6b
mov dword [0x1009ce18], 0x6c
nop dword [eax]
mov eax, dword [ecx*4 + 0x1009ce08]
mov dword [eax*4 + 0x1009c3d8], ecx
inc ecx
cmp ecx, 0x71
jl 0x1000fd10
mov ecx, 0x80
mov esi, 0x1008dc38
mov edi, 0x100a2698
rep movsd dword es:[edi], dword [esi]
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 0
push str.00000409
mov dword [ebp - 4], eax
call dword [sym.imp.USER32.dll_LoadKeyboardLayoutW]
mov ebx, eax
test ebx, ebx
je 0x1000fdbe
mov ecx, dword [ebp - 4]
cmp ebx, ecx
je 0x1000fdbe
mov edi, dword [sym.imp.USER32.dll_MapVirtualKeyExW]
xor esi, esi
mov eax, dword [esi*4 + 0x1008dc38]
cmp eax, 0xffffffff
je 0x1000fdb5
cmp eax, 0x38
je 0x1000fdb5
test eax, eax
js 0x1000fd7c
cmp eax, 0x23
jle 0x1000fd95
cmp eax, 0x40
ja 0x1000fdb5
cmp eax, 0x23
jle 0x1000fdb5
cmp eax, 0x3f
je 0x1000fdb5
cmp eax, 0x42
je 0x1000fdb5
cmp eax, 0x40
je 0x1000fdb5
push ecx
push 0
push ebx
push 1
push esi
call edi
push eax
call edi
mov ecx, dword [esi*4 + 0x1008dc38]
and eax, 0x7f
mov dword [eax*4 + 0x100a2698], ecx
mov ecx, dword [ebp - 4]
inc esi
cmp esi, 0x80
jb 0x1000fd62
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret