Function at 0x4217eb
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46aa6b
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x481330]
xor eax, esp
mov dword [esp + 0xc0], eax
push ebx
push esi
push edi
mov eax, dword [0x481330]
xor eax, esp
push eax
lea eax, [esp + 0xd8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push 4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
mov ecx, 0x472420
mov eax, esi
xor ebx, ebx
pop edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421869
cmp dx, bx
je 0x421865
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421869
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421845
xor eax, eax
jmp 0x42186e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x42190e
and dword [esp + 0x18], ebx
push 0xa
pop esi
push esi
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
call fcn.004538c3
add esp, 0xc
mov ebx, eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
add esp, 0xc
mov dword [esp + 0x28], eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
add esp, 0xc
mov edi, eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
mov ecx, dword [esp + 0x20]
add esp, 0xc
push dword [esp + 0x28]
mov esi, eax
mov eax, dword [ecx]
push ebx
call dword [eax + 0x70]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
sub edi, ebx
push edi
call dword [eax + 0x80]
sub esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
push esi
call dword [eax + 0x88]
jmp 0x4226ba
mov ecx, str.padding
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421939
cmp dx, bx
je 0x421935
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421939
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421915
xor eax, eax
jmp 0x42193e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4219d0
xor eax, eax
lea edi, [esp + 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0xa
pop esi
stosd dword es:[edi], eax
push esi
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538c3
add esp, 0xc
mov dword [esp + 0x24], eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
add esp, 0xc
mov dword [esp + 0x28], eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
add esp, 0xc
mov dword [esp + 0x2c], eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [ecx]
push ecx
mov edi, esp
lea esi, [esp + 0x34]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x68]
jmp 0x4226ba
mov ecx, str.bkcolor
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4219fb
cmp dx, bx
je 0x4219f7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4219fb
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4219d7
xor eax, eax
jmp 0x421a00
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x422663
mov ecx, str.bkcolor1
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421a33
cmp dx, bx
je 0x421a2f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421a33
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421a0f
xor eax, eax
jmp 0x421a38
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x422663
mov ecx, str.bkcolor2
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421a6b
cmp dx, bx
je 0x421a67
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421a6b
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421a47
xor eax, eax
jmp 0x421a70
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421acc
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x421a90
cmp ax, 0x20
ja 0x421a98
push dword [esp + 0x10]
call esi
mov dword [esp + 0x10], eax
movzx eax, word [eax]
cmp ax, bx
ja 0x421a80
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x421aa9
push eax
call esi
mov dword [esp + 0x10], eax
push 0x10
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538ee
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x37c]
jmp 0x421c28
mov ecx, str.bkcolor3
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421af7
cmp dx, bx
je 0x421af3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421af7
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421ad3
xor eax, eax
jmp 0x421afc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421b58
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x421b1c
cmp ax, 0x20
ja 0x421b24
push dword [esp + 0x10]
call esi
mov dword [esp + 0x10], eax
movzx eax, word [eax]
cmp ax, bx
ja 0x421b0c
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x421b35
push eax
call esi
mov dword [esp + 0x10], eax
push 0x10
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538ee
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x380]
jmp 0x421c28
mov ecx, str.bordercolor
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421b83
cmp dx, bx
je 0x421b7f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421b83
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421b5f
xor eax, eax
jmp 0x421b88
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421bc1
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x421ba1
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [esp + 0x10], eax
push 0x10
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538ee
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x60c]
jmp 0x421c28
mov ecx, str.focusbordercolor
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421bec
cmp dx, bx
je 0x421be8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421bec
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421bc8
xor eax, eax
jmp 0x421bf1
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421c37
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x421c0a
push eax
call dword [sym.imp.USER32.dll_CharNextW]
mov dword [esp + 0x10], eax
push 0x10
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538ee
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x610]
add esp, 0xc
cmp dword [ecx], eax
je 0x4226ba
mov dword [ecx], eax
jmp 0x421cb6
mov ecx, str.colorhsl
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421c62
cmp dx, bx
je 0x421c5e
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421c62
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421c3e
xor eax, eax
jmp 0x421c67
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421cbc
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421c98
cmp dx, bx
je 0x421c94
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421c98
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421c74
xor eax, eax
jmp 0x421c9d
sbb eax, eax
sbb eax, 0xffffffff
mov edx, dword [esp + 0x14]
cmp eax, ebx
sete cl
lea eax, [edx + 0x614]
cmp byte [eax], cl
je 0x4226ba
mov byte [eax], cl
push edx
jmp 0x421e8d
mov ecx, str.bordersize
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421ce7
cmp dx, bx
je 0x421ce3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421ce7
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421cc3
xor eax, eax
jmp 0x421cec
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421dc6
push 0xffffffffffffffff
push dword [esp + 0x14]
lea eax, [esp + 0x4c]
call fcn.0041bc90
push 0x2c
xor ecx, ecx
lea esi, [esp + 0x48]
mov dword [esp + 0xe4], ebx
call fcn.0041c0af
test eax, eax
jge 0x421d35
push dword [esp + 0x10]
call fcn.00453930
pop ecx
mov ecx, eax
mov eax, dword [esp + 0x14]
call fcn.00420a53
jmp 0x422528
xor eax, eax
lea edi, [esp + 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0xa
pop esi
stosd dword es:[edi], eax
push esi
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538c3
add esp, 0xc
mov dword [esp + 0x24], eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
add esp, 0xc
mov dword [esp + 0x28], eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
add esp, 0xc
mov dword [esp + 0x2c], eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
lea edi, [eax + 0x638]
lea esi, [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add esp, 0xc
push eax
movsd dword es:[edi], dword [esi]
call fcn.00421579
jmp 0x422528
mov ecx, str.borderstyle
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421df1
cmp dx, bx
je 0x421ded
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421df1
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421dcd
xor eax, eax
jmp 0x421df6
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421e10
push dword [esp + 0x10]
call fcn.00453930
pop ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x618], eax
jmp 0x421e8c
mov ecx, str.borderround
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421e3b
cmp dx, bx
je 0x421e37
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421e3b
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421e17
xor eax, eax
jmp 0x421e40
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421e97
push 0xa
xor eax, eax
pop esi
lea edi, [esp + 0x1c]
stosd dword es:[edi], eax
push esi
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538c3
add esp, 0xc
mov edi, eax
push esi
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
add eax, 2
push eax
call fcn.004538c3
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [ecx + 0x620], edi
mov dword [ecx + 0x624], eax
push ecx
call fcn.00421579
jmp 0x4226ba
mov ecx, str.bkimage
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421ec2
cmp dx, bx
je 0x421ebe
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421ec2
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421e9e
xor eax, eax
jmp 0x421ec7
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421edd
push dword [esp + 0x10]
mov edi, dword [esp + 0x18]
call fcn.004209de
jmp 0x4226ba
mov ecx, str.width
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421f08
cmp dx, bx
je 0x421f04
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421f08
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421ee4
xor eax, eax
jmp 0x421f0d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421f1f
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
sub esi, 0xffffff80
jmp 0x4221d6
mov ecx, str.height
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421f4a
cmp dx, bx
je 0x421f46
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421f4a
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421f26
xor eax, eax
jmp 0x421f4f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421f64
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0x88
jmp 0x4221d6
mov ecx, str.minwidth
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421f8f
cmp dx, bx
je 0x421f8b
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421f8f
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421f6b
xor eax, eax
jmp 0x421f94
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421fa9
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0x90
jmp 0x4221d6
mov ecx, str.minheight
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x421fd4
cmp dx, bx
je 0x421fd0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x421fd4
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421fb0
xor eax, eax
jmp 0x421fd9
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x421fee
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0xa0
jmp 0x4221d6
mov ecx, str.maxwidth
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422019
cmp dx, bx
je 0x422015
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422019
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x421ff5
xor eax, eax
jmp 0x42201e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422033
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0x98
jmp 0x4221d6
mov ecx, str.maxheight
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42205e
cmp dx, bx
je 0x42205a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42205e
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x42203a
xor eax, eax
jmp 0x422063
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422078
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0xa8
jmp 0x4221d6
mov ecx, str.name
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4220a3
cmp dx, bx
je 0x42209f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4220a3
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x42207f
xor eax, eax
jmp 0x4220a8
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4220be
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x4226ba
mov ecx, str.text
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4220e9
cmp dx, bx
je 0x4220e5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4220e9
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4220c5
xor eax, eax
jmp 0x4220ee
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422104
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x3c]
jmp 0x4226ba
mov ecx, str.tooltip
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42212f
cmp dx, bx
je 0x42212b
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42212f
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x42210b
xor eax, eax
jmp 0x422134
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x42214d
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xb0]
jmp 0x4226ba
mov ecx, str.userdata
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422178
cmp dx, bx
je 0x422174
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422178
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x422154
xor eax, eax
jmp 0x42217d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422196
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xd0]
jmp 0x4226ba
mov ecx, 0x4725a8
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4221c1
cmp dx, bx
je 0x4221bd
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4221c1
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x42219d
xor eax, eax
jmp 0x4221c6
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4221ec
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0xd8
push dword [esp + 0x10]
call fcn.00453930
pop ecx
mov ecx, dword [esp + 0x14]
push eax
call dword [esi]
jmp 0x4226ba
mov ecx, str.enabled
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422217
cmp dx, bx
je 0x422213
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422217
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4221f3
xor eax, eax
jmp 0x42221c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x42226c
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42224d
cmp dx, bx
je 0x422249
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42224d
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x422229
xor eax, eax
jmp 0x422252
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
cmp eax, ebx
sete al
movzx eax, al
push eax
call dword [edx + 0xec]
jmp 0x4226ba
mov ecx, str.mouse
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422297
cmp dx, bx
je 0x422293
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422297
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x422273
xor eax, eax
jmp 0x42229c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4222ec
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4222cd
cmp dx, bx
je 0x4222c9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4222cd
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4222a9
xor eax, eax
jmp 0x4222d2
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
cmp eax, ebx
sete al
movzx eax, al
push eax
call dword [edx + 0xf4]
jmp 0x4226ba
mov ecx, str.keyboard
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422317
cmp dx, bx
je 0x422313
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422317
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4222f3
xor eax, eax
jmp 0x42231c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x42236c
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42234d
cmp dx, bx
je 0x422349
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42234d
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x422329
xor eax, eax
jmp 0x422352
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
cmp eax, ebx
sete al
movzx eax, al
push eax
call dword [edx + 0xfc]
jmp 0x4226ba
mov ecx, str.visible
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422397
cmp dx, bx
je 0x422393
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422397
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x422373
xor eax, eax
jmp 0x42239c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4223ec
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4223cd
cmp dx, bx
je 0x4223c9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4223cd
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4223a9
xor eax, eax
jmp 0x4223d2
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
cmp eax, ebx
sete al
movzx eax, al
push eax
call dword [edx + 0xe0]
jmp 0x4226ba
mov ecx, str.float
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422417
cmp dx, bx
je 0x422413
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422417
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4223f3
xor eax, eax
jmp 0x42241c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422536
push 0xffffffffffffffff
push dword [esp + 0x14]
lea eax, [esp + 0x4c]
call fcn.0041bc90
xor ebx, ebx
inc ebx
push 0x2c
xor ecx, ecx
lea esi, [esp + 0x48]
mov dword [esp + 0xe4], ebx
call fcn.0041c0af
test eax, eax
jge 0x42249a
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42247b
test dx, dx
je 0x422477
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42247b
add eax, edi
add ecx, edi
test dx, dx
jne 0x422457
xor eax, eax
jmp 0x422480
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
test eax, eax
sete al
movzx eax, al
push eax
call dword [edx + 0x10c]
jmp 0x422528
push 6
xor eax, eax
and dword [esp + 0x24], eax
pop ecx
lea edi, [esp + 0x2c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x14]
call fcn.00453f49
fstp qword [esp + 0x2c]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x2c]
add eax, 2
push eax
call fcn.00453f49
fstp qword [esp + 0x3c]
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x34]
add eax, 2
push eax
call fcn.00453f49
fstp qword [esp + 0x4c]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x3c]
add eax, 2
push eax
call fcn.00453f49
fld qword [esp + 0x44]
mov esi, dword [esp + 0x34]
mov edx, dword [esi]
mov eax, esp
fstp qword [eax]
mov ecx, esi
fld qword [esp + 0x4c]
fstp qword [eax + 8]
fld qword [esp + 0x54]
fstp qword [eax + 0x10]
fstp qword [eax + 0x18]
call dword [edx + 0x78]
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0x10c]
lea ecx, [esp + 0x44]
call fcn.0041bcd0
jmp 0x4226ba
mov ecx, str.shortcut
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x422561
cmp dx, bx
je 0x42255d
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x422561
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x42253d
xor eax, eax
jmp 0x422566
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422583
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
push edx
call dword [eax + 0xc0]
jmp 0x4226ba
mov ecx, str.menu
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4225ae
cmp dx, bx
je 0x4225aa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4225ae
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x42258a
xor eax, eax
jmp 0x4225b3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422603
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4225e4
cmp dx, bx
je 0x4225e0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4225e4
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4225c0
xor eax, eax
jmp 0x4225e9
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
cmp eax, ebx
sete al
movzx eax, al
push eax
call dword [edx + 0xc8]
jmp 0x4226ba
mov ecx, str.virtualwnd
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42262e
cmp dx, bx
je 0x42262a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42262e
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x42260a
xor eax, eax
jmp 0x422633
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x422653
mov esi, dword [esp + 0x14]
push dword [esp + 0x10]
lea eax, [esi + 0x68]
call fcn.0041beab
mov eax, dword [esi + 0x5c]
mov byte [eax + 0x2bb], 1
jmp 0x4226ba
mov eax, dword [esp + 0x10]
push esi
push dword [esp + 0x18]
call fcn.0042142c
jmp 0x4226ba
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x42267f
cmp ax, 0x20
ja 0x422687
push dword [esp + 0x10]
call esi
mov dword [esp + 0x10], eax
movzx eax, word [eax]
cmp ax, bx
ja 0x42266f
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x422698
push eax
call esi
mov dword [esp + 0x10], eax
push 0x10
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x24], ebx
call fcn.004538ee
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, eax
call fcn.004209cb
mov ecx, dword [esp + 0xd8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.00451137
mov esp, ebp
pop ebp
ret 8