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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x484de6
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x4a20b0]
xor eax, esp
mov dword [esp + 0xc0], eax
push ebx
push esi
push edi
mov eax, dword [0x4a20b0]
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, 0x491ca8
mov eax, esi
xor ebx, ebx
pop edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450439
cmp dx, bx
je 0x450435
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450439
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450415
xor eax, eax
jmp 0x45043e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4504de
and dword [esp + 0x18], ebx
push 0xa
pop esi
push esi
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
call fcn.00475673
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.00475673
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.00475673
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.00475673
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 0x45128b
mov ecx, str.padding
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450509
cmp dx, bx
je 0x450505
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450509
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4504e5
xor eax, eax
jmp 0x45050e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4505a0
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.00475673
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.00475673
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.00475673
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.00475673
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 0x45128b
mov ecx, str.bkcolor
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4505cb
cmp dx, bx
je 0x4505c7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4505cb
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4505a7
xor eax, eax
jmp 0x4505d0
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x451229
mov ecx, str.bkcolor1
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450603
cmp dx, bx
je 0x4505ff
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450603
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4505df
xor eax, eax
jmp 0x450608
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x451229
mov ecx, str.bkcolor2
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45063b
cmp dx, bx
je 0x450637
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45063b
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450617
xor eax, eax
jmp 0x450640
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x45069c
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x450660
cmp ax, 0x20
ja 0x450668
push dword [esp + 0x10]
call esi
mov dword [esp + 0x10], eax
movzx eax, word [eax]
cmp ax, bx
ja 0x450650
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x450679
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.0047569e
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x37c]
jmp 0x45127c
mov ecx, str.bkcolor3
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4506c7
cmp dx, bx
je 0x4506c3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4506c7
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4506a3
xor eax, eax
jmp 0x4506cc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450728
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x4506ec
cmp ax, 0x20
ja 0x4506f4
push dword [esp + 0x10]
call esi
mov dword [esp + 0x10], eax
movzx eax, word [eax]
cmp ax, bx
ja 0x4506dc
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x450705
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.0047569e
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x380]
jmp 0x45127c
mov ecx, str.bordercolor
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450753
cmp dx, bx
je 0x45074f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450753
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x45072f
xor eax, eax
jmp 0x450758
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450794
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x450771
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.0047569e
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x60c]
jmp 0x45127c
mov ecx, str.focusbordercolor
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4507bf
cmp dx, bx
je 0x4507bb
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4507bf
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x45079b
xor eax, eax
jmp 0x4507c4
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450800
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x4507dd
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.0047569e
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x610]
jmp 0x45127c
mov ecx, str.colorhsl
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45082b
cmp dx, bx
je 0x450827
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45082b
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450807
xor eax, eax
jmp 0x450830
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450884
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450861
cmp dx, bx
je 0x45085d
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450861
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x45083d
xor eax, eax
jmp 0x450866
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 0x45128b
mov byte [eax], cl
jmp 0x451285
mov ecx, str.bordersize
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4508af
cmp dx, bx
je 0x4508ab
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4508af
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x45088b
xor eax, eax
jmp 0x4508b4
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x45098e
push 0xffffffffffffffff
push dword [esp + 0x14]
lea eax, [esp + 0x4c]
call fcn.0042f523
push 0x2c
xor ecx, ecx
lea esi, [esp + 0x48]
mov dword [esp + 0xe4], ebx
call fcn.0042f942
test eax, eax
jge 0x4508fd
push dword [esp + 0x10]
call fcn.004756e0
pop ecx
mov ecx, eax
mov eax, dword [esp + 0x14]
call fcn.0044f622
jmp 0x4510ee
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.00475673
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.00475673
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.00475673
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.00475673
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.00450148
jmp 0x4510ee
mov ecx, str.borderstyle
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4509b9
cmp dx, bx
je 0x4509b5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4509b9
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450995
xor eax, eax
jmp 0x4509be
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4509dc
push dword [esp + 0x10]
call fcn.004756e0
pop ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x618], eax
push ecx
jmp 0x451286
mov ecx, str.borderround
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450a07
cmp dx, bx
je 0x450a03
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450a07
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4509e3
xor eax, eax
jmp 0x450a0c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450a5d
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.00475673
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.00475673
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov dword [ecx + 0x620], edi
mov dword [ecx + 0x624], eax
jmp 0x4509d6
mov ecx, str.bkimage
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450a88
cmp dx, bx
je 0x450a84
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450a88
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450a64
xor eax, eax
jmp 0x450a8d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450aa3
push dword [esp + 0x10]
mov edi, dword [esp + 0x18]
call fcn.0044f5ad
jmp 0x45128b
mov ecx, str.width
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450ace
cmp dx, bx
je 0x450aca
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450ace
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450aaa
xor eax, eax
jmp 0x450ad3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450ae5
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
sub esi, 0xffffff80
jmp 0x450d9c
mov ecx, str.height
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450b10
cmp dx, bx
je 0x450b0c
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450b10
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450aec
xor eax, eax
jmp 0x450b15
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450b2a
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0x88
jmp 0x450d9c
mov ecx, str.minwidth
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450b55
cmp dx, bx
je 0x450b51
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450b55
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450b31
xor eax, eax
jmp 0x450b5a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450b6f
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0x90
jmp 0x450d9c
mov ecx, str.minheight
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450b9a
cmp dx, bx
je 0x450b96
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450b9a
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450b76
xor eax, eax
jmp 0x450b9f
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450bb4
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0xa0
jmp 0x450d9c
mov ecx, str.maxwidth
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450bdf
cmp dx, bx
je 0x450bdb
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450bdf
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450bbb
xor eax, eax
jmp 0x450be4
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450bf9
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0x98
jmp 0x450d9c
mov ecx, str.maxheight
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450c24
cmp dx, bx
je 0x450c20
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450c24
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450c00
xor eax, eax
jmp 0x450c29
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450c3e
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0xa8
jmp 0x450d9c
mov ecx, str.name
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450c69
cmp dx, bx
je 0x450c65
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450c69
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450c45
xor eax, eax
jmp 0x450c6e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450c84
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x45128b
mov ecx, str.text
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450caf
cmp dx, bx
je 0x450cab
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450caf
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450c8b
xor eax, eax
jmp 0x450cb4
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450cca
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x3c]
jmp 0x45128b
mov ecx, str.tooltip
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450cf5
cmp dx, bx
je 0x450cf1
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450cf5
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450cd1
xor eax, eax
jmp 0x450cfa
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450d13
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xb0]
jmp 0x45128b
mov ecx, str.userdata
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450d3e
cmp dx, bx
je 0x450d3a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450d3e
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450d1a
xor eax, eax
jmp 0x450d43
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450d5c
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xd0]
jmp 0x45128b
mov ecx, 0x491e28
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450d87
cmp dx, bx
je 0x450d83
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450d87
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450d63
xor eax, eax
jmp 0x450d8c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450db2
mov eax, dword [esp + 0x14]
mov esi, dword [eax]
add esi, 0xd8
push dword [esp + 0x10]
call fcn.004756e0
pop ecx
mov ecx, dword [esp + 0x14]
push eax
call dword [esi]
jmp 0x45128b
mov ecx, str.enabled
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450ddd
cmp dx, bx
je 0x450dd9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450ddd
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450db9
xor eax, eax
jmp 0x450de2
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450e32
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450e13
cmp dx, bx
je 0x450e0f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450e13
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450def
xor eax, eax
jmp 0x450e18
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 0x45128b
mov ecx, str.mouse
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450e5d
cmp dx, bx
je 0x450e59
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450e5d
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450e39
xor eax, eax
jmp 0x450e62
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450eb2
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450e93
cmp dx, bx
je 0x450e8f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450e93
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450e6f
xor eax, eax
jmp 0x450e98
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 0x45128b
mov ecx, str.keyboard
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450edd
cmp dx, bx
je 0x450ed9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450edd
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450eb9
xor eax, eax
jmp 0x450ee2
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450f32
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450f13
cmp dx, bx
je 0x450f0f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450f13
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450eef
xor eax, eax
jmp 0x450f18
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 0x45128b
mov ecx, str.visible
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450f5d
cmp dx, bx
je 0x450f59
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450f5d
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450f39
xor eax, eax
jmp 0x450f62
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x450fb2
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450f93
cmp dx, bx
je 0x450f8f
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450f93
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450f6f
xor eax, eax
jmp 0x450f98
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 0x45128b
mov ecx, str.float
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x450fdd
cmp dx, bx
je 0x450fd9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x450fdd
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x450fb9
xor eax, eax
jmp 0x450fe2
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4510fc
push 0xffffffffffffffff
push dword [esp + 0x14]
lea eax, [esp + 0x4c]
call fcn.0042f523
xor ebx, ebx
inc ebx
push 0x2c
xor ecx, ecx
lea esi, [esp + 0x48]
mov dword [esp + 0xe4], ebx
call fcn.0042f942
test eax, eax
jge 0x451060
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x451041
test dx, dx
je 0x45103d
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x451041
add eax, edi
add ecx, edi
test dx, dx
jne 0x45101d
xor eax, eax
jmp 0x451046
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 0x4510ee
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.00475f8b
fstp qword [esp + 0x2c]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x2c]
add eax, 2
push eax
call fcn.00475f8b
fstp qword [esp + 0x3c]
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x34]
add eax, 2
push eax
call fcn.00475f8b
fstp qword [esp + 0x4c]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x3c]
add eax, 2
push eax
call fcn.00475f8b
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.0042f563
jmp 0x45128b
mov ecx, str.shortcut
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x451127
cmp dx, bx
je 0x451123
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x451127
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x451103
xor eax, eax
jmp 0x45112c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x451149
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 0x45128b
mov ecx, str.menu
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x451174
cmp dx, bx
je 0x451170
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x451174
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x451150
xor eax, eax
jmp 0x451179
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4511c9
mov eax, dword [esp + 0x10]
mov ecx, str.true
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4511aa
cmp dx, bx
je 0x4511a6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4511aa
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x451186
xor eax, eax
jmp 0x4511af
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 0x45128b
mov ecx, str.virtualwnd
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4511f4
cmp dx, bx
je 0x4511f0
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4511f4
add eax, edi
add ecx, edi
cmp dx, bx
jne 0x4511d0
xor eax, eax
jmp 0x4511f9
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x451219
mov esi, dword [esp + 0x14]
push dword [esp + 0x10]
lea eax, [esi + 0x68]
call fcn.0042f73e
mov eax, dword [esi + 0x5c]
mov byte [eax + 0x2bb], 1
jmp 0x45128b
mov eax, dword [esp + 0x10]
push esi
push dword [esp + 0x18]
call fcn.0044fffb
jmp 0x45128b
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_CharNextW]
jmp 0x451245
cmp ax, 0x20
ja 0x45124d
push dword [esp + 0x10]
call esi
mov dword [esp + 0x10], eax
movzx eax, word [eax]
cmp ax, bx
ja 0x451235
mov eax, dword [esp + 0x10]
cmp word [eax], 0x23
jne 0x45125e
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.0047569e
mov edx, dword [esp + 0x20]
lea ecx, [edx + 0x378]
add esp, 0xc
cmp dword [ecx], eax
je 0x45128b
mov dword [ecx], eax
push edx
call fcn.00450148
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.004678b3
mov esp, ebp
pop ebp
ret 8