Function at 0x46ea10
Capabilities:
Get keyboard layout
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1a178
call fcn.004d0b30
mov ecx, dword [0x516df8]
mov eax, dword [esp + 0x1a184]
xor edx, edx
push ebx
push ebp
push esi
dec ecx
mov word [esp + 0xa174], dx
lea edx, [esp + 0x216c]
push edi
mov edi, dword [esp + 0x1a18c]
mov dword [esp + 0x14], edx
lea edx, [esp + 0x12180]
mov dword [edi + 0x270], ecx
mov esi, dword [0x518a90]
mov dword [esp + 0x34], edx
xor edx, edx
neg esi
sbb esi, esi
neg esi
dec esi
mov dword [esp + 0x64], ecx
mov byte [esp + 0x18], 0
mov word [esp + 0x42], dx
mov word [esp + 0x48], dx
mov dword [0x519364], ecx
mov dword [esp + 0x4c], esi
test eax, eax
je 0x46ea8e
cmp dword [eax + 8], edx
jne 0x46ea90
xor eax, eax
mov ecx, dword [esp + 0x1a190]
push eax
push 0
lea edx, [esp + 0x2178]
call fcn.00470f80
push 2
mov dword [esp + 0x20], eax
lea eax, [esp + 0x2174]
push 0x5054a0
push eax
call fcn.004c6e79
add esp, 0xc
test eax, eax
sete al
mov byte [esp + 0x1a], al
test al, al
je 0x46eae0
xor ecx, ecx
mov word [esp + 0x2170], cx
mov dword [esp + 0x1c], ecx
lea esp, [esp]
cmp dword [esp + 0x1c], 0xffffffff
je 0x470c4c
push 0xc
inc esi
xor ebx, ebx
push 0x5054a8
mov dword [edi + 0x274], esi
mov dword [edi + 0x634], ebx
call fcn.0049fc00
mov esi, dword [esp + 0x1c]
add esp, 4
push eax
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x46eb2a
push esi
push edi
call fcn.004712c0
test eax, eax
je 0x470542
mov byte [esp + 0x74], bl
mov dword [esp + 0x20], ebx
inc dword [esp + 0x4c]
cmp dword [0x518a90], 0
je 0x46eb59
mov edx, dword [esp + 0x1a18c]
cmp dword [edx + 0x270], 0xffffffff
je 0x46eb59
mov dword [0x519368], 0
mov eax, dword [esp + 0x1a194]
test eax, eax
je 0x46eb6a
cmp dword [eax + 8], 0
jne 0x46eb6c
xor eax, eax
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
test ebx, ebx
je 0x46ebfd
mov ecx, dword [esp + 0x1a190]
push eax
push esi
mov edx, ebx
call fcn.00470f80
mov ebp, eax
mov dword [esp + 0x60], ebp
test ebp, ebp
je 0x46ec04
cmp ebp, 0xffffffff
je 0x46ec04
test esi, esi
jne 0x46ec04
push 2
push 0x5054d4
push ebx
call fcn.004c6e79
add esp, 0xc
test eax, eax
jne 0x46ec19
cmp byte [esp + 0x1a], al
jne 0x46ebca
mov eax, 0x3a
cmp word [ebx + 4], ax
jne 0x46ebca
cmp word [ebx + 6], ax
je 0x46ec24
lea eax, [ebp + ebp - 2]
push eax
lea ecx, [ebx + 4]
push ecx
push ebx
mov byte [esp + 0x26], 0
call fcn.004c5960
add esp, 0xc
lea eax, [ebp - 2]
mov edi, ebx
call fcn.00430c00
cmp word [ebx], 0
mov ebp, eax
mov dword [esp + 0x60], ebp
je 0x46eb32
jmp 0x46ec24
or ebp, 0xffffffff
mov dword [esp + 0x60], ebp
cmp byte [esp + 0x1a], 0
je 0x46ec42
cmp ebp, 0xffffffff
jne 0x46eb32
jmp 0x46f3f2
cmp byte [esp + 0x1a], 0
jne 0x46eb32
push 2
push 0x5054a0
push ebx
call fcn.004c6e79
add esp, 0xc
test eax, eax
jne 0x46ec04
mov byte [esp + 0x1a], 1
jmp 0x46eb32
test esi, esi
jne 0x46f1b6
cmp ebp, 0xffffffff
je 0x46ecb9
cmp word [ebx], 0x28
jne 0x46ecb9
cmp word [ebx + 2], 0x3a
lea esi, [ebx + 2]
je 0x46ecb9
cmp word [ebx + ebp*2 - 2], 0x3a
je 0x46ecb9
mov dl, byte [0x5166df]
mov eax, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x70], 0
mov byte [esp + 0x2e], dl
mov byte [esp + 0x32], al
mov byte [esp + 0x30], 0
mov byte [esp + 0x2d], 0
mov byte [esp + 0x33], al
mov dword [esp + 0x90], 0xa
mov dword [esp + 0x6c], eax
movzx eax, word [esi]
cmp eax, 0x20
je 0x46ecb4
cmp eax, 9
jne 0x46ef44
add esi, 2
jmp 0x46eca3
mov dword [esp + 0x20], 0
cmp ebp, 0xffffffff
je 0x46f3f2
test ebp, ebp
je 0x46eb32
cmp word [ebx + ebp*2 - 2], 0x3a
jne 0x46ece4
cmp word [ebx], 0x2c
jne 0x46f3f2
movzx esi, word [ebx]
test esi, 0xffffff80
jne 0x46ed01
push 2
push esi
call fcn.004c613e
add esp, 8
test eax, eax
je 0x46ed01
and esi, 0xffffffdf
movzx eax, si
cmp eax, 0x41
je 0x46eea4
cmp eax, 0x4f
je 0x46ee5c
movzx eax, word [ebx]
cmp eax, 0x3a
je 0x46ed28
cmp eax, 0x2b
je 0x46ed28
cmp eax, 0x2d
jne 0x46ed32
cmp word [ebx + 2], ax
je 0x46f3f2
push eax
push str.____:.___
call fcn.004c5cc1
add esp, 8
test eax, eax
je 0x46f3f2
push 0x50551c
push ebx
call fcn.004c5ce8
mov edi, eax
add esp, 8
test edi, edi
je 0x46eefc
cmp word [ebx], 0x3a
jne 0x46edc3
movzx eax, word [ebx + 2]
lea esi, [ebx + 2]
test ax, ax
je 0x46edb9
cmp ax, 0x3a
je 0x46f3f2
movzx eax, ax
test eax, 0xffffff80
jne 0x46ed98
push 0x107
push eax
call fcn.004c613e
add esp, 8
test eax, eax
jne 0x46edad
movzx edx, word [esi]
push edx
push str.____t
call fcn.004c5cc1
add esp, 8
test eax, eax
je 0x46edc3
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x46ed72
cmp word [esi], 0x3a
je 0x46f3f2
cmp word [ebx], 0x2c
jne 0x46ee0b
lea eax, [ebx + 2]
call fcn.00409e40
push 2
mov esi, eax
push 0x50551c
push esi
call fcn.004c6e79
add esp, 0xc
test eax, eax
je 0x46f3f2
push 3
push 0x4e6db4
add esi, 0xfffffffe
push esi
call fcn.004c6e79
add esp, 0xc
test eax, eax
je 0x46f3f2
jmp 0x46eefc
mov eax, ebx
cmp ebx, edi
jae 0x46ee1e
cmp word [eax], 0x22
je 0x46ee1e
add eax, 2
cmp eax, edi
jb 0x46ee11
cmp eax, edi
je 0x46f3f2
movzx eax, word [edi + 4]
lea ecx, [edi + 4]
test ax, ax
je 0x46f3f2
cmp ax, 0x22
je 0x46ee4d
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x46ee36
jmp 0x46f3f2
cmp word [ecx], 0
je 0x46f3f2
jmp 0x46eefc
movzx esi, word [ebx + 2]
test esi, 0xffffff80
jne 0x46ee7a
push 2
push esi
call fcn.004c613e
add esp, 8
test eax, eax
je 0x46ee7a
and esi, 0xffffffdf
cmp si, 0x52
jne 0x46f3f2
movzx ecx, word [ebx + 4]
lea eax, [ebx + 4]
cmp ecx, 0x20
je 0x46ee99
cmp ecx, 9
jne 0x46f3f2
call fcn.00409e40
movzx eax, word [eax]
push eax
jmp 0x46eee7
push 3
push 0x5054dc
push ebx
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x46f3f2
movzx eax, word [ebx + 6]
lea ecx, [ebx + 6]
cmp eax, 0x20
je 0x46eed1
cmp eax, 9
jne 0x46f3f2
movzx eax, word [ecx]
cmp eax, 0x20
je 0x46eede
cmp eax, 9
jne 0x46eee3
add ecx, 2
jmp 0x46eed1
movzx ecx, word [ecx]
push ecx
push str.____:
call fcn.004c5cc1
add esp, 8
test eax, eax
jne 0x46f3f2
mov esi, dword [esp + 0x1c]
lea edx, [esi + ebp]
cmp edx, 0x4000
jae 0x470ac4
cmp word [ebx], 0x2c
je 0x46ef23
mov ecx, dword [esp + 0x14]
mov eax, 0x20
mov word [ecx + esi*2], ax
inc esi
mov eax, dword [esp + 0x14]
lea edx, [ebp + ebp + 2]
push edx
lea ecx, [eax + esi*2]
push ebx
push ecx
call fcn.004cd6c0
add esp, 0xc
add esi, ebp
mov dword [esp + 0x1c], esi
jmp 0x46eb32
cmp word [esi], 0
je 0x46f1ac
mov ebx, 0x30
mov edi, esi
test esi, esi
je 0x46ef91
movzx eax, word [esi]
test ax, ax
je 0x46ef91
movzx edx, ax
mov ecx, 0x4e6dc4
mov eax, 0x20
mov edi, edi
cmp dx, ax
je 0x46f051
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x46ef70
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x46ef61
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46ef96
sub eax, edx
sar eax, 1
lea ebp, [esi + eax*2]
movzx edi, word [ebp]
xor eax, eax
push 4
push 0x505580
mov dword [esp + 0x30], edi
mov word [ebp], ax
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x46f0ea
push 0xf
add esi, 8
lea ecx, [esp + 0x94]
push esi
push ecx
call fcn.004c67b5
movzx ebx, word [0x511548]
add esp, 0xc
xor edx, edx
mov word [esp + 0xae], dx
lea ecx, [esp + 0x90]
movzx eax, word [ecx]
test ax, ax
je 0x46f021
lea ecx, [ecx]
cmp ax, bx
je 0x46f058
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x46f010
lea eax, [esp + 0x90]
lea edx, [eax + 2]
jmp 0x46f030
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46f030
mov edi, dword [esp + 0x28]
sub eax, edx
sar eax, 1
mov dword [esp + 0x6c], eax
mov ebx, 0x30
jmp 0x46f184
mov ebp, edi
jmp 0x46efa8
cmp word [ecx], 0
je 0x46f021
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x46f074.99
movzx eax, byte [eax + 0x470d54]
jmp dword [eax*4 + 0x470d30]
mov edx, 7
mov word [esi], dx
jmp case.0x46f074.99
mov eax, 8
jmp 0x46f0bd
mov edx, 0xc
mov word [esi], dx
jmp case.0x46f074.99
mov eax, 0xa
jmp 0x46f0bd
mov edx, 0xd
mov word [esi], dx
jmp case.0x46f074.99
mov eax, 9
jmp 0x46f0bd
mov edx, 0xb
mov word [esi], dx
jmp case.0x46f074.99
mov eax, 0x20
mov word [esi], ax
mov eax, esi
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x46f0c5
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 0x46f005
push 5
push 0x4ea83c
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x46f112
cmp word [esi + 0xa], bx
setne byte [esp + 0x2e]
jmp 0x46f184
push 5
push 0x4ea858
call fcn.0049fc00
add esp, 4
push eax
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x46f13a
cmp word [esi + 0xa], bx
setne byte [esp + 0x32]
jmp 0x46f184
movzx eax, word [esi]
test ax, ax
je 0x46f184
movzx eax, ax
add eax, 0xffffffdb
cmp eax, 0x3e
ja case.0x46f154.38
movzx eax, byte [eax + 0x470d84]
jmp dword [eax*4 + 0x470d6c]
mov byte [esp + 0x30], 1
jmp case.0x46f154.38
mov byte [esp + 0x2d], 1
jmp case.0x46f154.38
mov byte [esp + 0x33], 0
jmp case.0x46f154.38
mov dword [esp + 0x20], 2
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x46f142
mov word [ebp], di
mov esi, ebp
lea ebx, [ebx]
movzx eax, word [esi]
cmp eax, 0x20
je 0x46f19d
cmp eax, 9
jne 0x46f1a2
add esi, 2
jmp 0x46f190
cmp word [esi], 0
jne 0x46ef53
mov byte [esp + 0x74], 1
jmp 0x46eb32
cmp ebp, 0xffffffff
je 0x470c3d
cmp ebp, 0xfffffffe
je 0x46eb32
cmp word [ebx], 0x29
jne 0x46f25b
mov eax, ebx
mov dword [esp + 0x20], 0
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46f1e0
sub eax, edx
sar eax, 1
lea ecx, [ebx + eax*2 - 2]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x46f200
cmp edx, 9
jne 0x46f20a
cmp ecx, ebx
je 0x46f223
sub ecx, 2
dec eax
jmp 0x46f1f3
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
xor edx, edx
mov ebp, eax
add ebx, 2
mov word [ecx + 2], dx
dec ebp
jmp 0x46f371
movzx edx, word [ecx]
cmp edx, 0x20
je 0x46f243
cmp edx, 9
je 0x46f243
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
mov ebp, eax
add ebx, 2
dec ebp
jmp 0x46f371
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
xor eax, eax
xor ebp, ebp
add ebx, 2
mov word [ecx], ax
dec ebp
jmp 0x46f371
cmp byte [esp + 0x32], 0
mov edi, dword [esp + 0x34]
mov ebx, edi
je 0x46f273
mov eax, ebp
mov esi, edi
call fcn.0041bb90
mov ebp, eax
cmp byte [esp + 0x2e], 0
je 0x46f287
mov edi, dword [esp + 0x34]
mov eax, ebp
call fcn.00430c00
mov ebp, eax
xor esi, esi
cmp byte [esp + 0x30], 0
je 0x46f2c6
mov ax, word [0x511548]
push esi
push 0x4001
push 0xffffffffffffffff
push 1
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x54]
push edx
mov word [esp + 0x58], ax
mov word [esp + 0x5c], ax
mov word [esp + 0x5e], ax
push edi
xor eax, eax
call fcn.004a7990
add esp, 0x1c
mov esi, eax
cmp byte [esp + 0x2d], 0
je 0x46f30b
mov ax, word [0x511544]
mov cx, word [0x511548]
push 0
push 0x4001
push 0xffffffffffffffff
push 1
mov word [esp + 0x50], ax
mov word [esp + 0x56], ax
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x54]
push eax
push edi
xor eax, eax
mov word [esp + 0x60], cx
call fcn.004a7990
add esp, 0x1c
add esi, eax
cmp byte [esp + 0x33], 0
je 0x46f350
mov ax, word [0x511540]
mov cx, word [0x511548]
push 0
push 0x4001
push 0xffffffffffffffff
push 1
mov word [esp + 0x50], ax
mov word [esp + 0x56], ax
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x54]
push eax
push edi
xor eax, eax
mov word [esp + 0x60], cx
call fcn.004a7990
add esp, 0x1c
add esi, eax
test esi, esi
je 0x46f371
mov eax, edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46f360
sub eax, edx
sar eax, 1
mov ebp, eax
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
lea ecx, [esi + ebp]
add ecx, eax
cmp ecx, 0x4001
jae 0x470ac4
mov ecx, dword [esp + 0x70]
inc ecx
mov dword [esp + 0x70], ecx
cmp ecx, 1
jle 0x46f3c1
test esi, esi
je 0x46f3c1
cmp ebx, edi
jne 0x46f3c1
lea edx, [esi + esi + 2]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x94]
push ecx
lea eax, [edx + eax*2]
push eax
call fcn.004cd6c0
add esp, 0xc
add dword [esp + 0x1c], esi
test ebp, ebp
je 0x46eb32
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
lea ecx, [ebp + ebp + 2]
push ecx
lea eax, [edx + esi*2]
push ebx
push eax
call fcn.004cd6c0
add esp, 0xc
add esi, ebp
mov dword [esp + 0x1c], esi
jmp 0x46eb32
mov word [ebp], di
mov ebx, dword [esp + 0x1a18c]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [0x51161c]
mov esi, dword [esp + 0x14]
jmp 0x46f410
test eax, eax
je case.0x47000f.14
cmp word [esp + 0xa178], 0
je 0x46f5a6
mov edx, dword [esp + 0x50]
mov edi, dword [ebx + 0x274]
mov dword [ebx + 0x274], edx
cmp word [esi], 0x7b
je 0x46f48e
cmp byte [esp + 0x19], 0
jne 0x46f48e
test ebp, ebp
jne 0x470aec
cmp dword [ebx + 0x4c], ebp
je 0x46f45d
cmp dword [ecx + 0xb4], ebp
je 0x470b02
cmp dword [0x518a90], 0
je 0x46f46e
lea eax, [edi - 1]
mov dword [0x519368], eax
push 0
push 0
push 0
push 0
push 0
push 3
lea ecx, [esp + 0xa190]
push ecx
mov ecx, ebx
call fcn.00472d70
jmp 0x46f518
mov eax, ebp
sub eax, 0
je 0x46f4d8
dec eax
je 0x46f4c0
dec eax
jne 0x46f52a
mov ebx, dword [esp + 0x1a18c]
lea esi, [esp + 0xa178]
call fcn.00420180
test eax, eax
je 0x470542
mov esi, dword [esp + 0x14]
jmp 0x46f52a
lea edx, [esp + 0xa178]
push edx
push ebx
call fcn.0041fc60
test eax, eax
je 0x470542
jmp 0x46f52a
cmp dword [ecx + 0xb4], 0
jne 0x470b5f
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0xa17c]
push ecx
push ebx
call fcn.0041f1d0
test eax, eax
je 0x470542
cmp byte [esp + 0x19], 0
je 0x46f52a
push 0
push 0
push 0
push 0x73
push ebx
call fcn.00475270
test eax, eax
je 0x470542
mov dword [ebx + 0x634], 0
xor edx, edx
mov word [esp + 0xa178], dx
test ebp, ebp
je 0x46f59a
cmp byte [esp + 0x19], dl
jne 0x46f59a
lea ecx, [esi + 2]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x46f54e
cmp eax, 9
jne 0x46f553
add ecx, 2
jmp 0x46f541
cmp word [ecx], dx
jne 0x46f563
mov dword [ebx + 0x274], edi
jmp case.0x47000f.14
mov eax, ecx
lea esi, [eax + 2]
jmp 0x46f570
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x46f570
sub eax, esi
sar eax, 1
mov dword [esp + 0x1c], eax
lea eax, [eax + eax + 2]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004c5960
mov esi, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [0x51161c]
mov dword [ebx + 0x274], edi
cmp word [esi], 0x7d
jne 0x46f682
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x46f682
cmp dword [ecx + 0xb4], 0
jne 0x46f682
cmp dword [ebx + 0x268], 0
je 0x46f5fa
mov eax, dword [ebx + 0x26c]
mov dword [ebx + 0x268], 0
test eax, eax
je 0x46f634
push eax
call fcn.004c57e5
add esp, 4
mov dword [ebx + 0x26c], 0
jmp 0x46f634
dec eax
mov dword [ebx + 0x4c], eax
mov edi, dword [ebx + eax*4 + 0x50]
call fcn.0049b090
mov edx, dword [ebx + 0x4c]
mov eax, dword [ebx + edx*4 + 0x50]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea esi, [ebx + 0x64]
push 0x2e
push esi
call fcn.004c6cf1
add esp, 8
test eax, eax
je 0x46f62f
xor ecx, ecx
mov word [eax], cx
jmp 0x46f634
xor edx, edx
mov word [esi], dx
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 2]
add eax, 2
cmp ecx, 0x20
je 0x46f638
cmp ecx, 9
je 0x46f638
cmp word [eax], 0
mov dword [esp + 0x14], eax
je case.0x47000f.14
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46f660
sub eax, edx
sar eax, 1
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x634], 0
jmp 0x46f401
cmp dword [ebx + 0x268], 0
je 0x46f758
cmp dword [ecx + 0xb4], 0
jne 0x46f758
push 3
push 0x4ea728
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
je 0x46f6c8
push 3
push 0x5055f8
push esi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x470b78
mov edi, dword [esp + 0x14]
lea esi, [edi + 6]
nop
movzx eax, word [esi]
cmp eax, 0x20
je 0x46f6dd
cmp eax, 9
jne 0x46f6e2
add esi, 2
jmp 0x46f6d0
movzx eax, word [esi]
test ax, ax
je 0x46f6fe
cmp eax, 0x7b
jne 0x470b7c
cmp word [esi + 2], 0
jne 0x470b7c
mov eax, dword [ebx + 0x26c]
lea edx, [esp + 0xa178]
sub edx, eax
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x46f710
lea eax, [esp + 0xa178]
push 0x2e
push eax
call fcn.004c5cc1
mov cx, word [edi]
mov word [eax + 2], cx
mov edx, dword [ebx + 0x274]
add esp, 8
cmp word [esi], 0x7b
mov dword [esp + 0x50], edx
sete byte [esp + 0x19]
mov dword [esp + 0x3c], 0
jmp case.0x47000f.14
lea eax, [esp + 0x19]
push eax
mov eax, esi
call fcn.0041e8c0
add esp, 4
test al, al
je 0x46f79c
lea edx, [esp + 0xa178]
mov eax, esi
sub edx, esi
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x46f776
mov ecx, dword [ebx + 0x274]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], 0
jmp case.0x47000f.14
mov edx, dword [0x51161c]
cmp dword [edx + 0xb4], 0
jne 0x46f976
lea eax, [esp + 0x19]
push eax
mov eax, esi
call fcn.0046e030
add esp, 4
test eax, eax
je 0x46f7f6
lea edx, [esp + 0xa178]
sub edx, eax
jmp 0x46f7d0
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x46f7d0
mov ecx, dword [ebx + 0x274]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], 1
jmp case.0x47000f.14
cmp dword [ebx + 0x4c], 0
je 0x46f976
mov edi, dword [esp + 0x14]
mov esi, edi
movzx eax, word [esi]
test eax, 0xffffff80
jne 0x46f822
push 0x107
push eax
call fcn.004c613e
add esp, 8
test eax, eax
jne 0x46f834
movzx eax, word [esi]
cmp eax, 0x5f
je 0x46f834
cmp eax, 0x7f
ja 0x46f834
cmp eax, 0x2e
jne 0x46f839
add esi, 2
jmp 0x46f806
cmp esi, edi
jbe 0x46f8ec
movzx eax, word [esi]
cmp eax, 0x20
je 0x46f84e
cmp eax, 9
jne 0x46f853
add esi, 2
jmp 0x46f841
movzx eax, word [esi]
cmp eax, 0x3a
jne 0x46f878
cmp word [esi + 2], 0x3d
jne 0x46f878
push 0
push edi
push ebx
call fcn.00420320
test eax, eax
je 0x470542
jmp case.0x47000f.14
test ax, ax
je 0x46f88e
cmp eax, 0x5b
je 0x46f88e
cmp eax, 0x7b
jne 0x46f8ec
cmp word [esi + 2], 0
jne 0x46f8ec
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46f893
sub eax, edx
sar eax, 1
cmp word [edi + eax*2 - 2], 0x7b
sete cl
mov byte [esp + 0x19], cl
test cl, cl
je 0x46f8bb
dec eax
mov esi, edi
call fcn.0041bb90
lea edx, [esp + 0xa178]
mov eax, edi
sub edx, edi
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x46f8c6
mov edx, dword [ebx + 0x274]
mov dword [esp + 0x50], edx
mov dword [esp + 0x3c], 2
jmp case.0x47000f.14
push 6
push 0x4e4ce4
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c56eb
add esp, 0xc
test eax, eax
jne 0x46f930
movzx eax, word [edi + 0xc]
cmp eax, 0x20
je 0x46f917
cmp eax, 9
jne 0x46f930
push 1
add edi, 0xe
push edi
push ebx
call fcn.00420320
test eax, eax
je 0x470542
jmp case.0x47000f.14
cmp word [edi], 0x23
jne 0x470b8e
mov esi, dword [ebx + 0x274]
push edi
push ebx
call fcn.004712c0
test eax, eax
je 0x470542
cmp eax, 3
jne 0x470b8e
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x270], eax
mov dword [ebx + 0x274], esi
mov dword [0x519364], eax
jmp case.0x47000f.14
mov esi, dword [esp + 0x14]
xor ebp, ebp
cmp word [esi], 0x3a
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebp
jne 0x46fa66
movzx ecx, word [esi + 2]
cmp cx, bp
je 0x46fa66
lea edi, [esi + 2]
mov dword [esp + 0x78], edi
cmp ecx, 0x3a
je 0x46f9c6
push 0x3a
push edi
call fcn.004c5cc1
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x46f9bd
mov dword [esp + 0x20], ebp
jmp 0x46fa66
add ebx, 2
mov dword [esp + 0x20], ebx
jmp 0x46f9d9
cmp word [esi + 4], bp
lea eax, [esi + 4]
je 0x46fa66
mov ebx, eax
mov dword [esp + 0x20], eax
test ebx, ebx
je 0x46fa66
mov al, byte [0x5166de]
mov byte [esp + 0x27], al
cmp edi, ebx
jae 0x46fa26
mov edi, edi
movzx esi, word [edi]
test esi, 0xffffff80
jne 0x46fa0d
push 2
push esi
call fcn.004c613e
add esp, 8
test eax, eax
je 0x46fa0d
and esi, 0xffffffdf
cmp si, 0x58
je 0x46fa1c
add edi, 2
cmp edi, ebx
jb 0x46f9f0
jmp 0x46fa26
cmp word [edi + 2], 0x30
setne byte [esp + 0x27]
mov edi, ebx
movzx eax, word [edi]
mov cx, word [0x511548]
test ax, ax
je 0x46fa56
cmp ax, cx
je 0x46fad6
cmp ax, 0x3a
je 0x46fad6
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x46fa37
test ebp, ebp
jne 0x46fbd5
mov esi, dword [esp + 0x14]
mov dword [esp + 0x20], ebp
push 0x50551c
push esi
call fcn.004c5ce8
mov ebp, eax
add esp, 8
mov dword [esp + 0x28], ebp
test ebp, ebp
je 0x47036f
mov ecx, dword [esp + 0x14]
cmp ebp, ecx
jne 0x46fa98
cmp word [ebp + 4], 0x3a
jne 0x46fa98
add ebp, 2
mov dword [esp + 0x28], ebp
mov esi, ebp
cmp ebp, ecx
jbe 0x46fab4
mov edi, edi
movzx eax, word [esi]
cmp eax, 0x20
je 0x46faad
cmp eax, 9
jne 0x46fab4
sub esi, 2
cmp esi, ecx
ja 0x46faa0
movzx edi, word [esi]
xor edx, edx
mov word [esi], dx
lea esp, [esp]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x46fad1
cmp eax, 9
jne 0x46fba4
add ecx, 2
jmp 0x46fac0
movzx eax, word [edi]
test ax, ax
je 0x46fa56
lea esi, [edi + 2]
cmp eax, 0x3a
jne 0x46fb0e
cmp word [esi], ax
jne 0x46fb9c
cmp byte [esp + 0x27], 0
mov ebp, edi
mov dword [esp + 0x28], ebp
mov edi, esi
jne 0x46fa56
add edi, 2
jmp 0x46fa28
movzx eax, word [esi]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x46fb20.99
movzx ecx, byte [eax + 0x470de4]
jmp dword [ecx*4 + 0x470dc4]
mov edx, 7
jmp 0x46fb62
mov eax, 8
mov word [esi], ax
jmp case.0x46fb20.99
mov ecx, 0xc
mov word [esi], cx
jmp case.0x46fb20.99
mov edx, 0xa
jmp 0x46fb62
mov eax, 0xd
mov word [esi], ax
jmp case.0x46fb20.99
mov ecx, 9
mov word [esi], cx
jmp case.0x46fb20.99
mov edx, 0xb
mov word [esi], dx
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46fb70
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push esi
push edi
call fcn.004c5960
add esp, 0xc
cmp word [edi], 0x3a
jne 0x46fb9c
cmp word [esi], 0x3a
jne 0x46fb9c
mov edi, esi
add edi, 2
jmp 0x46fa28
push 0
push ecx
xor ebx, ebx
call fcn.0040c2e0
add esp, 8
mov dword [esp + 0x7c], eax
test eax, eax
je 0x46fbc4
cmp eax, 4
je 0x470542
jmp 0x46fbca
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov word [esi], di
test ebp, ebp
je 0x47036f
mov ebx, dword [esp + 0x14]
cmp ebp, ebx
jbe 0x470373
mov eax, dword [0x51161c]
cmp dword [eax + 0xb4], 0
jne 0x470ba0
mov ebp, dword [esp + 0x1a18c]
mov eax, dword [ebp + 4]
test eax, eax
je 0x46fc0b
cmp word [eax], 0x1a
je 0x470bab
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov word [edi], cx
add edi, 4
mov dword [esp + 0x28], edi
cmp dword [esp + 0x20], ecx
jne 0x470098
cmp word [edi], cx
je 0x46fc6e
mov edx, edi
lea esp, [esp]
movzx eax, word [edx]
cmp eax, 0x20
je 0x46fc3d
cmp eax, 9
jne 0x46fc42
add edx, 2
jmp 0x46fc30
mov eax, edx
sub eax, edi
sar eax, 1
je 0x46fc6e
mov eax, edx
lea esi, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46fc50
sub eax, esi
sar eax, 1
lea ecx, [eax + eax + 2]
push ecx
push edx
push edi
call fcn.004c5960
add esp, 0xc
mov esi, dword [esp + 0x28]
cmp word [esi], 0
mov ebp, esi
je 0x47008d
cmp word [esi + 2], 0
je 0x46fdeb
movzx eax, word [esi + 2]
xor dl, dl
xor cl, cl
test ax, ax
je 0x46fd75
mov edi, dword [esp + 0x58]
mov edi, edi
cmp ax, 0x20
je case.0x46fcc0.34
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x46fcc0.34
movzx eax, byte [eax + 0x470e1c]
jmp dword [eax*4 + 0x470dfc]
mov cl, 1
jmp case.0x46fcc0.36
mov dl, 1
jmp case.0x46fcc0.36
test cl, cl
jne 0x46fce2
test dl, dl
jne 0x46fce6
or edi, 1
jmp case.0x46fcc0.36
test dl, dl
je 0x46fced
or byte [esp + 0x13], 4
xor dl, dl
test cl, cl
je case.0x46fcc0.36
or byte [esp + 0x13], 8
jmp 0x46fd5f
test cl, cl
jne 0x46fd05
test dl, dl
jne 0x46fd09
or edi, 2
jmp case.0x46fcc0.36
test dl, dl
je 0x46fd10
or byte [esp + 0x13], 1
xor dl, dl
test cl, cl
je case.0x46fcc0.36
or byte [esp + 0x13], 2
jmp 0x46fd5f
test cl, cl
jne 0x46fd28
test dl, dl
jne 0x46fd2c
or edi, 4
jmp case.0x46fcc0.36
test dl, dl
je 0x46fd33
or byte [esp + 0x13], 0x10
xor dl, dl
test cl, cl
je case.0x46fcc0.36
or byte [esp + 0x13], 0x20
jmp 0x46fd5f
test cl, cl
jne 0x46fd4b
test dl, dl
jne 0x46fd4f
or edi, 8
jmp case.0x46fcc0.36
test dl, dl
je 0x46fd56
or byte [esp + 0x13], 0x40
xor dl, dl
test cl, cl
je case.0x46fcc0.36
or byte [esp + 0x13], 0x80
xor cl, cl
movzx eax, word [esi + 4]
add esi, 2
test ax, ax
jne 0x46fca0
mov dword [esp + 0x58], edi
push 0
mov ebp, esi
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
push 0
mov eax, esi
call fcn.00414250
add esp, 0xc
mov byte [esp + 0x18], al
test al, al
je 0x47008d
mov bl, al
mov esi, dword [esp + 0x14]
cmp word [esi], 0
je 0x46fead
movzx ecx, word [esi + 2]
mov eax, esi
add esi, 2
xor bl, bl
xor dl, dl
test cx, cx
je 0x46fea7
mov edi, dword [esp + 0x54]
cmp cx, 0x20
je case.0x46fde4.34
movzx ecx, word [eax]
add ecx, 0xffffffdf
cmp ecx, 0x5d
ja case.0x46fde4.34
movzx ecx, byte [ecx + 0x470e9c]
jmp dword [ecx*4 + 0x470e7c]
or bl, 0xff
mov byte [esp + 0x18], bl
jmp 0x46fd9c
mov dl, 1
jmp case.0x46fde4.36
mov bl, 1
jmp case.0x46fde4.36
test dl, dl
jne 0x46fe12
test bl, bl
jne 0x46fe16
or edi, 1
jmp case.0x46fde4.36
test bl, bl
je 0x46fe1d
or byte [esp + 0x12], 4
xor bl, bl
test dl, dl
je case.0x46fde4.36
or byte [esp + 0x12], 8
jmp 0x46fe8f
test dl, dl
jne 0x46fe35
test bl, bl
jne 0x46fe39
or edi, 2
jmp case.0x46fde4.36
test bl, bl
je 0x46fe40
or byte [esp + 0x12], 1
xor bl, bl
test dl, dl
je case.0x46fde4.36
or byte [esp + 0x12], 2
jmp 0x46fe8f
test dl, dl
jne 0x46fe58
test bl, bl
jne 0x46fe5c
or edi, 4
jmp case.0x46fde4.36
test bl, bl
je 0x46fe63
or byte [esp + 0x12], 0x10
xor bl, bl
test dl, dl
je case.0x46fde4.36
or byte [esp + 0x12], 0x20
jmp 0x46fe8f
test dl, dl
jne 0x46fe7b
test bl, bl
jne 0x46fe7f
or edi, 8
jmp case.0x46fde4.36
test bl, bl
je 0x46fe86
or byte [esp + 0x12], 0x40
xor bl, bl
test dl, dl
je case.0x46fde4.36
or byte [esp + 0x12], 0x80
xor dl, dl
mov eax, esi
movzx ecx, word [eax + 2]
lea esi, [eax + 2]
test cx, cx
jne 0x46fdc4
mov dword [esp + 0x54], edi
mov bl, byte [esp + 0x18]
mov esi, eax
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push eax
push 0
push 0
mov eax, esi
call fcn.00414250
add esp, 0xc
push 0x4e6db4
push esi
mov byte [esp + 0x39], al
call fcn.004c5ce8
add esp, 8
test eax, eax
mov al, byte [esp + 0x31]
setne byte [esp + 0x3a]
lea edx, [eax - 1]
cmp dl, 5
ja 0x46feed
cmp al, 3
jne 0x46fef3
add al, 0x66
cmp al, 5
ja 0x46fef7
mov al, 1
jmp 0x46fef9
xor al, al
lea ecx, [ebx - 1]
cmp cl, 5
ja 0x46ff06
cmp bl, 3
jne 0x46ff0e
add bl, 0x66
cmp bl, 5
ja 0x46ff15
mov byte [esp + 0x1b], 1
jmp 0x46ff1a
mov byte [esp + 0x1b], 0
test al, al
jne 0x46ff29
mov byte [esp + 0x2f], 1
cmp byte [esp + 0x1b], al
jne 0x46ff2e
mov byte [esp + 0x2f], 0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46ff33
sub eax, edx
sar eax, 1
cmp eax, 1
jne 0x46ff5a
movzx edx, word [esi]
push edx
call dword [sym.imp.USER32.dll_IsCharUpperW]
mov ecx, 0x505718
test eax, eax
jne 0x46ff5f
mov ecx, 0x4e1a4c
cmp byte [esp + 0x3a], 0
mov eax, 0x4e1a4c
jne 0x46ff70
mov eax, 0x4efedc
mov edx, dword [esp + 0x14]
push edx
push ecx
push eax
push 0x4ebde4
mov esi, 0x20
lea edi, [esp + 0x100]
call fcn.004a71f0
push 0x1f
lea eax, [esp + 0xc4]
push ebp
push eax
call fcn.004c67b5
mov esi, dword [esp + 0x44]
add esp, 0x1c
push 7
lea edx, [esp + 0x84]
xor ecx, ecx
push esi
push edx
mov word [esp + 0xfa], cx
call fcn.004c67b5
xor eax, eax
sub ebp, esi
mov word [esp + 0x9a], ax
mov eax, ebp
sar eax, 1
add esp, 0xc
cmp eax, 8
jae 0x46ffe0
xor ecx, ecx
mov word [esp + eax*2 + 0x80], cx
cmp word [esp + 0x80], 0
mov dword [esp + 0x5c], 0
jne case.0x47000f.14
movzx eax, byte [esp + 0x18]
add eax, 0xfffffff3
cmp eax, 0x52
ja case.0x47000f.14
movzx edx, byte [eax + 0x470f0c]
jmp dword [edx*4 + 0x470efc]
cmp word [esi], 0
je case.0x47000f.14
movzx eax, word [esi]
test ax, ax
je case.0x47000f.14
lea esp, [esp]
movzx edx, ax
mov ecx, 0x4e76a8
mov eax, 0x20
lea ecx, [ecx]
cmp dx, ax
je case.0x47000f.19
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x470040
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x470030
jmp case.0x47000f.14
push 0x4e4018
call fcn.0049fc00
add esp, 4
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.004c4e9d
add esp, 8
test eax, eax
jne case.0x47000f.14
mov byte [esp + 0x18], 0
mov ebp, dword [esp + 0x1a18c]
mov edi, dword [esp + 0x28]
cmp byte [ebp + 0x278], 0
je 0x4700cb
push 0
push 0xff
push 0
push 0x67
push ebp
mov byte [ebp + 0x278], 0
call fcn.00475270
test eax, eax
je 0x470542
mov dword [ebp + 0x634], 0
mov ebx, dword [esp + 0x14]
push 1
mov eax, ebx
mov esi, ebp
call fcn.0041edb0
test eax, eax
je 0x470542
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4701f7
cmp word [eax], 0
je 0x470bc7
mov bl, byte [esp + 0x27]
mov eax, 0x4e1a4c
test bl, bl
jne 0x470107
mov eax, edi
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x20]
push 0
push ecx
push eax
push edx
push ecx
mov ecx, dword [ebp + 0x14]
mov eax, esp
mov dword [eax], ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 4]
push eax
call fcn.0040d520
add esp, 0x18
test eax, eax
je 0x470542
mov ecx, dword [esp + 0x28]
cmp word [ecx], 0
je case.0x47000f.14
test bl, bl
je 0x4701d5
mov edi, ecx
nop
movzx eax, word [ecx]
cmp eax, 0x20
je 0x47015d
cmp eax, 9
jne 0x470162
add ecx, 2
jmp 0x470150
mov esi, dword [esp + 0x1a18c]
push 0
push 0
push 0
push 0
push 0
push 0
push ecx
mov ecx, esi
call fcn.00472d70
test eax, eax
je 0x470542
mov edx, dword [esi + 4]
movzx eax, word [edx]
cmp eax, 9
jb 0x470195
cmp eax, 0x20
jbe 0x4701ae
cmp eax, 0x21
je 0x4701ae
cmp eax, 0x69
jb 0x4701a4
cmp eax, 0x6b
jbe 0x4701ae
cmp eax, 0x6f
jb 0x4701dc
cmp eax, 0x71
ja 0x4701dc
mov eax, dword [esp + 0x14]
push eax
mov edx, 0x3a
push str.Invalid_single_line_hotkey_hotstring.
mov ecx, esi
mov word [edi - 4], dx
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
mov esi, dword [esp + 0x1a18c]
push 0
push 0
push 0
push 0x67
push esi
call fcn.00475270
test eax, eax
je 0x470542
jmp case.0x47000f.14
xor esi, esi
cmp word [edi], si
je 0x470280
push esi
mov esi, edi
call fcn.0040a0a0
movzx esi, ax
add esp, 4
test si, si
jne 0x47026a
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov ecx, ebp
call fcn.00472d70
test eax, eax
je 0x470542
mov eax, dword [ebp + 4]
movzx eax, word [eax]
cmp eax, 9
jb 0x470245
cmp eax, 0x20
jbe 0x470bd9
cmp eax, 0x21
je 0x470bd9
cmp eax, 0x69
jb 0x47025c
cmp eax, 0x6b
jbe 0x470bd9
cmp eax, 0x6f
jb 0x47026a
cmp eax, 0x71
jbe 0x470bd9
push 0
push 0
push 0
push 0x67
push ebp
call fcn.00475270
test eax, eax
je 0x470542
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x3b]
push ecx
lea edx, [esp + 0x6c]
push edx
push ebx
call fcn.0040ca50
mov edi, eax
add esp, 0xc
test edi, edi
je 0x470302
test si, si
je 0x4702ab
mov word [edi + 6], si
jmp case.0x47000f.14
mov eax, dword [edi + 0x20]
test eax, eax
je 0x4702d0
mov ecx, dword [0x51605c]
jmp 0x4702c0
cmp dword [eax + 4], ecx
je 0x470bfc
mov eax, dword [eax + 8]
test eax, eax
jne 0x4702c0
mov eax, dword [esp + 0x68]
push eax
mov eax, dword [ebp + 0x14]
call fcn.0040c1c0
test eax, eax
je 0x470c18
cmp byte [esp + 0x3b], 0
jne 0x4702f9
cmp byte [0x5166ec], 0
je case.0x47000f.14
mov byte [edi + 0x14], 1
jmp case.0x47000f.14
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x68]
mov edx, dword [eax + 4]
push ecx
push edx
push esi
push eax
xor bl, bl
call fcn.0040ba60
add esp, 0x10
test eax, eax
jne case.0x47000f.14
cmp dword [esp + 0x7c], 3
jne 0x470542
mov eax, dword [esp + 0x14]
push eax
push 0x505808
call fcn.0049fc00
add esp, 4
push eax
mov esi, 0x80
lea edi, [esp + 0x138]
call fcn.004a71f0
fldz
fstp qword [esp]
mov ecx, edi
push 0
push 0
push 0x10000
push ecx
call fcn.004abe70
add esp, 0x18
jmp case.0x47000f.14
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, 0x3a
cmp word [ebx + esi*2 - 2], di
jne 0x470764
cmp esi, 1
je 0x470c32
movzx eax, word [ebx]
mov ecx, ebx
test ax, ax
je 0x4703da
mov dx, word [0x511540]
mov bp, word [0x511548]
cmp ax, 0x20
je 0x470764
cmp ax, 9
je 0x470764
cmp ax, dx
je 0x470764
cmp ax, bp
je 0x470764
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4703a8
cmp word [ebx + esi*2 - 4], di
jne 0x4703ea
cmp esi, 2
ja 0x470764
xor edx, edx
push str.Default
push ebx
mov word [ebx + esi*2 - 2], dx
call fcn.004c4e9d
mov edi, dword [esp + 0x1a194]
add esp, 8
test eax, eax
jne 0x470440
mov eax, dword [edi + 0x40]
test eax, eax
je 0x470440
mov eax, dword [eax + 0x14]
test eax, eax
je 0x470440
mov ecx, 0xe2
cmp word [eax], cx
jne 0x470440
push 0
push 0
push 0
push 0xe3
push edi
call fcn.00475270
test eax, eax
je 0x470542
jmp case.0x47000f.14
cmp word [ebx], 0
je 0x470542
mov esi, dword [edi + 0x10]
test esi, esi
je 0x47046d
mov edx, dword [esi + 4]
push ebx
push edx
call fcn.004c4e9d
add esp, 8
test eax, eax
je 0x4704f1
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x470451
cmp word [ebx], 0
je 0x4705fe
mov eax, ebx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x470480
sub eax, edx
sar eax, 1
lea ebp, [eax + eax]
lea ebx, [ebp + 2]
mov dword [esp + 0x20], eax
lea eax, [ebx - 1]
cmp eax, 0xffff
ja 0x47052e
xor edi, edi
cmp dword [0x516e28], edi
jne 0x470551
push 0x10
call fcn.004c62f8
mov esi, eax
add esp, 4
cmp esi, edi
je 0x4704e7
push 0x10000
mov dword [esi + 0xc], edi
call fcn.004c4f28
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
cmp eax, edi
jne 0x470510
push esi
call fcn.004c57da
add esp, 4
mov esi, dword [0x516e2c]
xor eax, eax
jmp 0x470525
push ebx
push 0x4e9b00
call fcn.0049fc00
add esp, 4
push eax
mov ecx, edi
call fcn.004768b0
test eax, eax
je 0x470542
jmp case.0x47000f.14
inc dword [0x516e34]
mov dword [esi + 8], 0x10000
mov dword [0x516e2c], esi
mov eax, esi
mov dword [0x516e28], eax
cmp eax, edi
jne 0x470557
mov ecx, dword [esp + 0x14]
push ecx
push str.Out_of_memory.
mov ecx, 0x516ea8
call fcn.004768b0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
mov esi, dword [0x516e2c]
cmp ebx, dword [esi + 8]
jbe 0x4705b8
push 0x10
call fcn.004c62f8
mov esi, eax
add esp, 4
cmp esi, edi
je 0x47058e
push 0x10000
mov dword [esi + 0xc], edi
call fcn.004c4f28
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
cmp eax, edi
jne 0x470598
push esi
call fcn.004c57da
add esp, 4
mov esi, dword [0x516e2c]
xor eax, eax
jmp 0x4705ad
inc dword [0x516e34]
mov dword [esi + 8], 0x10000
mov dword [0x516e2c], esi
mov eax, esi
mov dword [esi + 0xc], eax
cmp eax, edi
je 0x47052e
mov edi, dword [esi + 4]
mov eax, ebx
and eax, 3
mov dword [0x516e30], edi
je 0x4705cd
sub ebx, eax
add ebx, 4
mov eax, ebx
sub dword [esi + 8], eax
lea ecx, [edi + eax]
mov dword [esi + 4], ecx
test edi, edi
je 0x47052e
cmp dword [esp + 0x20], 0
je 0x4705f6
mov edx, dword [esp + 0x14]
push ebp
push edx
push edi
call fcn.004cd6c0
add esp, 0xc
xor eax, eax
mov word [edi + ebp], ax
jmp 0x470609
mov esi, dword [0x516e2c]
mov edi, 0x4e1a4c
cmp dword [0x516e28], 0
jne 0x470674
push 0x10
call fcn.004c62f8
mov esi, eax
add esp, 4
test esi, esi
je 0x470648
push 0x10000
mov dword [esi + 0xc], 0
call fcn.004c4f28
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
test eax, eax
jne 0x470652
push esi
call fcn.004c57da
add esp, 4
mov esi, dword [0x516e2c]
xor eax, eax
jmp 0x470667
inc dword [0x516e34]
mov dword [esi + 8], 0x10000
mov dword [0x516e2c], esi
mov eax, esi
mov dword [0x516e28], eax
test eax, eax
je 0x470719
cmp dword [esi + 8], 0x14
jae 0x4706d6
push 0x10
call fcn.004c62f8
mov esi, eax
add esp, 4
test esi, esi
je 0x4706b0
push 0x10000
mov dword [esi + 0xc], 0
call fcn.004c4f28
add esp, 4
mov dword [esi + 4], eax
mov dword [esi], eax
test eax, eax
jne 0x4706ba
push esi
call fcn.004c57da
add esp, 4
mov esi, dword [0x516e2c]
xor eax, eax
jmp 0x4706cf
inc dword [0x516e34]
mov dword [esi + 8], 0x10000
mov dword [0x516e2c], esi
mov eax, esi
mov dword [esi + 0xc], eax
test eax, eax
je 0x470719
mov eax, dword [esi + 4]
add dword [esi + 8], 0xffffffec
lea ecx, [eax + 0x14]
mov dword [0x516e30], eax
mov dword [esi + 4], ecx
test eax, eax
je 0x470719
mov ecx, dword [esp + 0x1a18c]
xor edx, edx
mov dword [eax], vtable.Label.0
mov dword [eax + 4], edi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0xc], ebx
mov esi, eax
cmp dword [ecx + 0x10], edx
jne 0x47072f
mov dword [ecx + 0x10], eax
jmp 0x470735
mov ecx, dword [esp + 0x1a18c]
push 0x4e1a4c
push str.Out_of_memory.
jmp 0x470502
mov edx, dword [ecx + 0x14]
mov dword [edx + 0x10], eax
mov ebx, ecx
push 0x4e9b34
mov dword [ebx + 0x14], eax
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c4e9d
add esp, 8
test eax, eax
jne case.0x47000f.14
mov dword [ebx + 0xa8c], esi
jmp case.0x47000f.14
cmp word [ebx], 0x23
mov edi, dword [esp + 0x1a18c]
jne 0x4707a5
mov esi, dword [edi + 0x274]
push ebx
push edi
call fcn.004712c0
test eax, eax
je 0x470542
cmp eax, 3
jne 0x4707a5
mov eax, dword [esp + 0x64]
mov dword [edi + 0x270], eax
mov dword [edi + 0x274], esi
mov dword [0x519364], eax
jmp case.0x47000f.14
movzx eax, word [ebx]
cmp eax, 0x7b
je 0x4707e2
cmp eax, 0x7d
je 0x4707e2
cmp dword [0x518a90], 0
je 0x4707c4
mov eax, dword [esp + 0x4c]
mov dword [0x519368], eax
push 0
push 0
push 0
push 0
push 0
push 0
push ebx
mov ecx, edi
call fcn.00472d70
test eax, eax
je 0x470542
jmp case.0x47000f.14
xor ecx, ecx
cmp eax, 0x7b
setne cl
push 0
push 0
push 0
add ecx, 0x73
push ecx
push edi
call fcn.00475270
test eax, eax
je 0x470542
lea eax, [ebx + 2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x470812
cmp ecx, 9
jne 0x470817
add eax, 2
jmp 0x470805
cmp word [eax], 0
mov dword [esp + 0x14], eax
jne 0x4709cc
mov bl, byte [esp + 0x18]
test bl, bl
je case.0x47084b.4
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
dec eax
cmp eax, 9
ja case.0x47084b.4
movzx edx, byte [eax + 0x470f74]
jmp dword [edx*4 + 0x470f60]
lea eax, [esp + 0xf0]
push eax
push str.w_hh
call fcn.0049fc00
mov ecx, dword [esp + 0x1c]
add esp, 4
push eax
push ecx
call fcn.004c52a7
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x46f972
mov edi, dword [esp + 0x14]
mov eax, 0x4e67a0
mov edx, edi
sub edx, eax
jmp 0x470890
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x470890
mov esi, dword [esp + 0x1a18c]
xor eax, eax
cmp byte [esp + 0x1b], al
push 0
setne al
push 1
lea edx, [esp + 0x1c]
push edx
add eax, 0xc1
push eax
push esi
call fcn.00475270
cmp byte [esp + 0x2f], 0
je 0x470906
lea ecx, [esp + 0xb0]
push ecx
push str._4r_r
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c52a7
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x5c], 9
jmp 0x46f972
mov esi, dword [esp + 0x1a18c]
mov edi, dword [esp + 0x14]
mov eax, 0x4e1a4c
cmp bl, 0x12
je 0x47091a
cmp bl, 0xa3
jbe 0x470943
cmp bl, 0xa5
ja 0x470943
movzx ecx, byte [esp + 0x31]
sub ecx, 0x11
je 0x470936
sub ecx, 0x91
je 0x470936
dec ecx
jne 0x470943
push 0x505964
jmp 0x47093b
push 0x50593c
call fcn.0049fc00
add esp, 4
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0x84]
push ecx
push eax
xor ebx, ebx
push 0x50598c
mov dword [esi + 0x634], ebx
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c52a7
add esp, 0x14
push ebx
push 1
lea edx, [esp + 0x1c]
push edx
push 0x41
push esi
call fcn.00475270
test eax, eax
je 0x470542
push ebx
push ebx
push ebx
push 0x67
push esi
call fcn.00475270
lea eax, [esp + 0xf0]
push eax
push str.w_r_hh
mov dword [esi + 0x634], ebx
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c52a7
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x5c], 2
jmp 0x46f972
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4709d0
mov ebx, dword [esp + 0x1a18c]
sub eax, edx
sar eax, 1
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x634], 0
jmp 0x46f3fd
mov edi, dword [esp + 0x14]
mov eax, 0x4e67a0
mov edx, edi
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x470a06
mov esi, dword [esp + 0x1a18c]
xor edx, edx
cmp byte [esp + 0x1b], dl
push 0
setne dl
push 1
lea ecx, [esp + 0x1c]
push ecx
add edx, 0xc1
push edx
push esi
call fcn.00475270
lea eax, [esp + 0xb0]
push eax
push 0x5059e8
call fcn.0049fc00
add esp, 4
push eax
push edi
call fcn.004c52a7
add esp, 0xc
push 0
push 1
lea ecx, [esp + 0x1c]
push ecx
push 0x41
push esi
call fcn.00475270
push 0
push 0
push 0
push 0x67
push esi
call fcn.00475270
mov byte [esp + 0x18], 0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x1a18c]
mov esi, dword [esp + 0x4c]
lea ecx, [esp + 0x2170]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
cmp eax, ecx
jne 0x470ab4
lea edx, [esp + 0x12180]
mov dword [esp + 0x34], edx
jmp 0x46eae0
lea eax, [esp + 0x2170]
mov dword [esp + 0x34], eax
jmp 0x46eae0
push ebx
push 0x505530
call fcn.0049fc00
mov ecx, dword [esp + 0x1a194]
add esp, 4
push eax
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
lea edx, [esp + 0xa178]
push edx
push 0x4eb50c
call fcn.0049fc00
mov ecx, ebx
jmp 0x470ad6
cmp dword [ebx + 0x268], 0
je 0x470b35
push 0x4eb50c
call fcn.0049fc00
add esp, 4
lea ecx, [esp + 0xa178]
push ecx
mov ecx, ebx
push eax
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
push 0x4ea2e8
call fcn.0049fc00
add esp, 4
lea ecx, [esp + 0xa178]
push ecx
mov ecx, ebx
push eax
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
lea edx, [esp + 0xa178]
push edx
push 0x5055a0
call fcn.0049fc00
mov ecx, ebx
jmp 0x470ad6
mov edi, dword [esp + 0x14]
push edi
push 0x505600
call fcn.0049fc00
mov ecx, ebx
jmp 0x470ad6
push edi
push 0x4ea2e8
call fcn.0049fc00
mov ecx, ebx
jmp 0x470ad6
push ebx
push str.H97_:____5_r3_7r_r3___76r____67r4_1___
jmp 0x470aca
mov ecx, dword [esp + 0x14]
push ecx
push 0x5056d8
mov dword [ebp + 0x634], eax
call fcn.0049fc00
mov ecx, ebp
jmp 0x470ad6
push ebx
push 0x505720
call fcn.0049fc00
mov ecx, ebp
jmp 0x470ad6
mov ecx, 0x3a
push ebx
mov word [edi - 4], cx
push str.Invalid_single_line_hotkey_hotstring.
mov ecx, ebp
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
push ebx
push 0x5057d4
mov dword [ebp + 0x634], 0
call fcn.0049fc00
mov ecx, ebp
jmp 0x470ad6
push ebx
push str.Out_of_memory.
mov ecx, ebp
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
push ebx
push 0x505240
jmp 0x470aca
mov edx, dword [esp + 0x14]
push edx
push 0x4e9e00
jmp 0x470aca
cmp word [esp + 0xa178], 0
je 0x470cf6
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x50]
mov esi, dword [edi + 0x274]
mov dword [edi + 0x274], eax
je 0x470ccd
cmp byte [esp + 0x19], 0
je 0x470ca3
push 0x4eb814
call fcn.0049fc00
add esp, 4
lea ecx, [esp + 0xa178]
push ecx
mov ecx, edi
push eax
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
push 0x4eb50c
call fcn.0049fc00
add esp, 4
lea ecx, [esp + 0xa178]
push ecx
mov ecx, edi
push eax
call fcn.004768b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc
push 0
push 0
push 0
push 0
push 0
push 3
lea edx, [esp + 0xa190]
push edx
mov ecx, edi
call fcn.00472d70
test eax, eax
je 0x470542
mov dword [edi + 0x274], esi
cmp dword [edi + 0x4c], 0
je 0x470d18
cmp dword [esp + 0x64], 0
jne 0x470d18
lea eax, [edi + 0x64]
push eax
push 0x4eb814
call fcn.0049fc00
mov ecx, edi
jmp 0x470ad6
mov eax, 1
add dword [edi + 0x274], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1a178
ret 0xc