Function at 0x4712c0
Capabilities:
Check for peb beingdebugged flag
Get keyboard layout
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4d7d44
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x3c]
push esi
mov si, word [0x511540]
xor edx, edx
push edi
lea ebx, [esp + 0x14]
mov eax, ebp
mov dword [esp + 0x14], 0x90020
mov word [esp + 0x18], si
mov word [esp + 0x1a], dx
call fcn.00409df0
xor edi, edi
cmp eax, edi
jne 0x471326
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x471311
sub eax, edx
sar eax, 1
lea eax, [ebp + eax*2]
jmp 0x47136b
mov edx, eax
movzx ecx, word [edx]
cmp ecx, 0x20
je 0x471335
cmp ecx, 9
jne 0x47133a
add edx, 2
jmp 0x471328
movzx ecx, word [edx]
cmp cx, di
je 0x47136b
cmp cx, si
je 0x47134d
mov dword [esp + 0x44], edx
jmp 0x47136f
lea ecx, [edx + 2]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x47135d
cmp edx, 9
jne 0x471362
add ecx, 2
jmp 0x471350
mov dword [esp + 0x44], ecx
cmp word [ecx], di
jne 0x47136f
mov dword [esp + 0x44], edi
sub eax, ebp
sar eax, 1
or edi, 0xffffffff
mov esi, eax
push edi
push esi
push 0x505a18
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
je 0x472ca1
push edi
push esi
push str.qe_1_67
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
sete al
test al, al
jne 0x472ca1
push edi
push esi
push 0x505a68
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471439
mov eax, dword [esp + 0x44]
mov ebx, 0x505a88
call fcn.00409df0
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x472ca6
mov esi, dword [esp + 0x44]
mov word [ebx], ax
or eax, edi
mov edi, esi
call fcn.00430c00
call fcn.0041bb90
lea eax, [ebx + 2]
call fcn.00409e40
push eax
push esi
call fcn.0047f660
neg eax
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 8
push edi
push esi
push 0x505a90
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4715ad
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
call fcn.00415310
push 1
xor ebp, ebp
push ebp
lea eax, [esp + 0x48]
mov dword [esp + 0x40], ebp
push eax
lea esi, [esp + 0x30]
mov dword [esp + 0x4c], 0x2c
call fcn.00415800
mov esi, dword [esp + 0x28]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
cmp esi, ebp
je 0x47158d
mov edi, edi
mov ebx, 0x4e7a1c
mov eax, esi
call fcn.00409df0
mov ebx, eax
xor eax, eax
cmp ebx, eax
je 0x471519
xor ecx, ecx
or eax, 0xffffffff
mov edi, esi
mov word [ebx], cx
call fcn.00430c00
call fcn.0041bb90
cmp word [esi], 0
je 0x471513
test ebp, ebp
jne 0x4714ec
mov dword [esp + 0x40], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4714b0
cmp ebp, 1
jne 0x4714fb
mov dword [esp + 0x44], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4714b0
cmp ebp, 2
jne 0x47150a
mov dword [esp + 0x10], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4714b0
cmp ebp, 3
jne 0x471513
mov dword [esp + 0x14], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x4714b0
mov edi, dword [esp + 0x40]
cmp edi, eax
je 0x4718e2
mov ecx, dword [esp + 0x44]
cmp ecx, eax
je 0x4718e2
mov esi, dword [esp + 0x10]
cmp esi, eax
je 0x4718e2
mov edx, dword [esp + 0x14]
cmp edx, eax
je 0x4718e2
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
push edx
lea edx, [esp + 0x18]
push esi
push edx
mov byte [esp + 0x44], 1
call fcn.00481630
add esp, 0xc
test al, al
je 0x4718d9
mov eax, dword [esp + 0x18]
push eax
push edi
call fcn.0047f660
test eax, eax
je 0x4718d9
lea ecx, [esp + 0x14]
call fcn.00414f70
lea ecx, [esp + 0x24]
call fcn.00414f70
xor eax, eax
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 8
push edi
push esi
push 0x505ac0
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4716fb
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
call fcn.00415310
push 1
xor ebp, ebp
push ebp
lea eax, [esp + 0x48]
mov dword [esp + 0x40], 2
push eax
lea esi, [esp + 0x30]
mov dword [esp + 0x4c], 0x2c
call fcn.00415800
mov esi, dword [esp + 0x28]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebp
cmp esi, ebp
je 0x47158d
jmp 0x471630
mov ebx, 0x4e7a1c
mov eax, esi
call fcn.00409df0
mov ebx, eax
xor eax, eax
cmp ebx, eax
je 0x471699
xor ecx, ecx
or eax, 0xffffffff
mov edi, esi
mov word [ebx], cx
call fcn.00430c00
call fcn.0041bb90
cmp word [esi], 0
je 0x471693
test ebp, ebp
jne 0x47166c
mov dword [esp + 0x40], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471630
cmp ebp, 1
jne 0x47167b
mov dword [esp + 0x44], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471630
cmp ebp, 2
jne 0x47168a
mov dword [esp + 0x14], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471630
cmp ebp, 3
jne 0x471693
mov dword [esp + 0x10], esi
lea esi, [ebx + 2]
inc ebp
jmp 0x471630
mov edi, dword [esp + 0x40]
cmp edi, eax
je 0x4718e2
mov ecx, dword [esp + 0x44]
cmp ecx, eax
je 0x4718e2
mov esi, dword [esp + 0x14]
cmp esi, eax
je 0x4718e2
mov edx, dword [esp + 0x10]
cmp edx, eax
je 0x4718e2
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
push edx
mov eax, esi
lea edx, [esp + 0x18]
mov byte [esp + 0x3c], 3
call fcn.00481890
add esp, 4
test al, al
je 0x4718d9
mov edx, dword [esp + 0x18]
push edx
jmp 0x471576
push edi
push esi
push 0x505af0
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x47171f
mov eax, 1
jmp 0x47178d
push edi
push esi
push 0x505b20
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471743
mov eax, 2
jmp 0x47178d
push edi
push esi
push 0x505b68
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471767
mov eax, 3
jmp 0x47178d
push edi
push esi
push 0x505bb0
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471b5b
mov eax, 4
cmp byte [0x516e14], 0
jne 0x472ca1
mov esi, dword [esp + 0x44]
cmp eax, 1
jne 0x4717d4
test esi, esi
jne 0x4717d8
push ebp
push 0x505bfc
call fcn.0049fc00
add esp, 4
push eax
mov ecx, dword [esp + 0x48]
call fcn.004768b0
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 8
test esi, esi
je 0x4717ec
movzx ecx, word [esi]
cmp ecx, 0x20
je 0x4717e5
cmp ecx, 9
jne 0x4717ec
add esi, 2
mov dword [esp + 0x44], esi
cmp eax, 1
jne 0x47181d
test esi, esi
je 0x4717fb
cmp word [esi], 0
je 0x4717a7
mov ebx, dword [esp + 0x44]
mov eax, 0x5193b8
call fcn.00415310
test eax, eax
je 0x471596
mov byte [0x516e14], 1
jmp 0x472ca1
cmp eax, 2
jne 0x4718f0
test esi, esi
je 0x471845
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x471830
sub eax, edx
sar eax, 1
je 0x471845
mov ebp, esi
jmp 0x471854
push 0x505c2c
call fcn.0049fc00
add esp, 4
mov ebp, eax
mov ebx, dword [0x517974]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x14]
call fcn.00415310
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
push ecx
call fcn.004c7e7a
add esp, 4
mov edx, eax
call fcn.004814d0
add esp, 4
lea eax, [esp + 0x24]
call fcn.00415dc0
test eax, eax
je 0x471584
lea edi, [esp + 0x24]
mov esi, 0x5193b8
call fcn.004150f0
test eax, eax
je 0x471584
push 1
push 1
push ebp
call fcn.00415800
test eax, eax
je 0x471584
mov byte [0x516e14], 1
lea ecx, [esp + 0x14]
call fcn.00414f70
lea ecx, [esp + 0x24]
call fcn.00414f70
jmp 0x472ca1
cmp eax, 3
jne 0x471a84
push 0x3a
push esi
call fcn.004c5cc1
add esp, 8
test eax, eax
je 0x47190d
add eax, 2
jmp 0x47190f
mov eax, esi
cmp word [eax], 0x5c
jne 0x471918
add eax, 2
xor ecx, ecx
mov ebx, eax
lea eax, [esp + 0x14]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], ecx
call fcn.00415310
mov dword [esp + 0x38], 4
mov esi, dword [esp + 0x18]
xor ebp, ebp
cmp esi, ebp
je 0x47198a
push 0x2c
push esi
call fcn.004c5cc1
add esp, 8
cmp eax, ebp
je 0x471957
xor edx, edx
mov word [eax], dx
lea eax, [esp + 0x14]
call fcn.00415dc0
cmp word [esi + eax*2 - 2], 0x5c
jne 0x471978
lea eax, [esp + 0x14]
call fcn.00415dc0
xor ecx, ecx
mov word [esi + eax*2 - 2], cx
push 1
push 1
push 0x4e7bb8
lea esi, [esp + 0x20]
call fcn.00415800
mov edx, dword [0x517974]
push 1
push 1
push edx
lea esi, [esp + 0x20]
call fcn.00415800
test eax, eax
je 0x471b52
mov eax, dword [esp + 0x44]
push 0x2c
push eax
call fcn.004c5cc1
add esp, 8
cmp eax, ebp
je 0x4719f1
movzx ecx, word [eax + 2]
cmp ecx, 0x20
je 0x4719cc
cmp ecx, 9
je 0x4719cc
add eax, 2
jmp 0x4719cf
add eax, 4
cmp eax, ebp
je 0x4719f1
mov ecx, eax
lea esi, [ecx + 2]
jmp 0x4719e0
mov dx, word [ecx]
add ecx, 2
cmp dx, bp
jne 0x4719e0
sub ecx, esi
sar ecx, 1
jne 0x4719fe
push 0x505c44
call fcn.0049fc00
add esp, 4
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x24]
push ecx
push edx
mov ebx, eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebp
call fcn.004c7e7a
add esp, 4
mov edx, eax
call fcn.004814d0
add esp, 4
lea eax, [esp + 0x24]
call fcn.00415dc0
test eax, eax
je 0x471b49
lea edi, [esp + 0x24]
mov esi, 0x5193b8
call fcn.004150f0
test eax, eax
je 0x471b49
push 1
push 1
push ebx
mov esi, 0x5193b8
call fcn.00415800
test eax, eax
je 0x471b49
lea ecx, [esp + 0x24]
mov byte [0x516e14], 1
call fcn.00414f70
lea ecx, [esp + 0x14]
call fcn.00414f70
jmp 0x472ca1
cmp eax, 4
jne 0x471596
test esi, esi
je 0x471aab
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x471a96
sub eax, edx
sar eax, 1
je 0x471aab
mov ebp, esi
jmp 0x471aba
push 0x505c5c
call fcn.0049fc00
add esp, 4
mov ebp, eax
mov ebx, dword [0x517974]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
call fcn.00415310
push 1
push 0
push 0x4e7bb8
lea esi, [esp + 0x30]
call fcn.00415800
mov eax, dword [0x517978]
push 1
push 0
push eax
call fcn.00415800
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.004c7e7a
add esp, 4
mov edx, eax
call fcn.004814d0
add esp, 4
lea eax, [esp + 0x14]
call fcn.00415dc0
test eax, eax
je 0x471b49
lea edi, [esp + 0x14]
mov esi, 0x5193b8
call fcn.004150f0
test eax, eax
je 0x471b49
push 1
push 1
push ebp
jmp 0x471a54
lea ecx, [esp + 0x24]
call fcn.00414f70
lea ecx, [esp + 0x14]
jmp 0x471591
push edi
push esi
push 0x505c78
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471b9e
mov eax, dword [0x519360]
cmp eax, 0x64
jae 0x471596
mov ecx, dword [0x519364]
mov dword [eax*4 + 0x5191d0], ecx
inc dword [0x519360]
jmp 0x472ca1
push edi
push esi
push 0x505cb8
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471be1
mov eax, dword [0x5191cc]
cmp eax, 0x64
jae 0x471596
mov edx, dword [0x519364]
mov dword [eax*4 + 0x51903c], edx
inc dword [0x5191cc]
jmp 0x472ca1
push edi
push esi
push 0x505cf0
xor ebx, ebx
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
je 0x472c77
push str.q_a_7
call fcn.0049fc00
add esp, 4
push edi
push esi
mov ecx, ebp
mov ebx, eax
call fcn.004a7290
add esp, 8
test eax, eax
je 0x472c77
push edi
push esi
push 0x505d78
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471c53
mov dword [0x516044], 1
jmp 0x472ca1
push edi
push esi
push 0x505d98
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471c7c
mov byte [0x51601a], 1
jmp 0x472ca1
push edi
push esi
push 0x505dc0
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471ca5
mov byte [0x516019], 1
jmp 0x472ca1
push edi
push esi
push 0x505de8
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471d5e
mov esi, dword [esp + 0x44]
mov dword [0x516030], 1
test esi, esi
je 0x472ca1
push 0x505e18
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x471d06
mov dword [0x516030], 2
jmp 0x472ca1
push str.e5__7
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x471d30
mov dword [0x516030], 3
jmp 0x472ca1
push 0x4e6890
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne 0x472ca1
mov dword [0x516030], 4
jmp 0x472ca1
push edi
push esi
push 0x505e54
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471d87
or byte [0x516720], 1
jmp 0x472ca1
push edi
push esi
push str.qe__3__
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471db0
or byte [0x516720], 2
jmp 0x472ca1
push edi
push esi
push str.q_a_7H9
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471dfa
mov esi, dword [esp + 0x44]
test esi, esi
je 0x471dee
push eax
call fcn.00409ee0
add esp, 4
mov byte [0x5166ec], 0
cmp eax, 2
je 0x472ca1
mov byte [0x5166ec], 1
jmp 0x472ca1
push edi
push esi
push 0x4e2d88
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471ec4
cmp dword [esp + 0x44], eax
jne 0x471e30
mov dword [0x51605c], 0
jmp 0x472ca1
mov edi, dword [esp + 0x44]
call fcn.0040a570
mov dword [0x51605c], eax
test eax, eax
jne 0x472ca1
mov eax, dword [0x51161c]
mov ebx, dword [eax + 0xb4]
mov esi, dword [esp + 0x40]
push 0
push 0
push 0
push 0x4e1a4c
push 0
push 0xe1
mov dword [eax + 0xb4], 0
push edi
mov ecx, esi
mov byte [esi + 0x49], 1
call fcn.00472d70
test eax, eax
je 0x471596
mov eax, dword [0x51161c]
mov byte [esi + 0x49], 0
mov dword [eax + 0xb4], ebx
mov esi, dword [esi + 4]
call fcn.0040a4f0
mov dword [0x51605c], eax
test eax, eax
je 0x471596
mov byte [eax], 5
mov dword [eax + 0xc], esi
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov dword [eax + 8], 0x4e1a4c
jmp 0x472ca1
push edi
push esi
push 0x505ee0
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x471efc
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0041bbf0
mov dword [0x51153c], eax
jmp 0x472ca1
push 6
push 0x505f08
call fcn.0049fc00
add esp, 4
push eax
push ebp
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x47221f
push 3
push 0x505f28
call fcn.0049fc00
add esp, 4
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004c56eb
add esp, 0xc
test eax, eax
sete bl
movzx ecx, bl
neg ecx
sbb ecx, ecx
and ecx, 3
push 6
push 0x4e9ae0
lea esi, [ebp + ecx*2 + 0xc]
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x471f76
test bl, bl
setne dl
inc dl
mov byte [esp + 0x14], dl
jmp 0x471fa2
push 5
push 0x4e7ea4
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x472205
test bl, bl
setne al
add al, 3
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x471e21
mov dx, word [0x511540]
mov bx, word [0x511544]
xor esi, esi
mov edi, edi
movzx eax, word [ecx]
test ax, ax
je 0x471fef
jmp 0x471fd0
cmp ax, word [0x511548]
je 0x472046
cmp ax, dx
je 0x472046
cmp ax, bx
je 0x472046
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x471fd0
test esi, esi
je 0x472118
lea eax, [esi + 2]
call fcn.00409e40
mov edi, eax
xor ecx, ecx
mov word [esi], cx
mov eax, esi
mov esi, dword [esp + 0x44]
sub eax, esi
sar eax, 1
call fcn.0041bb90
movzx ebp, word [0x511548]
mov ecx, edi
mov edi, edi
movzx eax, word [ecx]
test ax, ax
je 0x47211d
lea esp, [esp]
cmp ax, bp
je 0x472082
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x472030
jmp 0x47211d
movzx eax, word [ecx]
test ax, ax
je 0x471fef
cmp ax, bx
je 0x472077
cmp ax, dx
jne 0x472066
test esi, esi
jne 0x472077
mov esi, ecx
add ecx, 2
jmp 0x471fc0
add ecx, 2
cmp word [ecx], 0
je 0x471fef
add ecx, 2
jmp 0x471fc0
push ebp
push 0x505f40
jmp 0x4717ad
cmp word [ecx], 0
je 0x47211d
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x4720a2.99
movzx edx, byte [eax + 0x472ce0]
jmp dword [edx*4 + 0x472cbc]
mov eax, 7
mov word [esi], ax
jmp case.0x4720a2.99
mov edx, 8
jmp 0x4720eb
mov eax, 0xc
mov word [esi], ax
jmp case.0x4720a2.99
mov edx, 0xa
jmp 0x4720eb
mov eax, 0xd
mov word [esi], ax
jmp case.0x4720a2.99
mov edx, 9
jmp 0x4720eb
mov eax, 0xb
mov word [esi], ax
jmp case.0x4720a2.99
mov edx, 0x20
mov word [esi], dx
mov eax, esi
lea ebx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4720f3
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push esi
push ecx
call fcn.004c5960
add esp, 0xc
mov ecx, esi
jmp 0x472020
mov edi, 0x4e1a4c
movzx ebp, word [0x511548]
mov ecx, dword [esp + 0x44]
movzx eax, word [ecx]
test ax, ax
je 0x472141
cmp ax, bp
je 0x47216b
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x472130
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
push edi
push ecx
push edx
call fcn.0040a2e0
add esp, 0xc
test eax, eax
jne 0x472ca1
push 0x4e1a4c
push str.Out_of_memory.
jmp 0x4717b6
cmp word [ecx], 0
je 0x472141
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x472187.99
movzx edx, byte [eax + 0x472d1c]
jmp dword [edx*4 + 0x472cf8]
mov eax, 7
mov word [esi], ax
jmp case.0x472187.99
mov edx, 8
jmp 0x4721d0
mov eax, 0xc
mov word [esi], ax
jmp case.0x472187.99
mov edx, 0xa
jmp 0x4721d0
mov eax, 0xd
mov word [esi], ax
jmp case.0x472187.99
mov edx, 9
jmp 0x4721d0
mov eax, 0xb
mov word [esi], ax
jmp case.0x472187.99
mov edx, 0x20
mov word [esi], dx
mov eax, esi
lea ebx, [eax + 2]
jmp 0x4721e0
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x4721e0
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push esi
push ecx
call fcn.004c5960
add esp, 0xc
mov ecx, esi
jmp 0x472128
mov eax, 4
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 8
push edi
push esi
push str.qH____5
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4723c7
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
push 0x505ff0
call fcn.0049fc00
add esp, 4
mov ecx, esi
call fcn.004a75a0
test eax, eax
je 0x472355
mov ebx, 0x506014
call fcn.00409df0
test eax, eax
je 0x472ca1
push 0x64
add eax, 2
push eax
push str._____:____.___n__t
call fcn.004c67b5
movzx ebx, word [0x511548]
add esp, 0xc
xor eax, eax
mov word [0x511618], ax
mov ecx, str._____:____.___n__t
movzx eax, word [ecx]
test ax, ax
je 0x472ca1
lea ecx, [ecx]
cmp ax, bx
je 0x4722c6
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4722b0
jmp 0x472ca1
cmp word [ecx], 0
je 0x472ca1
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x4722e6.99
movzx edx, byte [eax + 0x472d58]
jmp dword [edx*4 + 0x472d34]
mov eax, 7
jmp 0x472325
mov edx, 8
mov word [esi], dx
jmp case.0x4722e6.99
mov eax, 0xc
jmp 0x472325
mov edx, 0xa
mov word [esi], dx
jmp case.0x4722e6.99
mov eax, 0xd
jmp 0x472325
mov edx, 9
mov word [esi], dx
jmp case.0x4722e6.99
mov eax, 0xb
mov word [esi], ax
mov eax, esi
lea edi, [eax + 2]
lea ecx, [ecx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x472330
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push esi
push ecx
call fcn.004c5960
add esp, 0xc
mov ecx, esi
jmp 0x4722a1
push 7
push 0x50601c
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x47237c
mov byte [0x51149e], al
jmp 0x472ca1
push 0x5166de
push 0x5166dd
push 0x5166dc
push 0x51148b
push 0x516059
push 0x51605b
push 0x51148a
push 0x511407
push 0x51605a
push 0x51154c
push 0x5166d8
push 0x516684
mov eax, esi
call fcn.0040d9f0
add esp, 0x30
jmp 0x472ca1
push edi
push esi
push str.qH97
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4723ff
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0040f170
mov dword [0x51151c], eax
jmp 0x472ca1
push edi
push esi
push str.qH97e_7__3_
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x47244a
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0040f170
mov dword [0x511538], eax
cmp eax, 0xa
jge 0x472ca1
mov dword [0x511538], 0xa
jmp 0x472ca1
push edi
push esi
push 0x5060ac
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472495
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0040f170
mov dword [0x511534], eax
cmp eax, 1
jge 0x472ca1
mov dword [0x511534], 1
jmp 0x472ca1
push edi
push esi
push 0x5060ec
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4724ed
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0040f170
cmp eax, 0xff
jle 0x4724d9
mov eax, 0xff
mov byte [0x511406], al
jmp 0x472ca1
cmp eax, 1
jge 0x4724e3
mov eax, 1
mov byte [0x511406], al
jmp 0x472ca1
push edi
push esi
push 0x506128
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472537
mov esi, dword [esp + 0x44]
test esi, esi
je 0x47252b
push eax
call fcn.00409ee0
add esp, 4
mov byte [0x51603b], 0
cmp eax, 2
je 0x472ca1
mov byte [0x51603b], 1
jmp 0x472ca1
push edi
push esi
push 0x50615c
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x47258f
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0040f170
cmp eax, 0xff
jle 0x47257b
mov eax, 0xff
mov dword [0x511530], eax
jmp 0x472ca1
cmp eax, 1
jge 0x472585
mov eax, 1
mov dword [0x511530], eax
jmp 0x472ca1
push edi
push esi
push 0x506184
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4725c7
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0040f170
mov dword [0x511520], eax
jmp 0x472ca1
push edi
push esi
push 0x5061b8
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472611
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472605
push eax
call fcn.00409ee0
add esp, 4
mov byte [0x5166df], 0
cmp eax, 2
je 0x472ca1
mov byte [0x5166df], 1
jmp 0x472ca1
push edi
push esi
push 0x5061d8
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x47263a
mov byte [0x515eff], 1
jmp 0x472ca1
push edi
push esi
push 0x50620c
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472667
mov eax, dword [esp + 0x40]
mov byte [eax + 0xae3], 1
jmp 0x472ca1
push edi
push esi
push 0x506238
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4726ee
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0041bc20
fld qword [0x50a168]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x4726b1
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x4726b5
fstp st(1)
jmp 0x4726b7
fstp st(0)
fld qword [0x50a038]
fnstcw word [esp + 0x40]
movzx eax, word [esp + 0x40]
fmul st(1), st(0)
or eax, 0xc00
mov dword [esp + 0x44], eax
fmulp st(1)
fldcw word [esp + 0x44]
fistp qword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [0x51152c], ecx
fldcw word [esp + 0x40]
jmp 0x472ca1
push edi
push esi
push 0x506258
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x47274e
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472ca1
call fcn.0040f170
mov dword [0x511528], eax
test eax, eax
jns 0x472734
mov dword [0x511528], 0
jmp 0x472ca1
cmp eax, 0x1f4
jle 0x472ca1
mov dword [0x511528], 0x1f4
jmp 0x472ca1
push edi
push esi
push 0x5054a8
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472839
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x472ca1
cmp word [ecx + 2], ax
jne 0x4727fc
movzx eax, word [ecx]
cmp eax, 0x23
je 0x472b7f
cmp ax, word [0x511544]
je 0x472b7f
cmp ax, word [0x511548]
je 0x472b7f
cmp ax, word [0x511540]
je 0x472b7f
cmp eax, 0x21
je 0x472b7f
cmp eax, 0x5e
je 0x472b7f
cmp eax, 0x2b
je 0x472b7f
cmp eax, 0x24
je 0x472b7f
cmp eax, 0x7e
je 0x472b7f
cmp eax, 0x2a
je 0x472b7f
cmp eax, 0x3c
je 0x472b7f
cmp eax, 0x3e
je 0x472b7f
push 0xf
push ecx
push 0x5114c0
call fcn.004c67b5
add esp, 0xc
xor edx, edx
mov eax, 0x5114c0
mov word [0x5114de], dx
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x472820
sub eax, edx
sar eax, 1
mov dword [0x5114a4], eax
jmp 0x472ca1
push edi
push esi
push 0x506280
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x4728b2
mov eax, dword [esp + 0x44]
test eax, eax
je 0x472ca1
movzx eax, word [eax]
cmp eax, 0x23
je 0x472b7f
cmp ax, word [0x511544]
je 0x472b7f
cmp ax, word [0x511540]
je 0x472b7f
cmp eax, 0x2e
je 0x472b7f
cmp dword [0x5114a4], 1
jne 0x4728a7
cmp ax, word [0x5114c0]
je 0x472b7f
mov word [0x511548], ax
jmp 0x472ca1
push edi
push esi
push 0x5062a8
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472922
mov eax, dword [esp + 0x44]
test eax, eax
je 0x472ca1
movzx eax, word [eax]
cmp ax, word [0x511548]
je 0x472b7f
cmp ax, word [0x511540]
je 0x472b7f
cmp eax, 0x2e
je 0x472b7f
cmp dword [0x5114a4], 1
jne 0x472917
cmp ax, word [0x5114c0]
je 0x472b7f
mov word [0x511544], ax
jmp 0x472ca1
push edi
push esi
push 0x5062d0
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x47299b
mov eax, dword [esp + 0x44]
test eax, eax
je 0x472ca1
movzx eax, word [eax]
cmp eax, 0x23
je 0x472b7f
cmp ax, word [0x511548]
je 0x472b7f
cmp ax, word [0x511544]
je 0x472b7f
cmp eax, 0x2e
je 0x472b7f
cmp dword [0x5114a4], 1
jne 0x472990
cmp ax, word [0x5114c0]
je 0x472b7f
mov word [0x511540], ax
jmp 0x472ca1
push edi
push esi
push 0x5062f8
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472a0b
cmp dword [esp + 0x44], eax
je 0x4729f8
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov edx, dword [esp + 0x44]
push 0x5113e3
xor ecx, ecx
mov edi, 0x511518
call fcn.00414400
add esp, 4
test al, al
jne 0x472ca1
push 0x4e7114
call fcn.0049fc00
add esp, 4
push ebp
jmp 0x4717b5
push 0x506324
call fcn.0049fc00
add esp, 4
push ebp
jmp 0x4717b5
push edi
push esi
push str.qe__
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472a5c
mov esi, dword [esp + 0x44]
test esi, esi
je 0x472a50
call fcn.0040f170
test eax, eax
js 0x472b7f
cmp eax, 0x64
jg 0x472b7f
mov byte [0x516058], al
jmp 0x472ca1
xor eax, eax
mov byte [0x516058], al
jmp 0x472ca1
push edi
push esi
push 0x506388
call fcn.0049fc00
add esp, 4
mov ecx, ebp
call fcn.004a7290
add esp, 8
test eax, eax
jne 0x472205
cmp dword [esp + 0x44], eax
jne 0x472a8b
mov dword [esp + 0x44], 0x4e1a4c
movzx eax, word [0x511540]
mov ecx, dword [esp + 0x44]
push eax
push ecx
call fcn.004c5cc1
mov esi, eax
add esp, 8
mov ebx, 0x4e1a4c
test esi, esi
je 0x472ac7
lea eax, [esi + 2]
call fcn.00409e40
mov edx, dword [esp + 0x44]
mov ebx, eax
lea eax, [esi - 2]
call fcn.00409e60
xor edx, edx
mov word [eax + 2], dx
test byte [0x51a56c], 1
jne 0x472b4f
or dword [0x51a56c], 1
push str._a_7_a__7
mov dword [esp + 0x3c], 5
call fcn.0049fc00
add esp, 4
push 0x506440
mov dword [0x519f60], eax
call fcn.0049fc00
add esp, 4
push 0x50640c
mov dword [0x519f64], eax
call fcn.0049fc00
add esp, 4
push 0x5063ec
mov dword [0x519f68], eax
call fcn.0049fc00
add esp, 4
push 0x5063bc
mov dword [0x519f6c], eax
call fcn.0049fc00
add esp, 4
push 0x5063a4
mov dword [0x519f70], eax
call fcn.0049fc00
add esp, 4
mov dword [0x519f74], eax
mov dword [esp + 0x38], edi
mov eax, dword [esp + 0x44]
cmp word [eax], 0
mov esi, 5
je 0x472b8a
xor esi, esi
mov ecx, dword [esi*4 + 0x519f60]
mov edx, dword [esp + 0x44]
push ecx
push edx
call fcn.004c4e9d
add esp, 8
test eax, eax
je 0x472b8a
inc esi
cmp esi, 6
jne 0x472b60
push ebp
push 0x4e7114
jmp 0x4717ad
test byte [0x51a56c], 2
jne 0x472bee
or dword [0x51a56c], 2
push 0x4e6890
mov dword [esp + 0x3c], 6
call fcn.0049fc00
add esp, 4
push 0x4e32a4
mov dword [0x519f78], eax
call fcn.0049fc00
add esp, 4
push 0x4e49c4
mov dword [0x519f7c], eax
call fcn.0049fc00
add esp, 4
push 0x50649c
mov dword [0x519f80], eax
call fcn.0049fc00
add esp, 4
mov dword [0x519f84], eax
mov dword [esp + 0x38], edi
cmp word [ebx], 0
mov ebp, 2
je 0x472c26
xor ebp, ebp
jmp 0x472c00
mov eax, dword [ebp*4 + 0x519f78]
push eax
push ebx
call fcn.004c4e9d
add esp, 8
test eax, eax
je 0x472c26
inc ebp
cmp ebp, 4
jne 0x472c00
push ebx
push 0x4e7150
jmp 0x4717ad
test esi, esi
je 0x472c2f
cmp esi, 5
jne 0x472c35
mov dword [0x51601c], ebp
cmp esi, 1
je 0x472c3f
cmp esi, 5
jne 0x472c45
mov dword [0x516020], ebp
cmp esi, 3
je 0x472c4f
cmp esi, 5
jne 0x472c55
mov dword [0x516024], ebp
cmp esi, 2
je 0x472c5f
cmp esi, 5
jne 0x472c65
mov dword [0x516028], ebp
cmp esi, 4
je 0x472c6f
cmp esi, 5
jne 0x472ca1
mov dword [0x51602c], ebp
jmp 0x472ca1
test ebx, ebx
mov ebx, dword [esp + 0x44]
setne cl
mov byte [0x519410], 1
mov byte [0x519411], cl
test ebx, ebx
je 0x472ca1
cmp word [ebx], 0
je 0x472ca1
mov eax, 0x519414
call fcn.00415310
mov eax, 3
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret 8