Function at 0x40dc8c
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x41
push 0
push 0
dec ecx
jne 0x40dc94
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x40fa1e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0x54]
call fcn.00405c08
mov eax, dword [ebx + 0x3c]
call fcn.00405c08
mov eax, dword [ebx + 0xdc]
call fcn.00409aa4
mov eax, dword [ebx + 0xe4]
call fcn.00409aa4
mov eax, dword [ebx + 0xe8]
call fcn.00409aa4
mov eax, dword [ebx + 0xec]
call fcn.00409aa4
mov eax, dword [ebx + 0xe0]
call fcn.00409aa4
mov eax, dword [ebx + 0xf0]
call fcn.00409aa4
mov eax, dword [ebx + 0xf4]
call fcn.00409aa4
mov eax, dword [ebx + 0xf8]
call fcn.00409aa4
mov eax, dword [ebx + 0xfc]
call fcn.00409aa4
mov eax, dword [ebx + 0x100]
call fcn.00409aa4
lea eax, [ebp - 4]
call fcn.00402ff8
lea eax, [ebp - 8]
call fcn.00402ff8
lea eax, [ebp - 0xc]
call fcn.00402ff8
lea eax, [ebp - 0x10]
call fcn.00402ff8
mov eax, ebx
mov edx, 0x40fa34
call fcn.0040d86c
mov edx, eax
mov eax, dword [ebx + 0x70]
call fcn.004094e4
mov eax, ebx
mov edx, 0x40fa4c
call fcn.0040d86c
mov edx, eax
mov eax, dword [ebx + 0x6c]
call fcn.004094e4
mov eax, dword [ebx + 0xd4]
call fcn.004094c4
mov edx, eax
mov eax, dword [ebx + 0x6c]
call fcn.00408690
mov eax, dword [ebx + 0xd4]
call fcn.004094c4
mov edx, eax
mov eax, dword [ebx + 0x70]
call fcn.00408690
mov ax, word [0x40fa58]
call fcn.004068b8
test al, al
jne 0x40ddbd
mov eax, ebx
call fcn.0040dc64
test al, al
je 0x40ddd1
mov eax, dword [ebx + 0x6c]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebx + 0x70]
xor edx, edx
call fcn.00408690
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
test al, al
jne 0x40de00
mov eax, dword [ebx + 0x70]
call fcn.004094c4
test al, al
jne 0x40de00
mov eax, dword [ebx + 0x70]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebx + 0xd4]
xor edx, edx
call fcn.004094e4
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
test al, al
je 0x40de37
mov eax, dword [ebx + 0x70]
call fcn.004094c4
test al, al
je 0x40de37
mov eax, dword [ebx + 0x6c]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
mov edx, eax
xor dl, 1
mov eax, dword [ebx + 0x70]
call fcn.004094e4
mov esi, 1
mov ax, word [0x40fa5c]
call fcn.004068b8
test al, al
jne 0x40e0c5
mov ax, word [0x40fa60]
call fcn.004068b8
test al, al
jne 0x40e0c5
mov ax, word [0x40fa64]
call fcn.004068b8
test al, al
jne 0x40e0c5
mov ax, word [0x40fa68]
call fcn.004068b8
test al, al
jne 0x40e0c5
mov ax, word [0x40fa58]
call fcn.004068b8
test al, al
jne 0x40e0c5
mov eax, ebx
call fcn.0040dc64
test al, al
je 0x40e0f0
jmp 0x40e0c5
lea edx, [ebp - 0x3c]
mov eax, esi
call fcn.004077c0
mov eax, dword [ebp - 0x3c]
push eax
mov edx, 0x40fa74
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 4]
pop edx
call fcn.00404808
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.004078ac
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0xdc]
call fcn.00409a94
mov eax, dword [ebx + 0x100]
xor edx, edx
call fcn.00409a94
lea eax, [ebp - 0x44]
mov ecx, dword [ebp - 4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x44]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 8]
mov edx, 0x40fad0
call fcn.00404808
cmp dword [ebp - 8], 0
je 0x40df7a
lea eax, [ebp - 0x48]
call fcn.00404660
lea eax, [ebp - 0x48]
mov edx, dword [ebp - 8]
call fcn.00403184
mov eax, dword [ebp - 0x48]
call fcn.004079e4
test al, al
je 0x40df7a
lea eax, [ebp - 0x50]
call fcn.00404660
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 8]
call fcn.00403184
mov edx, dword [ebp - 0x50]
lea ecx, [ebp - 0x4c]
mov eax, ebx
call fcn.00414254
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebx + 0xf8]
call fcn.00409a94
jmp 0x40dfb2
lea eax, [ebp - 0x58]
mov ecx, dword [ebp - 4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x58]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 0x54]
mov edx, 0x40fae4
call fcn.00404808
mov edx, dword [ebp - 0x54]
mov eax, dword [ebx + 0xf8]
call fcn.00409a94
lea eax, [ebp - 0x5c]
mov ecx, dword [ebp - 4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x5c]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 8]
mov edx, 0x40faf8
call fcn.00404808
cmp dword [ebp - 8], 0
je 0x40dfff
lea ecx, [ebp - 0x60]
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00414524
mov edx, dword [ebp - 0x60]
mov eax, dword [ebx + 0xfc]
call fcn.00409a94
jmp 0x40e06e
lea eax, [ebp - 0x64]
mov ecx, dword [ebp - 4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x64]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 8]
mov edx, 0x40fae4
call fcn.00404808
cmp dword [ebp - 8], 0
je 0x40e04c
lea ecx, [ebp - 0x68]
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00414524
mov edx, dword [ebp - 0x68]
mov eax, dword [ebx + 0xfc]
call fcn.00409a94
jmp 0x40e06e
lea ecx, [ebp - 0x6c]
mov edi, dword [ebx + 0xf8]
mov edx, dword [edi + 0x1c]
dec edx
mov eax, edi
call fcn.00409b00
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebx + 0xfc]
call fcn.00409a94
mov eax, dword [ebx + 0x70]
call fcn.004094c4
test al, al
je 0x40e099
lea ecx, [ebp - 0x70]
mov edi, dword [ebx + 0xf8]
mov edx, dword [edi + 0x1c]
dec edx
mov eax, edi
call fcn.00409b00
mov edx, dword [ebp - 0x70]
mov eax, dword [ebx + 0x54]
call fcn.00406958
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
test al, al
je 0x40e0c4
lea ecx, [ebp - 0x74]
mov edi, dword [ebx + 0xfc]
mov edx, dword [edi + 0x1c]
dec edx
mov eax, edi
call fcn.00409b00
mov edx, dword [ebp - 0x74]
mov eax, dword [ebx + 0x54]
call fcn.00406958
inc esi
lea edx, [ebp - 0x78]
mov eax, esi
call fcn.004077c0
mov eax, dword [ebp - 0x78]
push eax
mov edx, 0x40fa74
mov eax, 0x80000001
call fcn.004046d8
pop edx
call fcn.00404958
test al, al
jne 0x40deaf
mov ax, word [0x40fb0c]
call fcn.004068b8
test al, al
jne 0x40e121
mov ax, word [0x40fb10]
call fcn.004068b8
test al, al
jne 0x40e121
mov ax, word [0x40fb14]
call fcn.004068b8
test al, al
je 0x40e390
mov eax, dword [ebx + 0x9c]
xor edx, edx
call fcn.00408690
jmp 0x40e355
lea edx, [ebp - 0x80]
mov eax, esi
call fcn.004077c0
mov ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x7c]
mov edx, 0x40fb20
call fcn.004031c8
mov edx, dword [ebp - 0x7c]
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 4]
xor edx, edx
call fcn.00404808
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 4]
call fcn.004078ac
mov edx, dword [ebp - 0x84]
mov eax, dword [ebx + 0xdc]
call fcn.00409a94
mov eax, dword [ebx + 0x100]
xor edx, edx
call fcn.00409a94
lea eax, [ebp - 0x88]
mov ecx, dword [ebp - 4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x88]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 8]
mov edx, 0x40fad0
call fcn.00404808
cmp dword [ebp - 8], 0
je 0x40e22d
lea eax, [ebp - 0x8c]
call fcn.00404660
lea eax, [ebp - 0x8c]
mov edx, dword [ebp - 8]
call fcn.00403184
mov eax, dword [ebp - 0x8c]
call fcn.004079e4
test al, al
je 0x40e22d
lea eax, [ebp - 0x94]
call fcn.00404660
lea eax, [ebp - 0x94]
mov edx, dword [ebp - 8]
call fcn.00403184
mov edx, dword [ebp - 0x94]
lea ecx, [ebp - 0x90]
mov eax, ebx
call fcn.00414254
mov edx, dword [ebp - 0x90]
mov eax, dword [ebx + 0xf8]
call fcn.00409a94
jmp 0x40e271
lea eax, [ebp - 0x9c]
mov ecx, dword [ebp - 4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x9c]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 0x98]
mov edx, 0x40fae4
call fcn.00404808
mov edx, dword [ebp - 0x98]
mov eax, dword [ebx + 0xf8]
call fcn.00409a94
lea eax, [ebp - 0xa0]
mov ecx, dword [ebp - 4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0xa0]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 8]
mov edx, 0x40faf8
call fcn.00404808
cmp dword [ebp - 8], 0
je 0x40e2ca
lea ecx, [ebp - 0xa4]
mov eax, ebx
mov edx, dword [ebp - 8]
call fcn.00414524
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebx + 0xfc]
call fcn.00409a94
jmp 0x40e2f2
lea ecx, [ebp - 0xa8]
mov edi, dword [ebx + 0xf8]
mov edx, dword [edi + 0x1c]
dec edx
mov eax, edi
call fcn.00409b00
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebx + 0xfc]
call fcn.00409a94
mov eax, dword [ebx + 0x70]
call fcn.004094c4
test al, al
je 0x40e323
lea ecx, [ebp - 0xac]
mov edi, dword [ebx + 0xf8]
mov edx, dword [edi + 0x1c]
dec edx
mov eax, edi
call fcn.00409b00
mov edx, dword [ebp - 0xac]
mov eax, dword [ebx + 0x54]
call fcn.00406958
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
test al, al
je 0x40e354
lea ecx, [ebp - 0xb0]
mov edi, dword [ebx + 0xfc]
mov edx, dword [edi + 0x1c]
dec edx
mov eax, edi
call fcn.00409b00
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebx + 0x54]
call fcn.00406958
inc esi
lea edx, [ebp - 0xb8]
mov eax, esi
call fcn.004077c0
mov ecx, dword [ebp - 0xb8]
lea eax, [ebp - 0xb4]
mov edx, 0x40fb20
call fcn.004031c8
mov edx, dword [ebp - 0xb4]
mov eax, 0x80000001
call fcn.00404938
test al, al
jne 0x40e133
xor esi, esi
jmp 0x40e3ca
lea eax, [ebp - 0xbc]
push eax
mov eax, dword [ebx + 0x54]
xor ecx, ecx
mov edx, esi
call fcn.00405a94
cmp dword [ebp - 0xbc], 0
jne 0x40e3c9
mov eax, dword [ebx + 0xdc]
mov edx, esi
call fcn.00409ad4
mov eax, dword [ebx + 0x54]
mov edx, esi
call fcn.00405b6c
jmp 0x40e3ca
inc esi
mov eax, dword [ebx + 0xdc]
cmp esi, dword [eax + 0x1c]
jl 0x40e394
mov eax, dword [ebx + 0xdc]
mov eax, dword [eax + 0x1c]
mov dword [ebx + 0x108], eax
xor esi, esi
lea ecx, [ebp - 0xc4]
lea edi, [esi + 0x100]
mov eax, edi
mov edx, 3
call fcn.00407754
mov ecx, dword [ebp - 0xc4]
lea eax, [ebp - 0xc0]
mov edx, 0x40fb44
call fcn.004031c8
mov edx, dword [ebp - 0xc0]
mov eax, 0x80000001
call fcn.00404938
test al, al
je 0x40e632
push 8
lea ecx, [ebp - 0xcc]
mov eax, edi
mov edx, 3
call fcn.00407754
mov ecx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc8]
mov edx, 0x40fb44
call fcn.004031c8
mov edx, dword [ebp - 0xc8]
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x18]
mov edx, 0x40fb78
call fcn.00404990
lea ecx, [ebp - 8]
mov edx, 8
mov eax, dword [ebp - 0x18]
call fcn.00407754
lea eax, [ebp - 0xd0]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004033d4
mov eax, dword [ebp - 0xd0]
push eax
lea eax, [ebp - 0xd4]
push eax
mov ecx, 8
mov edx, 5
mov eax, dword [ebp - 8]
call fcn.004033d4
mov edx, dword [ebp - 0xd4]
pop eax
call fcn.004032c8
jne 0x40e4f6
lea eax, [ebp - 0xd8]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004033d4
mov ecx, dword [ebp - 0xd8]
lea eax, [ebp - 8]
mov edx, 0x40fb8c
call fcn.004031c8
mov byte [ebp - 0x31], 0
mov eax, dword [ebx + 0xdc]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40e53e
inc edi
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0xdc]
mov eax, dword [ebx + 0xdc]
mov edx, dword [ebp - 0x14]
call fcn.00409b00
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 8]
call fcn.004032c8
jne 0x40e538
mov byte [ebp - 0x31], 1
inc dword [ebp - 0x14]
dec edi
jne 0x40e510
cmp byte [ebp - 0x31], 0
je 0x40e632
mov eax, dword [ebx + 0xe8]
mov edx, dword [ebp - 8]
call fcn.00409a94
push 8
lea ecx, [ebp - 0xe4]
lea edi, [esi + 0x100]
mov eax, edi
mov edx, 3
call fcn.00407754
mov ecx, dword [ebp - 0xe4]
lea eax, [ebp - 0xe0]
mov edx, 0x40fb44
call fcn.004031c8
mov edx, dword [ebp - 0xe0]
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x18]
mov edx, 0x40fb9c
call fcn.00404990
lea ecx, [ebp - 0xe8]
mov edx, 8
mov eax, dword [ebp - 0x18]
call fcn.00407754
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebx + 0xe4]
call fcn.00409a94
push 8
lea ecx, [ebp - 0xf0]
mov eax, edi
mov edx, 3
call fcn.00407754
mov ecx, dword [ebp - 0xf0]
lea eax, [ebp - 0xec]
mov edx, 0x40fb44
call fcn.004031c8
mov edx, dword [ebp - 0xec]
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x18]
mov edx, 0x40fbb4
call fcn.00404990
lea ecx, [ebp - 0xf4]
mov edx, 8
mov eax, dword [ebp - 0x18]
call fcn.00407754
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebx + 0xec]
call fcn.00409a94
inc esi
cmp esi, 0x64
jne 0x40e3e6
mov eax, dword [ebx + 0xe4]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40e719
inc edi
xor esi, esi
mov eax, dword [ebx + 0xdc]
mov eax, dword [eax + 0x1c]
dec eax
test eax, eax
jl 0x40e711
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0xf8]
mov eax, dword [ebx + 0xdc]
mov edx, dword [ebp - 0x14]
call fcn.00409b00
mov eax, dword [ebp - 0xf8]
push eax
lea ecx, [ebp - 0xfc]
mov eax, dword [ebx + 0xe8]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0xfc]
pop eax
call fcn.004032c8
jne 0x40e705
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x104]
mov eax, dword [ebx + 0xec]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x104]
push eax
lea ecx, [ebp - 0x108]
mov eax, dword [ebx + 0xe4]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x108]
mov eax, ebx
pop ecx
call fcn.00412240
mov eax, dword [ebp - 0x100]
push eax
mov eax, dword [ebx + 0x54]
mov ecx, 1
mov edx, dword [ebp - 0x14]
call fcn.00405b04
jmp 0x40e711
inc dword [ebp - 0x14]
dec dword [ebp - 0x38]
jne 0x40e66e
inc esi
dec edi
jne 0x40e651
mov esi, dword [ebx + 0x104]
cmp esi, 0x804
jne 0x40e734
lea eax, [ebp - 4]
mov edx, 0x40fbc8
call fcn.00403090
cmp esi, 0x404
jne 0x40e749
lea eax, [ebp - 4]
mov edx, 0x40fbd4
call fcn.00403090
cmp esi, 0x412
jne 0x40e75e
lea eax, [ebp - 4]
mov edx, 0x40fbe0
call fcn.00403090
mov esi, 1
lea edi, [ebx + 0x468]
push 0x40fbec
push dword [ebp - 4]
lea edx, [ebp - 0x110]
mov eax, esi
dec eax
call fcn.004077c0
push dword [ebp - 0x110]
lea eax, [ebp - 0x10c]
mov edx, 3
call fcn.0040323c
mov edx, dword [ebp - 0x10c]
mov eax, 0x80000001
call fcn.00404938
test al, al
je 0x40e886
push 8
push 0x40fbec
push dword [ebp - 4]
lea edx, [ebp - 0x118]
mov eax, esi
dec eax
call fcn.004077c0
push dword [ebp - 0x118]
lea eax, [ebp - 0x114]
mov edx, 3
call fcn.0040323c
mov edx, dword [ebp - 0x114]
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x18]
mov edx, 0x40fb9c
call fcn.00404990
lea ecx, [ebp - 0x11c]
mov edx, 8
mov eax, dword [ebp - 0x18]
call fcn.00407754
mov edx, dword [ebp - 0x11c]
mov eax, edi
call fcn.0040304c
push 8
push 0x40fbec
push dword [ebp - 4]
lea edx, [ebp - 0x124]
mov eax, esi
dec eax
call fcn.004077c0
push dword [ebp - 0x124]
lea eax, [ebp - 0x120]
mov edx, 3
call fcn.0040323c
mov edx, dword [ebp - 0x120]
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x18]
mov edx, 0x40fbb4
call fcn.00404990
lea ecx, [ebp - 0x128]
mov edx, 8
mov eax, dword [ebp - 0x18]
call fcn.00407754
mov edx, dword [ebp - 0x128]
lea eax, [edi + 4]
call fcn.0040304c
jmp 0x40e895
mov eax, edi
call fcn.00402ff8
lea eax, [edi + 4]
call fcn.00402ff8
inc esi
add edi, 8
cmp esi, 4
jne 0x40e769
cmp dword [ebx + 0x104], 0x411
jne 0x40e983
mov eax, dword [ebx + 0x8c]
mov edx, 1
call fcn.0040971c
mov eax, dword [ebx + 0x8c]
mov edx, 2
call fcn.0040971c
lea eax, [ebx + 0x468]
call fcn.00402ff8
lea eax, [ebx + 0x46c]
call fcn.00402ff8
mov edx, 0x40fc20
mov eax, 0x80000001
call fcn.00404938
test al, al
je 0x40e983
push 8
mov edx, 0x40fc20
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x18]
mov edx, 0x40fb9c
call fcn.00404990
lea ecx, [ebp - 0x12c]
mov edx, 8
mov eax, dword [ebp - 0x18]
call fcn.00407754
mov edx, dword [ebp - 0x12c]
lea eax, [ebx + 0x468]
call fcn.0040304c
push 8
mov edx, 0x40fc20
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x18]
mov edx, 0x40fbb4
call fcn.00404990
lea ecx, [ebp - 0x130]
mov edx, 8
mov eax, dword [ebp - 0x18]
call fcn.00407754
mov edx, dword [ebp - 0x130]
lea eax, [ebx + 0x46c]
call fcn.0040304c
lea eax, [ebp - 0x134]
push eax
mov ecx, dword [ebx + 0x46c]
mov edx, dword [ebx + 0x468]
mov eax, ebx
call fcn.00412240
mov edx, dword [ebp - 0x134]
mov eax, dword [ebx + 0x90]
call fcn.00408d34
mov eax, dword [ebx + 0x54]
call fcn.00406e18
test eax, eax
jne 0x40e9c6
mov eax, dword [ebx + 0x40]
xor edx, edx
call fcn.00408690
jmp 0x40e9d0
mov eax, dword [ebx + 0x40]
mov dl, 1
call fcn.00408690
mov eax, dword [ebx + 0x54]
call fcn.00406e18
mov esi, eax
mov eax, dword [ebx + 0x54]
call fcn.00409678
dec eax
cmp esi, eax
jne 0x40e9f3
mov eax, dword [ebx + 0x44]
xor edx, edx
call fcn.00408690
jmp 0x40e9fd
mov eax, dword [ebx + 0x44]
mov dl, 1
call fcn.00408690
call fcn.004054a4
mov dword [ebp - 0x1c], eax
call fcn.004054a4
mov dword [ebp - 0x20], eax
call fcn.004054a4
mov dword [ebp - 0x24], eax
call fcn.004054a4
mov dword [ebp - 0x28], eax
call fcn.004054a4
mov dword [ebp - 0x2c], eax
call fcn.004054a4
mov dword [ebp - 0x30], eax
mov edx, 0x40fc58
mov eax, 0x80000002
call fcn.00404938
test al, al
jne 0x40eb42
mov ax, word [0x40fa5c]
call fcn.004068b8
test al, al
jne 0x40ea9e
mov ax, word [0x40fa60]
call fcn.004068b8
test al, al
jne 0x40ea9e
mov ax, word [0x40fa64]
call fcn.004068b8
test al, al
jne 0x40ea9e
mov ax, word [0x40fa68]
call fcn.004068b8
test al, al
jne 0x40ea9e
mov ax, word [0x40fa58]
call fcn.004068b8
test al, al
jne 0x40ea9e
mov eax, ebx
call fcn.0040dc64
test al, al
je 0x40eb42
mov edx, 0x40fc58
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fc9c
mov edx, 0x40fcb0
call fcn.004048a4
cmp dword [ebx + 0x104], 0x804
jne 0x40eae6
mov edx, 0x40fc58
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fcc4
mov edx, 0x40fae4
call fcn.004048a4
cmp dword [ebx + 0x104], 0x404
jne 0x40eb10
mov edx, 0x40fc58
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fcd8
mov edx, 0x40fae4
call fcn.004048a4
mov eax, dword [ebx + 0x104]
cmp eax, 0x404
je 0x40eb42
cmp eax, 0x804
je 0x40eb42
mov edx, 0x40fc58
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fcec
mov edx, 0x40fae4
call fcn.004048a4
cmp dword [ebx + 0x104], 0x404
jne 0x40ec67
mov edx, 0x40fcf8
mov eax, 0x80000002
call fcn.00404938
test al, al
jne 0x40ec67
mov ax, word [0x40fa5c]
call fcn.004068b8
test al, al
jne 0x40ebc3
mov ax, word [0x40fa60]
call fcn.004068b8
test al, al
jne 0x40ebc3
mov ax, word [0x40fa64]
call fcn.004068b8
test al, al
jne 0x40ebc3
mov ax, word [0x40fa68]
call fcn.004068b8
test al, al
jne 0x40ebc3
mov ax, word [0x40fa58]
call fcn.004068b8
test al, al
jne 0x40ebc3
mov eax, ebx
call fcn.0040dc64
test al, al
je 0x40ec67
mov edx, 0x40fcf8
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fc9c
mov edx, 0x40fcb0
call fcn.004048a4
cmp dword [ebx + 0x104], 0x804
jne 0x40ec0b
mov edx, 0x40fcf8
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fd3c
mov edx, 0x40fae4
call fcn.004048a4
cmp dword [ebx + 0x104], 0x404
jne 0x40ec35
mov edx, 0x40fcf8
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fd5c
mov edx, 0x40fae4
call fcn.004048a4
mov eax, dword [ebx + 0x104]
cmp eax, 0x404
je 0x40ec67
cmp eax, 0x804
je 0x40ec67
mov edx, 0x40fcf8
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fd7c
mov edx, 0x40fae4
call fcn.004048a4
cmp dword [ebx + 0x104], 0x804
jne 0x40ed20
mov edx, 0x40fda8
mov eax, 0x80000002
call fcn.00404938
test al, al
jne 0x40ed20
mov ax, word [0x40fa5c]
call fcn.004068b8
test al, al
jne 0x40ece4
mov ax, word [0x40fa60]
call fcn.004068b8
test al, al
jne 0x40ece4
mov ax, word [0x40fa64]
call fcn.004068b8
test al, al
jne 0x40ece4
mov ax, word [0x40fa68]
call fcn.004068b8
test al, al
jne 0x40ece4
mov ax, word [0x40fa58]
call fcn.004068b8
test al, al
jne 0x40ece4
mov eax, ebx
call fcn.0040dc64
test al, al
je 0x40ed20
mov edx, 0x40fda8
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fc9c
mov edx, 0x40fcb0
call fcn.004048a4
mov edx, 0x40fcf8
mov eax, 0x80000002
call fcn.00404738
mov ecx, 0x40fdec
mov edx, 0x40fae4
call fcn.004048a4
mov edx, 0x40fe0c
mov eax, 0x80000002
call fcn.004046d8
mov edx, dword [ebp - 0x1c]
call fcn.00404a08
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40edfb
inc edi
xor esi, esi
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x13c]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x13c]
mov ecx, 4
mov edx, 5
call fcn.004033d4
mov eax, dword [ebp - 0x138]
mov edx, 0x40fe48
call fcn.004032c8
jne 0x40edf3
cmp dword [ebx + 0x104], 0x404
jne 0x40edc4
lea ecx, [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x144]
lea edx, [ebp - 0x140]
call fcn.004078ac
mov edx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x24]
call fcn.00409a94
jmp 0x40edf3
lea ecx, [ebp - 0x14c]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x14c]
lea edx, [ebp - 0x148]
call fcn.004078ac
mov edx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x20]
call fcn.00409a94
inc esi
dec edi
jne 0x40ed49
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40eebf
inc edi
xor esi, esi
lea eax, [ebp - 0x150]
push eax
lea ecx, [ebp - 0x154]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x154]
mov ecx, 4
mov edx, 5
call fcn.004033d4
mov eax, dword [ebp - 0x150]
mov edx, 0x40fe58
call fcn.004032c8
jne 0x40eeb7
cmp dword [ebx + 0x104], 0x404
jne 0x40ee88
lea ecx, [ebp - 0x15c]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x15c]
lea edx, [ebp - 0x158]
call fcn.004078ac
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x20]
call fcn.00409a94
jmp 0x40eeb7
lea ecx, [ebp - 0x164]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x164]
lea edx, [ebp - 0x160]
call fcn.004078ac
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x24]
call fcn.00409a94
inc esi
dec edi
jne 0x40ee0d
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40ef22
inc edi
xor esi, esi
lea ecx, [ebp - 0x168]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x168]
mov edx, 0x40fe68
call fcn.004032c8
jne 0x40ef1e
lea ecx, [ebp - 0x170]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x170]
lea edx, [ebp - 0x16c]
call fcn.004078ac
mov edx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x28]
call fcn.00409a94
inc esi
dec edi
jne 0x40eecd
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40efa1
inc edi
xor esi, esi
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0x178]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x178]
mov ecx, 4
mov edx, 5
call fcn.004033d4
mov eax, dword [ebp - 0x174]
mov edx, 0x40fe7c
call fcn.004032c8
jne 0x40ef9d
lea ecx, [ebp - 0x180]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x180]
lea edx, [ebp - 0x17c]
call fcn.004078ac
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x2c]
call fcn.00409a94
inc esi
dec edi
jne 0x40ef30
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f020
inc edi
xor esi, esi
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x188]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x188]
mov ecx, 4
mov edx, 5
call fcn.004033d4
mov eax, dword [ebp - 0x184]
mov edx, 0x40fe8c
call fcn.004032c8
jne 0x40f01c
lea ecx, [ebp - 0x190]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x190]
lea edx, [ebp - 0x18c]
call fcn.004078ac
mov edx, dword [ebp - 0x18c]
mov eax, dword [ebp - 0x30]
call fcn.00409a94
inc esi
dec edi
jne 0x40efaf
mov eax, dword [ebp - 0x28]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f053
inc edi
xor esi, esi
lea ecx, [ebp - 0x194]
mov eax, dword [ebp - 0x28]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x194]
mov eax, dword [ebx + 0xe0]
call fcn.00409a94
inc esi
dec edi
jne 0x40f02e
mov eax, dword [ebp - 0x20]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f086
inc edi
xor esi, esi
lea ecx, [ebp - 0x198]
mov eax, dword [ebp - 0x20]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x198]
mov eax, dword [ebx + 0xe0]
call fcn.00409a94
inc esi
dec edi
jne 0x40f061
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f0b9
inc edi
xor esi, esi
lea ecx, [ebp - 0x19c]
mov eax, dword [ebp - 0x24]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebx + 0xe0]
call fcn.00409a94
inc esi
dec edi
jne 0x40f094
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f0ec
inc edi
xor esi, esi
lea ecx, [ebp - 0x1a0]
mov eax, dword [ebp - 0x2c]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x1a0]
mov eax, dword [ebx + 0xe0]
call fcn.00409a94
inc esi
dec edi
jne 0x40f0c7
mov eax, dword [ebp - 0x30]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f11f
inc edi
xor esi, esi
lea ecx, [ebp - 0x1a4]
mov eax, dword [ebp - 0x30]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebx + 0xe0]
call fcn.00409a94
inc esi
dec edi
jne 0x40f0fa
mov ax, word [0x40fa5c]
call fcn.004068b8
test al, al
jne 0x40f179
mov ax, word [0x40fa60]
call fcn.004068b8
test al, al
jne 0x40f179
mov ax, word [0x40fa64]
call fcn.004068b8
test al, al
jne 0x40f179
mov ax, word [0x40fa68]
call fcn.004068b8
test al, al
jne 0x40f179
mov ax, word [0x40fa58]
call fcn.004068b8
test al, al
jne 0x40f179
mov eax, ebx
call fcn.0040dc64
test al, al
je 0x40f271
mov eax, dword [ebp - 0x20]
call fcn.00409aa4
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f23e
inc edi
xor esi, esi
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x1a8]
mov ecx, 4
mov edx, 5
call fcn.004033d4
mov eax, dword [ebp - 4]
mov edx, 0x40fe9c
call fcn.004032c8
je 0x40f236
mov eax, dword [ebp - 4]
mov edx, 0x40fe58
call fcn.004032c8
je 0x40f236
mov eax, dword [ebp - 4]
mov edx, 0x40fe48
call fcn.004032c8
je 0x40f236
mov eax, dword [ebp - 4]
mov edx, 0x40fe7c
call fcn.004032c8
je 0x40f236
mov eax, dword [ebp - 4]
mov edx, 0x40fe8c
call fcn.004032c8
je 0x40f236
lea ecx, [ebp - 0x1b0]
mov eax, dword [ebp - 0x1c]
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x1b0]
lea edx, [ebp - 0x1ac]
call fcn.004078ac
mov edx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x20]
call fcn.00409a94
inc esi
dec edi
jne 0x40f193
mov eax, dword [ebp - 0x20]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f271
inc edi
xor esi, esi
lea ecx, [ebp - 0x1b4]
mov eax, dword [ebp - 0x20]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x1b4]
mov eax, dword [ebx + 0xe0]
call fcn.00409a94
inc esi
dec edi
jne 0x40f24c
mov eax, dword [ebp - 0x1c]
call fcn.004070b4
mov eax, dword [ebp - 0x20]
call fcn.004070b4
mov eax, dword [ebp - 0x24]
call fcn.004070b4
mov eax, dword [ebp - 0x28]
call fcn.004070b4
mov eax, dword [ebp - 0x2c]
call fcn.004070b4
mov eax, dword [ebp - 0x30]
call fcn.004070b4
mov eax, dword [ebx + 0xdc]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f321
inc edi
xor esi, esi
mov eax, dword [ebx + 0xe0]
mov eax, dword [eax + 0x1c]
dec eax
test eax, eax
jl 0x40f31d
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x1b8]
mov eax, dword [ebx + 0xe0]
mov edx, dword [ebp - 0x14]
call fcn.00409b00
mov eax, dword [ebp - 0x1b8]
push eax
lea ecx, [ebp - 0x1bc]
mov eax, dword [ebx + 0xdc]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x1bc]
pop eax
call fcn.004032c8
jne 0x40f315
mov eax, dword [ebx + 0xe0]
mov edx, dword [ebp - 0x14]
call fcn.00409ad4
inc dword [ebp - 0x14]
dec dword [ebp - 0x38]
jne 0x40f2cb
inc esi
dec edi
jne 0x40f2b2
xor esi, esi
jmp 0x40f3f0
lea eax, [ebp - 0x1c0]
push eax
lea ecx, [ebp - 0x1c4]
mov eax, edi
mov edx, esi
call fcn.00409b00
mov eax, dword [ebp - 0x1c4]
mov ecx, 1
mov edx, 1
call fcn.004033d4
mov eax, dword [ebp - 0x1c0]
mov edx, 0x40feac
call fcn.004032c8
je 0x40f3ef
lea ecx, [ebp - 0x1cc]
mov eax, dword [ebx + 0xe0]
mov edx, esi
call fcn.00409b00
mov ecx, dword [ebp - 0x1cc]
lea eax, [ebp - 0x1c8]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x1c8]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 4]
mov edx, 0x40feb8
call fcn.00404808
cmp dword [ebp - 4], 0
je 0x40f3dd
lea eax, [ebp - 0x1d0]
call fcn.00404660
lea eax, [ebp - 0x1d0]
mov edx, dword [ebp - 4]
call fcn.00403184
mov eax, dword [ebp - 0x1d0]
call fcn.004079e4
test al, al
jne 0x40f3ec
mov eax, dword [ebx + 0xe0]
mov edx, esi
call fcn.00409ad4
jmp 0x40f3f0
inc esi
jmp 0x40f3f0
inc esi
mov edi, dword [ebx + 0xe0]
cmp esi, dword [edi + 0x1c]
jl 0x40f328
mov eax, dword [ebx + 0xe0]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f5c4
inc edi
xor esi, esi
lea ecx, [ebp - 0x1d8]
mov eax, dword [ebx + 0xe0]
mov edx, esi
call fcn.00409b00
mov ecx, dword [ebp - 0x1d8]
lea eax, [ebp - 0x1d4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x1d4]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 4]
mov edx, 0x40fad0
call fcn.00404808
cmp dword [ebp - 4], 0
je 0x40f4c7
lea eax, [ebp - 0x1dc]
call fcn.00404660
lea eax, [ebp - 0x1dc]
mov edx, dword [ebp - 4]
call fcn.00403184
mov eax, dword [ebp - 0x1dc]
call fcn.004079e4
test al, al
je 0x40f4c7
lea eax, [ebp - 0x1e4]
call fcn.00404660
lea eax, [ebp - 0x1e4]
mov edx, dword [ebp - 4]
call fcn.00403184
mov edx, dword [ebp - 0x1e4]
lea ecx, [ebp - 0x1e0]
mov eax, ebx
call fcn.00414254
mov edx, dword [ebp - 0x1e0]
mov eax, dword [ebx + 0xf0]
call fcn.00409a94
jmp 0x40f521
lea ecx, [ebp - 0x1f0]
mov eax, dword [ebx + 0xe0]
mov edx, esi
call fcn.00409b00
mov ecx, dword [ebp - 0x1f0]
lea eax, [ebp - 0x1ec]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x1ec]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 0x1e8]
mov edx, 0x40fae4
call fcn.00404808
mov edx, dword [ebp - 0x1e8]
mov eax, dword [ebx + 0xf0]
call fcn.00409a94
lea ecx, [ebp - 0x1f8]
mov eax, dword [ebx + 0xe0]
mov edx, esi
call fcn.00409b00
mov ecx, dword [ebp - 0x1f8]
lea eax, [ebp - 0x1f4]
mov edx, 0x40fa94
call fcn.004031c8
mov edx, dword [ebp - 0x1f4]
mov eax, 0x80000002
call fcn.004046d8
lea ecx, [ebp - 4]
mov edx, 0x40faf8
call fcn.00404808
cmp dword [ebp - 4], 0
je 0x40f590
lea ecx, [ebp - 0x1fc]
mov eax, ebx
mov edx, dword [ebp - 4]
call fcn.00414524
mov edx, dword [ebp - 0x1fc]
mov eax, dword [ebx + 0xf4]
call fcn.00409a94
jmp 0x40f5bc
lea ecx, [ebp - 0x200]
mov eax, dword [ebx + 0xf0]
mov edx, dword [eax + 0x1c]
dec edx
mov eax, dword [ebx + 0xf0]
call fcn.00409b00
mov edx, dword [ebp - 0x200]
mov eax, dword [ebx + 0xf4]
call fcn.00409a94
inc esi
dec edi
jne 0x40f414
mov eax, dword [ebx + 0x70]
call fcn.004094c4
test al, al
je 0x40f606
mov eax, dword [ebx + 0xf0]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f606
inc edi
xor esi, esi
lea ecx, [ebp - 0x204]
mov eax, dword [ebx + 0xf0]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x204]
mov eax, dword [ebx + 0x3c]
call fcn.004096c0
inc esi
dec edi
jne 0x40f5e1
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
test al, al
je 0x40f648
mov eax, dword [ebx + 0xf4]
mov edi, dword [eax + 0x1c]
dec edi
test edi, edi
jl 0x40f648
inc edi
xor esi, esi
lea ecx, [ebp - 0x208]
mov eax, dword [ebx + 0xf4]
mov edx, esi
call fcn.00409b00
mov edx, dword [ebp - 0x208]
mov eax, dword [ebx + 0x3c]
call fcn.004096c0
inc esi
dec edi
jne 0x40f623
mov eax, 0x80000002
call fcn.004048e4
mov edx, 0x40fecc
mov eax, 0x80000001
call fcn.004046d8
mov edx, 0x40fee4
call fcn.00404778
test eax, eax
jne 0x40f67e
mov eax, dword [ebx + 0x9c]
xor edx, edx
call fcn.00409998
jmp 0x40f68e
mov eax, dword [ebx + 0x9c]
mov edx, 1
call fcn.00409998
mov edx, 0x40fef8
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x20c]
mov edx, 0x40ff1c
call fcn.00404808
mov eax, dword [ebp - 0x20c]
mov edx, 0x40fbc8
call fcn.004032c8
jne 0x40f6ce
mov eax, dword [ebx + 0xa0]
mov dl, 1
call fcn.004094e4
jmp 0x40f6db
mov eax, dword [ebx + 0xa0]
xor edx, edx
call fcn.004094e4
mov edx, 0x40ff30
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 8]
mov edx, 0x40ff50
call fcn.00404808
mov edx, 0x40ff30
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0xc]
mov edx, 0x40ff60
call fcn.00404808
mov edx, 0x40ff30
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 0x10]
mov edx, 0x40ff78
call fcn.00404808
mov eax, dword [ebp - 8]
mov edx, 0x40fbc8
call fcn.004032c8
je 0x40f74d
mov eax, dword [ebp - 0xc]
mov edx, 0x40fbc8
call fcn.004032c8
jne 0x40f764
mov eax, dword [ebx + 0x78]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebx + 0x7c]
mov edx, 1
call fcn.00409998
mov eax, dword [ebp - 8]
mov edx, 0x40ff90
call fcn.004032c8
je 0x40f782
mov eax, dword [ebp - 0xc]
mov edx, 0x40ff90
call fcn.004032c8
jne 0x40f796
mov eax, dword [ebx + 0x78]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebx + 0x7c]
xor edx, edx
call fcn.00409998
mov eax, dword [ebp - 8]
mov edx, 0x40ff9c
call fcn.004032c8
je 0x40f7b4
mov eax, dword [ebp - 0xc]
mov edx, 0x40ff9c
call fcn.004032c8
jne 0x40f7c8
mov eax, dword [ebx + 0x78]
xor edx, edx
call fcn.004094e4
mov eax, dword [ebx + 0x7c]
xor edx, edx
call fcn.00408690
mov eax, dword [ebp - 0x10]
mov edx, 0x40fbc8
call fcn.004032c8
jne 0x40f7f4
mov eax, dword [ebx + 0x80]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebx + 0x84]
mov edx, 1
call fcn.00409998
mov eax, dword [ebp - 0x10]
mov edx, 0x40ff90
call fcn.004032c8
jne 0x40f81d
mov eax, dword [ebx + 0x80]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebx + 0x84]
xor edx, edx
call fcn.00409998
mov eax, dword [ebp - 0x10]
mov edx, 0x40ff9c
call fcn.004032c8
jne 0x40f856
mov eax, dword [ebx + 0x80]
xor edx, edx
call fcn.004094e4
mov eax, dword [ebx + 0x84]
mov edx, 1
call fcn.00409998
mov eax, dword [ebx + 0x84]
xor edx, edx
call fcn.00408690
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
mov edx, eax
mov eax, dword [ebx + 0x80]
call fcn.00408690
mov eax, dword [ebx + 0x6c]
call fcn.004094c4
mov edx, eax
mov eax, dword [ebx + 0x84]
call fcn.00408690
mov eax, dword [ebx + 0x70]
call fcn.004094c4
test al, al
je 0x40f956
mov ax, word [0x40fb0c]
call fcn.004068b8
test al, al
jne 0x40f8bd
mov ax, word [0x40fb10]
call fcn.004068b8
test al, al
jne 0x40f8bd
mov ax, word [0x40fb14]
call fcn.004068b8
test al, al
je 0x40f915
mov edx, 0x40ff30
mov eax, 0x80000001
call fcn.004046d8
lea ecx, [ebp - 8]
xor edx, edx
call fcn.00404808
mov eax, dword [ebx + 0x78]
mov dl, 1
call fcn.004094e4
mov eax, dword [ebp - 8]
mov edx, 0x40ff90
call fcn.004032c8
jne 0x40f8f9
mov eax, dword [ebx + 0x7c]
xor edx, edx
call fcn.00409998
mov eax, dword [ebp - 8]
mov edx, 0x40fbc8
call fcn.004032c8
jne 0x40f915
mov eax, dword [ebx + 0x7c]
mov edx, 1
call fcn.00409998
mov eax, dword [ebx + 0x104]
sub eax, 0x404
je 0x40f938
sub eax, 0x400
jne 0x40f947
mov eax, dword [ebx + 0x78]
mov edx, 0x40ffa8
call fcn.00408d34
jmp 0x40f995
mov eax, dword [ebx + 0x78]
mov edx, 0x40ffbc
call fcn.00408d34
jmp 0x40f995
mov eax, dword [ebx + 0x78]
mov edx, 0x40ffd0
call fcn.00408d34
jmp 0x40f995
mov eax, dword [ebx + 0x104]
sub eax, 0x404
je 0x40f979
sub eax, 0x400
jne 0x40f988
mov eax, dword [ebx + 0x78]
mov edx, 0x40ffe4
call fcn.00408d34
jmp 0x40f995
mov eax, dword [ebx + 0x78]
mov edx, 0x40fffc
call fcn.00408d34
jmp 0x40f995
mov eax, dword [ebx + 0x78]
mov edx, 0x410014
call fcn.00408d34
mov eax, 0x80000001
call fcn.004048e4
mov eax, dword [ebx + 0x3c]
xor edx, edx
call fcn.00409998
mov eax, dword [ebx + 0x54]
xor edx, edx
call fcn.00406e28
lea eax, [ebx + 0x110]
push eax
push 0x1e
call sub.user32.dll_GetKeyboardLayoutList
mov eax, ebx
call fcn.0041359c
mov eax, dword [ebx + 0x70]
call fcn.004094c4
mov byte [ebx + 0x18c], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40fa25
lea eax, [ebp - 0x20c]
mov edx, 0x63
call fcn.0040301c
lea eax, [ebp - 0x7c]
call fcn.00402ff8
lea eax, [ebp - 0x80]
call fcn.00402ff8
lea eax, [ebp - 0x78]
mov edx, 0x10
call fcn.0040301c
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.0040301c
ret