Function at 0x463534
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.0045ad2d
add esp, 8
mov esi, eax
push dword [0x497058]
push str._s_Command_Line_Error
call fcn.0045abe5
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.00411645
add esp, 4
push edi
call fcn.00411645
add esp, 4
push 1
call fcn.0048098d
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 0x462ba3
cmp esi, 0xff
jle 0x462ce3
lea eax, [esi - 0x100]
cmp eax, 0x17
ja case.0x462bca.515
jmp dword [eax*4 + 0x4a166c]
push ebx
push 3
call fcn.0046f5b3
mov edx, dword [esp + 0x8a0]
add esp, 8
mov eax, edx
and eax, 0xfffffffd
cmp eax, 0xe5
jne 0x462e82
cmp esi, 0x100
jne case.0x462cef.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 0x465a6c
cmp esi, 0x285
jg 0x462d0b
cmp esi, 0x213
jg 0x462d80
lea eax, [esi - 0x200]
cmp eax, 8
ja case.0x462bca.515
jmp dword [eax*4 + 0x4a16cc]
mov esi, edx
cmp dword [0x4c3418], edx
jne 0x462bef
cmp dword [0x4c341c], ebx
jne 0x462bef
cmp dword [0x4c3410], 0x200
je 0x462c0f
xor ecx, ecx
inc ecx
call fcn.004667e9
mov eax, esi
mov dword [0x4c3418], esi
mov dword [0x4c341c], ebx
mov dword [0x4c3410], 0x200
mov edi, ebx
push ebx
push 5
call fcn.0046f5b3
add esp, 8
xor ebx, ebx
mov eax, esi
test al, 0x13
je 0x465a6e
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, ebp
jne 0x465a6e
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 + 0x10], ecx
call fcn.0046a369
mov byte [esp + 4], 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 + 0xc], 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 + 0x10]
mov ecx, edi
call fcn.0046a3bc
movzx ecx, byte [esp + 4]
push ecx
push ebp
push dword [esp + 8]
push dword [esp + 0x18]
push esi
push 4
push eax
push edi
push dword [0x4c2d68]
call fcn.00451947
add esp, 0x24
jmp 0x465a6e
lea eax, [esi - 1]
cmp eax, 0x14
ja case.default.0x462cef
jmp dword [eax*4 + 0x4a1618]
xor ecx, ecx
inc ecx
call fcn.004667e9
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x465a6c
cmp esi, 0x30e
jg 0x462d5c
cmp esi, 0x286
je 0x462fcb
cmp esi, 0x2e0
je 0x462fa1
cmp esi, 0x307
jne case.0x462bca.515
cmp byte [0x4c340c], 0
jne 0x462d50
push 2
push dword [0x4c2d68]
call fcn.0045616b
add esp, 8
mov byte [0x4c340c], 0
jmp 0x465a6c
lea eax, [esi - 0x8002]
cmp eax, 3
ja case.default.0x462d6b
jmp dword [eax*4 + 0x4a16f0]
test edx, edx
setne byte [0x4c340c]
jmp case.0x462cef.1
cmp esi, 0x214
je 0x4638f7
cmp esi, 0x231
je 0x4638d6
cmp esi, 0x232
jne case.0x462bca.515
push 0
call fcn.0041f15c
add esp, 4
mov byte [0x4c342c], 0
cmp byte [0x4c342d], 1
jne 0x462e15
push 0x67
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push 0x7a
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov ebx, eax
push 0x7b
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
push edi
push ebx
mov ebx, dword [esp + 0x8a4]
push eax
push dword [0x4c2d68]
call fcn.0044fdfc
add esp, 0x10
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
call fcn.0046a1f0
jmp 0x463a2c
cmp esi, 0x51
je 0x463a03
cmp esi, 0xa0
jne case.0x462bca.515
mov edi, edx
cmp dword [0x4c3420], edx
jne 0x462e52
cmp dword [0x4c3424], ebx
jne 0x462e52
cmp dword [0x4c3410], 0xa0
je 0x462e72
xor ecx, ecx
inc ecx
call fcn.004667e9
mov eax, edi
mov dword [0x4c3420], edi
mov dword [0x4c3424], ebx
mov dword [0x4c3410], 0xa0
push ebx
push 5
call fcn.0046f5b3
add esp, 8
jmp 0x464772
push 0x48
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov ebp, eax
push 0x4a
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov bh, al
push 0x63
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov bl, al
push 0x55
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov byte [esp + 8], al
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov dword [esp + 0x10], eax
lea edi, [esp + 0x78]
push edi
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x463a81
mov ecx, dword [esp + 0x898]
cmp ecx, 0x12
jne 0x463b6b
mov eax, dword [esp + 0x89c]
and eax, 0x1000000
je 0x463b6b
mov al, byte [esp + 0x8a]
mov byte [esp + 0x11d], al
mov dword [esp], 0x12
cmp ebp, 3
je 0x46452e
jmp 0x463b81
mov eax, edx
and eax, 0xfffffff0
cmp eax, 0x15f
jg 0x4637e6
cmp eax, 0x4f
jle 0x463c8c
cmp eax, 0x6f
jle 0x464136
cmp eax, 0x70
je 0x464785
cmp eax, 0x140
je 0x4647ad
cmp eax, 0x150
jne 0x464969
push ebp
mov edi, edx
call fcn.00461272
jmp 0x463311
mov word [esp + 0x34], dx
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x463898
mov word [0x4c3430], dx
jmp 0x465a6c
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.00469b7f
jmp 0x465a6c
test edx, 0xff00
je 0x463be9
rol dx, 8
lea eax, [esp + 0x78]
mov word [eax], dx
push 2
push eax
jmp 0x463c00
cmp esi, 0x30f
je 0x463b2c
cmp esi, 0x311
jne case.0x462bca.515
cmp edx, ebp
je case.0x462cef.1
cmp dword [0x4c2da4], 0
je case.0x462cef.1
call fcn.0046888c
mov edx, dword [esp + 0x898]
test eax, eax
je case.0x462cef.1
mov edi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x46303f
push edi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, edi
call fcn.004698ed
jmp 0x463a2c
xor ecx, ecx
inc ecx
mov edi, edx
call fcn.004667e9
push 0
push dword [0x4c2d68]
call fcn.00456251
add esp, 8
call dword [sym.imp.USER32.dll_DestroyCaret]
xor eax, eax
dec eax
mov dword [0x4c106c], eax
mov dword [0x4c1068], eax
jmp 0x463306
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 0x4630ac
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 0x4630cc
push 0xaf8
push str..._windows_window.c
push str._wintw_hdc
call fcn.00481fcd
add esp, 0xc
mov dword [0x4c2de0], esi
mov eax, dword [0x4c2d68]
mov dword [esp], 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 ebp, dword [0x4c2d40]
cdq
idiv ebp
mov dword [esp + 4], eax
mov edi, dword [0x4c2d74]
mov eax, edi
not eax
add eax, dword [esp + 0x88]
cdq
mov dword [esp + 0x10], esi
mov esi, dword [0x4c2d3c]
idiv esi
mov dword [esp + 0xc], 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 + 8]
push dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x20]
push eax
push dword [esp + 0x14]
call fcn.00450a48
add esp, 0x18
mov dword [0x4c2de0], 0
cmp dword [esp + 0x7c], 0
jne 0x4631c5
mov ecx, dword [0x4c2d74]
cmp dword [esp + 0x80], ecx
jl 0x4631c5
mov eax, dword [0x4c2d70]
cmp dword [esp + 0x84], eax
jl 0x4631c5
mov edx, dword [0x4c2d68]
mov esi, dword [edx + 0x12c]
imul esi, dword [0x4c2d3c]
add esi, ecx
cmp dword [esp + 0x88], esi
jge 0x4631c5
mov ecx, dword [edx + 0x128]
imul ecx, dword [0x4c2d40]
add ecx, eax
cmp dword [esp + 0x8c], ecx
jl 0x463288
push dword [0x4c3308]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esp + 4], eax
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
call esi
mov dword [esp], 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 dword [esp + 0xc], eax
movups xmm0, xmmword [esp + 0x80]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov dword [esp], ebp
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 ebp
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
movups xmm0, xmmword [esp + 0x80]
sub esp, 0x14
movups xmmword [esp + 4], xmm0
mov dword [esp], ebp
call dword [sym.imp.GDI32.dll_Rectangle]
push dword [esp]
push ebp
mov esi, edi
call edi
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 4]
call edi
push dword [esp + 0xc]
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 0x465a6c
push 1
push dword [0x4c2d68]
mov edi, edx
call fcn.00456251
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.004699f2
mov dword [0x4c3428], 0
push dword [0x4c2d68]
call fcn.0044d6d0
mov edx, edi
add esp, 4
jmp case.0x462cef.1
push 0x76
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
xor eax, eax
cmp dword [esp + 0x898], 1
sete al
push eax
push dword [0x4c2d68]
call fcn.0045661d
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.00456677
mov ecx, dword [esp + 0x8a4]
add esp, 0xc
cmp ecx, 1
jne 0x463c19
push 0x79
push dword [0x4c2228]
call fcn.0040315d
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 0x464390
jmp 0x464a5f
mov eax, ebx
shr eax, 0x10
movzx ecx, bx
push eax
push ecx
push dword [0x4c2d68]
mov edi, edx
call fcn.0045665e
add esp, 0xc
call fcn.00469931
jmp 0x464772
xor ecx, ecx
inc ecx
call fcn.004667e9
push dword [0x497058]
push str._s_Exit_Confirmation
call fcn.0045abe5
add esp, 8
mov edi, eax
mov eax, dword [0x4c2dc4]
xor esi, esi
test eax, eax
je 0x46341a
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x40]
test ecx, ecx
je 0x46341a
push eax
call ecx
add esp, 4
mov esi, eax
test esi, esi
mov eax, 0x4b68fd
mov ecx, esi
cmove ecx, eax
mov edx, 0x4b677c
cmove edx, eax
push ecx
push edx
push str.Are_you_sure_you_want_to_close_this_session__s_s
call fcn.0045abe5
add esp, 0xc
mov ebx, eax
cmp byte [0x4c2dc0], 0
jne 0x46346c
push 5
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
test al, al
je 0x46346c
push 0x31
push edi
push ebx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
jne 0x463473
push ebp
call dword [sym.imp.USER32.dll_DestroyWindow]
push edi
call fcn.00411645
add esp, 4
push ebx
call fcn.00411645
add esp, 4
push esi
jmp 0x463f57
push 0x8f
push dword [0x4c2228]
mov edi, edx
call fcn.0040315d
mov edx, edi
add esp, 8
test al, al
je case.0x462cef.1
push dword [0x4c2d68]
call fcn.0045662c
add esp, 4
call fcn.00466244
push dword [0x4c2d68]
call fcn.004509db
jmp 0x463311
and edx, 0xffffffef
mov dword [esp], edx
mov dword [esp + 0xc], 2
jmp 0x463596
or edx, 0x10
mov dword [esp], edx
mov dword [esp + 0xc], 2
mov al, 1
mov dword [esp + 4], eax
jmp 0x46359e
and edx, 0xfffffffe
mov dword [esp], edx
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
mov al, 1
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0
jmp 0x4635a6
or edx, 1
mov dword [esp], edx
xor eax, eax
inc eax
mov dword [esp + 0xc], eax
mov al, 1
mov dword [esp + 4], eax
mov al, 1
mov dword [esp + 0x10], eax
jmp 0x4635a6
mov dword [esp], edx
test dl, 8
jne 0x463558
push 0x93
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
cmp eax, 2
jne 0x463f64
xor ecx, ecx
inc ecx
call fcn.004667e9
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 0x463a2c
and edx, 0xfffffffd
mov dword [esp], edx
mov dword [esp + 0xc], 3
mov dword [esp + 4], 0
mov dword [esp + 0x10], 0
xor esi, esi
inc esi
mov ecx, esi
call fcn.004667e9
lea edi, [esp + 0x34]
push edi
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0
push dword [edi + 4]
push dword [edi]
call fcn.00461ce4
mov bl, 1
test eax, eax
je 0x4635f5
lea edi, [esp + 0x78]
mov dword [edi], 0x28
push edi
push eax
call fcn.00461d3c
mov eax, dword [edi + 4]
cmp eax, dword [esp + 0x34]
jne 0x4635f5
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x38]
setne bl
call fcn.004699c8
test bl, bl
mov ecx, dword [esp + 4]
jne 0x463633
mov edx, dword [esp + 0x10]
and dl, cl
je 0x463633
test al, al
je 0x463633
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 0x465a6c
lea eax, [esp + 0x78]
test cl, cl
je 0x46366e
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
mov ebx, dword [esp + 0x89c]
je 0x463c72
cmp byte [esp + 0x8a], 0
js 0x463ce6
mov al, byte [esp + 0x11d]
shr al, 7
jmp 0x463ce8
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor ebx, ebx
test eax, eax
je 0x463c7c
cmp byte [esp + 0x8a], 0
mov ebp, dword [esp]
js 0x463e4f
mov al, byte [esp + 0x11d]
shr al, 7
jmp 0x463e51
bt ebx, 0xb
jae case.0x462cef.1
cmp dword [0x4c3ce8], 2
jb case.0x462cef.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 0x463775
mov edi, eax
push 0
push 1
push eax
call fcn.004115d0
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 0x463762
xor esi, esi
lea eax, [ebx + esi]
lea ebp, [esi + 2]
cmp ebp, edi
jge 0x46374b
movzx ecx, word [ebx + esi]
and ecx, 0xfc00
movzx ecx, cx
cmp ecx, 0xd800
jne 0x46374b
movzx ecx, word [eax + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x46374b
push 2
push eax
push dword [0x4c2d68]
call fcn.00455ed0
add esp, 0xc
add esi, 4
mov ebp, esi
jmp 0x46375e
push 1
push eax
push dword [0x4c2d68]
call fcn.00455ed0
add esp, 0xc
mov esi, ebp
cmp ebp, edi
jl 0x463702
push ebx
call fcn.00484378
add esp, 4
mov ebp, dword [esp + 0x890]
mov esi, dword [esp]
push esi
push ebp
call sub.IMM32.dll_ImmReleaseContext
jmp 0x463b63
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 0x463a2c
xor ebx, ebx
cmp edx, 0x4d2
jne 0x465a6e
push 0x4d2
push ebp
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esp + 0x78]
push eax
push dword [0x4c2da8]
call fcn.00459693
add esp, 8
test al, al
je 0x465a6e
push dword [esp + 0x78]
call fcn.004666c9
add esp, 4
jmp 0x465a6e
cmp eax, 0x19f
jle 0x463cac
cmp eax, 0xf07f
jle 0x46415a
cmp eax, 0xf100
je 0x4647bc
cmp eax, 0xf090
je 0x4647de
cmp eax, 0xf080
je 0x464170
jmp 0x464969
cmp dx, 7
ja case.0x462cef.1
mov edi, edx
movzx eax, dx
jmp dword [eax*4 + 0x4a1918]
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 0x4649d0
mov eax, dword [esp + 0x90]
jmp 0x4649dc
cmp dword [0x4c2d90], edx
jne case.0x462cef.1
mov esi, 0x4c2d94
push 0
push esi
call fcn.0041ec49
add esp, 8
push 1
push esi
call fcn.0041ec49
add esp, 8
call fcn.004663d1
jmp 0x465a6c
mov eax, 0xfc00
mov ecx, edx
and ecx, eax
cmp ecx, 0xdc00
jne 0x463c46
movzx ecx, word [0x4c3430]
and eax, ecx
movzx eax, ax
cmp eax, 0xd800
jne 0x463c46
lea eax, [esp + 0x78]
mov word [eax], cx
mov word [eax + 2], dx
push 2
jmp 0x463c5e
push 1
mov edi, edx
call fcn.0041f15c
mov edx, edi
add esp, 4
mov byte [0x4c342c], 1
mov byte [0x4c342d], 0
jmp case.0x462cef.1
push 0x76
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
test eax, eax
je 0x464427
cmp eax, 3
jne 0x463921
call fcn.0046a369
test al, al
je 0x464398
push 0x87
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov ecx, eax
mov esi, eax
sub esi, dword [0x4c2d74]
add esi, esi
add esi, dword [0x4c2d44]
mov ebp, dword [ebx + 8]
mov edx, dword [0x4c2d68]
mov edi, dword [edx + 0x12c]
mov dword [esp + 0xc], edi
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
mov dword [esp], ebp
sub ebp, esi
mov edi, dword [ebx]
mov dword [esp + 8], edi
mov dword [esp + 0x18], ebp
mov ebx, ebp
sub ebx, edi
add ebx, eax
sub ecx, dword [0x4c2d70]
add ecx, ecx
add ecx, dword [0x4c2d48]
mov dword [esp + 0x1c], edx
mov edi, dword [edx + 0x128]
mov edx, edi
shr edx, 0x1f
add edx, edi
sar edx, 1
mov ebp, dword [esp + 0x89c]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
sub eax, ecx
mov ebp, dword [ebp + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 4], ebp
sub eax, ebp
add eax, edx
cdq
idiv edi
mov ebp, eax
mov eax, ebx
cdq
idiv dword [esp + 0xc]
sub ebx, edx
add esi, dword [esp + 8]
add esi, ebx
mov edx, dword [esp + 0x898]
cmp edx, 7
ja 0x4644ca
mov eax, 0x92
bt eax, edx
jae 0x4644ca
mov edi, dword [esp + 0x18]
sub edi, ebx
mov eax, dword [esp + 0x89c]
mov dword [eax], edi
mov edi, dword [0x4c2d68]
jmp 0x4644d8
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.00482f24
add esp, 4
mov dword [0x4c3408], eax
call fcn.00469931
mov edx, dword [esp + 0x898]
jmp case.0x462cef.1
cmp esi, 0x20a
je 0x463a4c
cmp dword [0x4c1054], esi
jne case.0x462cef.1
mov edi, ebx
cmp esi, 0x20a
jne 0x463f75
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 + 4], eax
and edx, 8
shr edx, 3
jmp 0x463fac
push 0x100
push 0
push edi
call fcn.00478b20
add esp, 0xc
mov eax, dword [esp + 0x898]
mov dword [esp], eax
jmp 0x464535
push ebx
mov edi, edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
test edi, edi
je 0x463ef8
test esi, esi
je 0x463f54
mov ebx, 0xfffffffe
cmp word [esi + ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x463ac0
mov ebp, ebx
sar ebp, 1
lea eax, [ebp + 1]
push 0
push 2
push eax
call fcn.004115d0
add esp, 0xc
mov edi, eax
push ebx
push esi
push eax
call fcn.00478020
add esp, 0xc
mov word [edi + ebx], 0
push ebp
jmp 0x463f43
push 0
push 8
push 1
mov esi, edx
call fcn.004115d0
add esp, 0xc
mov dword [eax], esi
mov dword [eax + 4], ebx
push eax
push 0x46a418
call fcn.0040164e
add esp, 8
jmp 0x465a6c
mov byte [0x4c340d], 1
jmp case.0x462cef.1
xor ebx, ebx
cmp dword [0x4c2da4], 0
je 0x465a6e
call fcn.0046888c
test eax, eax
je 0x465a6e
mov esi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x463b5c
push esi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, esi
call fcn.004698ed
xor ebx, ebx
inc ebx
jmp 0x465a6e
cmp ebp, 3
jne 0x463b81
mov dword [esp], ecx
cmp ecx, 0x90
jne 0x46452e
jmp 0x463bb6
mov dword [esp], ecx
cmp ebp, 1
jg 0x46452e
mov eax, dword [0x4c2d68]
cmp byte [eax + 0x13d], 0
sete al
mov dword [esp], ecx
cmp ecx, 0x90
jne 0x46452e
or al, bh
mov dword [esp], ecx
jne 0x46452e
cmp byte [esp + 0x88], 0
js 0x464527
mov dword [esp], 0x2b
cmp dword [esp + 0x89c], 0x3fffffff
ja 0x46452e
xor byte [esp + 0x108], 1
jmp 0x46452e
lea esi, [esp + 0x78]
mov byte [esi], dl
push dword [0x4c2d68]
call fcn.0044e693
add esp, 4
push 1
push esi
push dword [0x4c3408]
push dword [0x4c2d68]
call fcn.00455f7f
add esp, 0x10
jmp 0x465a6c
mov esi, ebx
test ecx, 0xfffffffd
jne 0x463c37
push dword [0x4c33c0]
push ebp
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, dword [esp + 0x898]
test ecx, ecx
je 0x464306
xor eax, eax
jmp 0x46432a
and edx, 0xf800
cmp edx, 0xd800
je 0x465a6c
lea eax, [esp + 0x34]
push 1
push eax
push dword [0x4c2d68]
call fcn.00455ed0
add esp, 0xc
jmp 0x465a6c
mov dword [esp + 4], 0
jmp 0x463cec
mov dword [esp + 4], 0
mov ebp, dword [esp]
jmp 0x463e55
cmp eax, 0x2f
jg 0x4641af
cmp eax, 0x10
je 0x4647ea
cmp eax, 0x20
je 0x4641fa
jmp 0x464969
cmp eax, 0x17f
jg 0x4642d2
cmp eax, 0x160
je 0x4641fa
cmp eax, 0x170
jne 0x464969
push 1
push 0x4a1588
push dword [0x4c2d68]
mov edi, edx
call fcn.00450c9d
jmp 0x4642fc
mov al, 1
mov dword [esp + 4], 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 + 0x10], 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 0x463d65
test dl, 4
je 0x463da7
push 0x99
push dword [0x4c2228]
call fcn.0040315d
mov edx, dword [esp + 8]
add esp, 8
test al, al
je 0x463da7
mov ecx, dword [esp + 0xc]
cmp dword [0x4c2d80], ecx
mov dword [esp + 8], edi
mov dword [esp + 0x18], ebp
jne 0x463def
mov eax, ebp
sub eax, dword [0x4c3438]
cmp eax, dword [0x4c2d84]
jge 0x463def
mov eax, dword [0x4c2d7c]
cmp eax, 1
je 0x464a69
cmp eax, 2
jne 0x464a73
mov esi, 3
jmp 0x463df5
mov esi, edx
and esi, 4
shr esi, 2
and edx, 8
shr edx, 3
mov dword [0x4c2d80], 0
mov ebx, dword [esp + 0xc]
mov ecx, ebx
mov ebp, edi
mov edi, edx
call fcn.0046a3bc
movzx ecx, byte [esp + 4]
push ecx
push edi
push esi
push dword [esp + 0x1c]
push ebp
push 1
push eax
push ebx
push dword [0x4c2d68]
call fcn.00451947
add esp, 0x24
jmp 0x463e3d
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.0046a3bc
movzx ecx, byte [esp + 4]
push ecx
push ebx
push edi
push dword [esp + 0x1c]
push dword [esp + 0x18]
push esi
push eax
push ebp
push dword [0x4c2d68]
call fcn.00451947
add esp, 0x24
mov ebp, dword [esp + 0x18]
mov dword [0x4c3438], ebp
push dword [esp + 0x890]
call dword [sym.imp.USER32.dll_SetCapture]
jmp 0x465a6c
mov al, 1
mov dword [esp + 4], eax
mov dword [esp], ebp
mov eax, ebp
and eax, 8
shr eax, 3
mov dword [esp + 0x10], 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 + 8], 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 + 0xc]
mov ecx, edi
call fcn.0046a3bc
movzx ecx, byte [esp + 4]
push ecx
push dword [esp + 0x14]
push ebp
push dword [esp + 0x14]
push esi
push 5
push eax
push edi
push dword [0x4c2d68]
call fcn.00451947
add esp, 0x24
test byte [esp], 0x13
jne 0x465a6e
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x465a6e
test esi, esi
je 0x463f54
push esi
call fcn.004855c0
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.004115d0
add esp, 0xc
mov edi, eax
push esi
call fcn.004855c0
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.00451458
add esp, 0xc
jmp 0x463f56
xor edi, edi
push edi
call fcn.00411645
add esp, 4
jmp 0x465a6c
or dword [esp], 2
mov dword [esp + 0xc], 3
jmp 0x4634ee
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 + 4], 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 0x465a6e
movsx eax, di
mov dword [esp + 0x18], eax
sar edi, 0x10
mov dword [esp + 8], edi
mov dword [esp], edx
test esi, esi
jle 0x463fdd
lea eax, [esi - 0x78]
mov edi, 7
jmp 0x463feb
jns 0x465a6e
lea eax, [esi + 0x78]
mov edi, 8
mov dword [0x4c3434], eax
cmp byte [0x4c337d], 0
je 0x464017
push 0x99
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
cmp byte [esp + 4], 0
je 0x464045
test al, al
je 0x464045
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.00450bb9
add esp, 0xc
jmp 0x46411b
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x34]
push eax
push ebp
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x46411b
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x46408e
cmp byte [esp + 0x8a], 0
js 0x464098
mov al, byte [esp + 0x11d]
shr al, 7
jmp 0x46409a
mov dword [esp + 0x10], 0
jmp 0x46409e
mov al, 1
mov dword [esp + 0x10], eax
xor eax, eax
cmp byte [esp + 4], 0
setne al
mov dword [esp + 0xc], 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.0046a3bc
movzx ecx, byte [esp + 0x10]
movzx edx, byte [esp]
push ecx
push edx
push dword [esp + 0x14]
push ebp
push esi
push 1
push eax
push edi
push dword [0x4c2d68]
call fcn.00451947
add esp, 0x24
mov ebp, dword [esp + 0x890]
mov esi, dword [0x4c3434]
mov eax, esi
neg eax
cmovl eax, esi
cmp eax, 0x77
ja 0x463fcf
jmp 0x465a6e
cmp eax, 0x50
je 0x4647f7
cmp eax, 0x60
jne 0x464969
push dword [0x4c2d68]
mov edi, edx
call fcn.0044f75e
jmp 0x463311
cmp eax, 0x1a0
je 0x46484b
cmp eax, 0xf070
jne 0x464969
cmp esi, 0x112
jne case.0x462cef.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.00475526
mov eax, esi
jmp 0x465a7e
cmp eax, 0x30
je 0x4641fa
cmp eax, 0x40
jne 0x464969
cmp dword [0x4c2dc4], 0
jne case.0x462cef.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.0044e6f2
add esp, 8
call fcn.00466456
jmp 0x464772
call fcn.00470c38
mov edx, dword [esp + 0x898]
mov ecx, 0x4b0777
mov ebp, 0x4b68fd
test al, al
cmovne ebp, ecx
cmp edx, 0x160
je 0x464864
cmp edx, 0x30
jne 0x4648a0
call fcn.0045af10
mov ebx, eax
add eax, 0xc
push dword [0x4c2228]
push eax
call fcn.00403c18
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 + 8], 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 0x4642a5
push dword [esp + 4]
push edi
push edi
push 2
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
je 0x4642a5
mov edi, eax
push dword [esp + 4]
push dword [ebx]
push eax
call fcn.00478020
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push ebx
call fcn.0045af73
add esp, 4
push dword [esp + 4]
push dword [esp + 4]
push ebp
push str.putty__s_p:_u
call fcn.0045abe5
add esp, 0x10
mov ebp, eax
xor eax, eax
inc eax
mov dword [esp + 4], eax
jmp 0x4648d1
cmp eax, 0x180
je 0x46495d
cmp eax, 0x190
jne 0x464969
push 1
push 0x4a1588
push dword [0x4c2d68]
mov edi, edx
call fcn.0045139b
mov edx, edi
add esp, 0xc
jmp case.0x462cef.1
mov byte [0x4c340e], 0
call fcn.0046a42e
mov ecx, dword [esp + 0x898]
mov al, 1
xor ebx, ebx
cmp byte [0x4c340e], 0
jne 0x465a6e
cmp ecx, 2
jne 0x464380
cmp byte [0x4c340d], 1
jne 0x464357
xor ebx, ebx
mov byte [0x4c340d], bl
mov byte [0x4c340e], bl
call fcn.0046a4ec
cmp byte [0x4c340e], bl
jne 0x465a6e
mov byte [0x4c340e], 1
cmp edi, 1
je 0x464390
mov byte [0x4c342e], 1
test edi, edi
jne 0x464a58
mov ecx, esi
xor edx, edx
call fcn.0046a5dd
jmp 0x464a58
mov byte [0x4c340e], 1
cmp edi, 1
jne 0x464993
xor ecx, ecx
dec ecx
jmp 0x464a5a
cmp byte [0x4c342d], 0
jne 0x464427
push 0x7b
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov ecx, dword [0x4c2d68]
mov ecx, dword [ecx + 0x128]
cmp eax, ecx
jne 0x4643e9
push 0x7a
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov ecx, dword [0x4c2d68]
cmp eax, dword [ecx + 0x12c]
je 0x464427
mov ecx, dword [ecx + 0x128]
push ecx
push 0x7b
push dword [0x4c2228]
call fcn.0040381a
add esp, 0xc
mov eax, dword [0x4c2d68]
push dword [eax + 0x12c]
push 0x7a
push dword [0x4c2228]
call fcn.0040381a
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 ebp, dword [ebx + 0xc]
sub esi, dword [ebx]
sub esi, dword [0x4c2d44]
sub ebp, dword [ebx + 4]
sub ebp, dword [0x4c2d48]
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.0041edc4
add esp, 0xc
imul edi, dword [0x4c2d3c]
imul ebx, dword [0x4c2d40]
sub ebp, ebx
sub esi, edi
mov ecx, dword [esp + 0x898]
je 0x464a17
cmp ecx, 7
ja 0x464a0d
mov eax, 0x92
bt eax, ecx
jae 0x464a0d
mov eax, dword [esp + 0x89c]
add dword [eax], esi
jmp 0x464a17
mov eax, dword [esp + 0x89c]
mov dword [eax + 8], esi
mov edi, dword [esp + 0x1c]
mov eax, dword [esp]
xor eax, esi
imul ebp, dword [edi + 0x128]
mov esi, dword [esp + 4]
add esi, ecx
mov ecx, esi
add ecx, ebp
mov esi, dword [esp + 0x10]
xor esi, ecx
xor ebx, ebx
or esi, eax
setne bl
add edx, 0xfffffffd
cmp edx, 2
ja 0x464518
mov ecx, dword [esp + 0x14]
sub ecx, ebp
mov eax, dword [esp + 0x89c]
mov dword [eax + 4], ecx
jmp 0x465a6e
mov eax, dword [esp + 0x89c]
mov dword [eax + 0xc], ecx
jmp 0x465a6e
mov dword [esp], 0x90
push edi
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov edi, dword [esp + 0x89c]
and edi, 0xc0000000
cmp edi, 0x40000000
jne 0x46455c
mov eax, dword [0x4c2d68]
cmp byte [eax + 0x13f], 0
jne 0x465a6c
mov byte [esp + 0xc], 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 + 4], ecx
jae 0x4645b2
test al, al
js 0x4645b2
test bh, bh
jns 0x4645b2
test bl, bl
je 0x4645a2
mov byte [esp + 0x8a], 0
jmp 0x4645b2
mov byte [esp + 0x11d], 0x80
mov dword [esp + 4], 0
mov bl, byte [esp + 0x88]
shr bl, 7
shr bh, 6
and bh, 2
cmp dword [0x4c3428], 0
jne 0x464616
mov dword [0x4c344c], 0x100
push 0x62
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov edx, dword [esp]
cmp edx, 0x12
sete cl
cmp edx, 0x5d
je 0x464603
mov edx, dword [esp + 0x89c]
shr edx, 0x18
and al, dl
and cl, al
je 0x464616
mov ecx, dword [esp]
cmp ecx, 0x5d
mov eax, 0x12
cmove eax, ecx
mov dword [0x4c344c], eax
or bl, bh
mov eax, dword [0x4c3428]
mov ecx, dword [esp]
cmp ecx, dword [0x4c344c]
jne 0x464642
cmp dword [esp + 0x89c], 0x3fffffff
mov dh, byte [esp + 0xc]
ja 0x464662
test eax, eax
jne 0x464662
xor ecx, ecx
inc ecx
jmp 0x464652
cmp ecx, 0x11
mov dh, byte [esp + 0xc]
je 0x464682
xor ecx, ecx
cmp eax, 1
jne 0x464682
mov dword [0x4c3428], ecx
mov al, 1
mov dword [esp + 0xc], eax
mov eax, ecx
jmp 0x4646a8
xor ecx, ecx
cmp dword [esp + 0x89c], 0
jns 0x464652
cmp eax, 1
jne 0x464652
mov dword [0x4c3428], 2
mov eax, 2
cmp byte [esp + 4], 0
je 0x4646a2
cmp eax, 2
jl 0x4646a2
mov dword [0x4c3428], 0
mov al, 1
mov dword [esp + 0xc], eax
xor eax, eax
jmp 0x4646af
mov cl, 1
mov dword [esp + 0xc], ecx
cmp byte [esp + 4], 0
je 0x4646e3
bt dword [esp + 0x89c], 0x18
jb case.0x4646d2.41
mov ecx, dword [esp]
lea edx, [ecx - 0x21]
cmp edx, 0xd
ja case.default.0x4646d2
mov ecx, 0x60
jmp dword [edx*4 + 0x4a1700]
mov ecx, 0x69
jmp case.0x4646d2.45
mov ecx, dword [0x4c2d68]
cmp byte [ecx + 0x13d], 0
sete cl
cmp ebp, 2
sete dl
test eax, eax
setne ch
mov dword [esp + 0xc], 0
or byte [esp + 8], ch
jne 0x4646af
cmp ebp, 3
je 0x4646af
or dl, dh
or dl, cl
je 0x4646af
xor eax, eax
jmp case.0x4646d2.41
push 0xffffffffffffffff
jmp 0x464724
push 1
push 0
jmp 0x464764
mov eax, dword [0x4c2d68]
mov ecx, dword [eax + 0x128]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
neg edx
jmp 0x464754
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 0x46476a
push 0
push 1
jmp 0x464764
push 0
push 0xffffffffffffffff
push dword [0x4c2d68]
call fcn.00450bb9
add esp, 0xc
mov edx, edi
push ebx
push edx
push esi
push ebp
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ebx, eax
jmp 0x465a6e
push 1
push dword [0x4c2d68]
mov edi, edx
call fcn.0044e6f2
mov edx, edi
add esp, 8
mov eax, dword [0x4c2dc8]
test eax, eax
je case.0x462cef.1
push eax
call fcn.0040f079
jmp 0x463311
push 0
push ebp
mov edi, edx
call fcn.0046bab3
jmp 0x46485a
xor ecx, ecx
inc ecx
mov edi, edx
call fcn.004667e9
mov edx, edi
test ebx, ebx
jne case.0x462cef.1
push 0
push 0x20
push 0x102
push ebp
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x464772
xor ecx, ecx
inc ecx
mov edi, edx
call fcn.004667e9
jmp 0x464772
push ebp
mov edi, edx
call fcn.00460ed9
jmp 0x463311
cmp byte [0x4c3414], 0
jne case.0x462cef.1
mov byte [0x4c3414], 1
push dword [0x4c2228]
push dword [0x4c2d68]
call fcn.0044ee94
add esp, 8
push dword [0x4c2228]
call fcn.00403129
add esp, 4
mov dword [esp], eax
mov eax, dword [0x4c2dc4]
test eax, eax
je 0x464bec
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
add esp, 4
jmp 0x464bee
push 2
push dword [0x4c2d68]
mov edi, edx
call fcn.0045140d
mov edx, edi
add esp, 8
jmp case.0x462cef.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 0x464951
mov ecx, dword [0x4c2d98]
mov dword [esp], 0
push dword [ecx + eax*4 + 4]
push ebp
push str.putty__s__s
jmp 0x4648bf
cmp byte [ebp], 0
mov eax, 0x4b68fd
mov ecx, 0x4b6043
cmove ecx, eax
mov dword [esp], 0
push ebp
push ecx
push str.putty_s_s
call fcn.0045abe5
add esp, 0xc
mov ebp, eax
mov dword [esp + 4], 0
lea eax, [esp + 0x78]
xor edi, edi
push 0x7ff
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
movaps xmm0, xmmword [0x4a15a0]
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 + 0x18]
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 0x46493a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
call fcn.00411645
add esp, 4
mov ebx, dword [esp + 0x89c]
mov edx, dword [esp + 0x898]
mov ebp, dword [esp + 0x890]
jmp case.0x462cef.1
mov edi, edx
call fcn.0046a322
jmp 0x464772
lea eax, [edx - 0x1000]
cmp eax, 0x3fff
ja 0x464aa2
push edx
push 0x160
push 0x112
push ebp
mov edi, edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x464772
test al, al
je 0x464a3e
cmp byte [0x4c342e], 1
jne 0x464a3e
mov byte [0x4c342e], 0
cmp edi, 2
je 0x464a58
test edi, edi
jne 0x4649c6
xor edx, edx
inc edx
mov ecx, esi
call fcn.0046a5dd
mov ecx, 2
jmp 0x464a5a
mov eax, edi
shr eax, 0x10
mov dword [esp + 0x90], eax
push eax
push 1
push dword [0x4c2d68]
call fcn.00450bb9
add esp, 0xc
cmp byte [0x4c340f], 1
jne 0x464772
push dword [0x4c2d68]
call fcn.0044d6d0
add esp, 4
jmp 0x464772
mov eax, dword [esp + 0x89c]
sub dword [eax + 8], esi
test ebp, ebp
je 0x464a32
add ecx, 0xfffffffd
mov eax, dword [esp + 0x89c]
cmp ecx, 2
ja 0x464a2f
add dword [eax + 4], ebp
jmp 0x464a32
sub dword [eax + 0xc], ebp
xor ebx, ebx
or ebp, esi
setne bl
jmp 0x465a6e
test edi, edi
je 0x464af3
cmp edi, 3
jne 0x464a58
call fcn.0046a369
test al, al
je 0x464af3
xor ecx, ecx
call fcn.00469b7f
call fcn.00469931
jmp 0x465a6c
mov esi, 2
jmp 0x463df5
xor ebx, ebx
cmp eax, 3
sete bl
mov dword [0x4c2d7c], ebx
jne 0x463e37
xor esi, esi
inc esi
jmp 0x463dfb
cmp ecx, 0xc
jne case.0x4646d2.41
mov ecx, 0x65
jmp case.0x4646d2.45
lea eax, [edx - 0x400]
cmp eax, 0x400
ja case.0x462cef.1
shr eax, 4
cmp eax, dword [0x4c2dd0]
jge case.0x462cef.1
mov ecx, dword [0x4c2dc4]
test ecx, ecx
je case.0x462cef.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 0x4642fe
xor edx, edx
inc edx
mov ecx, esi
call fcn.0046a5dd
cmp byte [0x4c342c], 0
jne 0x464a5f
call fcn.0046a1f0
jmp 0x464a5f
mov ecx, 0x63
jmp case.0x4646d2.45
mov ecx, 0x61
jmp case.0x4646d2.45
mov ecx, 0x67
jmp case.0x4646d2.45
mov ecx, 0x64
jmp case.0x4646d2.45
mov ecx, 0x68
jmp case.0x4646d2.45
mov ecx, 0x66
jmp case.0x4646d2.45
mov ecx, 0x62
jmp case.0x4646d2.45
mov ecx, 0x6e
mov dl, byte [esp + 0x108]
and dl, 1
or bl, dl
mov dword [esp], ecx
cmp dword [esp + 0x89c], 0
js case.0x46555e.14
test eax, eax
jne case.0x46555e.14
cmp byte [esp + 0x11d], 0
js case.0x46555e.14
movzx edx, bl
cmp byte [esp + 0xc], 0
je 0x464b91
lea ebp, [esp + 0x35]
mov byte [ebp - 1], 0x1b
jmp 0x464b95
lea ebp, [esp + 0x34]
mov ecx, dword [esp]
cmp dl, 1
jne 0x464bab
cmp ecx, 0x21
jne 0x464bab
push 0
push 2
jmp 0x464e33
cmp dl, 3
jne 0x464bbe
cmp ecx, 0x21
jne 0x464bbe
push 0
push 6
jmp 0x464e33
cmp dl, 3
jne 0x464bd1
cmp ecx, 0x22
jne 0x464bd1
push 0
push 7
jmp 0x464e33
cmp dl, 2
jne 0x464e15
cmp ecx, 0x21
jne 0x464e15
xor eax, eax
push eax
push eax
jmp 0x464e33
xor eax, eax
push eax
push dword [0x4c2228]
push ebp
call fcn.00460d93
add esp, 0xc
mov byte [0x4c3414], 0
test al, al
je 0x464e05
call fcn.00465b33
push 0x76
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
xor ebx, ebx
cmp eax, 1
sete bl
mov eax, 0x180
mov ebp, dword [sym.imp.USER32.dll_EnableMenuItem]
push ebx
push eax
push dword [0x4c2d88]
call ebp
push ebx
mov eax, 0x180
push eax
push dword [0x4c2d8c]
call ebp
mov ebp, dword [esp + 0x890]
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
mov dword [esp + 4], edi
cmp edi, 1
jne 0x464c74
test eax, eax
je 0x464c74
push 9
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4c2228]
push dword [0x4c2d6c]
call fcn.00410323
add esp, 8
push dword [0x4c2da0]
call fcn.00411645
add esp, 4
mov eax, dword [0x4c2dc8]
test eax, eax
je 0x464cbc
push dword [0x4c2228]
push eax
call fcn.0040efe9
add esp, 8
push dword [0x4c2dc8]
call fcn.0040f079
add esp, 4
mov edi, 0x8f
push edi
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov ebx, eax
push edi
push dword [esp + 4]
call fcn.0040315d
add esp, 8
cmp bl, al
je 0x464cf1
push dword [0x4c2d68]
call fcn.0045662c
add esp, 4
push dword [0x4c2228]
push dword [0x4c2d68]
call fcn.0044eead
add esp, 8
mov edx, dword [0x4c2228]
mov ecx, dword [0x4c2d68]
call fcn.0046634e
mov eax, dword [0x4c2da4]
test eax, eax
je 0x464d26
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [0x4c2da0], eax
mov dword [0x4c2da4], eax
call fcn.00466244
mov eax, dword [0x4c2dc4]
test eax, eax
je 0x464d4f
mov ecx, dword [eax]
push dword [0x4c2228]
push eax
call dword [ecx + 8]
add esp, 8
mov ebx, 0x7b
push ebx
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.004031fd
add esp, 8
cmp edi, eax
jne 0x464e8c
mov ebx, 0x7a
push ebx
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.004031fd
add esp, 8
cmp edi, eax
jne 0x464e8c
mov ebx, 0x67
push ebx
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.004031fd
add esp, 8
cmp dword [esp + 4], 2
je 0x464e8c
cmp edi, eax
jne 0x464e8c
mov edi, dword [esp + 4]
cmp edi, 3
jne 0x464e87
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
cmp edi, 1
je 0x464e8c
test eax, eax
je 0x464ed1
jmp 0x464e8c
push dword [esp]
call fcn.00403018
add esp, 4
jmp 0x463a2c
cmp dl, 1
jne 0x464e25
cmp ecx, 0x22
jne 0x464e25
push 0
push 3
jmp 0x464e33
cmp dl, 2
jne 0x464e43
cmp ecx, 0x22
jne 0x464e43
push 0
push 1
push 0x115
push dword [0x4c1058]
jmp 0x463628
cmp dl, 3
jne 0x464e69
lea eax, [ecx - 0x21]
cmp eax, 1
ja 0x464e69
xor eax, eax
cmp ecx, 0x21
setne al
push eax
push dword [0x4c2d68]
call fcn.00450c48
jmp 0x463b18
mov ebx, edx
cmp dl, 2
jne 0x4651d1
cmp ecx, 0x2d
jne 0x4651d1
push 0x9d
jmp 0x4651f5
cmp edi, 1
jne 0x464ed1
push 0x67
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push 0x7a
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov ebx, eax
push 0x7b
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
push edi
push ebx
push eax
push dword [0x4c2d68]
call fcn.0044fdfc
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, 0x5d
push edi
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov ebx, eax
push edi
push dword [esp + 4]
call fcn.0040315d
add esp, 8
mov edi, ebp
cmp bl, al
je 0x464f55
push 0x5d
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov ecx, ebp
and ecx, 0xfffffff7
movzx eax, al
lea edi, [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 0x86
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
and edi, 0xfffffdff
movzx ebx, al
shl ebx, 9
or ebx, edi
call fcn.004699c8
movzx eax, al
or eax, 0x74
push eax
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
mov edx, dword [esp + 0x10]
mov ecx, edx
and ecx, 0xffdfffff
movzx edi, al
shl edi, 0x15
or edi, ecx
mov ecx, dword [esp + 4]
cmp ecx, 1
je 0x464fbe
call fcn.004699c8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 4]
test al, al
je 0x464fc6
and edi, 0xfffbffff
jmp 0x464fcc
or edi, 0x40000
xor eax, eax
cmp ecx, 1
setne al
and edi, 0xfffeffff
shl eax, 0x10
or eax, edi
cmp ebx, ebp
jne 0x464ff3
cmp eax, edx
jne 0x464ff3
xor edi, edi
inc edi
mov ebp, dword [esp + 0x890]
jmp 0x465049
cmp eax, edx
je 0x465007
push eax
push 0xfffffffffffffff0
push dword [esp + 0x898]
call dword [sym.imp.USER32.dll_SetWindowLongA]
cmp ebx, ebp
mov ebp, dword [esp + 0x890]
je 0x46501c
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
mov ecx, dword [esp + 4]
cmp ecx, 1
jne 0x465067
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x465067
push ebp
call fcn.00460254
add esp, 4
mov edi, 2
mov dword [esp + 0x10], edi
mov edi, 0x7c
push edi
push dword [0x4c2228]
call fcn.004036b0
add esp, 8
mov ebx, eax
push edi
push dword [esp + 4]
call fcn.004036b0
add esp, 8
mov edi, eax
push dword [eax]
push dword [ebx]
call fcn.00485130
add esp, 8
test eax, eax
je 0x46519e
mov eax, 0xa3
push eax
push dword [esp + 4]
call fcn.00403342
add esp, 8
mov ebp, eax
mov eax, 0xa3
push eax
push dword [0x4c2228]
call fcn.00403342
add esp, 8
push ebp
mov ebp, dword [esp + 0x894]
push eax
call fcn.00485130
add esp, 8
test eax, eax
je 0x46519e
mov al, byte [ebx + 4]
cmp al, byte [edi + 4]
jne 0x46519e
mov eax, dword [ebx + 8]
cmp eax, dword [edi + 8]
jne 0x46519e
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi + 0xc]
jne 0x46519e
mov ebx, 0x7d
push ebx
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.004031fd
add esp, 8
cmp edi, eax
jne 0x46519e
mov ebx, 0xa2
push ebx
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.004031fd
add esp, 8
cmp edi, eax
jne 0x46519e
mov ebx, 0x91
push ebx
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.004031fd
add esp, 8
mov ecx, dword [esp + 4]
and ecx, 0xfffffffd
cmp ecx, 1
je 0x46519e
cmp edi, eax
jne 0x46519e
push 0x76
push dword [esp + 4]
call fcn.004031fd
add esp, 8
cmp dword [esp + 4], eax
je 0x4651a6
mov dword [esp + 0x10], 2
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 0x10]
call fcn.00469b7f
push dword [esp]
call fcn.00403018
add esp, 4
mov ebx, dword [esp + 0x89c]
jmp 0x463a2c
mov eax, ebx
cmp al, 1
jne 0x4651e4
cmp dword [esp], 0x2d
jne 0x4651e4
push 0x9d
jmp 0x465234
mov eax, ebx
cmp al, 3
jne 0x465223
cmp dword [esp], 0x43
jne 0x465223
push 0x9e
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
cmp eax, 2
jne 0x465a6c
push 1
push 0x4a1588
push dword [0x4c2d68]
call fcn.0045139b
jmp 0x463c6a
mov eax, ebx
cmp al, 3
jne 0x465266
cmp dword [esp], 0x56
jne 0x465266
push 0x9e
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
cmp eax, 2
je 0x465254
cmp eax, 1
jne 0x465a6c
push 1
jmp 0x465256
push 2
push dword [0x4c2d68]
call fcn.0045140d
jmp 0x463b18
cmp dword [esp], 0x73
setne cl
mov eax, dword [esp + 0xc]
xor al, 1
or cl, al
jne 0x4652a3
push 0x58
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
test al, al
mov ecx, dword [esp + 0x898]
jne 0x465a4f
mov dword [esp + 8], 0
jmp 0x465333
cmp dword [esp], 0x20
sete dl
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], edx
and cl, dl
cmp cl, 1
jne 0x4652f7
mov al, 1
mov dword [esp + 8], eax
push 0x59
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
test al, al
je 0x465333
push 0
push 0xf100
push 0x112
push dword [0x4c1058]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x898]
jmp 0x465a4f
cmp dword [esp], 0xd
setne cl
or al, cl
jne 0x46538f
push 0x5e
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
test al, al
je 0x465333
push 0x76
push dword [0x4c2228]
call fcn.004031fd
add esp, 8
cmp eax, 1
jne 0x465416
mov eax, ebx
test al, al
sete byte [esp + 0x18]
xor eax, eax
mov ecx, ebx
cmp cl, 2
jne 0x465352
cmp byte [esp + 8], 0
je 0x465352
mov byte [ebp], 0
jmp 0x465369
mov ecx, ebx
cmp cl, 3
setne cl
mov edx, dword [esp + 8]
xor dl, 1
or dl, cl
jne 0x4653b4
mov byte [ebp], 0xa0
lea eax, [esp + 0x34]
neg eax
add eax, ebp
inc eax
test eax, eax
je 0x465a6c
cmp eax, 0xffffffff
mov ecx, dword [esp + 0x898]
je 0x465a4f
jmp 0x46546b
cmp dword [esp], 0x13
sete al
mov ecx, ebx
cmp cl, 2
jne 0x4653dd
cmp dword [esp], 0x13
jne 0x4653dd
mov eax, dword [0x4c2d68]
xor byte [eax + 0x13d], 1
jmp 0x465a6c
mov ecx, ebx
cmp cl, 2
jne 0x46540c
cmp dword [esp], 3
jne 0x46540c
mov eax, dword [0x4c2dc4]
test eax, eax
je 0x465a6c
mov ecx, dword [eax]
xor edx, edx
push edx
push edx
push eax
call dword [ecx + 0x18]
jmp 0x463c6a
mov ecx, ebx
test cl, cl
sete byte [esp + 0x18]
jne 0x465433
cmp dword [esp], 8
jne 0x465433
push 0x46
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
test al, al
mov eax, 0x7f
mov ecx, 8
jmp 0x46545c
test al, al
je 0x46548d
mov byte [ebp], 0x1a
jmp 0x465462
cmp edi, 0x40000000
mov ecx, dword [esp + 0x898]
je 0x465a4f
call fcn.0046a322
jmp 0x4652eb
mov ecx, ebx
cmp cl, 1
jne 0x4654ac
cmp dword [esp], 8
jne 0x4654ac
push 0x46
push dword [0x4c2228]
call fcn.0040315d
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.00455f7f
add esp, 0x10
xor ecx, ecx
call fcn.004667e9
jmp 0x465a6c
mov eax, ebx
cmp al, 2
jne 0x4654db
mov eax, dword [esp]
add eax, 0xffffffce
cmp eax, 6
ja 0x4654db
mov al, byte [eax + 0x4a6fd6]
mov byte [ebp], al
jmp 0x465369
mov ecx, ebx
cmp cl, 1
jne 0x46533e
cmp dword [esp], 9
jne 0x46533e
mov word [ebp], 0x5b1b
mov byte [ebp + 2], 0x5a
lea eax, [esp + 0x34]
neg eax
add eax, ebp
add eax, 3
jmp 0x465372
mov eax, ebx
cmp al, 2
jne 0x4654f7
mov eax, dword [esp]
and eax, 0xfffffffd
cmp eax, 0xbd
jne 0x4654f7
mov byte [ebp], 0x1f
jmp 0x465369
mov eax, ebx
cmp al, 2
jne 0x465518
cmp dword [esp], 0xdf
je 0x46550f
cmp dword [esp], 0xdc
jne 0x465518
mov byte [ebp], 0x1c
jmp 0x465369
mov eax, ebx
cmp al, 3
jne 0x465530
cmp dword [esp], 0xde
jne 0x465530
mov byte [ebp], 0x1e
jmp 0x465369
mov eax, dword [esp]
add eax, 0xfffffff4
cmp eax, 0x77
ja case.0x46555e.14
mov edi, 0x41
mov dword [esp + 8], 0
xor edx, edx
inc edx
mov byte [esp + 0x14], 0x30
mov dword [esp + 0x1c], 7
xor ecx, ecx
jmp dword [eax*4 + 0x4a1738]
mov edi, 0x47
jmp case.0x46555e.38
bt dword [esp + 0x89c], 0x18
jae 0x465750
mov byte [esp + 0x14], 0xd
mov al, 1
mov dword [esp + 8], eax
mov dword [esp + 0x1c], 9
jmp 0x4656f8
mov edi, 0x44
jmp case.0x46555e.38
mov edi, 0x42
jmp case.0x46555e.38
mov dword [esp + 8], 3
jmp case.0x46555e.36
mov byte [esp + 0x14], 0x35
jmp 0x4656dc
mov byte [esp + 0x14], 0x38
jmp 0x4656dc
mov byte [esp + 0x14], 0x2a
jmp 0x4656f2
mov byte [esp + 0x14], 0x2d
jmp 0x4656f2
mov byte [esp + 0x14], 0x2e
jmp 0x4656f2
mov edx, 5
jmp case.0x46555e.112
mov edx, 6
jmp case.0x46555e.112
mov edx, 9
jmp case.0x46555e.112
mov edx, 0xb
jmp case.0x46555e.112
mov edx, 0xc
jmp case.0x46555e.112
mov edx, 0xd
jmp case.0x46555e.112
mov edx, 0x10
jmp case.0x46555e.112
mov edx, 0x11
jmp case.0x46555e.112
mov dword [esp + 8], 4
jmp case.0x46555e.36
mov dword [esp + 8], 5
jmp case.0x46555e.36
xor eax, eax
inc eax
mov dword [esp + 8], eax
jmp case.0x46555e.36
mov edi, 0x43
shr ebx, 1
push ebx
push edi
push dword [0x4c2d68]
push ebp
call fcn.00455a8f
add esp, 0x10
jmp 0x465b26
mov byte [esp + 0x14], 0x47
mov cl, 1
mov dword [esp + 8], 0
jmp case.0x46555e.96
mov dword [esp + 8], 2
test bl, 2
jne case.0x46555e.14
push dword [esp + 8]
push dword [0x4c2d68]
push ebp
call fcn.00455c22
add esp, 0xc
jmp 0x465b26
mov byte [esp + 0x14], 0x31
jmp 0x4656dc
mov byte [esp + 0x14], 0x32
jmp 0x4656dc
mov byte [esp + 0x14], 0x33
jmp 0x4656dc
mov byte [esp + 0x14], 0x34
jmp 0x4656dc
mov byte [esp + 0x14], 0x36
jmp 0x4656dc
mov byte [esp + 0x14], 0x37
jmp 0x4656dc
mov byte [esp + 0x14], 0x39
mov dword [esp + 8], 0
jmp 0x4656f8
mov byte [esp + 0x14], 0x2b
jmp 0x4656f2
mov byte [esp + 0x14], 0x2f
mov al, 1
mov dword [esp + 8], eax
xor ecx, ecx
cmp byte [esp + 0xc], 0
je 0x465718
mov eax, dword [esp + 8]
or al, cl
je 0x465783
mov dword [0x4c343c], 0
jmp case.0x46555e.14
mov eax, ebx
shr eax, 1
and ebx, 1
movzx ecx, byte [esp + 0x14]
push eax
push ebx
push ecx
push dword [0x4c2d68]
push ebp
call fcn.00455cf4
add esp, 0x14
xor ecx, ecx
inc ecx
test eax, eax
cmove ecx, dword [esp + 0x1c]
cmp ecx, 7
je case.0x46555e.14
add ebp, eax
cmp ecx, 9
jne 0x465aac
cmp byte [esp + 0x18], 0
je 0x465ab9
mov eax, dword [0x4c2d68]
cmp byte [eax + 0x141], 0
je 0x465ab9
mov word [ebp], 0xa0d
lea eax, [esp + 0x34]
neg eax
add eax, ebp
add eax, 2
jmp 0x465372
movzx eax, byte [esp + 0x14]
mov ecx, dword [0x4c343c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2]
add eax, 0xffffffd0
mov dword [0x4c343c], eax
mov edi, dword [esp + 0x89c]
shr edi, 0x10
cmp byte [esp + 0x8c], 0
je 0x4657d8
push 0xa6
push dword [0x4c2228]
call fcn.0040315d
add esp, 8
test al, al
je 0x4657d8
mov ebx, dword [esp + 0xc]
xor bl, 1
mov byte [esp + 0x8c], 0
jmp 0x4657da
xor ebx, ebx
and edi, 0x81ff
cmp dword [0x4c3ce8], 2
jne 0x465812
mov eax, dword [0x4c3450]
test eax, eax
je 0x465812
push dword [esp + 0x10]
push 0
push 3
push 0x4c3440
lea ecx, [esp + 0x88]
push ecx
push edi
push dword [esp + 0x18]
call eax
mov edi, eax
jmp 0x465865
push dword [esp + 0x10]
push 0
push 0x4c3454
lea eax, [esp + 0x84]
push eax
push edi
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_ToAsciiEx]
test eax, eax
jle 0x4659de
mov edi, eax
xor eax, eax
mov cl, byte [eax + eax + 0x4c3454]
mov byte [eax + 0x4c345a], cl
inc eax
cmp edi, eax
jne 0x46583c
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 0x4659de
mov ecx, dword [esp + 0xc]
xor cl, 1
mov eax, dword [esp + 4]
inc al
movzx eax, al
mov dword [esp], eax
movzx eax, cl
lea ebp, [esp + eax*2]
add ebp, 0x24
xor esi, esi
xor bl, 1
movzx eax, word [esi + esi + 0x4c3440]
mov word [esp + 0x20], ax
mov ecx, dword [0x4c3428]
lea edx, [eax - 0x20]
cmp dx, 0x5f
ja 0x4658c3
cmp ecx, 2
jne 0x4658c3
mov dword [0x4c3448], eax
mov dword [0x4c3428], 3
jmp 0x465999
mov dword [0x4c3428], 0
cmp dx, 0x5f
ja 0x46590f
cmp ecx, 3
jne 0x46590f
push eax
push dword [0x4c3448]
call fcn.00473694
add esp, 8
cmp eax, 0xffffffff
je 0x465a64
mov word [esp + 0x22], ax
push 1
lea eax, [esp + 0x26]
push eax
push dword [0x4c2d68]
call fcn.00455ed0
add esp, 0xc
jmp 0x465999
cmp dword [esp + 0x89c], 0
js 0x46593b
cmp ax, 0x7f
seta cl
or cl, bl
jne 0x465974
mov word [esp + 0x24], 0x1b
push eax
call fcn.00473586
add esp, 4
mov word [esp + 0x26], ax
jmp 0x465980
mov ecx, dword [0x4c343c]
mov eax, dword [0x4c2d68]
test ecx, ecx
je 0x4659a4
cmp byte [eax + 0xd5], 0
je 0x4659ae
mov word [esp + 0x22], cx
push 1
lea ecx, [esp + 0x26]
push ecx
push eax
call fcn.00455ed0
add esp, 0xc
mov dword [0x4c343c], 0
jmp 0x465992
mov word [esp + 0x24], 0x1b
mov word [esp + 0x26], ax
push dword [esp]
push ebp
push dword [0x4c2d68]
call fcn.00455ed0
add esp, 0xc
xor ecx, ecx
call fcn.004667e9
inc esi
cmp edi, esi
jne 0x46588e
jmp 0x465a13
push 1
lea ecx, [esp + 0x24]
push ecx
push eax
jmp 0x46598a
mov edx, dword [eax + 0x1064]
cmp dword [edx + 0xc], 0xfde9
je 0x465953
cmp byte [0x4c2230], 0
jne 0x465953
mov byte [esp + 0x24], cl
push 1
lea ecx, [esp + 0x28]
push ecx
push 0xffffffffffffffff
push eax
call fcn.00455f7f
add esp, 0x10
jmp 0x465968
cmp byte [esp + 0xc], 0
je 0x465a1e
cmp word [0x4c3440], 0
mov ecx, dword [esp + 0x898]
je 0x465a2e
mov eax, dword [0x4c2d68]
cmp byte [eax + 0xd5], 0
je 0x465a8b
mov word [0x4c3440], 0xa
jmp 0x465a2e
mov word [0x4c3440], 0
jmp 0x465a6c
mov word [0x4c3440], 0
mov ecx, dword [esp + 0x898]
cmp dword [esp], 0x12
jne 0x465a4f
push 0x5a
push dword [0x4c2228]
call fcn.0040315d
mov ecx, dword [esp + 0x8a0]
add esp, 8
test al, al
je 0x465a6c
push dword [esp + 0x89c]
push ecx
push esi
push dword [esp + 0x89c]
jmp 0x464778
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
xor ebx, ebx
mov ecx, dword [esp + 0x878]
xor ecx, esp
call fcn.00475526
mov eax, ebx
add esp, 0x87c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov eax, dword [eax + 0x1064]
cmp dword [eax + 0xc], 0xfde9
je 0x465a08
cmp byte [0x4c2230], 0
je 0x465a2e
jmp 0x465a08
lea eax, [esp + 0x34]
sub ebp, eax
mov eax, ebp
jmp 0x465372
mov byte [ebp], 0xd
jmp 0x465462
mov edx, 2
jmp case.0x46555e.112
mov edx, 3
jmp case.0x46555e.112
mov edx, 4
jmp case.0x46555e.112
mov edx, 7
jmp case.0x46555e.112
mov edx, 8
jmp case.0x46555e.112
mov edx, 0xa
jmp case.0x46555e.112
mov edx, 0xe
jmp case.0x46555e.112
mov edx, 0xf
jmp case.0x46555e.112
mov edx, 0x12
jmp case.0x46555e.112
mov edx, 0x13
jmp case.0x46555e.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.00455ae9
add esp, 0x14
add eax, ebp
lea ecx, [esp + 0x34]
sub eax, ecx
jmp 0x465372