Function at 0x45d2a7
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.00455728
add esp, 8
mov esi, eax
push dword [0x48e058]
push str._s_Command_Line_Error
call fcn.004555e0
add esp, 8
mov edi, eax
push 0x10
push eax
push esi
push dword [0x4b8668]
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
call fcn.00410de6
add esp, 4
push edi
call fcn.00410de6
add esp, 4
push 1
call fcn.00479d8b
push ebp
push ebx
push edi
push esi
sub esp, 0x884
mov eax, dword [0x4b6074]
mov ecx, dword [esp + 0x89c]
mov edx, dword [esp + 0x8a4]
mov ebx, dword [esp + 0x8a0]
mov ebp, dword [esp + 0x898]
xor eax, esp
cmp ecx, 0x1ff
mov dword [esp + 0x880], eax
jg 0x45ce86
cmp ecx, 0xff
jle 0x45ceeb
lea eax, [ecx - 0x100]
cmp eax, 0x17
ja case.0x45cf22.515
jmp dword [eax*4 + 0x497790]
push edx
push 3
call fcn.0046969d
add esp, 8
mov eax, ebx
or eax, 2
cmp eax, 0xe7
jne 0x45d071
cmp dword [esp + 0x89c], 0x100
jne 0x45d2f6
mov ecx, dword [esp + 0x8a4]
lea eax, [esp + 0x80]
mov dword [eax], ebp
mov dword [eax + 4], 0x100
mov dword [eax + 8], ebx
and ecx, 0xdfff
mov dword [eax + 0xc], ecx
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
jmp 0x45ff15
cmp ecx, 0x231
jle 0x45cf13
cmp ecx, 0x30e
jg 0x45cfad
mov esi, edx
cmp ecx, 0x232
je 0x45d1c9
cmp ecx, 0x286
je 0x45d183
cmp ecx, 0x307
mov edx, esi
jne case.0x45cf22.515
cmp byte [0x4b8610], 0
jne 0x45cedf
push 2
push dword [0x4b8660]
call fcn.00450ca3
add esp, 8
mov byte [0x4b8610], 0
jmp 0x45ff15
lea eax, [ecx - 1]
cmp eax, 0x14
ja case.default.0x45cef7
jmp dword [eax*4 + 0x49773c]
xor ecx, ecx
inc ecx
call fcn.004644f1
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x45ff15
lea eax, [ecx - 0x200]
cmp eax, 8
ja case.default.0x45cf22
jmp dword [eax*4 + 0x4977f0]
cmp dword [0x4b861c], ebx
jne 0x45cf45
cmp dword [0x4b8620], edx
jne 0x45cf45
cmp dword [0x4b8614], 0x200
je 0x45cf67
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.004644f1
mov edx, esi
mov dword [0x4b861c], ebx
mov dword [0x4b8620], esi
mov dword [0x4b8614], 0x200
mov edi, edx
push edx
push 5
call fcn.0046969d
add esp, 8
mov eax, ebx
xor ebx, ebx
test al, 0x13
je 0x45ff17
mov esi, eax
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, ebp
jne 0x45ff17
mov eax, esi
test al, 1
jne 0x45e830
xor ecx, ecx
test al, 0x10
sete cl
or ecx, 2
mov dword [esp + 4], ecx
jmp 0x45e837
lea eax, [ecx - 0x8002]
cmp eax, 4
ja case.default.0x45cfbc
jmp dword [eax*4 + 0x497814]
test ebx, ebx
setne byte [0x4b8610]
jmp case.0x45cef7.1
cmp ecx, 0x214
je 0x45d9ea
cmp ecx, 0x231
jne case.0x45cf22.515
push 1
mov esi, edx
call fcn.0041eb41
mov edx, esi
add esp, 4
mov byte [0x4b8630], 1
mov byte [0x4b8611], 0
jmp case.0x45cef7.1
cmp ecx, 0x51
je 0x45db06
cmp ecx, 0xa0
jne case.0x45cf22.515
cmp dword [0x4b8624], ebx
jne 0x45d03b
cmp dword [0x4b8628], edx
jne 0x45d03b
cmp dword [0x4b8614], 0xa0
je 0x45d05d
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.004644f1
mov edx, esi
mov dword [0x4b8624], ebx
mov dword [0x4b8628], esi
mov dword [0x4b8614], 0xa0
push edx
push 5
mov esi, edx
call fcn.0046969d
mov edx, esi
add esp, 8
jmp case.0x45cef7.1
push 0x43
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push 0x45
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov bh, al
push 0x5e
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov bl, al
push 0x50
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov byte [esp + 0x14], al
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
lea esi, [esp + 0x80]
mov dword [esp + 8], eax
push esi
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
mov dword [esp], edi
je 0x45db4d
cmp dword [esp + 0x8a0], 0x12
mov eax, dword [esp + 0x8a4]
jne 0x45d106
and eax, 0x1000000
je 0x45d106
mov al, byte [esp + 0x92]
mov byte [esp + 0x125], al
cmp edi, 3
jne 0x45dc43
mov ebp, dword [esp + 0x8a0]
cmp ebp, 0x90
je 0x45dc90
jmp 0x45e658
mov eax, ebx
and eax, 0xfffffff0
cmp eax, 0x14f
jg 0x45d889
cmp eax, 0x4f
jg 0x45dd30
cmp eax, 0x2f
jg 0x45e265
cmp eax, 0x10
je 0x45e86e
cmp eax, 0x20
je 0x45e2b0
jmp 0x45ea4c
mov eax, ebx
mov word [esp + 0x3c], bx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45d932
mov word [0x4b8632], bx
jmp 0x45ff15
test ebx, 0xff00
je 0x45dcc1
mov byte [esp + 0x81], bl
mov byte [esp + 0x80], bh
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45ff15
lea ecx, [esp + 0x80]
push 1
push 2
push ecx
jmp 0x45dcf0
push 0
call fcn.0041eb41
add esp, 4
cmp byte [0x4b8611], 1
mov edx, esi
mov byte [0x4b8630], 0
jne case.0x45cef7.1
push 0x62
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push 0x75
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov ebp, ebx
mov ebx, eax
push 0x76
push dword [0x4b8678]
call fcn.00403083
add esp, 8
push edi
push ebx
mov ebx, ebp
mov ebp, dword [esp + 0x8a0]
push eax
push dword [0x4b8660]
call fcn.0044ad13
add esp, 0x10
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x45db34
cmp ecx, 0x30f
je 0x45dc04
cmp ecx, 0x311
jne case.0x45cf22.515
cmp ebx, ebp
je case.0x45cef7.1
mov eax, dword [0x4b7cac]
test eax, eax
je case.0x45cef7.1
mov esi, edx
call fcn.00462aee
mov edx, esi
test eax, eax
je case.0x45cef7.1
mov edi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x45d29b
push edi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, edi
call fcn.00463a25
jmp 0x45db34
test bl, 8
jne 0x45d2c8
push 0x8e
push dword [0x4b8678]
call fcn.00403083
add esp, 8
cmp eax, 2
jne 0x45df9f
xor ecx, ecx
inc ecx
call fcn.004644f1
lea edi, [esp + 0x80]
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 [0x4b7c98]
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov edx, dword [esp + 0x8a4]
jmp case.0x45cef7.1
and ebx, 0xfffffffd
mov dword [esp + 4], 3
jmp 0x45d32a
or ebx, 0x10
mov dword [esp + 4], 2
jmp 0x45dfaa
and ebx, 0xffffffef
mov dword [esp + 4], 2
mov edi, ebx
jmp 0x45d34b
or ebx, 1
xor eax, eax
inc eax
mov edi, ebx
mov dword [esp + 4], eax
jmp 0x45dfac
and ebx, 0xfffffffe
xor eax, eax
inc eax
mov edi, ebx
mov dword [esp + 4], eax
mov dword [esp], 0
jmp 0x45dfb1
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.004644f1
push 0
push dword [0x4b8660]
call fcn.00450db8
add esp, 8
call dword [sym.imp.USER32.dll_DestroyCaret]
xor eax, eax
dec eax
mov dword [0x4b6068], eax
mov dword [0x4b6064], eax
jmp 0x45d62b
push ebp
call dword [sym.imp.USER32.dll_HideCaret]
lea eax, [esp + 0x80]
push eax
push ebp
call dword [sym.imp.USER32.dll_BeginPaint]
mov esi, eax
mov eax, dword [0x4b7cac]
test eax, eax
je 0x45d3bb
push 1
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push esi
call dword [sym.imp.GDI32.dll_RealizePalette]
cmp dword [0x4b7ce8], 0
je 0x45d3db
push 0xaec
push str..._windows_window.c
push str._wintw_hdc
call fcn.0047b26f
add esp, 0xc
mov eax, dword [0x4b8660]
mov ebx, dword [0x4b7c7c]
mov dword [0x4b7ce8], esi
xor ecx, ecx
mov ebp, dword [0x4b7c70]
mov dword [esp], esi
cmp byte [eax + 0x106d], 0
mov dword [esp + 4], eax
mov eax, ebx
not eax
sete cl
add eax, dword [esp + 0x94]
cdq
idiv ebp
mov edi, dword [0x4b7c80]
mov esi, dword [0x4b7c6c]
mov dword [esp + 8], eax
mov eax, edi
not eax
add eax, dword [esp + 0x90]
cdq
idiv esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
sub eax, ebx
mov ebx, dword [esp + 0x88]
cdq
idiv ebp
mov ebp, eax
sub ebx, edi
mov eax, ebx
cdq
idiv esi
push ecx
push dword [esp + 0xc]
push dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x10]
push eax
push dword [esp + 0x18]
call fcn.0044b9db
add esp, 0x18
xor ebx, ebx
cmp dword [esp + 0x84], ebx
mov dword [0x4b7ce8], ebx
jne 0x45d4d4
mov ecx, dword [0x4b7c80]
cmp dword [esp + 0x88], ecx
jl 0x45d4d4
mov eax, dword [0x4b7c7c]
cmp dword [esp + 0x8c], eax
jl 0x45d4d4
mov edx, dword [0x4b8660]
mov esi, dword [edx + 0x12c]
imul esi, dword [0x4b7c6c]
add esi, ecx
cmp dword [esp + 0x90], esi
jge 0x45d4d4
mov ecx, dword [edx + 0x128]
imul ecx, dword [0x4b7c70]
add ecx, eax
cmp dword [esp + 0x94], ecx
jl 0x45d5a8
push dword [0x4b8208]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 4], eax
push eax
push ebp
call esi
mov edi, eax
push dword [0x4b8208]
push ebx
push ebx
call dword [sym.imp.GDI32.dll_CreatePen]
mov ebx, eax
push eax
push ebp
call esi
mov dword [esp + 8], eax
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x94]
push ebp
call dword [sym.imp.GDI32.dll_IntersectClipRect]
mov ecx, dword [0x4b8660]
mov eax, dword [0x4b7c7c]
mov esi, dword [0x4b7c80]
mov edx, dword [ecx + 0x128]
mov ecx, dword [ecx + 0x12c]
imul edx, dword [0x4b7c70]
imul ecx, dword [0x4b7c6c]
add edx, eax
add ecx, esi
push edx
push ecx
push eax
push esi
push ebp
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x94]
push ebp
call dword [sym.imp.GDI32.dll_Rectangle]
push edi
push ebp
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
call esi
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esp + 4]
call edi
push dword [esp + 8]
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 + 0x80]
push eax
mov eax, dword [esp + 0x89c]
mov esi, eax
push eax
call dword [sym.imp.USER32.dll_EndPaint]
push esi
call dword [sym.imp.USER32.dll_ShowCaret]
jmp 0x45ff15
push 1
push dword [0x4b8660]
mov esi, edx
call fcn.00450db8
add esp, 8
push dword [0x4b7c70]
push dword [0x4b7c6c]
push dword [0x4b7c84]
push ebp
call dword [sym.imp.USER32.dll_CreateCaret]
push ebp
call dword [sym.imp.USER32.dll_ShowCaret]
xor ecx, ecx
call fcn.00463b2a
mov dword [0x4b862c], 0
push dword [0x4b8660]
call fcn.00448b58
mov edx, esi
add esp, 4
jmp case.0x45cef7.1
push 0x71
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
cmp ebx, 1
jne 0x45dd04
mov esi, ebx
push 0x74
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov ecx, 0x4b85c8
mov edx, 0x4b85cc
test al, al
cmovne edx, ecx
push dword [edx]
push ebp
call dword [sym.imp.USER32.dll_SetWindowTextA]
xor ecx, ecx
xor eax, eax
jmp 0x45e537
mov esi, edx
jmp 0x45db2f
xor ecx, ecx
inc ecx
call fcn.004644f1
push dword [0x48e058]
push str._s_Exit_Confirmation
call fcn.004555e0
add esp, 8
cmp byte [0x4b7cc0], 0
mov esi, eax
jne 0x45d6e7
push 5
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
je 0x45d6e7
push 0x31
push esi
push str.Are_you_sure_you_want_to_close_this_session_
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
jne 0x45dbcc
push ebp
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x45dbcc
push 0x8a
push dword [0x4b8678]
mov esi, edx
call fcn.00402fe3
mov edx, esi
add esp, 8
test al, al
je case.0x45cef7.1
call fcn.00464403
call fcn.004609b0
push dword [0x4b8660]
call fcn.0044b966
jmp 0x45d636
bt edx, 0xb
jae case.0x45cef7.1
cmp dword [0x4b8674], 2
jb case.0x45cef7.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 0x45d80f
mov edi, eax
push 1
push eax
call fcn.00410d70
add esp, 8
mov ebx, eax
push edi
push eax
push 0x800
mov dword [esp + 0x10], esi
push esi
call sub.IMM32.dll_ImmGetCompositionStringW
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
cmp dword [0x4b7cc8], 0
je 0x45d7fb
xor esi, esi
movzx ecx, word [ebx + esi]
lea eax, [ebx + esi]
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x45d7e0
lea ebp, [esi + 2]
cmp ebp, edi
jge 0x45d7e0
movzx ecx, word [eax + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x45d7e0
push 1
push 2
push eax
push dword [0x4b7cc8]
call fcn.0040ef69
add esp, 0x10
mov esi, ebp
jmp 0x45d7f4
xor ecx, ecx
inc ecx
push ecx
push ecx
push eax
push dword [0x4b7cc8]
call fcn.0040ef69
add esp, 0x10
add esi, 2
cmp esi, edi
jl 0x45d79b
push ebx
call fcn.0047d67b
add esp, 4
mov ebp, dword [esp + 0x898]
mov esi, dword [esp + 4]
push esi
push ebp
call sub.IMM32.dll_ImmReleaseContext
jmp 0x45dc3b
mov eax, ebx
xor ebx, ebx
cmp eax, 0x4d2
jne 0x45ff17
push 0x4d2
push ebp
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esp + 0x80]
push eax
push dword [0x4b7cb4]
call fcn.00453fdd
add esp, 8
test al, al
je 0x45ff17
push dword [esp + 0x80]
call fcn.00460b13
add esp, 4
jmp 0x45ff17
push ebp
mov esi, edx
call sub.IMM32.dll_ImmGetContext
mov edi, eax
push 0x4b85d0
push eax
call sub.IMM32.dll_ImmSetCompositionFontA
push edi
push ebp
call sub.IMM32.dll_ImmReleaseContext
jmp 0x45db34
cmp eax, 0x18f
jg 0x45dd5d
cmp eax, 0x16f
jg 0x45e382
cmp eax, 0x150
je 0x45e87b
cmp eax, 0x160
je 0x45e2b0
jmp 0x45ea4c
movzx eax, bx
cmp eax, 7
ja case.0x45cef7.1
mov edi, edx
jmp dword [eax*4 + 0x497a40]
lea eax, [esp + 0x80]
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 0x45edbf
mov eax, dword [esp + 0x98]
jmp 0x45edcb
cmp dword [0x4b7c9c], ebx
jne case.0x45cef7.1
mov esi, 0x4b7ca0
push 0
push esi
call fcn.0041e611
add esp, 8
push 1
push esi
call fcn.0041e611
add esp, 8
call fcn.00460715
jmp 0x45ff15
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x45dd92
movzx eax, word [0x4b8632]
mov ecx, eax
and ecx, 0xfc00
movzx ecx, cx
cmp ecx, 0xd800
jne 0x45dd92
lea esi, [esp + 0x80]
mov word [esi], ax
mov word [esi + 2], bx
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
mov eax, 2
push 1
push eax
push esi
jmp 0x45ddbc
cmp dword [esp + 0x89c], 0x20a
je 0x45d9ac
mov eax, dword [esp + 0x89c]
cmp dword [0x4b6060], eax
jne case.0x45cef7.1
cmp dword [esp + 0x89c], 0x20a
mov edi, edx
jne 0x45e406
mov esi, ebx
mov eax, ebx
and ebx, 8
sar esi, 0x10
shr al, 2
shr ebx, 3
add esi, dword [0x4b8634]
and al, 1
mov dword [esp + 0x10], ebx
mov dword [esp + 8], eax
mov dword [0x4b8634], esi
jmp 0x45ec00
mov dword [esp], edx
push 0x71
push dword [0x4b8678]
call fcn.00403083
add esp, 8
cmp eax, 3
je 0x45ddcf
test eax, eax
je 0x45de92
push 0x82
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edx, dword [0x4b8660]
mov esi, eax
mov ecx, eax
mov eax, dword [esp + 0x8a4]
sub esi, dword [0x4b7c80]
sub ecx, dword [0x4b7c7c]
mov edi, dword [edx + 0x12c]
mov ebp, dword [eax + 8]
mov ebx, eax
mov dword [esp + 0x20], edx
add esi, esi
add ecx, ecx
add esi, dword [0x4b7c74]
add ecx, dword [0x4b7c78]
mov eax, edi
mov dword [esp + 0x18], edi
mov dword [esp + 4], ebp
shr eax, 0x1f
add eax, edi
mov edi, dword [ebx]
sub ebp, esi
mov dword [esp + 0xc], ecx
mov ebx, ebp
sar eax, 1
sub ebx, edi
mov dword [esp + 0x1c], edi
mov edi, dword [edx + 0x128]
add ebx, eax
mov eax, dword [esp + 0x8a4]
mov edx, edi
mov eax, dword [eax + 0xc]
shr edx, 0x1f
add edx, edi
sar edx, 1
mov dword [esp + 0x14], eax
sub eax, ecx
mov ecx, dword [esp + 0x8a4]
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 4]
sub eax, ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x8a0]
add eax, edx
cdq
idiv edi
mov dword [esp + 0x10], eax
mov eax, ebx
cdq
idiv dword [esp + 0x18]
add esi, dword [esp + 0x1c]
sub ebx, edx
add esi, ebx
cmp ecx, 7
ja 0x45eb27
mov eax, 0x92
bt eax, ecx
jae 0x45eb27
mov edx, dword [esp + 0x8a4]
sub ebp, ebx
mov eax, ecx
mov ecx, 0x128
mov dword [edx], ebp
add ecx, dword [0x4b8660]
jmp 0x45eb3d
movzx eax, dx
lea edi, [esp + 0x80]
push 0x14
push edi
push 0x1004
push eax
mov esi, edx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push edi
call fcn.0047c1f8
add esp, 4
mov dword [0x4b860c], eax
call fcn.00463a69
mov edx, esi
push edx
push ebx
push dword [esp + 0x8a4]
push ebp
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ebx, eax
jmp 0x45ff17
push 0x100
push 0
push esi
call fcn.00472060
add esp, 0xc
mov ebp, dword [esp + 0x8a0]
jmp 0x45e65f
push edx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
test ebx, ebx
je 0x45df34
test esi, esi
je 0x45df8f
lea ebx, [esi - 2]
cmp word [ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x45db85
sub ebx, esi
mov ebp, ebx
sar ebp, 1
lea eax, [ebp + 1]
push 2
push eax
call fcn.00410d70
add esp, 8
mov edi, eax
push ebx
push esi
push eax
call fcn.00471560
add esp, 0xc
mov word [edi + ebx], 0
push ebp
jmp 0x45df7e
push dword [edx + 0xc]
push dword [edx + 8]
push dword [edx + 4]
mov esi, edx
call dword [edx]
add esp, 0xc
push esi
jmp 0x45df92
push 8
push 1
mov esi, edx
call fcn.00410d70
add esp, 8
mov dword [eax], ebx
mov dword [eax + 4], esi
push eax
push 0x4645e9
call fcn.00401666
add esp, 8
jmp 0x45ff15
mov byte [0x4b8612], 1
jmp case.0x45cef7.1
xor ebx, ebx
cmp dword [0x4b7cac], 0
je 0x45ff17
call fcn.00462aee
test eax, eax
je 0x45ff17
mov esi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x45dc34
push esi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, esi
call fcn.00463a25
xor ebx, ebx
inc ebx
jmp 0x45ff17
mov ebp, dword [esp + 0x8a0]
cmp edi, 1
jg 0x45e658
mov eax, dword [0x4b8660]
mov ebp, dword [esp + 0x8a0]
cmp byte [eax + 0x13d], 0
je 0x45e658
mov ebp, dword [esp + 0x8a0]
cmp ebp, 0x90
jne 0x45e658
mov ebp, dword [esp + 0x8a0]
mov al, bh
xor al, 1
je 0x45e658
cmp byte [esp + 0x90], 0
js 0x45e653
cmp dword [esp + 0x8a4], 0x3fffffff
mov ebp, 0x2b
ja 0x45e658
xor byte [esp + 0x110], 1
jmp 0x45e658
mov byte [esp + 0x80], bl
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45ff15
xor ecx, ecx
lea edx, [esp + 0x80]
inc ecx
push ecx
push ecx
push edx
push dword [0x4b860c]
push eax
call fcn.0040eefc
add esp, 0x14
jmp 0x45ff15
mov eax, ebx
mov ecx, 2
or eax, 2
cmp eax, ecx
jne 0x45dd1f
push dword [0x4b85c8]
push ebp
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ebp, ebx
test ebx, ebx
je 0x45e43f
xor eax, eax
jmp 0x45e4fd
cmp eax, 0x6f
jg 0x45e3a4
cmp eax, 0x50
je 0x45e888
cmp eax, 0x60
jne 0x45ea4c
push dword [0x4b8660]
mov esi, edx
call fcn.0044a969
jmp 0x45d636
cmp eax, 0xf08f
jg 0x45e3c7
cmp eax, 0x190
je 0x45e8dd
cmp eax, 0x1a0
jne 0x45ea4c
push 2
push dword [0x4b8660]
mov esi, edx
call fcn.0044c30d
jmp 0x45d067
and ebx, 0xf800
cmp ebx, 0xd800
je 0x45ff15
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
xor eax, eax
lea ecx, [esp + 0x3c]
inc eax
push eax
push eax
push ecx
push dword [0x4b7cc8]
call fcn.0040ef69
add esp, 0x10
jmp 0x45ff15
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45ddfd
cmp byte [esp + 0x92], 0
js 0x45da0e
cmp byte [esp + 0x125], 0
js 0x45da0e
cmp byte [0x4b8611], 0
jne 0x45de92
push 0x76
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov ecx, dword [0x4b8660]
mov ecx, dword [ecx + 0x128]
cmp eax, ecx
jne 0x45de4e
push 0x75
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov ecx, dword [0x4b8660]
cmp eax, dword [ecx + 0x12c]
je 0x45de92
mov ecx, dword [ecx + 0x128]
push ecx
push 0x76
push dword [0x4b8678]
call fcn.004036b0
add esp, 0xc
mov eax, dword [0x4b8660]
push dword [eax + 0x12c]
push 0x75
push dword [0x4b8678]
call fcn.004036b0
add esp, 0xc
push 1
push 0
push dword [esp + 0x8a0]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov byte [0x4b8611], 1
mov eax, dword [esp]
mov ecx, dword [0x4b7c6c]
mov esi, dword [eax + 8]
mov ebp, dword [eax + 0xc]
sub esi, dword [eax]
sub ebp, dword [eax + 4]
mov eax, ecx
shr eax, 0x1f
add eax, ecx
sar eax, 1
sub esi, dword [0x4b7c74]
sub ebp, dword [0x4b7c78]
add eax, esi
cdq
idiv ecx
mov ecx, dword [0x4b7c70]
xor ebx, ebx
inc ebx
mov edi, eax
test eax, eax
cmovle edi, ebx
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 + 0x8a0]
call fcn.0041e788
add esp, 0xc
imul ebx, dword [0x4b7c70]
imul edi, dword [0x4b7c6c]
mov ecx, dword [esp + 0x8a0]
sub ebp, ebx
sub esi, edi
je 0x45ede9
cmp ecx, 7
ja 0x45ede3
mov eax, 0x92
bt eax, ecx
jae 0x45ede3
mov eax, dword [esp]
add dword [eax], esi
jmp 0x45ede9
test esi, esi
je 0x45df8f
push esi
call fcn.0047e5a0
add esp, 4
xor ebp, ebp
inc eax
push ebp
push ebp
push eax
push esi
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
push 2
push eax
call fcn.00410d70
add esp, 8
mov edi, eax
push esi
call fcn.0047e5a0
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 [0x4b8660]
call fcn.0044c358
add esp, 0xc
jmp 0x45df91
xor edi, edi
push edi
call fcn.00410de6
add esp, 4
jmp 0x45ff15
or ebx, 2
mov dword [esp + 4], 3
mov edi, ebx
mov al, 1
mov dword [esp], eax
xor ebp, ebp
inc ebp
mov ecx, ebp
call fcn.004644f1
lea esi, [esp + 0x3c]
push esi
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0
push dword [esi + 4]
push dword [esi]
call fcn.0045bf9c
mov bl, 1
test eax, eax
je 0x45e003
lea esi, [esp + 0x80]
mov dword [esi], 0x28
push esi
push eax
call fcn.0045bff5
mov eax, dword [esi + 4]
cmp eax, dword [esp + 0x3c]
jne 0x45e003
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x40]
setne bl
call fcn.00463b00
cmp dword [esp + 4], 1
sete cl
test bl, bl
jne 0x45e048
and cl, byte [esp]
je 0x45e048
test al, al
je 0x45e048
mov ecx, dword [esp + 0x40]
movzx eax, word [esp + 0x3c]
shl ecx, 0x10
or ecx, eax
push ecx
push 0xf090
push 0x112
push dword [esp + 0x8a4]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x45ff15
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45e079
cmp byte [esp + 0x92], 0
mov edx, dword [esp + 0x8a4]
mov ebx, edi
js 0x45e08c
mov al, byte [esp + 0x125]
shr al, 7
jmp 0x45e08e
mov edx, dword [esp + 0x8a4]
mov dword [esp + 0xc], 0
mov ebx, edi
jmp 0x45e092
mov al, 1
mov dword [esp + 0xc], eax
mov esi, dword [0x4b7c70]
mov ecx, edx
mov edi, edx
sar ecx, 0x10
lea eax, [ecx + 1]
sub eax, esi
test edx, edx
cmovns eax, ecx
mov ecx, edi
sub eax, dword [0x4b7c7c]
shl ecx, 0x10
cdq
idiv esi
mov esi, dword [0x4b7c6c]
movsx edx, di
mov dword [esp + 8], eax
lea eax, [edx + 1]
sub eax, esi
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4b7c80]
cdq
idiv esi
cmp byte [esp], 0
mov edi, eax
je 0x45e164
call dword [sym.imp.USER32.dll_GetMessageTime]
cmp byte [0x4b7cdd], 0
mov esi, eax
je 0x45e118
test bl, 4
je 0x45e1ba
push 0x94
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
je 0x45e1ba
mov eax, dword [esp + 4]
mov dword [esp + 0x14], edi
mov dword [esp], esi
cmp dword [0x4b7c8c], eax
jne 0x45e200
mov eax, esi
sub eax, dword [0x4b8638]
cmp eax, dword [0x4b7c90]
jge 0x45e200
mov eax, dword [0x4b7c88]
cmp eax, 1
je 0x45ee83
cmp eax, 2
jne 0x45ee8d
mov ebp, 3
jmp 0x45e209
mov esi, dword [esp + 4]
mov eax, ebx
mov dword [esp + 0x10], ebx
and ebx, 4
mov ebp, eax
shr ebx, 2
and ebp, 8
shr ebp, 3
mov ecx, esi
call fcn.0046458d
movzx ecx, byte [esp + 0xc]
push ecx
push ebp
push ebx
push dword [esp + 0x14]
push edi
push 5
push eax
push esi
push dword [0x4b8660]
call fcn.0044c602
add esp, 0x24
xor ebx, ebx
test byte [esp + 0x10], 0x13
jne 0x45ff17
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x45ff17
mov ebp, dword [esp + 4]
mov esi, edi
mov edi, ebx
and ebx, 4
mov dword [0x4b7c8c], 0
and edi, 8
shr ebx, 2
shr edi, 3
mov ecx, ebp
call fcn.0046458d
movzx ecx, byte [esp + 0xc]
push ecx
push edi
push ebx
push dword [esp + 0x14]
push esi
push 1
push eax
push ebp
push dword [0x4b8660]
call fcn.0044c602
add esp, 0x24
jmp 0x45e252
mov eax, dword [esp + 4]
mov dword [0x4b7c8c], eax
mov dword [0x4b7c88], ebp
mov esi, dword [esp + 4]
mov edi, ebx
and ebx, 4
and edi, 8
shr ebx, 2
shr edi, 3
mov ecx, esi
call fcn.0046458d
movzx ecx, byte [esp + 0xc]
push ecx
push edi
push ebx
push dword [esp + 0x14]
push dword [esp + 0x24]
push ebp
push eax
push esi
push dword [0x4b8660]
call fcn.0044c602
add esp, 0x24
mov esi, dword [esp]
mov dword [0x4b8638], esi
mov eax, dword [esp + 0x898]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
jmp 0x45ff15
cmp eax, 0x30
je 0x45e2b0
cmp eax, 0x40
jne 0x45ea4c
cmp dword [0x4b7cc4], 0
jne case.0x45cef7.1
mov eax, dword [0x4b6048]
push str.______Session_restarted______
push 0x4b6048
mov esi, edx
call dword [eax]
add esp, 8
push 0
push dword [0x4b8660]
call fcn.00449a26
add esp, 8
call fcn.00460796
jmp 0x45db34
cmp byte [0x4b8684], 0
mov eax, 0x4ac4e7
mov ebp, 0x4a67fe
cmove ebp, eax
cmp ebx, 0x160
je 0x45e8f6
cmp ebx, 0x30
jne 0x45e935
call fcn.0045587e
mov ebx, eax
lea eax, [eax + 0xc]
push dword [0x4b8678]
push eax
call fcn.00403aa2
add esp, 8
mov edx, dword [ebx + 8]
xor edi, edi
mov eax, 0xc
lea ecx, [esp + 0x80]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov dword [ecx + 8], 1
mov eax, 4
push edi
mov dword [esp + 8], edx
push edx
push edi
push eax
push ecx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov esi, eax
inc eax
cmp eax, 2
jb 0x45e358
push dword [esp + 4]
push edi
push edi
push 2
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
je 0x45e358
mov edi, eax
push dword [esp + 4]
push dword [ebx]
push eax
call fcn.00471560
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push ebx
call fcn.004558de
add esp, 4
push dword [esp + 4]
push esi
push ebp
push str.putty__s_p:_u
call fcn.004555e0
add esp, 0x10
xor ebp, ebp
mov dword [esp + 4], esi
mov esi, eax
inc ebp
jmp 0x45e961
cmp eax, 0x170
je 0x45e9f3
cmp eax, 0x180
jne 0x45ea4c
mov esi, edx
call fcn.00464541
jmp 0x45db34
cmp eax, 0x70
je 0x45ea11
cmp eax, 0x140
jne 0x45ea4c
push 0
push ebp
mov esi, edx
call fcn.00465b15
jmp 0x45d067
cmp eax, 0xf090
je 0x45ea3d
cmp eax, 0xf100
jne 0x45ea4c
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.004644f1
mov edx, esi
test esi, esi
jne case.0x45cef7.1
push 0
push 0x20
push 0x102
push ebp
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x45db34
add dword [0x4b8634], ebx
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45ebec
mov cl, byte [esp + 0x90]
mov al, byte [esp + 0x91]
shr cl, 7
shr al, 7
mov dword [esp + 8], ecx
jmp 0x45ebf6
mov byte [0x4b8613], 0
push 0xfffffffffffffff0
push dword [0x4b8668]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov ebx, eax
push 0x71
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov ecx, ebx
mov esi, ebx
and ecx, 0xff3bffff
or esi, 0xc40000
or ecx, 0xc00000
cmp eax, 1
cmove esi, ecx
push 0x6f
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov ecx, esi
and esi, 0xffdfffff
or ecx, 0x200000
test al, al
cmovne esi, ecx
cmp esi, ebx
je 0x45e4cd
push esi
push 0xfffffffffffffff0
push dword [0x4b8668]
call dword [sym.imp.USER32.dll_SetWindowLongA]
xor eax, eax
push 0x27
push eax
push eax
push eax
push eax
push eax
push dword [0x4b8668]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ebx, dword [sym.imp.USER32.dll_CheckMenuItem]
mov esi, 0xfffffff8
push 0
push 0x180
push dword [esi + 0x4b7c9c]
call ebx
add esi, 4
jne 0x45e4d8
xor ebx, ebx
cmp byte [0x4b8613], 0
mov al, 1
jne 0x45ff17
mov esi, ebp
cmp ebp, 2
jne 0x45e535
cmp byte [0x4b8612], 1
mov cl, 1
jne 0x45e537
xor ebx, ebx
mov ebp, eax
mov byte [0x4b8612], bl
mov byte [0x4b8613], bl
call fcn.004645ff
cmp byte [0x4b8613], bl
mov cl, 1
mov eax, ebp
je 0x45e537
jmp 0x45ff17
xor ecx, ecx
cmp edi, 1
mov byte [0x4b8613], 1
jne 0x45e54b
xor ecx, ecx
dec ecx
jmp 0x45f248
mov ebp, eax
push 0x82
push dword [0x4b8678]
mov ebx, ecx
call fcn.00403083
add esp, 8
mov ecx, dword [esp + 0x8a4]
movzx edx, cx
shr ecx, 0x10
test bl, bl
je 0x45e580
cmp byte [0x4b8631], 0
je 0x45eb7f
mov ebx, ebp
test bl, bl
je 0x45e5f7
cmp byte [0x4b8631], 1
jne 0x45e5f7
cmp edi, 2
mov byte [0x4b8631], 0
je 0x45f246
test edi, edi
jne 0x45e5ed
add eax, eax
sub edx, eax
mov ebx, eax
mov eax, edx
cdq
idiv dword [0x4b7c6c]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
cmovle edi, esi
sub ecx, ebx
mov eax, ecx
cdq
idiv dword [0x4b7c70]
test eax, eax
cmovg esi, eax
push 0x62
push dword [0x4b8678]
call fcn.00403083
add esp, 8
push eax
push edi
push esi
push dword [0x4b8660]
call fcn.0044ad13
add esp, 0x10
mov ecx, 2
jmp 0x45f248
cmp esi, 1
je 0x45f24d
test edi, edi
mov dword [esp], ecx
je 0x45f278
cmp edi, 3
jne 0x45f246
mov esi, eax
mov edi, edx
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45f274
cmp byte [esp + 0x92], 0
js 0x45f246
cmp byte [esp + 0x125], 0
mov eax, esi
mov edx, edi
jns 0x45f278
jmp 0x45f246
mov ebp, 0x90
push esi
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov edx, dword [esp + 0x8a4]
mov edi, edx
and edi, 0xc0000000
cmp edi, 0x40000000
jne 0x45e689
mov eax, dword [0x4b8660]
mov al, byte [eax + 0x13f]
test al, al
jne 0x45ff15
bt edx, 0x1d
mov dword [esp + 0x1c], edi
mov byte [esp + 0x18], bh
jae 0x45e6cd
cmp byte [esp + 0x125], 0
js 0x45e6cd
mov al, byte [esp + 0x91]
test edx, edx
mov cl, 1
setns byte [esp + 4]
mov dword [esp + 0x10], ecx
test al, al
jns 0x45e6e3
test bl, bl
mov esi, ebp
je 0x45ee6e
mov byte [esp + 0x92], 0
jmp 0x45e6e5
mov al, byte [esp + 0x91]
test edx, edx
mov dword [esp + 0x10], 0
setns byte [esp + 4]
mov esi, ebp
movzx edi, byte [esp + 0x90]
shr al, 6
movzx ebx, al
and ebx, 2
shr edi, 7
cmp dword [0x4b862c], 0
jne 0x45e750
mov esi, 0x5d
mov dword [0x4b864c], 0x100
push esi
push dword [0x4b8678]
call fcn.00402fe3
mov edx, dword [esp + 0x8ac]
add esp, 8
cmp ebp, 0x12
sete cl
cmp ebp, esi
mov esi, ebp
je 0x45e74a
mov edx, dword [esp + 0x8a4]
shr edx, 0x18
and al, dl
mov edx, dword [esp + 0x8a4]
and cl, al
je 0x45e750
mov dword [0x4b864c], esi
or edi, ebx
cmp esi, dword [0x4b864c]
mov eax, dword [0x4b862c]
mov ebx, edi
jne 0x45e775
mov edi, dword [esp]
cmp edx, 0x3fffffff
ja 0x45e786
test eax, eax
jne 0x45e786
xor ecx, ecx
inc ecx
jmp 0x45e794
mov edi, dword [esp]
cmp esi, 0x11
je 0x45e7be
xor ecx, ecx
cmp eax, 1
je 0x45e794
jmp 0x45e7be
cmp eax, 1
setne al
xor ecx, ecx
or al, byte [esp + 4]
je 0x45e7af
cmp byte [esp + 0x10], 0
mov al, 1
mov dword [0x4b862c], ecx
mov dword [esp + 0xc], eax
mov eax, ecx
jne 0x45ea83
jmp 0x45e7f2
mov eax, 2
mov dword [0x4b862c], 2
cmp byte [esp + 0x10], 0
je 0x45e7e1
cmp eax, 2
jl 0x45e7e1
mov al, 1
mov dword [0x4b862c], 0
mov dword [esp + 0xc], eax
xor eax, eax
jmp 0x45ea83
cmp byte [esp + 0x10], 0
mov cl, 1
mov dword [esp + 0xc], ecx
jne 0x45ea83
mov ecx, dword [0x4b8660]
cmp byte [ecx + 0x13d], 0
je 0x45ea76
cmp edi, 2
mov dword [esp + 0xc], 0
setne cl
cmp edi, 3
je 0x45ea83
mov ch, byte [esp + 0x18]
xor ch, 1
and cl, ch
je 0x45eaaf
jmp 0x45ea83
xor eax, eax
inc eax
mov dword [esp + 4], eax
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor ebx, ebx
test eax, eax
je 0x45edb1
cmp byte [esp + 0x92], 0
mov edx, edi
js 0x45eea9
mov al, byte [esp + 0x125]
shr al, 7
jmp 0x45eeab
push ebp
mov esi, edx
call fcn.0045b511
jmp 0x45d636
push ebp
mov esi, edx
call fcn.0045b890
jmp 0x45d636
cmp byte [0x4b8618], 0
jne case.0x45cef7.1
mov byte [0x4b8618], 1
push dword [0x4b85c8]
push 0x61
push dword [0x4b8678]
call fcn.004037a5
add esp, 0xc
push dword [0x4b8678]
call fcn.00402fb1
add esp, 4
mov esi, eax
mov eax, dword [0x4b7cc4]
test eax, eax
je 0x45f01b
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
add esp, 4
jmp 0x45f01d
push 1
push 0x497738
push dword [0x4b8660]
mov esi, edx
call fcn.0044c2a2
jmp 0x45ea07
lea eax, [edx - 0x1000]
sar eax, 0x1f
shr eax, 0x1c
lea eax, [edx + eax - 0x1000]
sar eax, 4
lea ecx, [eax + 1]
cmp ecx, dword [0x4b7ca0]
jae 0x45e9e7
mov ecx, dword [0x4b7ca4]
mov dword [esp + 4], 0
push dword [ecx + eax*4 + 4]
push ebp
push str.putty__s__s
jmp 0x45e955
cmp byte [ebp], 0
mov eax, 0x4ac4e7
mov ecx, 0x4abc6f
mov dword [esp + 4], 0
cmove ecx, eax
push ebp
push ecx
push str.putty_s_s
call fcn.004555e0
add esp, 0xc
mov esi, eax
xor ebp, ebp
lea eax, [esp + 0x80]
xor edi, edi
push 0x7ff
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x3c]
lea ebx, [esp + 0x2c]
mov dword [eax], 0x44
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x2c], edi
mov word [eax + 0x32], 0
mov dword [eax + 0x34], edi
push ebx
push eax
push edi
push edi
push 0x20
push ebp
push edi
push edi
push esi
lea eax, [esp + 0xa4]
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 + 4]
test eax, eax
je 0x45e9d0
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.00410de6
add esp, 4
mov ebx, dword [esp + 0x8a0]
mov edx, dword [esp + 0x8a4]
mov ebp, dword [esp + 0x898]
jmp case.0x45cef7.1
push 1
push 0x497738
push dword [0x4b8660]
mov esi, edx
call fcn.0044bc2d
mov edx, esi
add esp, 0xc
jmp case.0x45cef7.1
push 1
push dword [0x4b8660]
mov esi, edx
call fcn.00449a26
mov edx, esi
add esp, 8
mov eax, dword [0x4b7cc8]
test eax, eax
je case.0x45cef7.1
push eax
call fcn.0040e5f0
jmp 0x45d636
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.004644f1
jmp 0x45db34
lea eax, [ebx - 0x1000]
cmp eax, 0x3fff
ja 0x45ee22
push ebx
push 0x160
push 0x112
push ebp
mov esi, edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x45db34
cmp edi, 3
jne 0x45eaaf
mov dword [esp + 0xc], 0
bt edx, 0x18
jb case.0x45ea9e.41
lea edx, [esi - 0x21]
cmp edx, 0xd
ja case.default.0x45ea9e
mov ecx, 0x60
jmp dword [edx*4 + 0x497828]
mov ecx, 0x69
jmp case.0x45ea9e.45
test eax, eax
mov dword [esp + 0xc], 0
setne cl
bt edx, 0x18
jb case.0x45ea9e.41
or byte [esp + 0x14], cl
jne 0x45ea8d
jmp case.0x45ea9e.41
push 0xffffffffffffffff
jmp 0x45ead7
push 1
push 0
jmp 0x45edce
mov eax, dword [0x4b8660]
mov ecx, dword [eax + 0x128]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
xor ecx, ecx
sar edx, 1
neg edx
push edx
push ecx
jmp 0x45eb11
mov eax, dword [0x4b8660]
mov ecx, dword [eax + 0x128]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
push edx
push 0
push eax
jmp 0x45edd4
push 0
jmp 0x45edcc
push 0
push 0xffffffffffffffff
jmp 0x45edce
mov eax, ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x8a4]
add ecx, 0x128
mov dword [edx + 8], esi
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0x14]
xor ebx, ebx
xor edi, esi
mov esi, dword [esp + 0x10]
imul esi, dword [ecx]
mov ecx, dword [esp + 8]
add ecx, dword [esp + 0xc]
add ecx, esi
xor ebp, ecx
or ebp, edi
setne bl
add eax, 0xfffffffd
cmp eax, 2
ja 0x45eb77
mov eax, dword [esp + 0x24]
sub eax, esi
mov dword [edx + 4], eax
jmp 0x45ff17
mov dword [edx + 0xc], ecx
jmp 0x45ff17
test edi, edi
mov byte [0x4b8631], 1
jne 0x45f246
mov eax, edx
xor edx, edx
idiv dword [0x4b7c6c]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
mov eax, ecx
cmovle edi, esi
xor edx, edx
idiv dword [0x4b7c70]
test eax, eax
cmovg esi, eax
cmp byte [0x4b8630], 1
jne 0x45f225
mov byte [0x4b8611], 1
push esi
push 0x76
push dword [0x4b8678]
call fcn.004036b0
add esp, 0xc
push edi
push 0x75
push dword [0x4b8678]
call fcn.004036b0
add esp, 0xc
jmp 0x45f246
mov dword [esp + 8], 0
xor eax, eax
mov esi, dword [0x4b8634]
mov dword [esp + 0x10], eax
mov eax, esi
neg eax
cmovl eax, esi
xor ebx, ebx
cmp eax, 0x78
jl 0x45ff17
mov eax, esi
mov ecx, edi
mov edi, 0xffffff88
xor ebx, ebx
movsx edx, cx
shr eax, 0x1f
sar ecx, 0x10
mov dword [esp + 0x14], edx
mov dword [esp], ecx
test esi, esi
setg dl
test esi, esi
jg 0x45ec3e
test al, 1
je 0x45ff17
test esi, esi
mov eax, pe_nt_image_headers32
mov byte [esp + 4], dl
cmovg eax, edi
add eax, esi
cmp byte [0x4b7cdd], 0
mov dword [0x4b8634], eax
je 0x45ec7a
push 0x94
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
cmp byte [esp + 8], 0
je 0x45eca7
test al, al
je 0x45eca7
mov eax, dword [0x4b8660]
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 ebx
push eax
call fcn.0044bb43
add esp, 0xc
jmp 0x45ed91
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov eax, dword [esp]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x3c]
push eax
push ebp
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x45ed91
mov cl, byte [esp + 4]
xor eax, eax
mov ebp, 8
mov al, cl
sub ebp, eax
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45ed01
cmp byte [esp + 0x92], 0
js 0x45ed0b
mov al, byte [esp + 0x125]
shr al, 7
jmp 0x45ed0d
mov dword [esp + 4], 0
jmp 0x45ed11
mov al, 1
mov dword [esp + 4], eax
mov edx, dword [esp + 0x40]
mov esi, dword [0x4b7c70]
mov ecx, dword [esp + 0x3c]
lea eax, [edx + 1]
sub eax, esi
test edx, edx
cmovns eax, edx
sub eax, dword [0x4b7c7c]
cdq
idiv esi
mov esi, dword [0x4b7c6c]
mov dword [esp + 0xc], eax
lea eax, [ecx + 1]
sub eax, esi
test ecx, ecx
cmovns eax, ecx
mov ecx, ebp
sub eax, dword [0x4b7c80]
cdq
idiv esi
mov esi, eax
call fcn.0046458d
movzx ecx, byte [esp + 4]
movzx edi, byte [esp + 8]
movzx edx, byte [esp + 0x10]
push ecx
push edx
push edi
push dword [esp + 0x18]
push esi
mov ecx, 1
push ecx
push eax
push ebp
push dword [0x4b8660]
call fcn.0044c602
add esp, 0x24
mov ebp, dword [esp + 0x898]
mov edi, 0xffffff88
mov esi, dword [0x4b8634]
mov ecx, esi
mov eax, esi
neg ecx
cmovl ecx, esi
shr eax, 0x1f
cmp ecx, 0x77
jg 0x45ec2d
jmp 0x45ff17
mov dword [esp], 0
mov edx, edi
jmp 0x45eeae
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x98], eax
push eax
push 1
push dword [0x4b8660]
call fcn.0044bb43
add esp, 0xc
mov edx, edi
jmp case.0x45cef7.1
mov eax, dword [esp]
sub dword [eax + 8], esi
test ebp, ebp
je 0x45ee03
add ecx, 0xfffffffd
cmp ecx, 2
ja 0x45edfd
mov eax, dword [esp]
add dword [eax + 4], ebp
jmp 0x45ee03
mov eax, dword [esp]
sub dword [eax + 0xc], ebp
xor ebx, ebx
or ebp, esi
setne bl
jmp 0x45ff17
cmp esi, 0xc
jne case.0x45ea9e.41
mov ecx, 0x65
jmp case.0x45ea9e.45
lea eax, [ebx - 0x400]
cmp eax, 0x400
ja case.0x45cef7.1
shr eax, 4
cmp eax, dword [0x4b7cd0]
jge case.0x45cef7.1
mov ecx, dword [0x4b7cc4]
test ecx, ecx
je case.0x45cef7.1
mov esi, edx
mov edx, dword [0x4b7ccc]
mov edi, dword [ecx]
lea eax, [eax + eax*2]
push dword [edx + eax*4 + 8]
push dword [edx + eax*4 + 4]
push ecx
call dword [edi + 0x18]
jmp 0x45ea07
mov byte [esp + 0x125], 0x80
mov dword [esp + 0x10], 0
jmp 0x45e6e5
mov ebp, 2
jmp 0x45e209
xor ecx, ecx
cmp eax, 3
sete cl
mov dword [0x4b7c88], ecx
jne 0x45e24c
xor ebp, ebp
inc ebp
jmp 0x45e20f
mov al, 1
mov dword [esp], eax
mov eax, esi
mov ebp, dword [0x4b7c70]
mov ecx, edx
mov edi, esi
mov esi, edx
and eax, 8
sar ecx, 0x10
and edi, 4
shr eax, 3
shr edi, 2
mov dword [esp + 8], eax
lea eax, [ecx + 1]
sub eax, ebp
test edx, edx
cmovns eax, ecx
mov ecx, esi
sub eax, dword [0x4b7c7c]
shl ecx, 0x10
cdq
idiv ebp
movsx edx, si
mov esi, dword [0x4b7c6c]
mov dword [esp + 0xc], eax
lea eax, [edx + 1]
sub eax, esi
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4b7c80]
cdq
idiv esi
mov ebp, dword [esp + 4]
mov esi, eax
mov ecx, ebp
call fcn.0046458d
movzx ecx, byte [esp]
mov edx, 4
push ecx
push dword [esp + 0xc]
push edi
push dword [esp + 0x18]
push esi
push edx
push eax
push ebp
push dword [0x4b8660]
call fcn.0044c602
add esp, 0x24
jmp 0x45ff17
mov ecx, 0x67
jmp case.0x45ea9e.45
mov ecx, 0x63
jmp case.0x45ea9e.45
mov ecx, 0x61
jmp case.0x45ea9e.45
mov ecx, 0x64
jmp case.0x45ea9e.45
mov ecx, 0x68
jmp case.0x45ea9e.45
mov ecx, 0x66
jmp case.0x45ea9e.45
mov ecx, 0x62
jmp case.0x45ea9e.45
mov ecx, 0x6e
movzx edx, byte [esp + 0x110]
movzx ebx, bl
mov esi, ecx
and edx, 1
or ebx, edx
cmp byte [esp + 4], 0
mov ebp, esi
je case.0x45faae.14
test eax, eax
jne case.0x45faae.14
mov al, byte [esp + 0x125]
test al, al
js case.0x45faae.14
cmp byte [esp + 0xc], 0
je 0x45efbb
lea esi, [esp + 0x3d]
mov byte [esi - 1], 0x1b
jmp 0x45efbf
lea esi, [esp + 0x3c]
cmp ebx, 1
mov eax, ebx
jne 0x45efd4
cmp ebp, 0x21
jne 0x45efd4
push 0
push 2
jmp 0x45f310
cmp ebx, 3
mov eax, ebx
jne 0x45efe9
cmp ebp, 0x21
jne 0x45efe9
push 0
push 6
jmp 0x45f310
cmp ebx, 3
mov eax, ebx
jne 0x45effe
cmp ebp, 0x22
jne 0x45effe
push 0
push 7
jmp 0x45f310
cmp ebx, 2
mov eax, ebx
jne 0x45f257
cmp ebp, 0x21
jne 0x45f257
xor eax, eax
push eax
push eax
jmp 0x45f310
xor eax, eax
push eax
push ebp
call fcn.0045b3c2
add esp, 8
test al, al
mov byte [0x4b8618], 0
je 0x45f217
push 0x66
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov dword [0x4b8688], eax
push 0x9d
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov dword [0x4b868c], eax
push 0x71
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov ebp, dword [sym.imp.USER32.dll_EnableMenuItem]
xor ebx, ebx
cmp eax, 1
mov edi, 0xfffffff8
mov dword [esp + 4], eax
sete bl
push ebx
push 0x180
push dword [edi + 0x4b7c9c]
call ebp
add edi, 4
jne 0x45f08a
mov ebp, dword [esp + 0x898]
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
cmp dword [esp + 4], 1
jne 0x45f0bf
test eax, eax
je 0x45f0bf
push 9
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4b8678]
push dword [0x4b8690]
call fcn.0040fb10
add esp, 8
push dword [0x4b7cb0]
call fcn.00410de6
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45f107
push dword [0x4b8678]
push eax
call fcn.0040e560
add esp, 8
push dword [0x4b7cc8]
call fcn.0040e5f0
add esp, 4
mov eax, dword [0x4b7cac]
test eax, eax
je 0x45f117
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [0x4b7cb0], eax
mov dword [0x4b7cac], eax
call fcn.0046002f
call fcn.004609b0
push dword [0x4b8678]
push dword [0x4b8660]
call fcn.0044a19f
add esp, 8
mov edx, dword [0x4b8678]
mov ecx, dword [0x4b8660]
call fcn.00460692
mov eax, dword [0x4b7cc4]
test eax, eax
je 0x45f16a
mov ecx, dword [eax]
push dword [0x4b8678]
push eax
call dword [ecx + 8]
add esp, 8
mov ebx, 0x76
push ebx
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403083
add esp, 8
cmp edi, eax
jne 0x45f397
mov ebx, 0x75
push ebx
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403083
add esp, 8
cmp edi, eax
jne 0x45f397
mov ebx, 0x62
push ebx
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403083
add esp, 8
cmp dword [esp + 4], 2
je 0x45f397
cmp edi, eax
jne 0x45f397
mov edi, dword [esp + 4]
cmp edi, 3
jne 0x45f392
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
cmp edi, 1
je 0x45f397
test eax, eax
je 0x45f3dc
jmp 0x45f397
push esi
call fcn.00402ea2
add esp, 4
jmp 0x45d2f6
push 0x62
push dword [0x4b8678]
call fcn.00403083
add esp, 8
push eax
push edi
push esi
push dword [0x4b8660]
call fcn.0044ad13
add esp, 0x10
xor ecx, ecx
call fcn.00463cbe
call fcn.00463a69
jmp 0x45ff15
cmp ebx, 1
mov eax, ebx
jne 0x45f300
cmp ebp, 0x22
jne 0x45f300
push 0
push 3
jmp 0x45f310
mov eax, esi
mov edx, edi
add eax, eax
sub edx, eax
mov ecx, eax
mov eax, edx
cdq
idiv dword [0x4b7c6c]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
mov eax, dword [esp]
cmovle edi, esi
sub eax, ecx
mov cl, 1
cdq
idiv dword [0x4b7c70]
test eax, eax
cmovg esi, eax
cmp byte [0x4b8630], cl
jne 0x45f2da
mov byte [0x4b8611], 1
push esi
push 0x76
push dword [0x4b8678]
call fcn.004036b0
add esp, 0xc
push edi
push 0x75
push dword [0x4b8678]
call fcn.004036b0
add esp, 0xc
jmp 0x45f24d
push 0x62
push dword [0x4b8678]
call fcn.00403083
add esp, 8
push eax
push edi
push esi
push dword [0x4b8660]
call fcn.0044ad13
add esp, 0x10
jmp 0x45f24d
cmp ebx, 2
mov eax, ebx
jne 0x45f320
cmp ebp, 0x22
jne 0x45f320
push 0
push 1
push 0x115
push dword [0x4b8668]
jmp 0x45e03d
cmp ebx, 3
mov eax, ebx
jne 0x45f348
lea eax, [ebp - 0x21]
cmp eax, 1
ja 0x45f348
xor eax, eax
cmp ebp, 0x21
setne al
push eax
push dword [0x4b8660]
call fcn.0044bbd7
jmp 0x45dbf0
cmp ebx, 2
mov eax, ebx
jne 0x45f72b
cmp ebp, 0x2d
jne 0x45f72b
push 0x98
push dword [0x4b8678]
call fcn.00403083
add esp, 8
cmp eax, 2
jne 0x45ff15
push 1
push 0x497738
push dword [0x4b8660]
call fcn.0044c2a2
add esp, 0xc
jmp 0x45ff15
cmp edi, 1
jne 0x45f3dc
push 0x62
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push 0x75
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov ebx, eax
push 0x76
push dword [0x4b8678]
call fcn.00403083
add esp, 8
push edi
push ebx
push eax
push dword [0x4b8660]
call fcn.0044ad13
add esp, 0x10
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push ebp
call edi
mov dword [esp + 0xc], eax
push 0xffffffffffffffec
push ebp
call edi
mov edi, 0x58
mov ebp, eax
push edi
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov ebx, eax
push edi
mov dword [esp + 4], esi
push esi
call fcn.00402fe3
add esp, 8
xor al, bl
mov ebx, ebp
mov dword [esp + 8], ebp
cmp al, 1
jne 0x45f467
push 0x58
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
je 0x45f449
mov ebx, dword [esp + 8]
xor eax, eax
or ebx, 8
push 3
push eax
push eax
push eax
push eax
push 0xffffffffffffffff
jmp 0x45f45a
mov ebx, dword [esp + 8]
xor eax, eax
and ebx, 0xfffffff7
push 3
push eax
push eax
push eax
push eax
push 0xfffffffffffffffe
push dword [esp + 0x8b0]
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x81
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov ecx, ebx
and ebx, 0xfffffdff
or ecx, 0x200
test al, al
cmovne ebx, ecx
call fcn.00463b00
movzx eax, al
add eax, 0x6f
push eax
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov ebp, dword [esp + 0xc]
mov ecx, ebp
mov edi, ebp
or ecx, 0x200000
and edi, 0xffdfffff
test al, al
cmovne edi, ecx
mov ecx, dword [esp + 4]
cmp ecx, 1
je 0x45f4d6
call fcn.00463b00
mov ecx, dword [esp + 4]
test al, al
je 0x45f4de
and edi, 0xfffbffff
jmp 0x45f4e4
or edi, 0x40000
mov eax, edi
or edi, 0x10000
and eax, 0xfffeffff
cmp ecx, 1
cmove edi, eax
cmp ebx, dword [esp + 8]
jne 0x45f50d
cmp edi, ebp
jne 0x45f50d
mov ebp, dword [esp + 0x898]
xor esi, esi
inc esi
jmp 0x45f54e
cmp edi, ebp
mov ebp, dword [esp + 0x898]
je 0x45f522
push edi
push 0xfffffffffffffff0
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
cmp ebx, dword [esp + 8]
je 0x45f532
push ebx
push 0xffffffffffffffec
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
xor eax, eax
push 0x137
push eax
push eax
push eax
push eax
push eax
push ebp
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [esp + 4]
mov esi, 2
cmp ecx, 1
jne 0x45f56c
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x45f56c
push ebp
call fcn.0045a8c0
add esp, 4
mov esi, 2
mov dword [esp + 8], esi
push 0x61
push dword [0x4b8678]
call fcn.004031c8
add esp, 8
mov ecx, dword [0x4b7154]
push eax
push 0x4b7154
call dword [ecx + 0x38]
add esp, 8
push ebp
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x45f5c5
push 0x74
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov ecx, 0x4b85c8
mov edx, 0x4b85cc
test al, al
cmovne edx, ecx
push dword [edx]
push ebp
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edi, 0x77
push edi
push dword [0x4b8678]
call fcn.0040353e
add esp, 8
mov ebx, eax
push edi
push dword [esp + 4]
call fcn.0040353e
add esp, 8
mov edi, eax
push dword [eax]
push dword [ebx]
call fcn.0047e370
add esp, 8
test eax, eax
je 0x45f6f8
mov eax, 0x9e
push eax
mov esi, 0x9e
push dword [esp + 4]
call fcn.004031c8
add esp, 8
mov ebp, eax
push esi
push dword [0x4b8678]
call fcn.004031c8
add esp, 8
push ebp
mov ebp, dword [esp + 0x89c]
push eax
call fcn.0047e370
add esp, 8
test eax, eax
je 0x45f6f8
mov al, byte [ebx + 4]
cmp al, byte [edi + 4]
jne 0x45f6f8
mov eax, dword [ebx + 8]
cmp eax, dword [edi + 8]
jne 0x45f6f8
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi + 0xc]
jne 0x45f6f8
mov ebx, pe_nt_image_headers32
push ebx
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.00403083
add esp, 8
cmp edi, eax
jne 0x45f6f8
mov ebx, 0x9d
push ebx
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.00403083
add esp, 8
cmp edi, eax
jne 0x45f6f8
mov ebx, 0x8c
push ebx
push dword [0x4b8678]
call fcn.00403083
add esp, 8
mov edi, eax
push ebx
push dword [esp + 4]
call fcn.00403083
add esp, 8
mov ecx, dword [esp + 4]
or ecx, 2
cmp ecx, 3
je 0x45f6f8
cmp edi, eax
jne 0x45f6f8
push 0x71
push dword [esp + 4]
call fcn.00403083
add esp, 8
cmp dword [esp + 4], eax
je 0x45f700
mov dword [esp + 8], 2
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 8]
call fcn.00463cbe
push dword [esp]
call fcn.00402ea2
add esp, 4
mov ebx, dword [esp + 0x8a0]
jmp 0x45d2f6
cmp ebx, 1
mov eax, ebx
jne 0x45f75c
cmp ebp, 0x2d
jne 0x45f75c
push 0x98
push dword [0x4b8678]
call fcn.00403083
add esp, 8
cmp eax, 2
je 0x45f785
cmp eax, 1
jne 0x45ff15
push 1
jmp 0x45f787
cmp ebx, 3
mov eax, ebx
jne 0x45f772
cmp ebp, 0x43
jne 0x45f772
push 0x99
jmp 0x45f361
cmp ebx, 3
mov eax, ebx
jne 0x45f797
cmp ebp, 0x56
jne 0x45f797
push 0x99
jmp 0x45f73c
push 2
push dword [0x4b8660]
call fcn.0044c30d
jmp 0x45dbf0
mov ecx, dword [esp + 0xc]
cmp ebp, 0x73
setne al
xor cl, 1
or cl, al
jne 0x45f7db
push 0x53
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
mov ecx, dword [esp + 0x8a4]
test al, al
jne 0x45fef2
mov dword [esp + 0x14], 0
mov dword [esp], 0
jmp 0x45f89a
mov eax, dword [esp + 0xc]
cmp ebp, 0x20
sete cl
mov dword [esp], ecx
and al, cl
cmp al, 1
jne 0x45f82a
push 0x54
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
je 0x45f88d
push 0
push 0xf100
push 0x112
push dword [0x4b8668]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x8a4]
jmp 0x45fef2
mov eax, dword [esp + 0xc]
cmp ebp, 0xd
sete cl
mov dword [esp + 0x14], ecx
and al, cl
cmp al, 1
jne 0x45f8ef
mov al, 1
mov dword [esp + 0x14], eax
push 0x59
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
je 0x45f89a
push 0x71
push dword [0x4b8678]
call fcn.00403083
add esp, 8
cmp eax, 1
je 0x45f89a
cmp dword [esp + 0x1c], 0x40000000
mov ecx, dword [esp + 0x8a4]
je 0x45fef2
call fcn.00464541
jmp 0x45f81e
mov al, 1
mov dword [esp + 0x14], 0
mov dword [esp], eax
test ebx, ebx
mov eax, ebx
sete byte [esp + 0x18]
xor edx, edx
cmp ebx, 2
mov ecx, ebx
jne 0x45f8b7
cmp byte [esp], 0
je 0x45f8b7
mov byte [esi], 0
jmp 0x45f8cb
mov eax, dword [esp]
cmp ebx, 3
mov ecx, ebx
setne cl
xor al, 1
or al, cl
jne 0x45f912
mov byte [esi], 0xa0
inc esi
mov edi, esi
lea eax, [esp + 0x3c]
sub edi, eax
je 0x45ff15
mov ecx, dword [esp + 0x8a4]
cmp edi, 0xffffffff
je 0x45fef2
jmp 0x45f9bd
cmp ebp, 0x13
mov eax, ebx
sete dl
cmp ebx, 2
jne 0x45f93a
cmp ebp, 0x13
jne 0x45f93a
mov eax, dword [0x4b8660]
xor byte [eax + 0x13d], 1
jmp 0x45ff15
cmp ebx, 2
mov ecx, ebx
jne 0x45f964
cmp ebp, 3
jne 0x45f964
mov eax, dword [0x4b7cc4]
test eax, eax
je 0x45ff15
mov ecx, dword [eax]
xor edx, edx
push edx
push edx
push eax
call dword [ecx + 0x18]
jmp 0x45f38a
test ebx, ebx
mov eax, ebx
sete byte [esp + 0x18]
jne 0x45f98e
cmp ebp, 8
jne 0x45f98e
push 0x41
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
mov cl, 0x7f
jne 0x45f9b2
mov cl, 8
jmp 0x45f9b2
mov cl, 0x1a
test dl, dl
jne 0x45f9b2
cmp ebx, 2
mov ecx, ebx
jne 0x45fa16
lea ecx, [ebp - 0x32]
cmp ecx, 6
ja 0x45fa16
mov al, byte [ecx + 0x49cd20]
mov byte [esi], al
jmp 0x45f8cb
cmp ebx, 1
mov ecx, ebx
jne 0x45f9f1
cmp ebp, 8
jne 0x45f9f1
push 0x41
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
mov cl, 8
jne 0x45f9b2
mov cl, 0x7f
mov edi, 0xfffffffe
mov byte [esi], cl
mov byte [esi + 1], 0
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45f9e5
lea ecx, [esp + 0x3c]
push 1
push edi
push ecx
push eax
call fcn.0040e67f
add esp, 0x10
xor ecx, ecx
call fcn.004644f1
jmp 0x45ff15
cmp ebx, 1
mov ecx, ebx
jne 0x45f8a5
cmp ebp, 9
jne 0x45f8a5
mov word [esi], 0x5b1b
mov byte [esi + 2], 0x5a
add esi, 3
jmp 0x45f8cc
mov ecx, 2
mov edx, ebx
cmp ebx, ecx
jne 0x45fa36
mov ecx, ebp
or ecx, 2
cmp ecx, 0xbf
jne 0x45fa36
mov byte [esi], 0x1f
jmp 0x45f8cb
cmp ebx, 2
mov ecx, ebx
jne 0x45fa55
cmp ebp, 0xdf
je 0x45fa4d
cmp ebp, 0xdc
jne 0x45fa55
mov byte [esi], 0x1c
jmp 0x45f8cb
cmp ebx, 3
mov ecx, ebx
jne 0x45fa6c
cmp ebp, 0xde
jne 0x45fa6c
mov byte [esi], 0x1e
jmp 0x45f8cb
mov al, byte [esp + 0x18]
and al, byte [esp + 0x14]
cmp al, 1
jne 0x45fa93
mov eax, dword [0x4b8660]
cmp byte [eax + 0x140], 0
je 0x45fa93
mov word [esi], 0xa0d
add esi, 2
jmp 0x45f8cc
lea eax, [ebp - 0xc]
cmp eax, 0x77
ja case.0x45faae.14
xor edx, edx
xor ecx, ecx
mov edi, 0x41
inc ecx
mov dword [esp], ecx
mov cl, 0x30
jmp dword [eax*4 + 0x497860]
mov edi, 0x47
jmp case.0x45faae.38
bt dword [esp + 0x8a4], 0x18
mov cl, 0xd
jae 0x45f9b2
jmp case.0x45faae.96
mov edx, 4
jmp case.0x45faae.36
mov edx, 5
jmp case.0x45faae.36
xor edx, edx
inc edx
jmp case.0x45faae.36
mov edi, 0x44
jmp case.0x45faae.38
mov edi, 0x43
jmp case.0x45faae.38
mov edi, 0x42
shr ebx, 1
push ebx
push edi
push dword [0x4b8660]
push esi
call fcn.0045085b
add esp, 0x10
jmp 0x460026
mov cl, 0x47
jmp case.0x45faae.96
mov edx, 2
jmp case.0x45faae.36
mov edx, 3
test bl, 2
jne case.0x45faae.14
push edx
push dword [0x4b8660]
push esi
call fcn.004509dd
add esp, 0xc
jmp 0x460026
mov cl, 0x31
jmp case.0x45faae.96
mov cl, 0x32
jmp case.0x45faae.96
mov cl, 0x33
jmp case.0x45faae.96
mov cl, 0x34
jmp case.0x45faae.96
mov cl, 0x35
jmp case.0x45faae.96
mov cl, 0x36
jmp case.0x45faae.96
mov cl, 0x37
jmp case.0x45faae.96
mov cl, 0x38
jmp case.0x45faae.96
mov cl, 0x39
jmp case.0x45faae.96
mov cl, 0x2a
jmp case.0x45faae.96
mov cl, 0x2b
jmp case.0x45faae.96
mov cl, 0x2d
jmp case.0x45faae.96
mov cl, 0x2e
jmp case.0x45faae.96
mov cl, 0x2f
cmp byte [esp + 0xc], 0
je 0x45fb9a
mov eax, ecx
add al, 0xd0
cmp al, 9
ja 0x45fbb8
movzx eax, cl
mov ecx, dword [0x4b863c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2 - 0x30]
mov dword [0x4b863c], eax
jmp case.0x45faae.14
mov eax, ebx
and ebx, 1
movzx ecx, cl
shr eax, 1
push eax
push ebx
push ecx
push dword [0x4b8660]
push esi
call fcn.00450ab2
jmp 0x460023
mov dword [0x4b863c], 0
mov edi, dword [esp + 0x8a4]
shr edi, 0x10
cmp byte [esp + 0x94], 0
je 0x45fc05
push 0xa1
push dword [0x4b8678]
call fcn.00402fe3
add esp, 8
test al, al
lea ecx, [esp + 0x80]
je 0x45fc10
mov ebx, dword [esp + 0xc]
mov byte [esp + 0x94], 0
xor bl, 1
jmp 0x45fc12
xor ebx, ebx
lea ecx, [esp + 0x80]
jmp 0x45fc12
xor ebx, ebx
and edi, 0x81ff
cmp dword [0x4b8674], 2
jne 0x45fc40
mov eax, dword [0x4b8650]
test eax, eax
je 0x45fc40
push dword [esp + 8]
push 0
push 3
push 0x4b8640
push ecx
push edi
push ebp
call eax
mov edi, eax
jmp 0x45fc89
push dword [esp + 8]
push 0
push 0x4b8654
push ecx
push edi
push ebp
call dword [sym.imp.USER32.dll_ToAsciiEx]
test eax, eax
jle 0x45fe98
mov edi, eax
xor eax, eax
mov cl, byte [eax + eax + 0x4b8654]
mov byte [eax + 0x4b865a], cl
inc eax
cmp edi, eax
jne 0x45fc60
xor eax, eax
push 3
push 0x4b8640
push edi
push 0x4b865a
push eax
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test edi, edi
jle 0x45fe98
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
xor esi, esi
inc al
xor cl, 1
xor ebp, ebp
xor bl, 1
movzx eax, al
inc ebp
mov dword [esp], eax
movzx eax, cl
lea eax, [esp + eax*2 + 0x2c]
mov dword [esp + 8], eax
jmp 0x45fd06
mov edx, dword [eax + 0x1060]
cmp dword [edx + 0xc], 0xfde9
je 0x45fdf9
mov dl, byte [0x4b7160]
test dl, dl
jne 0x45fdf9
mov byte [esp + 0x2c], cl
push eax
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45fe20
push ebp
push ebp
lea ecx, [esp + 0x34]
push ecx
push eax
call fcn.0040e67f
jmp 0x45fe1d
movzx ecx, word [esi + esi + 0x4b8640]
mov edx, dword [0x4b862c]
movzx eax, cx
cmp edx, 3
mov word [esp + 0x28], ax
je 0x45fd49
cmp edx, 2
jne 0x45fdab
lea edx, [ecx - 0x20]
movzx edx, dx
cmp edx, 0x5f
ja 0x45fdab
mov dword [0x4b8648], eax
mov dword [0x4b862c], 3
jmp 0x45fe84
lea edx, [ecx - 0x20]
movzx edx, dx
cmp edx, 0x5f
ja 0x45fdab
mov dword [0x4b862c], 0
push eax
push dword [0x4b8648]
call fcn.0046d1b7
add esp, 8
cmp eax, 0xffffffff
je 0x45ff0d
mov word [esp + 0x2a], ax
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45fe84
push ebp
push ebp
lea ecx, [esp + 0x32]
push ecx
push eax
call fcn.0040ef69
add esp, 0x10
jmp 0x45fe84
cmp byte [esp + 4], 0
mov dword [0x4b862c], 0
je 0x45fddd
cmp eax, 0x7f
seta dl
or dl, bl
jne 0x45fe2c
mov word [esp + 0x2c], 0x1b
push eax
call fcn.0046d0a9
add esp, 4
mov word [esp + 0x2e], ax
jmp 0x45fe38
mov ecx, dword [0x4b863c]
mov eax, dword [0x4b8660]
test ecx, ecx
je 0x45fe5b
cmp byte [eax + 0xd5], 0
je 0x45fcb9
mov word [esp + 0x2a], cx
push eax
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45fe20
push ebp
push ebp
lea ecx, [esp + 0x32]
push ecx
push eax
call fcn.0040ef69
add esp, 0x10
mov dword [0x4b863c], 0
jmp 0x45fe7d
mov word [esp + 0x2c], 0x1b
mov word [esp + 0x2e], cx
push dword [0x4b8660]
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45fe7d
push 1
push dword [esp + 4]
push dword [esp + 0x10]
jmp 0x45fe74
push eax
call fcn.004499bf
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45fe7d
push ebp
push ebp
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.0040ef69
add esp, 0x10
xor ecx, ecx
call fcn.004644f1
inc esi
cmp esi, edi
jl 0x45fd06
mov word [0x4b8640], 0
jmp 0x45ff15
cmp byte [esp + 0xc], 0
mov ecx, dword [esp + 0x8a4]
je 0x45fec9
cmp word [0x4b8640], 0
je 0x45fed2
mov eax, dword [0x4b8660]
cmp byte [eax + 0xd5], 0
je 0x45ff34
mov word [0x4b8640], 0xa
jmp 0x45fed2
mov word [0x4b8640], 0
cmp ebp, 0x12
jne 0x45fef2
push 0x55
push dword [0x4b8678]
call fcn.00402fe3
mov ecx, dword [esp + 0x8ac]
add esp, 8
test al, al
je 0x45ff15
push ecx
push dword [esp + 0x8a4]
push dword [esp + 0x8a4]
push dword [esp + 0x8a4]
jmp 0x45db40
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
xor ebx, ebx
mov ecx, dword [esp + 0x880]
xor ecx, esp
call fcn.0046ef41
mov eax, ebx
add esp, 0x884
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov eax, dword [eax + 0x1060]
cmp dword [eax + 0xc], 0xfde9
je 0x45febe
mov al, byte [0x4b7160]
test al, al
je 0x45fed2
jmp 0x45febe
mov dword [esp], 2
jmp case.0x45faae.112
mov dword [esp], 3
jmp case.0x45faae.112
mov dword [esp], 4
jmp case.0x45faae.112
mov dword [esp], 5
jmp case.0x45faae.112
mov dword [esp], 6
jmp case.0x45faae.112
mov dword [esp], 7
jmp case.0x45faae.112
mov dword [esp], 8
jmp case.0x45faae.112
mov dword [esp], 9
jmp case.0x45faae.112
mov dword [esp], 0xa
jmp case.0x45faae.112
mov dword [esp], 0xb
jmp case.0x45faae.112
mov dword [esp], 0xc
jmp case.0x45faae.112
mov dword [esp], 0xd
jmp case.0x45faae.112
mov dword [esp], 0xe
jmp case.0x45faae.112
mov dword [esp], 0xf
jmp case.0x45faae.112
mov dword [esp], 0x10
jmp case.0x45faae.112
mov dword [esp], 0x11
jmp case.0x45faae.112
mov dword [esp], 0x12
jmp case.0x45faae.112
mov dword [esp], 0x13
jmp case.0x45faae.112
mov dword [esp], 0x14
mov ecx, ebx
and ebx, 1
shr ecx, 1
push ecx
push ebx
push dword [esp + 8]
push dword [0x4b8660]
push esi
call fcn.004508b5
add esp, 0x14
mov edi, eax
add edi, esi
jmp 0x45f8ce