Function at 0x466490
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x83c
push ebx
push esi
push edi
mov edx, dword [0x3f42f1c]
mov eax, dword [ebp + 0xc]
cmp dword [edx + 4], 0
jne 0x4667b3
mov esi, dword [eax]
cmp esi, 0x25
jl 0x46655c
cmp esi, 0x26
jle 0x466512
cmp esi, 0x28
jg 0x46671a
mov ebx, dword [ebp + 8]
sub esp, 4
push dword [ebx]
call sub.USER32.dll_GetParent
push 0
mov ebx, dword [ebp + 8]
push dword [ebx]
push eax
call sub.USER32.dll_GetNextDlgTabItem
mov edi, eax
test eax, eax
mov ebx, dword [ebp + 8]
je case.0x4667d1.9
push dword [ebx]
call sub.USER32.dll_GetParent
add esp, 4
push 0xffffffff
push edi
push 0x28
push eax
call sub.USER32.dll_PostMessageA
jmp case.0x4667d1.9
mov ebx, dword [ebp + 8]
sub esp, 4
push dword [ebx]
call sub.USER32.dll_GetParent
push 0xffffffff
mov ebx, dword [ebp + 8]
push dword [ebx]
push eax
call sub.USER32.dll_GetNextDlgTabItem
mov esi, eax
test eax, eax
mov ebx, dword [ebp + 8]
je case.0x4667d1.9
push dword [ebx]
call sub.USER32.dll_GetParent
add esp, 4
push 0xffffffff
push esi
push 0x28
push eax
call sub.USER32.dll_PostMessageA
jmp case.0x4667d1.9
cmp esi, 9
je 0x466740
cmp esi, 0xd
jne 0x46671a
mov ebx, dword [ebp + 8]
mov edi, dword [ebx]
mov dword [ebp - 4], edi
sub esp, 4
push dword [ebp - 4]
call sub.USER32.dll_GetDC
add esp, 4
mov edx, dword [0x3f42f1c]
add edx, 0x7fc
mov esi, eax
mov ecx, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
push edx
push 0
push 0
push 0
push 0
push 0xee
push 0
push 0
push 0
push dword [eax + 0x834]
push 0
push 0
push 0
push dword [ecx + 0x830]
call sub.GDI32.dll_CreateFontA
push eax
mov ebx, eax
push esi
call sub.GDI32.dll_SelectObject
lea edx, [ebp - 0x68]
mov edi, eax
push edx
push esi
call sub.GDI32.dll_GetTextMetricsA
push edi
push esi
call sub.GDI32.dll_SelectObject
sub esp, 4
push ebx
call sub.GDI32.dll_DeleteObject
add esp, 4
push esi
push dword [ebp - 4]
call sub.USER32.dll_ReleaseDC
push dword [ebp - 0x68]
push 0
push 0
push dword [ebp - 4]
call sub.USER32.dll_CreateCaret
sub esp, 4
push dword [ebp - 4]
call sub.USER32.dll_ShowCaret
mov edi, dword [0x3f42f1c]
add esp, 4
mov ebx, dword [0x3f42f1c]
mov esi, dword [0x3f42f1c]
add edi, 0x3f8
add esi, 0x10
mov dword [ebx + 4], 0xffffffff
mov ecx, 0x3e8
call fcn.0046e521
mov esi, dword [0x3f42f1c]
lea edx, [ebp - 0x838]
mov ebx, dword [0x3f42f1c]
lea edi, [ebp - 0x838]
add esi, 0x10
mov ecx, 0x3e8
call fcn.0046e521
push 0x3e8
push edx
call fcn.0046f8b0
xor ecx, ecx
mov dword [ebx + 0x7e0], eax
mov eax, dword [0x3f42f1c]
mov esi, dword [eax + 0x7e0]
mov dword [eax + 0x7f8], ecx
mov dword [eax + 0x7e8], esi
mov dword [eax + 0x7ec], 2
mov dword [eax + 0x7f4], 1
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
push dword [ebp + 8]
call fcn.00465558
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx]
push ebx
call sub.USER32.dll_UpdateWindow
push ebx
call sub.USER32.dll_GetParent
mov esi, eax
push ebx
call sub.USER32.dll_GetDlgCtrlID
movsx eax, ax
add esp, 4
push 0xcc
push eax
call fcn.0046da90
push ebx
push eax
push 0x111
push esi
call sub.USER32.dll_SendMessageA
jmp case.0x4667d1.9
mov edi, dword [ebp + 8]
sub esp, 4
push dword [edi]
call sub.USER32.dll_GetParent
add esp, 4
push 0
push esi
push 0x100
push eax
call sub.USER32.dll_PostMessageA
jmp case.0x4667d1.9
sub esp, 4
push 0x10
call sub.USER32.dll_GetKeyState
add esp, 4
test ax, ax
mov ebx, dword [ebp + 8]
jge 0x466769
sub esp, 4
push dword [ebx]
call sub.USER32.dll_GetParent
push 0xffffffff
jmp 0x46677b
mov ebx, dword [ebp + 8]
sub esp, 4
push dword [ebx]
call sub.USER32.dll_GetParent
push 0
mov edi, dword [ebp + 8]
push dword [edi]
push eax
call sub.USER32.dll_GetNextDlgTabItem
mov esi, eax
test eax, eax
mov ebx, dword [ebp + 8]
je case.0x4667d1.9
push dword [ebx]
call sub.USER32.dll_GetParent
add esp, 4
push 0xffffffff
push esi
push 0x28
push eax
call sub.USER32.dll_PostMessageA
jmp case.0x4667d1.9
mov edi, dword [eax]
cmp edi, 8
jl case.0x4667d1.9
mov ebx, edi
sub ebx, 8
cmp ebx, 0x26
ja case.default.0x4667d1
mov esi, edi
sub esi, 8
jmp dword [esi*4 + 0x4b00b8]
mov ecx, dword [edx + 0x7f4]
cmp ecx, dword [edx + 0x7f8]
jg 0x466a4b
mov eax, dword [edx + 0x7f8]
sub eax, dword [edx + 0x7f4]
mov esi, dword [edx + 0x7e0]
mov edi, dword [edx + 0x7f4]
inc eax
mov dword [ebp - 4], eax
sub esi, dword [ebp - 4]
sub esi, edi
inc esi
mov dword [ebp - 8], esi
mov ebx, esi
test esi, esi
jle 0x4669b2
mov ecx, edi
mov eax, edi
dec ecx
sub eax, ecx
mov ecx, dword [ebp - 4]
add ecx, edi
mov dword [ebp - 0xc], eax
mov eax, ecx
mov esi, ecx
dec eax
dec esi
sub ecx, esi
mov esi, dword [ebp - 0xc]
dec edi
test esi, esi
jge 0x46683a
xor esi, esi
test ecx, ecx
mov dword [ebp - 0xc], esi
jge 0x466843
xor ecx, ecx
cmp dword [ebp - 8], 5
mov dword [ebp - 0x10], ecx
jle 0x46697c
mov dword [ebp - 8], edi
lea edi, [edx + 0x10]
lea esi, [edx + 0x10]
mov dword [ebp - 0x14], eax
add edi, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esi, dword [ebp - 0x14]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
inc esi
inc edi
mov dword [ebp - 0x18], edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esi, dword [ebp - 0x18]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
add esi, 2
add edi, 2
mov dword [ebp - 0x18], edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esi, dword [ebp - 0x18]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
add esi, 3
add edi, 3
mov dword [ebp - 0x18], edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esi, dword [ebp - 0x18]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
add esi, 4
add edi, 4
mov dword [ebp - 0x18], edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esi, dword [ebp - 0x18]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x14]
add esi, 5
add edi, 5
mov dword [ebp - 0x18], edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esi, dword [ebp - 0x18]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 8]
add esi, 6
add edi, 6
sub ebx, 6
mov eax, esi
cmp ebx, 5
jg 0x466850
test ebx, ebx
jle 0x4669b2
mov dword [ebp - 8], edi
lea edi, [edx + 0x10]
lea esi, [edx + 0x10]
mov dword [ebp - 0x14], eax
add edi, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 8]
inc esi
inc edi
dec ebx
mov eax, esi
test ebx, ebx
jg 0x46697c
mov ecx, dword [edx + 0x7e0]
mov esi, dword [edx + 0x7e0]
sub ecx, dword [ebp - 4]
sub esi, ecx
test esi, esi
jge 0x4669c9
xor esi, esi
lea edi, [edx + 0x10]
add edi, ecx
mov eax, 1
mov ecx, esi
lea esi, [0x4b00b0]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov ebx, dword [edx + 0x7f8]
mov esi, dword [edx + 0x7e0]
inc ebx
sub esi, dword [ebp - 4]
mov edi, dword [edx + 0x7f8]
mov dword [edx + 0x7f4], ebx
cmp edi, dword [edx + 0x7e8]
mov dword [edx + 0x7e0], esi
jg 0x466a31
mov eax, dword [edx + 0x7e8]
sub eax, dword [ebp - 4]
mov dword [edx + 0x7e8], eax
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
add esp, 4
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
mov ebx, dword [ebp + 8]
push dword [ebx]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
cmp dword [edx + 0x7e8], 0
jle case.0x4667d1.9
mov esi, dword [edx + 0x7e8]
mov edi, dword [edx + 0x7e0]
mov ebx, esi
sub edi, esi
mov dword [ebp - 4], edi
test edi, edi
jle 0x466be1
mov eax, esi
dec eax
mov ecx, esi
sub ecx, eax
dec esi
test ecx, ecx
jge 0x466a81
xor ecx, ecx
cmp edi, 5
mov dword [ebp - 8], ecx
jle 0x466bad
lea edi, [edx + 0x10]
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 8]
add edi, dword [ebp - 0xc]
lea esi, [edx + ebx + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0xc]
mov edi, ebx
inc esi
inc edi
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 8]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0xc]
mov edi, ebx
add esi, 2
add edi, 2
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 8]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0xc]
mov edi, ebx
add esi, 3
add edi, 3
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 8]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0xc]
mov edi, ebx
add esi, 4
add edi, 4
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 8]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0xc]
mov edi, ebx
add esi, 5
add edi, 5
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 8]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0xc]
add ebx, 6
mov edi, dword [ebp - 4]
add esi, 6
sub edi, 6
mov dword [ebp - 4], edi
cmp edi, 5
jg 0x466a8d
test edi, edi
jle 0x466be1
lea edi, [edx + 0x10]
mov dword [ebp - 0xc], esi
add edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
lea esi, [edx + ebx + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 0xc]
inc ebx
mov edi, dword [ebp - 4]
inc esi
dec edi
mov dword [ebp - 4], edi
test edi, edi
jg 0x466bad
mov ecx, dword [edx + 0x7e0]
dec ecx
mov edi, dword [edx + 0x7e0]
sub edi, ecx
test edi, edi
jge 0x466bf6
xor edi, edi
lea esi, [0x4b00b0]
mov eax, edi
lea edi, [edx + 0x10]
add edi, ecx
mov ecx, eax
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov ebx, dword [edx + 0x7e8]
mov esi, dword [edx + 0x7e0]
dec ebx
dec esi
mov dword [edx + 0x7e8], ebx
mov dword [edx + 0x7e0], esi
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
push dword [ebp + 8]
call fcn.00465558
mov edi, dword [ebp + 8]
push dword [edi]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
mov ebx, dword [edx + 0x7f4]
cmp ebx, dword [edx + 0x7f8]
jg 0x466ebd
mov esi, dword [edx + 0x7f8]
sub esi, dword [edx + 0x7f4]
mov eax, dword [edx + 0x7e0]
mov edi, dword [edx + 0x7f4]
inc esi
mov dword [ebp - 4], esi
sub eax, dword [ebp - 4]
sub eax, edi
inc eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
test eax, eax
jle 0x466e26
mov ecx, edi
mov esi, edi
dec ecx
sub esi, ecx
mov ecx, dword [ebp - 4]
add ecx, edi
mov ebx, ecx
mov eax, ecx
dec ebx
dec eax
sub ecx, eax
dec edi
test esi, esi
jge 0x466cb2
xor esi, esi
test ecx, ecx
mov dword [ebp - 0x10], esi
jge 0x466cbb
xor ecx, ecx
cmp dword [ebp - 8], 5
mov dword [ebp - 0x14], ecx
jle 0x466df1
mov dword [ebp - 8], edi
mov dword [ebp - 0x18], ebx
lea edi, [edx + 0x10]
mov ebx, dword [ebp - 0x14]
lea esi, [edx + 0x10]
add edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
add esi, dword [ebp - 0x18]
mov eax, ebx
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
inc esi
inc edi
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
add esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, ebx
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
add esi, 2
add edi, 2
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
add esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, ebx
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
add esi, 3
add edi, 3
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
add esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, ebx
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
add esi, 4
add edi, 4
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
add esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, ebx
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x18]
add esi, 5
add edi, 5
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
lea esi, [edx + 0x10]
add esi, eax
mov ecx, dword [ebp - 0x10]
mov eax, ebx
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 8]
add ebx, 6
mov eax, dword [ebp - 0xc]
add esi, 6
sub eax, 6
mov edi, esi
mov dword [ebp - 0xc], eax
cmp eax, 5
jg 0x466cc8
test eax, eax
jle 0x466e26
mov dword [ebp - 8], edi
lea edi, [edx + 0x10]
lea esi, [edx + 0x10]
add edi, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
add esi, ebx
mov eax, dword [ebp - 0x14]
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 8]
inc ebx
mov eax, dword [ebp - 0xc]
inc esi
dec eax
mov edi, esi
mov dword [ebp - 0xc], eax
test eax, eax
jg 0x466df1
mov esi, dword [edx + 0x7f8]
mov eax, dword [edx + 0x7e0]
inc esi
sub eax, dword [ebp - 4]
mov ecx, dword [edx + 0x7e0]
mov dword [edx + 0x7f4], esi
sub ecx, eax
test ecx, ecx
jge 0x466e4a
xor ecx, ecx
lea edi, [edx + 0x10]
add edi, eax
lea esi, [0x4b00b0]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov ebx, dword [edx + 0x7e0]
mov esi, dword [edx + 0x7f8]
sub ebx, dword [ebp - 4]
cmp esi, dword [edx + 0x7e8]
mov dword [edx + 0x7e0], ebx
jg 0x466ea3
mov edi, dword [edx + 0x7e8]
sub edi, dword [ebp - 4]
mov dword [edx + 0x7e8], edi
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
add esp, 4
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
mov ebx, dword [ebp + 8]
push dword [ebx]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
mov esi, dword [edx + 0x7e8]
cmp esi, dword [edx + 0x7e0]
jge case.0x4667d1.9
mov edi, dword [edx + 0x7e8]
inc edi
mov ebx, dword [edx + 0x7e0]
sub ebx, edi
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
test ebx, ebx
mov ebx, edi
jle 0x467065
mov eax, edi
dec eax
mov ecx, edi
sub ecx, eax
dec edi
test ecx, ecx
jge 0x466efc
xor ecx, ecx
cmp dword [ebp - 4], 5
mov dword [ebp - 0xc], ecx
jle 0x46702f
mov dword [ebp - 4], edi
lea edi, [edx + 0x10]
mov ecx, dword [ebp - 0xc]
add edi, dword [ebp - 4]
lea esi, [edx + ebx + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 4]
mov edi, ebx
inc esi
inc edi
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 0xc]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 4]
mov edi, ebx
add esi, 2
add edi, 2
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 0xc]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 4]
mov edi, ebx
add esi, 3
add edi, 3
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 0xc]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 4]
mov edi, ebx
add esi, 4
add edi, 4
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 0xc]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 4]
mov edi, ebx
add esi, 5
add edi, 5
mov eax, edi
lea edi, [edx + 0x10]
add edi, esi
mov ecx, dword [ebp - 0xc]
lea esi, [edx + eax + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 4]
add ebx, 6
mov eax, dword [ebp - 8]
add esi, 6
sub eax, 6
mov edi, esi
mov dword [ebp - 8], eax
cmp eax, 5
jg 0x466f09
test eax, eax
jle 0x467065
mov dword [ebp - 4], edi
lea edi, [edx + 0x10]
add edi, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
lea esi, [edx + ebx + 0x10]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov esi, dword [ebp - 4]
inc ebx
mov eax, dword [ebp - 8]
inc esi
dec eax
mov edi, esi
mov dword [ebp - 8], eax
test eax, eax
jg 0x46702f
mov esi, dword [edx + 0x7e0]
dec esi
mov eax, dword [edx + 0x7e0]
sub eax, esi
test eax, eax
jge 0x46707a
xor eax, eax
lea edi, [edx + 0x10]
add edi, esi
lea esi, [0x4b00b0]
mov ecx, eax
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov ebx, dword [edx + 0x7e0]
dec ebx
mov dword [edx + 0x7e0], ebx
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
mov esi, dword [ebp + 8]
push dword [esi]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
sub esp, 4
push 0x10
call sub.USER32.dll_GetKeyState
add esp, 4
test ax, ax
mov ebx, dword [0x3f42f1c]
jge 0x46719b
mov edi, dword [0x3f42f1c]
mov edx, dword [0x3f42f1c]
mov esi, dword [ebx + 0x7f4]
mov ecx, dword [0x3f42f1c]
cmp esi, dword [edi + 0x7f8]
jg 0x46715a
mov edx, dword [edx + 0x7e8]
inc edx
cmp edx, esi
jne 0x467121
cmp esi, 1
jle 0x4671dc
dec esi
mov dword [ecx + 0x7f4], esi
jmp 0x4671ce
mov edi, dword [0x3f42f1c]
mov ebx, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
mov ecx, dword [0x3f42f1c]
mov esi, dword [edi + 0x7e8]
cmp esi, dword [ebx + 0x7f8]
jne 0x4671dc
mov edx, dword [eax + 0x7f8]
dec edx
mov dword [ecx + 0x7f8], edx
jmp 0x4671ce
mov edi, dword [0x3f42f1c]
mov ebx, dword [0x3f42f1c]
mov ecx, dword [0x3f42f1c]
mov edx, dword [0x3f42f1c]
cmp dword [edi + 0x7e8], 0
jle 0x4671dc
mov esi, dword [0x3f42f1c]
mov eax, dword [esi + 0x7e8]
mov dword [ebx + 0x7f4], eax
mov edi, dword [ecx + 0x7e8]
mov dword [edx + 0x7f8], edi
jmp 0x4671ce
mov ebx, dword [0x3f42f1c]
mov esi, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
mov edx, dword [0x3f42f1c]
mov edi, dword [ebx + 0x7f4]
cmp edi, dword [esi + 0x7f8]
jg 0x4671dc
mov eax, dword [eax + 0x7f8]
inc eax
mov dword [edx + 0x7f4], eax
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
add esp, 4
mov ebx, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
cmp dword [ebx + 0x7e8], 0
jle 0x467212
mov esi, dword [0x3f42f1c]
mov edi, dword [esi + 0x7e8]
dec edi
mov dword [eax + 0x7e8], edi
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
add esp, 4
mov ebx, dword [ebp + 8]
sub esp, 4
push dword [ebx]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
sub esp, 4
push 0x10
call sub.USER32.dll_GetKeyState
add esp, 4
test ax, ax
mov esi, dword [0x3f42f1c]
jge 0x467318
mov ebx, dword [0x3f42f1c]
mov ecx, dword [0x3f42f1c]
mov edi, dword [esi + 0x7f8]
mov eax, dword [0x3f42f1c]
mov edx, dword [ebx + 0x7f4]
mov esi, dword [0x3f42f1c]
cmp edx, edi
jg 0x4672ca
mov ecx, dword [ecx + 0x7e8]
mov ebx, dword [0x3f42f1c]
inc ecx
cmp ecx, dword [eax + 0x7f4]
jne 0x467292
mov esi, dword [esi + 0x7f4]
inc esi
mov dword [ebx + 0x7f4], esi
jmp 0x46734b
mov ebx, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
mov edx, dword [0x3f42f1c]
mov esi, dword [ebx + 0x7e8]
cmp esi, edi
jne 0x467359
cmp edi, dword [eax + 0x7e0]
jge 0x467359
inc edi
mov dword [edx + 0x7f8], edi
jmp 0x46734b
mov esi, dword [0x3f42f1c]
mov ebx, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
mov edx, dword [0x3f42f1c]
mov edi, dword [esi + 0x7e8]
mov ecx, dword [0x3f42f1c]
cmp edi, dword [ebx + 0x7e0]
mov esi, dword [0x3f42f1c]
jge 0x467359
mov eax, dword [eax + 0x7e8]
inc eax
mov dword [edx + 0x7f4], eax
mov ecx, dword [ecx + 0x7e8]
inc ecx
mov dword [esi + 0x7f8], ecx
jmp 0x46734b
mov edi, dword [0x3f42f1c]
mov ebx, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
mov edx, dword [0x3f42f1c]
mov esi, dword [edi + 0x7f4]
cmp esi, dword [ebx + 0x7f8]
jg 0x467359
mov eax, dword [eax + 0x7f8]
inc eax
mov dword [edx + 0x7f4], eax
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
add esp, 4
mov ebx, dword [0x3f42f1c]
mov edi, dword [0x3f42f1c]
mov eax, dword [0x3f42f1c]
mov esi, dword [ebx + 0x7e8]
mov edx, dword [0x3f42f1c]
cmp esi, dword [edi + 0x7e0]
jge 0x46739a
mov eax, dword [eax + 0x7e8]
inc eax
mov dword [edx + 0x7e8], eax
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
add esp, 4
mov ebx, dword [ebp + 8]
sub esp, 4
push dword [ebx]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
sub esp, 4
push 0x10
call sub.USER32.dll_GetKeyState
add esp, 4
mov esi, dword [0x3f42f1c]
test ax, ax
jge 0x467415
mov edi, dword [esi + 0x7f4]
cmp edi, dword [esi + 0x7f8]
jg 0x4673fd
mov ebx, dword [esi + 0x7f4]
dec ebx
cmp ebx, dword [esi + 0x7e8]
je 0x467409
mov edx, dword [esi + 0x7f4]
dec edx
mov dword [esi + 0x7f8], edx
mov dword [esi + 0x7f4], 1
jmp 0x467430
mov ecx, dword [esi + 0x7e8]
mov dword [esi + 0x7f8], ecx
mov dword [esi + 0x7f4], 1
jmp 0x467430
mov edi, dword [esi + 0x7f4]
cmp edi, dword [esi + 0x7f8]
jg 0x467444
mov ebx, dword [esi + 0x7f8]
inc ebx
mov dword [esi + 0x7f4], ebx
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
add esp, 4
mov esi, dword [0x3f42f1c]
xor edi, edi
mov dword [esi + 0x7e8], edi
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
jmp 0x467e40
sub esp, 4
push 0x10
call sub.USER32.dll_GetKeyState
add esp, 4
mov ebx, dword [0x3f42f1c]
test ax, ax
jge 0x4674c9
mov esi, dword [ebx + 0x7f4]
cmp esi, dword [ebx + 0x7f8]
jg 0x4674ae
mov edi, dword [ebx + 0x7e8]
cmp edi, dword [ebx + 0x7f8]
je 0x4674bb
mov edx, dword [ebx + 0x7f8]
inc edx
mov eax, dword [ebx + 0x7e0]
mov dword [ebx + 0x7f4], edx
mov dword [ebx + 0x7f8], eax
jmp 0x4674e4
mov ecx, dword [ebx + 0x7e8]
inc ecx
mov dword [ebx + 0x7f4], ecx
mov eax, dword [ebx + 0x7e0]
mov dword [ebx + 0x7f8], eax
jmp 0x4674e4
mov esi, dword [ebx + 0x7f4]
cmp esi, dword [ebx + 0x7f8]
jg 0x4674f8
mov edi, dword [ebx + 0x7f8]
inc edi
mov dword [ebx + 0x7f4], edi
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
mov ebx, dword [0x3f42f1c]
add esp, 4
mov esi, dword [ebx + 0x7e0]
mov dword [ebx + 0x7e8], esi
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
jmp 0x467e40
mov edi, dword [edx + 0x838]
and edi, 0x20
je 0x4675fb
cmp dword [edx + 0x7e0], 0
jle 0x4677af
mov ebx, dword [edx + 0x7e0]
test ebx, ebx
jge 0x46753c
xor ebx, ebx
sub esp, 4
lea esi, [edx + 0x7f8]
lea eax, [edx + 0x7f4]
lea ecx, [ebp - 4]
add edx, 0x10
push esi
push eax
push ecx
push ebx
push edx
call fcn.00460118
add esp, 4
test eax, eax
mov edi, dword [0x3f42f1c]
jne 0x46759c
mov esi, dword [0x3f42f1c]
mov ebx, dword [esi + 0x7f8]
mov dword [edi + 0x7e8], ebx
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
push dword [ebp + 8]
call fcn.00465558
mov esi, dword [ebp + 8]
push dword [esi]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
mov edi, dword [0x3f42f1c]
sub esp, 4
add edi, 0x10
lea ebx, [ebp - 4]
push 0x3e8
push edi
push ebx
call fcn.00460871
add esp, 4
mov esi, dword [0x3f42f1c]
lea edx, [ebp - 0x838]
mov ebx, dword [0x3f42f1c]
lea edi, [ebp - 0x838]
add esi, 0x10
mov ecx, 0x3e8
call fcn.0046e521
push 0x3e8
push edx
call fcn.0046f8b0
mov dword [ebx + 0x7e0], eax
mov edx, dword [0x3f42f1c]
jmp 0x4677af
mov esi, dword [edx + 0x838]
and esi, 0x80
je 0x4676e5
cmp dword [edx + 0x7e0], 0
jle 0x4677af
mov edi, dword [edx + 0x7e0]
test edi, edi
jge 0x467626
xor edi, edi
sub esp, 4
lea ecx, [edx + 0x7f8]
lea ebx, [edx + 0x7f4]
lea eax, [ebp - 4]
add edx, 0x10
push ecx
push ebx
push eax
push edi
push edx
call fcn.00460aa7
add esp, 4
test eax, eax
mov esi, dword [0x3f42f1c]
jne 0x467686
mov ebx, dword [0x3f42f1c]
mov edi, dword [ebx + 0x7f8]
mov dword [esi + 0x7e8], edi
sub esp, 4
push dword [ebp + 8]
call fcn.00469178
push dword [ebp + 8]
call fcn.00465558
mov ebx, dword [ebp + 8]
push dword [ebx]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
mov esi, dword [0x3f42f1c]
sub esp, 4
add esi, 0x10
lea edi, [ebp - 4]
push 0x3e8
push esi
push edi
call fcn.00460f87
add esp, 4
mov esi, dword [0x3f42f1c]
lea edx, [ebp - 0x838]
mov ebx, dword [0x3f42f1c]
lea edi, [ebp - 0x838]
add esi, 0x10
mov ecx, 0x3e8
call fcn.0046e521
push 0x3e8
push edx
call fcn.0046f8b0
mov dword [ebx + 0x7e0], eax
mov edx, dword [0x3f42f1c]
jmp 0x4677af
mov esi, dword [edx + 0x838]
and esi, 8
je 0x4677af
cmp dword [edx + 0x7e0], 1
jle 0x4677af
movzx ecx, byte [edx + 0x10]
cmp ecx, 0x30
jne 0x4677af
lea edi, [edx + 0x10]
lea esi, [edx + 0x11]
mov ecx, 0x3e7
call fcn.0046e521
mov ecx, 1
mov eax, 0x20
call fcn.0046e6bd
mov ebx, dword [edx + 0x7e0]
dec ebx
mov dword [edx + 0x7e0], ebx
cmp ebx, 1
jle 0x4677af
movzx eax, byte [edx + 0x10]
cmp eax, 0x30
jne 0x4677af
lea edi, [edx + 0x10]
lea esi, [edx + 0x11]
mov ecx, 0x3e7
call fcn.0046e521
mov ecx, 1
mov eax, 0x20
call fcn.0046e6bd
dec ebx
mov dword [edx + 0x7e0], ebx
cmp ebx, 1
jle 0x4677af
movzx eax, byte [edx + 0x10]
cmp eax, 0x30
jne 0x4677af
lea edi, [edx + 0x10]
lea esi, [edx + 0x11]
mov ecx, 0x3e7
call fcn.0046e521
mov ecx, 1
mov eax, 0x20
call fcn.0046e6bd
dec ebx
mov dword [edx + 0x7e0], ebx
cmp ebx, 1
jg 0x467701
xor esi, esi
mov dword [edx + 4], esi
call sub.USER32.dll_DestroyCaret
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
mov edi, dword [ebp + 8]
mov edi, dword [edi]
push edi
call sub.USER32.dll_UpdateWindow
push edi
call sub.USER32.dll_GetParent
mov ebx, eax
push edi
call sub.USER32.dll_GetDlgCtrlID
movsx eax, ax
add esp, 4
push 0xc9
push eax
call fcn.0046da90
push edi
push eax
push 0x111
push ebx
call sub.USER32.dll_SendMessageA
jmp case.0x4667d1.9
mov esi, dword [edx + 0x7f4]
cmp esi, dword [edx + 0x7f8]
jg 0x467835
mov edi, dword [edx + 0x7f8]
inc edi
mov dword [edx + 0x7f4], edi
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
mov ebx, dword [ebp + 8]
push dword [ebx]
call sub.USER32.dll_UpdateWindow
jmp 0x467e40
xor esi, esi
lea edi, [edx + 0x10]
mov ecx, 0x3e8
mov ebx, edx
mov dword [edx + 4], esi
lea esi, [edx + 0x3f8]
call fcn.0046e521
lea esi, [edx + 0x10]
lea edx, [ebp - 0x838]
lea edi, [ebp - 0x838]
mov ecx, 0x3e8
call fcn.0046e521
push 0x3e8
push edx
call fcn.0046f8b0
mov dword [ebx + 0x7e0], eax
call sub.USER32.dll_DestroyCaret
sub esp, 4
push dword [ebp + 8]
call fcn.00465558
mov esi, dword [ebp + 8]
mov esi, dword [esi]
push esi
call sub.USER32.dll_UpdateWindow
push esi
call sub.USER32.dll_GetParent
mov edi, eax
push esi
call sub.USER32.dll_GetDlgCtrlID
movsx eax, ax
add esp, 4
push 0xca
push eax
call fcn.0046da90
push esi
push eax
push 0x111
push edi
call sub.USER32.dll_SendMessageA
jmp case.0x4667d1.9
cmp edi, 0x43
je 0x467d9e
cmp edi, 0x56
je 0x46799f
cmp edi, 0x58
jne case.0x4667d1.9
sub esp, 4
push 0x11
call sub.USER32.dll_GetKeyState
add esp, 4
test ax, ax
mov edx, dword [0x3f42f1c]
jge case.0x4667d1.9
mov ebx, dword [edx + 0x7f4]
cmp ebx, dword [edx + 0x7f8]
jg case.0x4667d1.9
mov esi, dword [edx + 0x7f4]
dec esi
mov edi, dword [edx + 0x7f8]
mov ebx, esi
sub edi, ebx
test edi, edi
jge 0x467928
xor edi, edi
lea esi, [edx + 0x10]
add esi, ebx
mov ecx, 0x3e8
lea edx, [ebp - 0x450]
lea ebx, [ebp - 8]
mov eax, edi
lea edi, [ebp - 0x838]
call fcn.0046f930
lea esi, [0x4b00ac]
mov eax, 1
call fcn.0046f930
mov eax, 0x3e8
lea edi, [ebp - 0x450]
sub eax, ecx
lea esi, [ebp - 0x838]
add ecx, eax
call fcn.0046f930
mov eax, 0x20
lea esi, [0x4b00a8]
call fcn.0046e6bd
mov dword [ebp - 8], edx
sub esp, 4
push ebx
call fcn.0046d1f0
add esp, 4
push esi
push dword [ebp + 8]
call fcn.00466490
jmp case.0x4667d1.9
sub esp, 4
push 0x11
call sub.USER32.dll_GetKeyState
add esp, 4
test ax, ax
mov edx, dword [0x3f42f1c]
jge case.0x4667d1.9
mov edi, dword [edx + 0x7f4]
cmp edi, dword [edx + 0x7f8]
jg 0x4679db
lea ebx, [0x4b00a8]
push ebx
push dword [ebp + 8]
call fcn.00466490
lea esi, [ebp - 0x450]
lea ebx, [ebp - 0x14]
mov dword [ebp - 8], esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x3e8
sub esp, 4
lea ecx, [ebp - 8]
push ebx
push eax
push ecx
call fcn.0046d2c0
mov edx, dword [0x3f42f1c]
add esp, 4
mov esi, dword [edx + 0x838]
and esi, 0x10
jne 0x467a2d
mov edi, dword [edx + 0x838]
and edi, 4
jne 0x467a2d
mov edx, dword [edx + 0x838]
and edx, 8
je 0x467d42
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov ecx, eax
mov dword [ebp - 0x18], eax
xor eax, eax
cmp dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x14]
setle al
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0
test eax, eax
jne 0x467c5d
dec esi
sub edi, esi
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], edi
dec ecx
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x24], esp
mov dword [ebp - 0x28], ecx
test esi, esi
jge 0x467a87
xor esi, esi
lea ebx, [ebp - 0x848]
mov eax, esi
mov dword [ebp - 0x2c], esi
add eax, 7
and eax, 0xfffffff8
cmp eax, 0x1000
jle 0x467ab7
sub ebx, 0x1000
sub eax, 0x1000
test dword [ebx], eax
cmp eax, 0x1000
jg 0x467aa3
sub ebx, eax
test dword [ebx], eax
mov esp, ebx
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov ecx, dword [ebp - 0x2c]
lea esi, [ebp + esi - 0x450]
mov edx, ebx
call fcn.0046e521
mov eax, dword [ebp - 0x2c]
mov ebx, eax
add eax, 7
and eax, 0xfffffff8
cmp eax, 0x1000
jle 0x467b00
sub edx, 0x1000
sub eax, 0x1000
test dword [edx], eax
cmp eax, 0x1000
jg 0x467aec
sub edx, eax
test dword [edx], eax
mov esp, edx
mov dword [ebp - 0x24], edx
mov edi, edx
mov ecx, ebx
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
call fcn.0046f930
mov eax, 0x20
mov esi, edx
call fcn.0046e6bd
mov eax, 1
mov ecx, ebx
lea edi, [0x4b00a4]
push 0x20
call fcn.0047a1e0
add esp, 4
test eax, eax
je 0x467b66
mov eax, 1
mov esi, edx
mov ecx, ebx
lea edi, [0x4b00a0]
push 0x20
call fcn.0047a180
add esp, 4
test eax, eax
je 0x467c39
mov eax, 1
mov esi, edx
mov ecx, ebx
lea edi, [0x4b00b0]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
jne 0x467c39
mov eax, 1
mov esi, edx
mov ecx, ebx
lea edi, [0x4b009c]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
jne 0x467c39
mov eax, 1
mov esi, edx
mov ecx, ebx
lea edi, [0x4b0098]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
jne 0x467c39
mov eax, 1
mov esi, edx
mov ecx, ebx
lea edi, [0x4b0094]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
mov edi, dword [ebp - 0xc]
je 0x467c08
cmp dword [ebp - 8], 0
jne 0x467bfc
mov edi, 0xffffffff
mov dword [ebp - 0xc], edi
mov ecx, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x10], ecx
jmp 0x467c39
mov eax, 1
mov esi, edx
mov ecx, ebx
lea edi, str..__09.
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
je 0x467c56
mov ebx, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
jne 0x467c36
mov ebx, 0xffffffff
mov dword [ebp - 8], ebx
lea esp, [ebp - 0x848]
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x18]
dec esi
dec edi
mov ecx, esi
mov dword [ebp - 0x18], edi
test edi, edi
jg 0x467a78
jmp 0x467c5d
mov dword [ebp - 4], 0
lea esp, [ebp - 0x848]
mov edx, dword [ebp - 0xc]
and edx, dword [ebp - 4]
xor ebx, ebx
cmp dword [ebp - 0x10], 1
setne bl
xor edx, 1
or edx, ebx
test edx, 1
jne 0x467d42
je 0x467c85
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 4], esi
mov edi, dword [ebp - 0x14]
jne 0x467d42
dec edi
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
sub eax, edi
dec ecx
test eax, eax
jge 0x467ca8
xor eax, eax
mov dword [ebp - 8], eax
mov edx, ecx
mov ebx, dword [ebp - 8]
mov eax, 1
mov ecx, ebx
lea esi, [ebp + edx - 0x450]
lea edi, [0x4b0094]
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
lea edi, [ebp - 0x450]
je 0x467ce7
add edi, edx
mov ecx, ebx
lea esi, str..__09.
jmp 0x467d1c
mov eax, 1
lea esi, [ebp + edx - 0x450]
mov ecx, ebx
lea edi, str..__09.
push 0x20
call fcn.0046e4c8
add esp, 4
test eax, eax
lea edi, [ebp - 0x450]
je 0x467d30
add edi, edx
mov ecx, ebx
lea esi, [0x4b0094]
mov eax, 1
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov ebx, dword [ebp - 4]
dec edx
dec ebx
mov ecx, edx
mov dword [ebp - 4], ebx
test ebx, ebx
jg 0x467cab
mov edi, 1
mov eax, 0
mov ebx, eax
lea esi, [ebp - 8]
movzx edx, byte [ebp + ebx - 0x450]
mov cl, byte [ebp + ebx - 0x450]
test edx, edx
je case.0x4667d1.9
movzx ecx, cl
mov dword [ebp - 8], ecx
push esi
push dword [ebp + 8]
call fcn.00466030
inc edi
inc ebx
mov eax, ebx
cmp edi, 0x3e8
mov edx, dword [0x3f42f1c]
jg case.0x4667d1.9
cmp dword [edx + 0x7e0], 0x3e8
jne 0x467d4c
jmp case.0x4667d1.9
sub esp, 4
push 0x11
call sub.USER32.dll_GetKeyState
add esp, 4
test ax, ax
mov edx, dword [0x3f42f1c]
jge case.0x4667d1.9
mov esi, dword [edx + 0x7f4]
cmp esi, dword [edx + 0x7f8]
jg case.0x4667d1.9
mov ebx, dword [edx + 0x7f4]
dec ebx
mov edi, dword [edx + 0x7f8]
sub edi, ebx
test edi, edi
jge 0x467de0
xor edi, edi
lea esi, [edx + 0x10]
add esi, ebx
mov ecx, 0x3e8
lea edx, [ebp - 0x450]
lea ebx, [ebp - 8]
mov eax, edi
lea edi, [ebp - 0x838]
call fcn.0046f930
lea esi, [0x4b00ac]
mov eax, 1
call fcn.0046f930
mov eax, 0x3e8
lea edi, [ebp - 0x450]
sub eax, ecx
lea esi, [ebp - 0x838]
add ecx, eax
call fcn.0046f930
mov eax, 0x20
call fcn.0046e6bd
mov dword [ebp - 8], edx
sub esp, 4
push ebx
call fcn.0046d1f0
add esp, 4
lea esp, [ebp - 0x848]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8