Function at 0x463795
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
push edi
push esi
push eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
mov dword [esp], ecx
push ecx
push eax
call fcn.0045aed1
add esp, 8
mov esi, eax
push dword [0x497058]
push str._s_Command_Line_Error
call fcn.0045ad89
add esp, 8
mov edi, eax
push 0x10
push eax
push esi
push dword [0x4c1058]
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
call fcn.00411739
add esp, 4
push edi
call fcn.00411739
add esp, 4
push 1
call fcn.00480cfd
push ebp
push ebx
push edi
push esi
sub esp, 0x87c
mov ebx, dword [esp + 0x89c]
mov edx, dword [esp + 0x898]
mov esi, dword [esp + 0x894]
mov ebp, dword [esp + 0x890]
mov eax, dword [0x4c1074]
xor eax, esp
mov dword [esp + 0x878], eax
cmp esi, 0x1ff
jg 0x462dfd
cmp esi, 0xff
jle 0x462f3d
lea eax, [esi - 0x100]
cmp eax, 0x17
ja case.0x462e24.515
jmp dword [eax*4 + 0x4a173c]
push ebx
push 3
call fcn.0046f8e3
mov edx, dword [esp + 0x8a0]
add esp, 8
mov eax, edx
and eax, 0xfffffffd
cmp eax, 0xe5
jne 0x4630dc
cmp esi, 0x100
jne case.0x462f49.1
lea eax, [esp + 0x78]
mov dword [eax], ebp
mov dword [eax + 4], 0x100
mov dword [eax + 8], edx
and ebx, 0xdfff
mov dword [eax + 0xc], ebx
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
jmp 0x465cd0
cmp esi, 0x285
jg 0x462f65
cmp esi, 0x213
jg 0x462fda
lea eax, [esi - 0x200]
cmp eax, 8
ja case.0x462e24.515
jmp dword [eax*4 + 0x4a179c]
mov esi, edx
cmp dword [0x4c3418], edx
jne 0x462e49
cmp dword [0x4c341c], ebx
jne 0x462e49
cmp dword [0x4c3410], 0x200
je 0x462e69
xor ecx, ecx
inc ecx
call fcn.00466a17
mov eax, esi
mov dword [0x4c3418], esi
mov dword [0x4c341c], ebx
mov dword [0x4c3410], 0x200
mov edi, ebx
push ebx
push 5
call fcn.0046f8e3
add esp, 8
xor ebx, ebx
mov eax, esi
test al, 0x13
je 0x465cd2
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, ebp
jne 0x465cd2
xor eax, eax
mov edx, esi
test dl, 0x10
sete al
or eax, 2
xor ecx, ecx
inc ecx
test dl, 1
cmove ecx, eax
mov dword [esp + 0x14], ecx
call fcn.0046a60b
mov byte [esp + 8], al
mov eax, esi
mov ebp, esi
and ebp, 8
shr ebp, 3
and eax, 4
shr eax, 2
mov dword [esp], eax
mov ecx, edi
sar ecx, 0x10
mov esi, dword [0x4c2d40]
mov eax, ecx
sub eax, esi
inc eax
test edi, edi
cmovns eax, ecx
sub eax, dword [0x4c2d70]
cdq
idiv esi
mov dword [esp + 0x10], eax
mov ecx, edi
shl ecx, 0x10
movsx edx, di
mov esi, dword [0x4c2d3c]
mov eax, edx
sub eax, esi
inc eax
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4c2d74]
cdq
idiv esi
mov esi, eax
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.0046a65e
movzx ecx, byte [esp + 8]
push ecx
push ebp
push dword [esp + 8]
push dword [esp + 0x1c]
push esi
push 4
push eax
push edi
push dword [0x4c2d68]
call fcn.0045173a
add esp, 0x24
jmp 0x465cd2
lea eax, [esi - 1]
cmp eax, 0x14
ja case.default.0x462f49
jmp dword [eax*4 + 0x4a16e8]
xor ecx, ecx
inc ecx
call fcn.00466a17
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x465cd0
cmp esi, 0x30e
jg 0x462fb6
cmp esi, 0x286
je 0x463223
cmp esi, 0x2e0
je 0x4631f9
cmp esi, 0x307
jne case.0x462e24.515
cmp byte [0x4c340c], 0
jne 0x462faa
push 2
push dword [0x4c2d68]
call fcn.004562cb
add esp, 8
mov byte [0x4c340c], 0
jmp 0x465cd0
lea eax, [esi - 0x8002]
cmp eax, 3
ja case.default.0x462fc5
jmp dword [eax*4 + 0x4a17c0]
test edx, edx
setne byte [0x4c340c]
jmp case.0x462f49.1
cmp esi, 0x214
je 0x463b64
cmp esi, 0x231
je 0x463b43
cmp esi, 0x232
jne case.0x462e24.515
push 0
call fcn.0041efe4
add esp, 4
mov byte [0x4c342c], 0
cmp byte [0x4c342d], 1
jne 0x46306f
push 0x68
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push 0x7b
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov ebx, eax
push 0x7c
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
push edi
push ebx
mov ebx, dword [esp + 0x8a4]
push eax
push dword [0x4c2d68]
call fcn.0044fbe3
add esp, 0x10
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
call fcn.0046a490
jmp 0x463c8b
cmp esi, 0x51
je 0x463c62
cmp esi, 0xa0
jne case.0x462e24.515
mov edi, edx
cmp dword [0x4c3420], edx
jne 0x4630ac
cmp dword [0x4c3424], ebx
jne 0x4630ac
cmp dword [0x4c3410], 0xa0
je 0x4630cc
xor ecx, ecx
inc ecx
call fcn.00466a17
mov eax, edi
mov dword [0x4c3420], edi
mov dword [0x4c3424], ebx
mov dword [0x4c3410], 0xa0
push ebx
push 5
call fcn.0046f8e3
add esp, 8
jmp 0x463643
push 0x49
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov ebp, eax
push 0x4b
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov bh, al
push 0x64
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov bl, al
push 0x56
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov byte [esp + 0xc], al
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov dword [esp + 0x14], eax
lea edi, [esp + 0x78]
push edi
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x463ce8
mov ecx, dword [esp + 0x898]
cmp ecx, 0x12
jne 0x463dd2
mov eax, dword [esp + 0x89c]
and eax, 0x1000000
je 0x463dd2
mov al, byte [esp + 0x8a]
mov byte [esp + 0x11d], al
mov eax, 0x12
cmp ebp, 3
jne 0x463dd7
jmp 0x464a34
mov eax, edx
and eax, 0xfffffff0
cmp eax, 0x15f
jg 0x463a48
cmp eax, 0x4f
jle 0x463eca
cmp eax, 0x6f
jle 0x464374
cmp eax, 0x70
je 0x464813
cmp eax, 0x140
je 0x46483f
cmp eax, 0x150
jne 0x464a05
push ebp
mov edi, edx
call fcn.004614b8
jmp 0x463578
mov word [esp + 0x34], dx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x463afa
mov word [0x4c3430], dx
jmp 0x465cd0
movzx eax, dx
mov dword [0x4c2d4c], eax
shr edx, 0x10
mov dword [0x4c2d50], edx
movups xmm0, xmmword [ebx]
movups xmmword [0x4c2d54], xmm0
mov ecx, 3
call fcn.00469e05
jmp 0x465cd0
test edx, 0xff00
je 0x463e3f
rol dx, 8
lea eax, [esp + 0x78]
mov word [eax], dx
push 2
push eax
jmp 0x463e56
cmp esi, 0x30f
je 0x463d93
cmp esi, 0x311
jne case.0x462e24.515
cmp edx, ebp
je case.0x462f49.1
cmp dword [0x4c2da4], 0
je case.0x462f49.1
call fcn.00468ac0
mov edx, dword [esp + 0x898]
test eax, eax
je case.0x462f49.1
mov edi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x463297
push edi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, edi
call fcn.00469b71
jmp 0x463c8b
xor ecx, ecx
inc ecx
mov edi, edx
call fcn.00466a17
push 0
push dword [0x4c2d68]
call fcn.004563b1
add esp, 8
call dword [sym.imp.USER32.dll_DestroyCaret]
xor eax, eax
dec eax
mov dword [0x4c106c], eax
mov dword [0x4c1068], eax
jmp 0x46356d
push ebp
call dword [sym.imp.USER32.dll_HideCaret]
lea eax, [esp + 0x78]
push eax
push ebp
call dword [sym.imp.USER32.dll_BeginPaint]
mov esi, eax
mov eax, dword [0x4c2da4]
test eax, eax
je 0x463304
push 1
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push esi
call dword [sym.imp.GDI32.dll_RealizePalette]
cmp dword [0x4c2de0], 0
je 0x463324
push 0xaf8
push str..._windows_window.c
push str._wintw_hdc
call fcn.0048233d
add esp, 0xc
mov dword [0x4c2de0], esi
mov eax, dword [0x4c2d68]
mov dword [esp + 8], eax
xor ecx, ecx
cmp byte [eax + 0x1071], 0
sete cl
mov ebx, dword [0x4c2d70]
mov eax, ebx
not eax
add eax, dword [esp + 0x8c]
mov dword [esp], esi
mov ebp, dword [0x4c2d40]
cdq
idiv ebp
mov dword [esp + 0x14], eax
mov edi, dword [0x4c2d74]
mov eax, edi
not eax
add eax, dword [esp + 0x88]
cdq
mov esi, dword [0x4c2d3c]
idiv esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x84]
sub eax, ebx
mov ebx, dword [esp + 0x80]
sub ebx, edi
cdq
idiv ebp
mov ebp, eax
mov eax, ebx
cdq
idiv esi
push ecx
push dword [esp + 0x18]
push dword [esp + 0x18]
push ebp
mov ebp, dword [esp + 0x10]
push eax
push dword [esp + 0x1c]
call fcn.00450836
add esp, 0x18
mov dword [0x4c2de0], 0
cmp dword [esp + 0x7c], 0
jne 0x46341d
mov ecx, dword [0x4c2d74]
cmp dword [esp + 0x80], ecx
jl 0x46341d
mov eax, dword [0x4c2d70]
cmp dword [esp + 0x84], eax
jl 0x46341d
mov edx, dword [0x4c2d68]
mov esi, dword [edx + 0x12c]
imul esi, dword [0x4c2d3c]
add esi, ecx
cmp dword [esp + 0x88], esi
jge 0x46341d
mov ecx, dword [edx + 0x128]
imul ecx, dword [0x4c2d40]
add ecx, eax
cmp dword [esp + 0x8c], ecx
jl 0x4634ef
push dword [0x4c3308]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esp + 0x14], eax
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
call esi
mov dword [esp + 8], eax
xor eax, eax
push dword [0x4c3308]
push eax
push eax
call dword [sym.imp.GDI32.dll_CreatePen]
mov ebx, eax
push eax
push ebp
call esi
mov edi, esi
mov ebp, eax
movups xmm0, xmmword [esp + 0x80]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_IntersectClipRect]
mov eax, dword [0x4c2d70]
mov ecx, dword [0x4c2d68]
mov edx, dword [ecx + 0x128]
mov ecx, dword [ecx + 0x12c]
imul edx, dword [0x4c2d40]
add edx, eax
mov esi, dword [0x4c2d74]
imul ecx, dword [0x4c2d3c]
add ecx, esi
push edx
push ecx
push eax
push esi
push dword [esp + 0x10]
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
movups xmm0, xmmword [esp + 0x80]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_Rectangle]
push dword [esp + 8]
push dword [esp + 4]
mov esi, edi
call edi
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 0x14]
call edi
push ebp
mov ebp, dword [esp + 4]
push ebp
call esi
push ebx
call edi
mov esi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0xd
call esi
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
call edi
push 6
call esi
push eax
push ebp
call edi
lea eax, [esp + 0x78]
push eax
mov esi, dword [esp + 0x894]
push esi
call dword [sym.imp.USER32.dll_EndPaint]
push esi
call dword [sym.imp.USER32.dll_ShowCaret]
jmp 0x465cd0
push 1
push dword [0x4c2d68]
mov edi, edx
call fcn.004563b1
add esp, 8
push dword [0x4c2d40]
push dword [0x4c2d3c]
push dword [0x4c2d78]
push ebp
call dword [sym.imp.USER32.dll_CreateCaret]
push ebp
call dword [sym.imp.USER32.dll_ShowCaret]
xor ecx, ecx
call fcn.00469c78
mov dword [0x4c3428], 0
push dword [0x4c2d68]
call fcn.0044d3e4
mov edx, edi
add esp, 4
jmp case.0x462f49.1
push 0x77
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
xor eax, eax
cmp dword [esp + 0x898], 1
sete al
push eax
push dword [0x4c2d68]
call fcn.0045677d
add esp, 8
lea esi, [esp + 0x78]
push esi
push ebp
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 4]
sub eax, dword [esi]
push ecx
push eax
push dword [0x4c2d68]
call fcn.004567a5
mov ecx, dword [esp + 0x8a4]
add esp, 0xc
cmp ecx, 1
jne 0x463e6f
push 0x7a
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov ecx, 0x4c33c0
mov edx, 0x4c33c4
test al, al
cmovne edx, ecx
push dword [edx]
push ebp
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov byte [0x4c340e], 1
cmp edi, 1
je 0x4645eb
jmp 0x464c7d
mov eax, ebx
shr eax, 0x10
movzx ecx, bx
push eax
push ecx
push dword [0x4c2d68]
mov edi, edx
call fcn.0045678c
add esp, 0xc
call fcn.00469bb5
mov edx, edi
jmp case.0x462f49.1
xor ecx, ecx
inc ecx
call fcn.00466a17
push dword [0x497058]
push str._s_Exit_Confirmation
call fcn.0045ad89
add esp, 8
mov edi, eax
mov eax, dword [0x4c2dc4]
xor esi, esi
test eax, eax
je 0x463683
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x40]
test ecx, ecx
je 0x463683
push eax
call ecx
add esp, 4
mov esi, eax
test esi, esi
mov eax, 0x4b6a76
mov ecx, esi
cmove ecx, eax
mov edx, 0x4b68f5
cmove edx, eax
push ecx
push edx
push str.Are_you_sure_you_want_to_close_this_session__s_s
call fcn.0045ad89
add esp, 0xc
mov ebx, eax
cmp byte [0x4c2dc0], 0
jne 0x4636d5
push 5
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
je 0x4636d5
push 0x31
push edi
push ebx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
jne 0x4636dc
push ebp
call dword [sym.imp.USER32.dll_DestroyWindow]
push edi
call fcn.00411739
add esp, 4
push ebx
call fcn.00411739
add esp, 4
push esi
jmp 0x464195
push 0x90
push dword [0x4c2228]
mov edi, edx
call fcn.004031ad
mov edx, edi
add esp, 8
test al, al
je case.0x462f49.1
push dword [0x4c2d68]
call fcn.0044f445
add esp, 4
call fcn.0046648e
push dword [0x4c2d68]
call fcn.004507c9
jmp 0x463578
and edx, 0xffffffef
mov dword [esp], edx
mov dword [esp + 0x10], 2
jmp 0x4637f7
or edx, 0x10
mov dword [esp], edx
mov dword [esp + 0x10], 2
mov al, 1
mov dword [esp + 0x14], eax
jmp 0x4637ff
and edx, 0xfffffffe
mov dword [esp], edx
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
mov bl, 1
mov dword [esp + 0x14], 0
jmp 0x463801
or edx, 1
mov dword [esp], edx
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
mov al, 1
mov dword [esp + 0x14], eax
mov bl, 1
jmp 0x463801
mov dword [esp], edx
test dl, 8
jne 0x4637b9
push 0x94
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
cmp eax, 2
jne 0x4641a2
xor ecx, ecx
inc ecx
call fcn.00466a17
lea edi, [esp + 0x78]
push edi
call dword [sym.imp.USER32.dll_GetCursorPos]
xor eax, eax
push eax
push ebp
push eax
push dword [edi + 4]
push dword [edi]
push 2
push dword [0x4c2d8c]
call dword [sym.imp.USER32.dll_TrackPopupMenu]
jmp 0x463c8b
and edx, 0xfffffffd
mov dword [esp], edx
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 0
xor ebx, ebx
xor esi, esi
inc esi
mov ecx, esi
call fcn.00466a17
lea edi, [esp + 0x34]
push edi
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0
push dword [edi + 4]
push dword [edi]
call fcn.00461f2c
mov byte [esp + 8], 1
test eax, eax
je 0x463855
lea edi, [esp + 0x78]
mov dword [edi], 0x28
push edi
push eax
call fcn.00461f84
mov eax, dword [edi + 4]
cmp eax, dword [esp + 0x34]
jne 0x463855
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x38]
setne byte [esp + 8]
call fcn.00469c4e
mov ecx, dword [esp + 0x14]
and bl, cl
cmp bl, 1
jne 0x463895
test al, al
je 0x463895
cmp byte [esp + 8], 0
jne 0x463895
movzx eax, word [esp + 0x34]
mov ecx, dword [esp + 0x38]
shl ecx, 0x10
or ecx, eax
push ecx
push 0xf090
push 0x112
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x465cd0
lea eax, [esp + 0x78]
test cl, cl
je 0x4638d0
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
mov ebx, dword [esp + 0x89c]
je 0x463eb0
cmp byte [esp + 0x8a], 0
js 0x463f24
mov al, byte [esp + 0x11d]
shr al, 7
jmp 0x463f26
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor ebx, ebx
test eax, eax
je 0x463eba
cmp byte [esp + 0x8a], 0
mov ebp, dword [esp]
js 0x46408d
mov al, byte [esp + 0x11d]
shr al, 7
jmp 0x46408f
cmp dword [0x4c3cf0], 2
jb case.0x462f49.1
mov eax, ebx
and eax, 0x800
je case.0x462f49.1
push ebp
call sub.IMM32.dll_ImmGetContext
mov esi, eax
xor eax, eax
push eax
push eax
push 0x800
push esi
call sub.IMM32.dll_ImmGetCompositionStringW
test eax, eax
jle 0x4639d7
mov edi, eax
push 0
push 1
push eax
call fcn.004116c4
add esp, 0xc
mov ebx, eax
push edi
push eax
push 0x800
mov dword [esp + 0xc], esi
push esi
call sub.IMM32.dll_ImmGetCompositionStringW
cmp dword [0x4c2dc8], 0
je 0x4639c4
xor esi, esi
lea eax, [ebx + esi]
movzx ecx, word [ebx + esi]
and ecx, 0xfc00
lea ebp, [esi + 2]
cmp ecx, 0xd800
jne 0x4639ad
cmp ebp, edi
jge 0x4639ad
movzx ecx, word [eax + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x4639ad
push 2
push eax
push dword [0x4c2d68]
call fcn.00456030
add esp, 0xc
add esi, 4
mov ebp, esi
jmp 0x4639c0
push 1
push eax
push dword [0x4c2d68]
call fcn.00456030
add esp, 0xc
mov esi, ebp
cmp ebp, edi
jl 0x463967
push ebx
call fcn.004846e8
add esp, 4
mov ebp, dword [esp + 0x890]
mov esi, dword [esp]
push esi
push ebp
call sub.IMM32.dll_ImmReleaseContext
jmp 0x463dca
push ebp
call sub.IMM32.dll_ImmGetContext
mov edi, eax
push 0x4c33cc
push eax
call sub.IMM32.dll_ImmSetCompositionFontA
push edi
push ebp
call sub.IMM32.dll_ImmReleaseContext
jmp 0x463c8b
xor ebx, ebx
cmp edx, 0x4d2
jne 0x465cd2
push 0x4d2
push ebp
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esp + 0x78]
push eax
push dword [0x4c2da8]
call fcn.00459837
add esp, 8
test al, al
je 0x465cd2
push dword [esp + 0x78]
call fcn.00466913
add esp, 4
jmp 0x465cd2
cmp eax, 0x19f
jle 0x463eea
cmp eax, 0xf07f
jle 0x464398
cmp eax, 0xf100
je 0x46484e
cmp eax, 0xf090
je 0x464877
cmp eax, 0xf080
je 0x4643ae
jmp 0x464a05
cmp dx, 7
ja case.default.0x463a93
mov edi, edx
movzx eax, dx
jmp dword [eax*4 + 0x4a19e8]
lea eax, [esp + 0x78]
mov dword [eax], 0x1c
mov dword [eax + 4], 0x10
push eax
push 1
push ebp
call dword [sym.imp.USER32.dll_GetScrollInfo]
test eax, eax
je 0x464c87
mov eax, dword [esp + 0x90]
jmp 0x464c93
cmp dword [0x4c2d90], edx
jne case.0x462f49.1
mov esi, 0x4c2d94
push 0
push esi
call fcn.0041eace
add esp, 8
push 1
push esi
call fcn.0041eace
add esp, 8
call fcn.0046661b
jmp 0x465cd0
movzx eax, word [0x4c3430]
mov ecx, eax
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x463e84
movzx ecx, dx
cmp ecx, 0xdc00
jb 0x463e84
cmp ecx, 0xdfff
ja 0x463e84
lea ecx, [esp + 0x78]
mov word [ecx], ax
mov word [ecx + 2], dx
push 2
push ecx
jmp 0x463e9d
push 1
mov edi, edx
call fcn.0041efe4
mov edx, edi
add esp, 4
mov byte [0x4c342c], 1
mov byte [0x4c342d], 0
jmp case.0x462f49.1
push 0x77
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
test eax, eax
je 0x464682
cmp eax, 3
jne 0x463b8e
call fcn.0046a60b
test al, al
je 0x4645f3
push 0x88
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov esi, eax
mov ecx, eax
sub ecx, dword [0x4c2d74]
add ecx, ecx
add ecx, dword [0x4c2d44]
sub esi, dword [0x4c2d70]
mov edi, dword [ebx + 8]
mov edx, dword [0x4c2d68]
mov ebp, dword [edx + 0x12c]
mov dword [esp + 0x10], ebp
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
mov ebp, dword [ebx]
add ebp, ecx
mov dword [esp], edi
mov ebx, edi
sub ebx, ebp
add ebx, eax
add esi, esi
add esi, dword [0x4c2d48]
mov eax, dword [esp + 0x89c]
mov edi, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], edi
add edi, esi
mov dword [esp + 8], eax
sub eax, edi
mov dword [esp + 0xc], edx
mov edi, dword [edx + 0x128]
mov edx, edi
shr edx, 0x1f
add edx, edi
sar edx, 1
add eax, edx
cdq
idiv edi
mov edi, eax
mov eax, ebx
cdq
idiv dword [esp + 0x10]
sub ebx, edx
add ebp, ebx
mov edx, dword [esp + 0x898]
cmp edx, 7
ja 0x464729
mov eax, 0x92
bt eax, edx
jae 0x464729
add ecx, ebx
mov ebx, dword [esp]
mov eax, ebx
sub eax, ecx
mov ecx, dword [esp + 0x89c]
mov dword [ecx], eax
mov eax, dword [0x4c2d68]
jmp 0x46473a
movzx eax, bx
lea edi, [esp + 0x78]
push 0x14
push edi
push 0x1004
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push edi
call fcn.00483294
add esp, 4
mov dword [0x4c3408], eax
call fcn.00469bb5
mov edx, dword [esp + 0x898]
push ebx
push edx
push esi
push ebp
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ebx, eax
jmp 0x465cd2
cmp esi, 0x20a
je 0x463cb3
cmp dword [0x4c1054], esi
jne case.0x462f49.1
mov edi, ebx
cmp esi, 0x20a
jne 0x4641b3
mov esi, edx
sar esi, 0x10
add esi, dword [0x4c3434]
mov dword [0x4c3434], esi
mov eax, edx
shr al, 2
and al, 1
mov dword [esp + 8], eax
and edx, 8
shr edx, 3
jmp 0x4641ea
push 0x100
push 0
push edi
call fcn.00478e90
add esp, 0xc
mov eax, dword [esp + 0x898]
mov dword [esp], eax
jmp 0x464a3e
push ebx
mov edi, edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
test edi, edi
je 0x464136
test esi, esi
je 0x464192
mov ebx, 0xfffffffe
cmp word [esi + ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x463d27
mov ebp, ebx
sar ebp, 1
lea eax, [ebp + 1]
push 0
push 2
push eax
call fcn.004116c4
add esp, 0xc
mov edi, eax
push ebx
push esi
push eax
call fcn.00478390
add esp, 0xc
mov word [edi + ebx], 0
push ebp
jmp 0x464181
push 0
push 8
push 1
mov esi, edx
call fcn.004116c4
add esp, 0xc
mov dword [eax], esi
mov dword [eax + 4], ebx
push eax
push 0x46a6ba
call fcn.0040164e
add esp, 8
jmp 0x465cd0
mov byte [0x4c340d], 1
jmp case.0x462f49.1
xor ebx, ebx
cmp dword [0x4c2da4], 0
je 0x465cd2
call fcn.00468ac0
test eax, eax
je 0x465cd2
mov esi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x463dc3
push esi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, esi
call fcn.00469b71
xor ebx, ebx
inc ebx
jmp 0x465cd2
cmp ebp, 3
je 0x463e00
mov eax, ecx
cmp ebp, 1
jg 0x464a34
mov eax, dword [0x4c2d68]
cmp byte [eax + 0x13d], 0
mov eax, ecx
je 0x464a34
mov eax, ecx
test bh, bh
jne 0x464a34
mov eax, ecx
cmp ecx, 0x90
jne 0x464a34
cmp byte [esp + 0x88], 0
js 0x464a2f
mov eax, 0x2b
cmp dword [esp + 0x89c], 0x3fffffff
ja 0x464a34
xor byte [esp + 0x108], 1
jmp 0x464a34
lea esi, [esp + 0x78]
mov byte [esi], dl
push dword [0x4c2d68]
call fcn.0044e3e7
add esp, 4
push 1
push esi
push dword [0x4c3408]
push dword [0x4c2d68]
call fcn.004560df
add esp, 0x10
jmp 0x465cd0
mov esi, ebx
test ecx, 0xfffffffd
je 0x464544
xor eax, eax
jmp 0x464585
and edx, 0xf800
cmp edx, 0xd800
je 0x465cd0
lea eax, [esp + 0x34]
push 1
push eax
push dword [0x4c2d68]
call fcn.00456030
add esp, 0xc
jmp 0x465cd0
mov dword [esp + 8], 0
jmp 0x463f2a
mov dword [esp + 8], 0
mov ebp, dword [esp]
jmp 0x464093
cmp eax, 0x2f
jg 0x4643ed
cmp eax, 0x10
je 0x464886
cmp eax, 0x20
je 0x464438
jmp 0x464a05
cmp eax, 0x17f
jg 0x464510
cmp eax, 0x160
je 0x464438
cmp eax, 0x170
jne 0x464a05
push 1
push 0x4a1648
push dword [0x4c2d68]
mov edi, edx
call fcn.00450a83
jmp 0x46453a
mov al, 1
mov dword [esp + 8], eax
mov ecx, ebx
sar ecx, 0x10
mov edi, dword [0x4c2d40]
mov eax, ecx
sub eax, edi
inc eax
test ebx, ebx
cmovns eax, ecx
sub eax, dword [0x4c2d70]
cdq
idiv edi
mov dword [esp + 0x14], eax
mov ecx, ebx
shl ecx, 0x10
movsx edx, bx
mov edi, dword [0x4c2d3c]
mov eax, edx
sub eax, edi
inc eax
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4c2d74]
cdq
idiv edi
mov edi, eax
call dword [sym.imp.USER32.dll_GetMessageTime]
mov ebp, eax
cmp byte [0x4c337d], 0
mov edx, dword [esp]
je 0x463fa3
test dl, 4
je 0x463fe5
push 0x9a
push dword [0x4c2228]
call fcn.004031ad
mov edx, dword [esp + 8]
add esp, 8
test al, al
je 0x463fe5
mov ecx, dword [esp + 0x10]
cmp dword [0x4c2d80], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x18], ebp
jne 0x46402d
mov eax, ebp
sub eax, dword [0x4c3438]
cmp eax, dword [0x4c2d84]
jge 0x46402d
mov eax, dword [0x4c2d7c]
cmp eax, 1
je 0x464d05
cmp eax, 2
jne 0x464d0f
mov esi, 3
jmp 0x464033
mov esi, edx
and esi, 4
shr esi, 2
and edx, 8
shr edx, 3
mov dword [0x4c2d80], 0
mov ebx, dword [esp + 0x10]
mov ecx, ebx
mov ebp, edi
mov edi, edx
call fcn.0046a65e
movzx ecx, byte [esp + 8]
push ecx
push edi
push esi
push dword [esp + 0x20]
push ebp
push 1
push eax
push ebx
push dword [0x4c2d68]
call fcn.0045173a
add esp, 0x24
jmp 0x46407b
mov dword [0x4c2d80], ecx
mov dword [0x4c2d7c], esi
mov edi, edx
and edi, 4
shr edi, 2
and edx, 8
shr edx, 3
mov ebp, ecx
mov ebx, edx
call fcn.0046a65e
movzx ecx, byte [esp + 8]
push ecx
push ebx
push edi
push dword [esp + 0x20]
push dword [esp + 0x1c]
push esi
push eax
push ebp
push dword [0x4c2d68]
call fcn.0045173a
add esp, 0x24
mov ebp, dword [esp + 0x18]
mov dword [0x4c3438], ebp
push dword [esp + 0x890]
call dword [sym.imp.USER32.dll_SetCapture]
jmp 0x465cd0
mov al, 1
mov dword [esp + 8], eax
mov dword [esp], ebp
mov eax, ebp
and eax, 8
shr eax, 3
mov dword [esp + 0x14], eax
and ebp, 4
shr ebp, 2
mov esi, dword [esp + 0x89c]
mov ecx, esi
sar ecx, 0x10
mov edi, dword [0x4c2d40]
mov eax, ecx
sub eax, edi
inc eax
test esi, esi
cmovns eax, ecx
sub eax, dword [0x4c2d70]
cdq
idiv edi
mov dword [esp + 0xc], eax
mov ecx, esi
shl ecx, 0x10
movsx edx, si
mov esi, dword [0x4c2d3c]
mov eax, edx
sub eax, esi
inc eax
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4c2d74]
cdq
idiv esi
mov esi, eax
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.0046a65e
movzx ecx, byte [esp + 8]
push ecx
push dword [esp + 0x18]
push ebp
push dword [esp + 0x18]
push esi
push 5
push eax
push edi
push dword [0x4c2d68]
call fcn.0045173a
add esp, 0x24
test byte [esp], 0x13
jne 0x465cd2
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x465cd2
test esi, esi
je 0x464192
push esi
call fcn.00485930
add esp, 4
inc eax
xor ebp, ebp
push ebp
push ebp
push eax
push esi
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
push ebp
push 2
push eax
call fcn.004116c4
add esp, 0xc
mov edi, eax
push esi
call fcn.00485930
add esp, 4
inc eax
push ebx
push edi
push eax
push esi
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov word [edi + ebx*2 - 2], 0
dec ebx
push ebx
push edi
push dword [0x4c2d68]
call fcn.0045125c
add esp, 0xc
jmp 0x464194
xor edi, edi
push edi
call fcn.00411739
add esp, 4
jmp 0x465cd0
or dword [esp], 2
mov dword [esp + 0x10], 3
jmp 0x463757
add dword [0x4c3434], edx
lea esi, [esp + 0x78]
push esi
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov cl, byte [esi + 0x10]
shr cl, 7
cmp byte [esi + 0x11], 0
sets dl
test eax, eax
setne bl
movzx ecx, cl
cmove ecx, eax
mov dword [esp + 8], ecx
and bl, dl
mov edx, ebx
mov esi, dword [0x4c3434]
mov eax, esi
neg eax
cmovl eax, esi
xor ebx, ebx
cmp eax, 0x78
jb 0x465cd2
movsx eax, di
mov dword [esp + 0x18], eax
sar edi, 0x10
mov dword [esp + 0xc], edi
mov dword [esp], edx
test esi, esi
jle 0x46421b
lea eax, [esi - 0x78]
mov edi, 7
jmp 0x464229
jns 0x465cd2
lea eax, [esi + 0x78]
mov edi, 8
mov dword [0x4c3434], eax
cmp byte [0x4c337d], 0
je 0x464255
push 0x9a
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
je 0x464283
cmp byte [esp + 8], 0
je 0x464283
mov eax, dword [0x4c2d68]
mov ecx, dword [eax + 0x128]
mov edx, ecx
neg edx
test esi, esi
cmovle edx, ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
push ecx
push 0
push eax
call fcn.0045099f
add esp, 0xc
jmp 0x464359
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x34]
push eax
push ebp
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x464359
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x4642cc
cmp byte [esp + 0x8a], 0
js 0x4642d6
mov al, byte [esp + 0x11d]
shr al, 7
jmp 0x4642d8
mov dword [esp + 0x14], 0
jmp 0x4642dc
mov al, 1
mov dword [esp + 0x14], eax
xor eax, eax
cmp byte [esp + 8], 0
setne al
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov esi, dword [0x4c2d40]
mov eax, edx
sub eax, esi
inc eax
test edx, edx
cmovns eax, edx
sub eax, dword [0x4c2d70]
cdq
idiv esi
mov ebp, eax
mov esi, dword [0x4c2d3c]
mov eax, ecx
sub eax, esi
inc eax
test ecx, ecx
cmovns eax, ecx
sub eax, dword [0x4c2d74]
cdq
idiv esi
mov esi, eax
mov ecx, edi
call fcn.0046a65e
movzx ecx, byte [esp + 0x14]
movzx edx, byte [esp]
push ecx
push edx
push dword [esp + 0x18]
push ebp
push esi
push 1
push eax
push edi
push dword [0x4c2d68]
call fcn.0045173a
add esp, 0x24
mov ebp, dword [esp + 0x890]
mov esi, dword [0x4c3434]
mov eax, esi
neg eax
cmovl eax, esi
cmp eax, 0x77
ja 0x46420d
jmp 0x465cd2
cmp eax, 0x50
je 0x464893
cmp eax, 0x60
jne 0x464a05
push dword [0x4c2d68]
mov edi, edx
call fcn.0044f546
jmp 0x463578
cmp eax, 0x1a0
je 0x4648e7
cmp eax, 0xf070
jne 0x464a05
cmp esi, 0x112
jne case.0x462f49.1
mov byte [0x4c340f], 1
push ebx
push edx
push 0x112
push ebp
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov esi, eax
mov byte [0x4c340f], 0
mov ecx, dword [esp + 0x878]
xor ecx, esp
call fcn.00475893
mov eax, esi
jmp 0x465ce2
cmp eax, 0x30
je 0x464438
cmp eax, 0x40
jne 0x464a05
cmp dword [0x4c2dc4], 0
jne case.0x462f49.1
mov eax, dword [0x4c1060]
push str.______Session_restarted______
push 0x4c1060
mov edi, edx
call dword [eax]
add esp, 8
push 0
push dword [0x4c2d68]
call fcn.0044e446
add esp, 8
call fcn.004666a0
jmp 0x463643
call fcn.00470f74
mov edx, dword [esp + 0x898]
mov ecx, 0x4b08a2
mov ebp, 0x4b6a76
test al, al
cmovne ebp, ecx
cmp edx, 0x160
je 0x464900
cmp edx, 0x30
jne 0x46493c
call fcn.0045b0b4
mov ebx, eax
add eax, 0xc
push dword [0x4c2228]
push eax
call fcn.00403c68
add esp, 8
mov ecx, dword [ebx + 8]
lea eax, [esp + 0x78]
mov dword [eax], 0xc
xor edi, edi
mov dword [eax + 4], edi
mov dword [eax + 8], 1
push edi
mov dword [esp + 0xc], ecx
push ecx
push edi
push 4
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [esp], eax
inc eax
cmp eax, 2
jb 0x4644e3
push dword [esp + 8]
push edi
push edi
push 2
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
je 0x4644e3
mov edi, eax
push dword [esp + 8]
push dword [ebx]
push eax
call fcn.00478390
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push ebx
call fcn.0045b117
add esp, 4
push dword [esp + 8]
push dword [esp + 4]
push ebp
push str.putty__s_p:_u
call fcn.0045ad89
add esp, 0x10
mov ebp, eax
xor eax, eax
inc eax
mov dword [esp + 8], eax
jmp 0x46496d
cmp eax, 0x180
je 0x4649f9
cmp eax, 0x190
jne 0x464a05
push 1
push 0x4a1648
push dword [0x4c2d68]
mov edi, edx
call fcn.0045119f
mov edx, edi
add esp, 0xc
jmp case.0x462f49.1
push dword [0x4c33c0]
push ebp
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, dword [esp + 0x898]
xor ebx, ebx
mov eax, 0
test ecx, ecx
jne 0x464585
mov byte [0x4c340e], 0
call fcn.0046a6d0
mov ecx, dword [esp + 0x898]
mov al, 1
cmp byte [0x4c340e], 0
jne 0x465cd2
cmp ecx, 2
jne 0x4645db
cmp byte [0x4c340d], 1
jne 0x4645b2
xor ebx, ebx
mov byte [0x4c340d], bl
mov byte [0x4c340e], bl
call fcn.0046a78e
cmp byte [0x4c340e], bl
jne 0x465cd2
mov byte [0x4c340e], 1
cmp edi, 1
je 0x4645eb
mov byte [0x4c342e], 1
test edi, edi
jne 0x464c76
mov ecx, esi
xor edx, edx
call fcn.0046a87f
jmp 0x464c76
mov byte [0x4c340e], 1
cmp edi, 1
jne 0x464784
xor ecx, ecx
dec ecx
jmp 0x464c78
cmp byte [0x4c342d], 0
jne 0x464682
push 0x7c
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov ecx, dword [0x4c2d68]
mov ecx, dword [ecx + 0x128]
cmp eax, ecx
jne 0x464644
push 0x7b
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov ecx, dword [0x4c2d68]
cmp eax, dword [ecx + 0x12c]
je 0x464682
mov ecx, dword [ecx + 0x128]
push ecx
push 0x7c
push dword [0x4c2228]
call fcn.0040386a
add esp, 0xc
mov eax, dword [0x4c2d68]
push dword [eax + 0x12c]
push 0x7b
push dword [0x4c2228]
call fcn.0040386a
add esp, 0xc
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
mov byte [0x4c342d], 1
mov esi, dword [ebx + 8]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
add eax, dword [0x4c2d44]
sub esi, eax
mov ebp, dword [ebx + 0xc]
add ecx, dword [0x4c2d48]
sub ebp, ecx
mov ecx, dword [0x4c2d3c]
mov eax, ecx
shr eax, 0x1f
add eax, ecx
sar eax, 1
add eax, esi
cdq
idiv ecx
mov edi, eax
xor ebx, ebx
inc ebx
test eax, eax
cmovle edi, ebx
mov ecx, dword [0x4c2d40]
mov eax, ecx
shr eax, 0x1f
add eax, ecx
sar eax, 1
add eax, ebp
cdq
idiv ecx
test eax, eax
cmovg ebx, eax
push ebx
push edi
push dword [esp + 0x898]
call fcn.0041ec4c
add esp, 0xc
imul edi, dword [0x4c2d3c]
imul ebx, dword [0x4c2d40]
sub ebp, ebx
sub esi, edi
mov ecx, dword [esp + 0x898]
je 0x464cca
cmp ecx, 7
ja 0x464cc0
mov eax, 0x92
bt eax, ecx
jae 0x464cc0
mov eax, dword [esp + 0x89c]
add dword [eax], esi
jmp 0x464cca
mov eax, dword [esp + 0x89c]
mov dword [eax + 8], ebp
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
xor ebx, ebp
imul edi, dword [eax + 0x128]
add edi, esi
mov ebp, dword [esp + 0x14]
add ebp, edi
mov esi, dword [esp + 8]
mov eax, esi
xor eax, ebp
mov ecx, ebx
xor ebx, ebx
or eax, ecx
setne bl
add edx, 0xfffffffd
cmp edx, 2
ja 0x464775
sub esi, edi
mov eax, dword [esp + 0x89c]
mov dword [eax + 4], esi
jmp 0x465cd2
mov eax, dword [esp + 0x89c]
mov dword [eax + 0xc], ebp
jmp 0x465cd2
test al, al
je 0x464c5c
cmp byte [0x4c342e], 1
jne 0x464c5c
mov byte [0x4c342e], 0
cmp edi, 2
je 0x464c76
test edi, edi
jne 0x4647b7
xor edx, edx
inc edx
mov ecx, esi
call fcn.0046a87f
mov ecx, 2
jmp 0x464c78
push 0xffffffffffffffff
jmp 0x4647c7
push 1
push 0
jmp 0x464c96
mov eax, dword [0x4c2d68]
mov ecx, dword [eax + 0x128]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
neg edx
jmp 0x4647fa
mov eax, dword [0x4c2d68]
mov ecx, dword [eax + 0x128]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
push edx
push 0
push eax
jmp 0x464c9c
push 0
jmp 0x464c94
push 0
push 0xffffffffffffffff
jmp 0x464c96
push 1
push dword [0x4c2d68]
mov edi, edx
call fcn.0044e446
mov edx, edi
add esp, 8
mov eax, dword [0x4c2dc8]
test eax, eax
je case.0x462f49.1
push eax
call fcn.0040f14d
jmp 0x463578
push 0
push ebp
mov edi, edx
call fcn.0046bdef
jmp 0x4648f6
xor ecx, ecx
inc ecx
mov edi, edx
call fcn.00466a17
mov edx, edi
test ebx, ebx
jne case.0x462f49.1
push 0
push 0x20
push 0x102
push ebp
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x463643
xor ecx, ecx
inc ecx
mov edi, edx
call fcn.00466a17
jmp 0x463643
push ebp
mov edi, edx
call fcn.00461159
jmp 0x463578
cmp byte [0x4c3414], 0
jne case.0x462f49.1
mov byte [0x4c3414], 1
push dword [0x4c2228]
push dword [0x4c2d68]
call fcn.0044ebeb
add esp, 8
push dword [0x4c2228]
call fcn.00403179
add esp, 4
mov dword [esp], eax
mov eax, dword [0x4c2dc4]
test eax, eax
je 0x464e75
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
add esp, 4
jmp 0x464e77
push 2
push dword [0x4c2d68]
mov edi, edx
call fcn.00451211
mov edx, edi
add esp, 8
jmp case.0x462f49.1
lea ecx, [ebx - 0x1000]
lea eax, [ebx - 0xff1]
test ecx, ecx
cmovns eax, ecx
sar eax, 4
lea ecx, [eax + 1]
cmp ecx, dword [0x4c2d94]
jae 0x4649ed
mov ecx, dword [0x4c2d98]
mov dword [esp], 0
push dword [ecx + eax*4 + 4]
push ebp
push str.putty__s__s
jmp 0x46495b
cmp byte [ebp], 0
mov eax, 0x4b6a76
mov ecx, 0x4b61bc
cmove ecx, eax
mov dword [esp], 0
push ebp
push ecx
push str.putty_s_s
call fcn.0045ad89
add esp, 0xc
mov ebp, eax
mov dword [esp + 8], 0
lea eax, [esp + 0x78]
xor edi, edi
push 0x7ff
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
movaps xmm0, xmmword [0x4a1660]
lea eax, [esp + 0x34]
movups xmmword [eax], xmm0
mov dword [eax + 0x2c], edi
mov word [eax + 0x32], 0
mov dword [eax + 0x34], edi
lea ebx, [esp + 0x24]
push ebx
push eax
push edi
push edi
push 0x20
push dword [esp + 0x1c]
push edi
push edi
push ebp
lea eax, [esp + 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebx]
call edi
push dword [ebx + 4]
call edi
mov eax, dword [esp]
test eax, eax
je 0x4649d6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
call fcn.00411739
add esp, 4
mov ebx, dword [esp + 0x89c]
mov edx, dword [esp + 0x898]
mov ebp, dword [esp + 0x890]
jmp case.0x462f49.1
mov edi, edx
call fcn.0046a5c4
jmp 0x463643
lea eax, [edx - 0x1000]
cmp eax, 0x3fff
ja 0x464d2b
push edx
push 0x160
push 0x112
push ebp
mov edi, edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x463643
mov eax, 0x90
mov dword [esp], eax
push edi
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov eax, dword [0x4c2d68]
mov edi, dword [esp + 0x89c]
and edi, 0xc0000000
cmp byte [eax + 0x13f], 0
je 0x464a65
cmp edi, 0x40000000
je 0x465cd0
mov byte [esp + 0x10], bh
mov bh, byte [esp + 0x89]
mov al, byte [esp + 0x11d]
mov ecx, eax
not cl
shr cl, 7
xor edx, edx
bt dword [esp + 0x89c], 0x1d
movzx ecx, cl
cmovae ecx, edx
mov dword [esp + 8], ecx
jae 0x464ac0
test al, al
mov edx, dword [esp]
js 0x464ac3
test bh, bh
jns 0x464ac3
test bl, bl
je 0x464aae
mov byte [esp + 0x8a], 0
jmp 0x464ac3
mov byte [esp + 0x11d], 0x80
mov dword [esp + 8], 0
jmp 0x464ac3
mov edx, dword [esp]
mov bl, byte [esp + 0x88]
shr bl, 7
shr bh, 6
and bh, 2
cmp dword [0x4c3428], 0
jne 0x464b28
mov dword [0x4c344c], 0x100
push 0x63
push dword [0x4c2228]
call fcn.004031ad
mov edx, dword [esp + 8]
add esp, 8
cmp edx, 0x12
sete cl
cmp edx, 0x5d
je 0x464b18
and al, cl
mov ecx, dword [esp + 0x89c]
shr ecx, 0x18
and ecx, 1
and cl, al
je 0x464b28
cmp edx, 0x5d
mov eax, 0x12
cmove eax, edx
mov dword [0x4c344c], eax
or bl, bh
mov eax, dword [0x4c3428]
cmp edx, dword [0x4c344c]
jne 0x464b51
test eax, eax
mov bh, byte [esp + 0x10]
jne 0x464b71
cmp dword [esp + 0x89c], 0x40000000
jae 0x464b71
xor ecx, ecx
inc ecx
jmp 0x464b61
cmp eax, 1
mov bh, byte [esp + 0x10]
jne 0x464b91
xor ecx, ecx
cmp edx, 0x11
je 0x464b91
mov dword [0x4c3428], ecx
mov al, 1
mov dword [esp + 0x10], eax
mov eax, ecx
jmp 0x464bb7
xor ecx, ecx
cmp eax, 1
jne 0x464b61
cmp dword [esp + 0x89c], 0
jns 0x464b61
mov dword [0x4c3428], 2
mov eax, 2
cmp eax, 2
jl 0x464bb1
cmp byte [esp + 8], 0
je 0x464bb1
mov dword [0x4c3428], 0
mov al, 1
mov dword [esp + 0x10], eax
xor eax, eax
jmp 0x464bbe
mov cl, 1
mov dword [esp + 0x10], ecx
cmp byte [esp + 8], 0
je 0x464bef
bt dword [esp + 0x89c], 0x18
jb case.0x464bde.41
add edx, 0xffffffdf
cmp edx, 0xd
ja case.default.0x464bde
mov ecx, 0x60
jmp dword [edx*4 + 0x4a17d0]
mov ecx, 0x69
jmp case.0x464bde.45
mov ecx, dword [0x4c2d68]
cmp byte [ecx + 0x13d], 0
je 0x464c19
not bh
cmp ebp, 2
setne cl
mov dword [esp + 0x10], 0
test bh, cl
jne 0x464bbe
cmp ebp, 3
jne 0x464c28
jmp 0x464bbe
cmp ebp, 3
jne 0x464c28
mov dword [esp + 0x10], 0
jmp 0x464bbe
test eax, eax
setne cl
mov ch, byte [esp + 0xc]
or ch, cl
mov dword [esp + 0x10], 0
cmp ch, 1
jne case.0x464bde.41
mov ecx, dword [esp + 0x89c]
and ecx, 0x1000000
je 0x464bcd
jmp case.0x464bde.41
test edi, edi
je 0x464d7c
cmp edi, 3
jne 0x464c76
call fcn.0046a60b
test al, al
je 0x464d7c
xor ecx, ecx
call fcn.00469e05
call fcn.00469bb5
jmp 0x465cd0
mov eax, edi
shr eax, 0x10
mov dword [esp + 0x90], eax
push eax
push 1
push dword [0x4c2d68]
call fcn.0045099f
add esp, 0xc
mov edx, edi
cmp byte [0x4c340f], 1
jne case.0x462f49.1
push dword [0x4c2d68]
mov edi, edx
jmp 0x463573
mov eax, dword [esp + 0x89c]
sub dword [eax + 8], esi
test ebp, ebp
je 0x464ce5
add ecx, 0xfffffffd
mov eax, dword [esp + 0x89c]
cmp ecx, 2
ja 0x464ce2
add dword [eax + 4], ebp
jmp 0x464ce5
sub dword [eax + 0xc], ebp
xor ebx, ebx
or esi, ebp
setne bl
jmp 0x465cd2
cmp dword [esp], 0xc
jne case.0x464bde.41
mov ecx, 0x65
jmp case.0x464bde.45
mov esi, 2
jmp 0x464033
xor ebx, ebx
cmp eax, 3
sete bl
mov dword [0x4c2d7c], ebx
jne 0x464075
xor esi, esi
inc esi
jmp 0x464039
lea eax, [edx - 0x400]
cmp eax, 0x400
ja case.0x462f49.1
shr eax, 4
cmp eax, dword [0x4c2dd0]
jge case.0x462f49.1
mov ecx, dword [0x4c2dc4]
test ecx, ecx
je case.0x462f49.1
mov edx, dword [0x4c2dcc]
lea eax, [eax + eax*2]
mov edi, dword [ecx]
push dword [edx + eax*4 + 8]
push dword [edx + eax*4 + 4]
push ecx
call dword [edi + 0x18]
mov edx, dword [esp + 0x8a4]
jmp 0x46453c
xor edx, edx
inc edx
mov ecx, esi
call fcn.0046a87f
cmp byte [0x4c342c], 0
jne 0x464c7d
call fcn.0046a490
jmp 0x464c7d
mov ecx, 0x63
jmp case.0x464bde.45
mov ecx, 0x67
jmp case.0x464bde.45
mov ecx, 0x64
jmp case.0x464bde.45
mov ecx, 0x6e
jmp case.0x464bde.45
mov ecx, 0x61
jmp case.0x464bde.45
mov ecx, 0x68
jmp case.0x464bde.45
mov ecx, 0x66
jmp case.0x464bde.45
mov ecx, 0x62
mov dl, byte [esp + 0x108]
and dl, 1
or bl, dl
mov dword [esp], ecx
cmp dword [esp + 0x89c], 0
js case.0x4657b8.14
cmp byte [esp + 0x11d], 0
js case.0x4657b8.14
test eax, eax
jne case.0x4657b8.14
cmp byte [esp + 0x10], 0
je 0x464e17
lea ebp, [esp + 0x35]
mov byte [ebp - 1], 0x1b
jmp 0x464e1b
lea ebp, [esp + 0x34]
mov ecx, dword [esp]
movzx ebx, bl
cmp ecx, 0x21
jne 0x464e34
cmp bl, 1
jne 0x464e34
push 0
push 2
jmp 0x4651d4
cmp ecx, 0x21
jne 0x464e47
cmp bl, 3
jne 0x464e47
push 0
push 6
jmp 0x4651d4
cmp ecx, 0x22
jne 0x464e5a
cmp bl, 3
jne 0x464e5a
push 0
push 7
jmp 0x4651d4
cmp ecx, 0x21
jne 0x4651ae
cmp bl, 2
jne 0x4651ae
xor eax, eax
push eax
push eax
jmp 0x4651d4
xor eax, eax
push eax
push dword [0x4c2228]
push ebp
call fcn.00461013
add esp, 0xc
mov byte [0x4c3414], 0
test al, al
je 0x46519e
call fcn.00465d7d
push 0x77
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
xor ebx, ebx
mov dword [esp + 8], eax
cmp eax, 1
sete bl
mov edi, 0x180
mov ebp, dword [sym.imp.USER32.dll_EnableMenuItem]
push ebx
push edi
push dword [0x4c2d88]
call ebp
push ebx
push edi
push dword [0x4c2d8c]
call ebp
mov ebp, dword [esp + 0x890]
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x464ef8
cmp dword [esp + 8], 1
jne 0x464ef8
push 9
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4c2228]
push dword [0x4c2d6c]
call fcn.00410410
add esp, 8
push dword [0x4c2da0]
call fcn.00411739
add esp, 4
mov eax, dword [0x4c2dc8]
test eax, eax
je 0x464f40
push dword [0x4c2228]
push eax
call fcn.0040f0bd
add esp, 8
push dword [0x4c2dc8]
call fcn.0040f14d
add esp, 4
mov edi, 0x90
push edi
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov ebx, eax
push edi
push dword [esp + 4]
call fcn.004031ad
add esp, 8
cmp bl, al
je 0x464f75
push dword [0x4c2d68]
call fcn.0044f445
add esp, 4
push dword [0x4c2228]
push dword [0x4c2d68]
call fcn.0044ec04
add esp, 8
mov edx, dword [0x4c2228]
mov ecx, dword [0x4c2d68]
call fcn.00466598
mov eax, dword [0x4c2da4]
test eax, eax
je 0x464faa
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [0x4c2da0], eax
mov dword [0x4c2da4], eax
call fcn.0046648e
mov eax, dword [0x4c2dc4]
test eax, eax
je 0x464fd3
mov ecx, dword [eax]
push dword [0x4c2228]
push eax
call dword [ecx + 8]
add esp, 8
mov ebx, 0x7c
push ebx
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.0040324d
add esp, 8
cmp edi, eax
jne 0x465068
mov ebx, 0x7b
push ebx
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.0040324d
add esp, 8
cmp edi, eax
jne 0x465068
mov ebx, 0x68
push ebx
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.0040324d
add esp, 8
cmp edi, eax
jne 0x465068
cmp dword [esp + 8], 2
je 0x465068
cmp dword [esp + 8], 3
jne 0x465061
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
jne 0x465068
cmp dword [esp + 8], 1
jne 0x4650ad
push 0x68
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push 0x7b
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov ebx, eax
push 0x7c
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
push edi
push ebx
push eax
push dword [0x4c2d68]
call fcn.0044fbe3
add esp, 0x10
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push ebp
call edi
mov dword [esp + 0x10], eax
push 0xffffffffffffffec
push ebp
call edi
mov ebp, eax
mov edi, 0x5e
push edi
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov ebx, eax
push edi
push dword [esp + 4]
call fcn.004031ad
add esp, 8
mov dword [esp + 0x14], ebp
cmp bl, al
je 0x465135
push 0x5e
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffff7
movzx eax, al
lea ebp, [ecx + eax*8]
or eax, 0xfffffffe
sub esp, 0x1c
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8ac]
mov dword [esp], eax
mov dword [esp + 0x18], 3
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x87
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
and ebp, 0xfffffdff
movzx ebx, al
shl ebx, 9
call fcn.00469c4e
movzx eax, al
add eax, 0x75
push eax
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
mov edx, dword [esp + 0x10]
mov ecx, edx
and ecx, 0xffdfffff
movzx edi, al
shl edi, 0x15
or edi, ecx
cmp dword [esp + 8], 1
je 0x465196
call fcn.00469c4e
mov edx, dword [esp + 0x10]
test al, al
je 0x4651e4
and edi, 0xfffbffff
jmp 0x4651ea
push dword [esp]
call fcn.00403068
add esp, 4
jmp 0x463c8b
cmp ecx, 0x22
jne 0x4651be
cmp bl, 1
jne 0x4651be
push 0
push 3
jmp 0x4651d4
cmp ecx, 0x22
jne 0x4653ef
cmp bl, 2
jne 0x4653ef
push 0
push 1
push 0x115
push dword [0x4c1058]
jmp 0x46388a
or edi, 0x40000
or ebx, ebp
xor eax, eax
cmp dword [esp + 8], 1
setne al
and edi, 0xfffeffff
shl eax, 0x10
or eax, edi
cmp eax, edx
jne 0x465217
cmp ebx, dword [esp + 0x14]
jne 0x465217
xor edi, edi
inc edi
mov ebp, dword [esp + 0x890]
jmp 0x465265
cmp eax, edx
mov ebp, dword [esp + 0x890]
je 0x46522c
push eax
push 0xfffffffffffffff0
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
cmp ebx, dword [esp + 0x14]
je 0x46523c
push ebx
push 0xffffffffffffffec
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
sub esp, 0x1c
xorps xmm0, xmm0
movups xmmword [esp + 4], xmm0
mov dword [esp], ebp
mov dword [esp + 0x18], 0x137
mov dword [esp + 0x14], 0
call dword [sym.imp.USER32.dll_SetWindowPos]
mov edi, 2
cmp dword [esp + 8], 1
jne 0x465285
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x465285
push ebp
call fcn.004604d4
add esp, 4
mov edi, 2
mov dword [esp + 0x14], edi
mov edi, 0x7d
push edi
push dword [0x4c2228]
call fcn.00403700
add esp, 8
mov ebx, eax
push edi
push dword [esp + 4]
call fcn.00403700
add esp, 8
mov edi, eax
push dword [eax]
push dword [ebx]
call fcn.004854a0
add esp, 8
test eax, eax
je 0x4653bc
mov eax, 0xa4
push eax
push dword [esp + 4]
call fcn.00403392
add esp, 8
mov ebp, eax
mov eax, 0xa4
push eax
push dword [0x4c2228]
call fcn.00403392
add esp, 8
push ebp
mov ebp, dword [esp + 0x894]
push eax
call fcn.004854a0
add esp, 8
test eax, eax
je 0x4653bc
mov al, byte [ebx + 4]
cmp al, byte [edi + 4]
jne 0x4653bc
mov eax, dword [ebx + 8]
cmp eax, dword [edi + 8]
jne 0x4653bc
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi + 0xc]
jne 0x4653bc
mov ebx, 0x7e
push ebx
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.0040324d
add esp, 8
cmp edi, eax
jne 0x4653bc
mov ebx, 0xa3
push ebx
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.0040324d
add esp, 8
cmp edi, eax
jne 0x4653bc
mov ebx, 0x92
push ebx
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.0040324d
add esp, 8
cmp edi, eax
jne 0x4653bc
mov eax, dword [esp + 8]
or eax, 2
cmp eax, 3
je 0x4653bc
push 0x77
push dword [esp + 4]
call fcn.0040324d
add esp, 8
cmp dword [esp + 8], eax
je 0x4653c4
mov dword [esp + 0x14], 2
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x14]
call fcn.00469e05
push dword [esp]
call fcn.00403068
add esp, 4
mov ebx, dword [esp + 0x89c]
jmp 0x463c8b
lea eax, [ecx - 0x21]
cmp eax, 1
ja 0x465415
cmp bl, 3
jne 0x465415
xor eax, eax
cmp ecx, 0x21
setne al
push eax
push dword [0x4c2d68]
call fcn.00450a2e
jmp 0x463d7f
cmp ecx, 0x2d
jne 0x465426
cmp bl, 2
jne 0x465426
push 0x9e
jmp 0x46544a
cmp dword [esp], 0x2d
jne 0x465439
mov eax, ebx
cmp al, 1
jne 0x465439
push 0x9e
jmp 0x465489
cmp dword [esp], 0x43
jne 0x465478
mov eax, ebx
cmp al, 3
jne 0x465478
push 0x9f
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
cmp eax, 2
jne 0x465cd0
push 1
push 0x4a1648
push dword [0x4c2d68]
call fcn.0045119f
jmp 0x463ea8
cmp dword [esp], 0x56
jne 0x4654bb
mov eax, ebx
cmp al, 3
jne 0x4654bb
push 0x9f
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
cmp eax, 2
je 0x4654a9
cmp eax, 1
jne 0x465cd0
push 1
jmp 0x4654ab
push 2
push dword [0x4c2d68]
call fcn.00451211
jmp 0x463d7f
cmp dword [esp], 0x73
sete al
and al, byte [esp + 0x10]
cmp al, 1
jne 0x4654f6
push 0x59
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
mov edx, dword [esp + 0x898]
jne 0x465cb3
mov dword [esp + 0xc], 0
jmp 0x465589
cmp dword [esp], 0x20
sete cl
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ecx
and al, cl
cmp al, 1
jne 0x465549
mov al, 1
mov dword [esp + 0xc], eax
push 0x5a
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
je 0x465589
push 0
push 0xf100
push 0x112
push dword [0x4c1058]
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esp + 0x898]
jmp 0x465cb3
cmp dword [esp], 0xd
sete al
and al, byte [esp + 0x10]
cmp al, 1
jne 0x4655e5
push 0x5f
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
je 0x465589
push 0x77
push dword [0x4c2228]
call fcn.0040324d
add esp, 8
cmp eax, 1
jne 0x46566c
mov eax, ebx
test ebx, ebx
sete byte [esp + 0x18]
xor eax, eax
cmp byte [esp + 0xc], 0
je 0x4655a8
mov ecx, ebx
cmp cl, 2
jne 0x4655a8
mov byte [ebp], 0
jmp 0x4655bf
mov ecx, ebx
cmp cl, 3
sete cl
mov edx, dword [esp + 0xc]
and dl, cl
cmp dl, 1
jne 0x465606
mov byte [ebp], 0xa0
lea eax, [esp + 0x34]
neg eax
add eax, ebp
inc eax
test eax, eax
je 0x465cd0
cmp eax, 0xffffffff
mov edx, dword [esp + 0x898]
je 0x465cb3
jmp 0x4656c1
cmp dword [esp], 0x13
sete al
jne 0x46562f
mov ecx, ebx
cmp cl, 2
jne 0x46562f
mov eax, dword [0x4c2d68]
xor byte [eax + 0x13d], 1
jmp 0x465cd0
cmp dword [esp], 3
jne 0x465662
mov ecx, ebx
cmp cl, 2
jne 0x465662
mov eax, dword [0x4c2dc4]
test eax, eax
je 0x465cd0
mov ecx, dword [eax]
xor edx, edx
push edx
push edx
push eax
call dword [ecx + 0x18]
jmp 0x463ea8
mov ecx, ebx
test ebx, ebx
sete byte [esp + 0x18]
cmp dword [esp], 8
jne 0x465689
mov ecx, ebx
test cl, cl
jne 0x465689
push 0x47
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
mov eax, 0x7f
mov ecx, 8
jmp 0x4656b2
test al, al
je 0x4656e3
mov byte [ebp], 0x1a
jmp 0x4656b8
cmp edi, 0x40000000
mov edx, dword [esp + 0x898]
je 0x465cb3
call fcn.0046a5c4
jmp 0x46553d
cmp dword [esp], 8
jne 0x465706
mov ecx, ebx
cmp cl, 1
jne 0x465706
push 0x47
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
mov eax, 8
mov ecx, 0x7f
cmovne ecx, eax
mov byte [ebp], cl
mov byte [ebp + 1], 0
mov eax, 0xfffffffe
lea ecx, [esp + 0x34]
push eax
push ecx
push 0xffffffffffffffff
push dword [0x4c2d68]
call fcn.004560df
add esp, 0x10
xor ecx, ecx
call fcn.00466a17
jmp 0x465cd0
mov eax, ebx
cmp al, 2
jne 0x465735
cmp dword [esp], 0x32
jb 0x465735
cmp dword [esp], 0x38
ja 0x465735
mov eax, dword [esp]
mov al, byte [eax + 0x4a7064]
mov byte [ebp], al
jmp 0x4655bf
cmp dword [esp], 9
jne 0x465594
mov ecx, ebx
cmp cl, 1
jne 0x465594
mov word [ebp], 0x5b1b
mov byte [ebp + 2], 0x5a
lea eax, [esp + 0x34]
neg eax
add eax, ebp
add eax, 3
jmp 0x4655c8
mov eax, ebx
cmp al, 2
jne 0x465751
mov eax, dword [esp]
and eax, 0xfffffffd
cmp eax, 0xbd
jne 0x465751
mov byte [ebp], 0x1f
jmp 0x4655bf
mov eax, ebx
cmp al, 2
jne 0x465772
cmp dword [esp], 0xdf
je 0x465769
cmp dword [esp], 0xdc
jne 0x465772
mov byte [ebp], 0x1c
jmp 0x4655bf
mov eax, ebx
cmp al, 3
jne 0x46578a
cmp dword [esp], 0xde
jne 0x46578a
mov byte [ebp], 0x1e
jmp 0x4655bf
mov eax, dword [esp]
add eax, 0xfffffff4
cmp eax, 0x77
ja case.0x4657b8.14
mov edi, 0x41
mov dword [esp + 0xc], 0
xor edx, edx
inc edx
mov byte [esp + 7], 0x30
mov dword [esp + 0x1c], 7
xor ecx, ecx
jmp dword [eax*4 + 0x4a1808]
mov edi, 0x47
jmp case.0x4657b8.38
mov edi, 0x44
jmp case.0x4657b8.38
mov edi, 0x42
jmp case.0x4657b8.38
mov dword [esp + 0xc], 3
jmp case.0x4657b8.36
mov byte [esp + 7], 0x35
jmp 0x46592c
mov byte [esp + 7], 0x38
jmp 0x46592c
mov byte [esp + 7], 0x2a
jmp 0x465942
mov byte [esp + 7], 0x2d
jmp 0x465942
mov byte [esp + 7], 0x2e
jmp 0x465942
mov edx, 5
jmp case.0x4657b8.112
mov edx, 6
jmp case.0x4657b8.112
mov edx, 9
jmp case.0x4657b8.112
mov edx, 0xb
jmp case.0x4657b8.112
mov edx, 0xc
jmp case.0x4657b8.112
mov edx, 0x10
jmp case.0x4657b8.112
mov edx, 0x11
jmp case.0x4657b8.112
bt dword [esp + 0x89c], 0x18
jae 0x4659ae
mov byte [esp + 7], 0xd
mov al, 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], 9
jmp 0x465948
mov dword [esp + 0xc], 4
jmp case.0x4657b8.36
mov dword [esp + 0xc], 5
jmp case.0x4657b8.36
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
jmp case.0x4657b8.36
mov edi, 0x43
shr ebx, 1
push ebx
push edi
push dword [0x4c2d68]
push ebp
call fcn.00455be8
add esp, 0x10
jmp 0x465d70
mov byte [esp + 7], 0x47
mov cl, 1
mov dword [esp + 0xc], 0
jmp case.0x4657b8.96
mov dword [esp + 0xc], 2
test bl, 2
jne case.0x4657b8.14
push dword [esp + 0xc]
push dword [0x4c2d68]
push ebp
call fcn.00455d81
add esp, 0xc
jmp 0x465d70
mov byte [esp + 7], 0x31
jmp 0x46592c
mov byte [esp + 7], 0x32
jmp 0x46592c
mov byte [esp + 7], 0x33
jmp 0x46592c
mov byte [esp + 7], 0x34
jmp 0x46592c
mov byte [esp + 7], 0x36
jmp 0x46592c
mov byte [esp + 7], 0x37
jmp 0x46592c
mov byte [esp + 7], 0x39
mov dword [esp + 0xc], 0
jmp 0x465948
mov byte [esp + 7], 0x2b
jmp 0x465942
mov byte [esp + 7], 0x2f
mov al, 1
mov dword [esp + 0xc], eax
xor ecx, ecx
cmp byte [esp + 0x10], 0
je 0x465976
xor eax, eax
mov edx, dword [esp + 0xc]
or dl, cl
jne 0x46596f
movzx eax, byte [esp + 7]
mov ecx, dword [0x4c343c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
mov dword [0x4c343c], eax
jmp case.0x4657b8.14
mov eax, ebx
shr eax, 1
and ebx, 1
movzx ecx, byte [esp + 7]
push eax
push ebx
push ecx
push dword [0x4c2d68]
push ebp
call fcn.00455e52
add esp, 0x14
xor ecx, ecx
inc ecx
test eax, eax
cmove ecx, dword [esp + 0x1c]
cmp ecx, 7
je case.0x4657b8.14
add ebp, eax
cmp ecx, 9
jne 0x465cef
cmp byte [esp + 0x18], 0
je 0x465cfc
mov eax, dword [0x4c2d68]
cmp byte [eax + 0x141], 0
je 0x465cfc
mov word [ebp], 0xa0d
lea eax, [esp + 0x34]
neg eax
add eax, ebp
add eax, 2
jmp 0x4655c8
mov edi, dword [esp + 0x89c]
shr edi, 0x10
cmp byte [esp + 0x8c], 0
je 0x465a20
push 0xa7
push dword [0x4c2228]
call fcn.004031ad
add esp, 8
test al, al
je 0x465a20
mov eax, dword [esp + 0x10]
xor al, 1
mov dword [esp + 0xc], eax
mov byte [esp + 0x8c], 0
jmp 0x465a28
mov dword [esp + 0xc], 0
mov edx, dword [esp]
and edi, 0x81ff
cmp dword [0x4c3cf0], 2
jne 0x465a60
mov eax, dword [0x4c3450]
test eax, eax
je 0x465a60
push dword [esp + 0x14]
push 0
push 3
push 0x4c3440
lea ecx, [esp + 0x88]
push ecx
push edi
push edx
call eax
mov edi, eax
jmp 0x465ab0
push dword [esp + 0x14]
push 0
push 0x4c3454
lea eax, [esp + 0x84]
push eax
push edi
push edx
call dword [sym.imp.USER32.dll_ToAsciiEx]
test eax, eax
jle 0x465c33
mov edi, eax
xor eax, eax
mov cl, byte [eax + eax + 0x4c3454]
mov byte [eax + 0x4c345a], cl
inc eax
cmp edi, eax
jne 0x465a87
xor eax, eax
push 3
push 0x4c3440
push edi
push 0x4c345a
push eax
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test edi, edi
jle 0x465c33
mov ecx, dword [esp + 0x10]
xor cl, 1
mov eax, dword [esp + 8]
inc al
movzx esi, al
movzx eax, cl
lea ebp, [esp + eax*2]
add ebp, 0x24
xor ebx, ebx
movzx ecx, word [ebx + ebx + 0x4c3440]
mov word [esp + 0x20], cx
mov edx, dword [0x4c3428]
movzx eax, cx
cmp edx, 2
jne 0x465b0e
cmp cx, 0x20
jb 0x465b0e
cmp cx, 0x7f
ja 0x465b0e
mov dword [0x4c3448], eax
mov dword [0x4c3428], 3
jmp 0x465bee
mov dword [0x4c3428], 0
cmp edx, 3
jne 0x465b60
cmp cx, 0x20
jb 0x465b60
cmp cx, 0x7f
ja 0x465b60
push eax
push dword [0x4c3448]
call fcn.004739ca
add esp, 8
cmp eax, 0xffffffff
je 0x465cc8
mov word [esp + 0x22], ax
push 1
lea eax, [esp + 0x26]
push eax
push dword [0x4c2d68]
call fcn.00456030
add esp, 0xc
jmp 0x465bee
cmp dword [esp + 0x89c], 0
js 0x465b92
cmp eax, 0x80
setb dl
and dl, byte [esp + 0xc]
cmp dl, 1
jne 0x465bcb
mov word [esp + 0x24], 0x1b
push eax
call fcn.004738b4
add esp, 4
mov word [esp + 0x26], ax
jmp 0x465bd7
mov ecx, dword [0x4c343c]
mov eax, dword [0x4c2d68]
test ecx, ecx
je 0x465bf9
cmp byte [eax + 0xd5], 0
je 0x465c03
mov word [esp + 0x22], cx
push 1
lea ecx, [esp + 0x26]
push ecx
push eax
call fcn.00456030
add esp, 0xc
mov dword [0x4c343c], 0
jmp 0x465be7
mov word [esp + 0x24], 0x1b
mov word [esp + 0x26], cx
push esi
push ebp
push dword [0x4c2d68]
call fcn.00456030
add esp, 0xc
xor ecx, ecx
call fcn.00466a17
inc ebx
cmp edi, ebx
jne 0x465ad3
jmp 0x465c78
push 1
lea ecx, [esp + 0x24]
push ecx
push eax
jmp 0x465bdf
mov edx, dword [eax + 0x1064]
cmp dword [edx + 0xc], 0xfde9
je 0x465baa
cmp byte [0x4c2230], 0
jne 0x465baa
mov byte [esp + 0x24], cl
push 1
lea ecx, [esp + 0x28]
push ecx
push 0xffffffffffffffff
push eax
call fcn.004560df
add esp, 0x10
jmp 0x465bbf
cmp byte [esp + 0x10], 0
je 0x465c83
cmp word [0x4c3440], 0
mov edx, dword [esp + 0x898]
je 0x465c92
mov ecx, dword [0x4c2d68]
mov ax, 0xa
cmp byte [ecx + 0xd5], 0
jne 0x465c8c
mov ecx, dword [ecx + 0x1064]
cmp dword [ecx + 0xc], 0xfde9
je 0x465c8c
cmp byte [0x4c2230], 0
je 0x465c92
jmp 0x465c8c
mov word [0x4c3440], 0
jmp 0x465cd0
xor eax, eax
mov edx, dword [esp + 0x898]
mov word [0x4c3440], ax
cmp dword [esp], 0x12
jne 0x465cb3
push 0x5b
push dword [0x4c2228]
call fcn.004031ad
mov edx, dword [esp + 0x8a0]
add esp, 8
test al, al
je 0x465cd0
push dword [esp + 0x89c]
push edx
push esi
push dword [esp + 0x89c]
jmp 0x463c96
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
xor ebx, ebx
mov ecx, dword [esp + 0x878]
xor ecx, esp
call fcn.00475893
mov eax, ebx
add esp, 0x87c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
lea eax, [esp + 0x34]
sub ebp, eax
mov eax, ebp
jmp 0x4655c8
mov byte [ebp], 0xd
jmp 0x4656b8
mov edx, 2
jmp case.0x4657b8.112
mov edx, 3
jmp case.0x4657b8.112
mov edx, 4
jmp case.0x4657b8.112
mov edx, 7
jmp case.0x4657b8.112
mov edx, 8
jmp case.0x4657b8.112
mov edx, 0xa
jmp case.0x4657b8.112
mov edx, 0xd
jmp case.0x4657b8.112
mov edx, 0xe
jmp case.0x4657b8.112
mov edx, 0xf
jmp case.0x4657b8.112
mov edx, 0x12
jmp case.0x4657b8.112
mov edx, 0x13
jmp case.0x4657b8.112
mov edx, 0x14
mov eax, ebx
shr eax, 1
and ebx, 1
push eax
push ebx
push edx
push dword [0x4c2d68]
push ebp
call fcn.00455c42
add esp, 0x14
add eax, ebp
lea ecx, [esp + 0x34]
sub eax, ecx
jmp 0x4655c8