Function at 0x45d602
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.00455a13
add esp, 8
mov esi, eax
push dword [0x48e058]
push str._s_Command_Line_Error
call fcn.004558cb
add esp, 8
mov edi, eax
push 0x10
push eax
push esi
push dword [0x4b7668]
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
call fcn.00410bcd
add esp, 4
push edi
call fcn.00410bcd
add esp, 4
push 1
call fcn.00479f0b
push ebp
push ebx
push edi
push esi
sub esp, 0x880
mov eax, dword [0x4b507c]
mov ecx, dword [esp + 0x898]
mov ebp, dword [esp + 0x8a0]
mov ebx, dword [esp + 0x89c]
mov edx, dword [esp + 0x894]
xor eax, esp
cmp ecx, 0x1ff
mov dword [esp + 0x87c], eax
jg 0x45d1fc
cmp ecx, 0xff
jle 0x45d261
lea eax, [ecx - 0x100]
cmp eax, 0x17
ja case.0x45d298.515
jmp dword [eax*4 + 0x49776c]
push ebp
push 3
call fcn.00469816
add esp, 8
mov eax, ebx
or eax, 2
cmp eax, 0xe7
jne 0x45d40d
cmp dword [esp + 0x898], 0x100
jne 0x45f482
mov ecx, dword [esp + 0x894]
lea eax, [esp + 0x7c]
and ebp, 0xdfff
mov dword [eax], ecx
mov dword [eax + 4], 0x100
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebp
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
jmp 0x460128
cmp ecx, 0x231
jle 0x45d289
cmp ecx, 0x30e
jg 0x45d34f
mov esi, edx
cmp ecx, 0x232
je 0x45d528
cmp ecx, 0x286
je 0x45d509
cmp ecx, 0x307
mov edx, esi
jne case.0x45d298.515
cmp byte [0x4b7610], 0
jne 0x45d255
push 2
push dword [0x4b7660]
call fcn.0045108c
add esp, 8
mov byte [0x4b7610], 0
jmp 0x460128
lea eax, [ecx - 1]
cmp eax, 0x14
ja case.default.0x45d26d
jmp dword [eax*4 + 0x497718]
xor ecx, ecx
inc ecx
call fcn.00460ede
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x460128
lea eax, [ecx - 0x200]
cmp eax, 8
ja case.default.0x45d298
jmp dword [eax*4 + 0x4977cc]
cmp dword [0x4b761c], ebx
mov edi, edx
jne 0x45d2bd
cmp dword [0x4b7620], ebp
jne 0x45d2bd
cmp dword [0x4b7614], 0x200
je 0x45d2db
xor ecx, ecx
inc ecx
call fcn.00460ede
mov dword [0x4b761c], ebx
mov dword [0x4b7620], ebp
mov dword [0x4b7614], 0x200
push ebp
push 5
call fcn.00469816
add esp, 8
mov eax, ebx
xor ebx, ebx
test al, 0x13
je 0x46012a
mov esi, eax
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, edi
jne 0x46012a
mov ecx, esi
xor eax, eax
test cl, 0x10
sete al
or eax, 2
xor edx, edx
inc edx
test cl, 1
cmove edx, eax
lea eax, [esp + 0x7c]
mov dword [esp], edx
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor ebx, ebx
test eax, eax
je 0x45efd5
cmp byte [esp + 0x8e], 0
js 0x45f0c6
mov al, byte [esp + 0x121]
mov edi, ebp
shr al, 7
jmp 0x45f0ca
lea eax, [ecx - 0x8002]
cmp eax, 4
ja case.default.0x45d35e
jmp dword [eax*4 + 0x4977f0]
test ebx, ebx
setne byte [0x4b7610]
jmp case.0x45d26d.1
cmp ecx, 0x214
je 0x45dcf9
cmp ecx, 0x231
jne case.0x45d298.515
push 1
mov esi, edx
call fcn.0041e8e8
mov edx, esi
add esp, 4
mov byte [0x4b7630], 1
mov byte [0x4b7611], 0
jmp case.0x45d26d.1
cmp ecx, 0x51
je 0x45ddfa
cmp ecx, 0xa0
jne case.0x45d298.515
cmp dword [0x4b7624], ebx
mov esi, edx
jne 0x45d3df
cmp dword [0x4b7628], ebp
jne 0x45d3df
cmp dword [0x4b7614], 0xa0
je 0x45d3fd
xor ecx, ecx
inc ecx
call fcn.00460ede
mov dword [0x4b7624], ebx
mov dword [0x4b7628], ebp
mov dword [0x4b7614], 0xa0
push ebp
push 5
call fcn.00469816
add esp, 8
jmp 0x45de25
push 0x44
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push 0x46
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov byte [esp + 0xc], al
push 0x5f
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov byte [esp], al
push 0x51
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov byte [esp + 0x18], al
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
lea esi, [esp + 0x7c]
mov dword [esp + 0x10], eax
push esi
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
mov dword [esp + 0x14], edi
je 0x45de3e
cmp ebx, 0x12
jne 0x45d499
mov eax, ebp
and eax, 0x1000000
je 0x45d499
mov al, byte [esp + 0x8e]
mov byte [esp + 0x121], al
cmp edi, 3
jne 0x45df30
cmp ebx, 0x90
jmp 0x45df5c
mov eax, ebx
and eax, 0xfffffff0
cmp eax, 0x14f
jg 0x45dbb4
cmp eax, 0x4f
jg 0x45dfe7
cmp eax, 0x2f
jg 0x45e503
cmp eax, 0x10
je 0x45eb99
cmp eax, 0x20
je 0x45e54e
jmp 0x45ed70
mov eax, ebx
mov word [esp + 0x38], bx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45dc5b
mov word [0x4b7632], bx
jmp 0x460128
test ebx, 0xff00
je 0x45df90
rol bx, 8
lea eax, [esp + 0x7c]
mov word [eax], bx
push 2
push eax
jmp 0x45dfa7
push 0
call fcn.0041e8e8
add esp, 4
cmp byte [0x4b7611], 1
mov edx, esi
mov byte [0x4b7630], 0
jne case.0x45d26d.1
push 0x63
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push 0x76
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov ebx, eax
push 0x77
push dword [0x4b7678]
call fcn.00403081
add esp, 8
push edi
push ebx
mov ebx, dword [esp + 0x8a4]
push eax
push dword [0x4b7660]
call fcn.0044abe4
add esp, 0x10
push 1
push 0
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x45de25
cmp ecx, 0x30f
je 0x45def1
cmp ecx, 0x311
jne case.0x45d298.515
cmp ebx, edx
je case.0x45d26d.1
cmp dword [0x4b6ca8], 0
je case.0x45d26d.1
mov esi, edx
call fcn.00462e1e
mov edx, esi
test eax, eax
je case.0x45d26d.1
mov edi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x45d5f6
push edi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, edi
call fcn.00463d5d
jmp 0x45de25
test bl, 8
jne 0x45d623
push 0x8f
push dword [0x4b7678]
call fcn.00403081
add esp, 8
cmp eax, 2
jne 0x45e246
xor ecx, ecx
inc ecx
call fcn.00460ede
lea edi, [esp + 0x7c]
push edi
call dword [sym.imp.USER32.dll_GetCursorPos]
xor eax, eax
push eax
mov esi, dword [esp + 0x898]
push esi
push eax
push dword [edi + 4]
push dword [edi]
push 2
push dword [0x4b6c94]
call dword [sym.imp.USER32.dll_TrackPopupMenu]
jmp 0x45de25
and ebx, 0xfffffffd
mov edi, 3
jmp 0x45d679
or ebx, 0x10
mov edi, 2
jmp 0x45e24e
and ebx, 0xffffffef
mov edi, 2
mov dword [esp + 4], ebx
jmp 0x45d694
or ebx, 1
xor edi, edi
inc edi
jmp 0x45e24e
and ebx, 0xfffffffe
xor edi, edi
mov dword [esp + 4], ebx
inc edi
mov dword [esp], 0
jmp 0x45e257
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00460ede
push 0
push dword [0x4b7660]
call fcn.00451186
add esp, 8
call dword [sym.imp.USER32.dll_DestroyCaret]
xor eax, eax
dec eax
mov dword [0x4b5070], eax
mov dword [0x4b506c], eax
jmp 0x45d9c3
push edx
mov esi, edx
call dword [sym.imp.USER32.dll_HideCaret]
lea eax, [esp + 0x7c]
push eax
push esi
call dword [sym.imp.USER32.dll_BeginPaint]
mov esi, eax
mov eax, dword [0x4b6ca8]
test eax, eax
je 0x45d703
push 1
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push esi
call dword [sym.imp.GDI32.dll_RealizePalette]
cmp dword [0x4b6ce8], 0
je 0x45d723
push 0xafd
push str..._windows_window.c
push str._wintw_hdc
call fcn.0047b3ef
add esp, 0xc
mov eax, dword [0x4b7660]
mov dword [0x4b6ce8], esi
xor ecx, ecx
mov ebx, dword [0x4b6c78]
mov ebp, dword [0x4b6c6c]
mov dword [esp + 4], esi
cmp byte [eax + 0x106d], 0
mov dword [esp], eax
mov eax, ebx
sete cl
mov dword [esp + 0x10], ecx
xor ecx, ecx
dec ecx
xor eax, ecx
add eax, dword [esp + 0x90]
cdq
idiv ebp
mov edi, dword [0x4b6c7c]
mov esi, dword [0x4b6c68]
mov dword [esp + 0xc], eax
xor ecx, edi
add ecx, dword [esp + 0x8c]
mov eax, ecx
cdq
idiv esi
mov ecx, eax
mov eax, dword [esp + 0x88]
sub eax, ebx
mov ebx, dword [esp + 0x84]
cdq
idiv ebp
mov ebp, eax
sub ebx, edi
mov eax, ebx
cdq
idiv esi
push dword [esp + 0x10]
push dword [esp + 0x10]
push ecx
push ebp
mov ebp, dword [esp + 0x14]
push eax
push dword [esp + 0x14]
call fcn.0044b835
add esp, 0x18
xor ebx, ebx
cmp dword [esp + 0x80], ebx
mov dword [0x4b6ce8], ebx
jne 0x45d821
mov ecx, dword [0x4b6c7c]
cmp dword [esp + 0x84], ecx
jl 0x45d821
mov eax, dword [0x4b6c78]
cmp dword [esp + 0x88], eax
jl 0x45d821
mov edx, dword [0x4b7660]
mov esi, dword [edx + 0x12c]
imul esi, dword [0x4b6c68]
add esi, ecx
cmp dword [esp + 0x8c], esi
jge 0x45d821
mov ecx, dword [edx + 0x128]
imul ecx, dword [0x4b6c6c]
add ecx, eax
cmp dword [esp + 0x90], ecx
jl 0x45d8f3
push dword [0x4b7208]
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp], eax
push eax
push ebp
call esi
mov edi, eax
push dword [0x4b7208]
push ebx
push ebx
call dword [sym.imp.GDI32.dll_CreatePen]
mov ebx, eax
push eax
push ebp
call esi
mov dword [esp + 0x10], eax
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
push ebp
call dword [sym.imp.GDI32.dll_IntersectClipRect]
mov ecx, dword [0x4b7660]
mov eax, dword [0x4b6c78]
mov esi, dword [0x4b6c7c]
mov edx, dword [ecx + 0x128]
mov ecx, dword [ecx + 0x12c]
imul edx, dword [0x4b6c6c]
imul ecx, dword [0x4b6c68]
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 + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
push dword [esp + 0x90]
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]
call edi
push dword [esp + 0x10]
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 + 0x7c]
push eax
mov esi, dword [esp + 0x898]
push esi
call dword [sym.imp.USER32.dll_EndPaint]
push esi
call dword [sym.imp.USER32.dll_ShowCaret]
jmp 0x460128
mov edi, edx
push 0x72
push dword [0x4b7678]
call fcn.00403081
add esp, 8
cmp ebx, 1
mov dword [esp], eax
jne 0x45dfc0
push 0x75
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ecx, 0x4b75c8
mov edx, 0x4b75cc
test al, al
cmovne edx, ecx
push dword [edx]
push edi
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edi, dword [esp]
xor ecx, ecx
xor eax, eax
jmp 0x45e993
push 1
push dword [0x4b7660]
mov esi, edx
call fcn.00451186
add esp, 8
push dword [0x4b6c6c]
push dword [0x4b6c68]
push dword [0x4b6c80]
push esi
call dword [sym.imp.USER32.dll_CreateCaret]
push esi
call dword [sym.imp.USER32.dll_ShowCaret]
xor ecx, ecx
call fcn.00463e62
mov dword [0x4b762c], 0
push dword [0x4b7660]
call fcn.0044892c
mov edx, esi
add esp, 4
jmp case.0x45d26d.1
mov esi, edx
jmp 0x45de20
xor ecx, ecx
mov edi, edx
inc ecx
call fcn.00460ede
push dword [0x48e058]
push str._s_Exit_Confirmation
call fcn.004558cb
add esp, 8
cmp byte [0x4b6cc0], 0
mov esi, eax
jne 0x45da2f
push 5
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
test al, al
je 0x45da2f
push 0x31
push esi
push str.Are_you_sure_you_want_to_close_this_session_
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
jne 0x45da36
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
push esi
jmp 0x45e239
push 0x8b
push dword [0x4b7678]
mov esi, edx
call fcn.00402fe1
mov edx, esi
add esp, 8
test al, al
je case.0x45d26d.1
call fcn.00464687
call fcn.00460c23
push dword [0x4b7660]
call fcn.0044b7c0
jmp 0x45d9ce
bt ebp, 0xb
jae case.0x45d26d.1
cmp dword [0x4b7674], 2
jb case.0x45d26d.1
push edx
call sub.IMM32.dll_ImmGetContext
mov esi, eax
xor ebp, ebp
push ebp
push ebp
push 0x800
push eax
call sub.IMM32.dll_ImmGetCompositionStringW
test eax, eax
jle 0x45db3a
mov edi, eax
push ebp
push 1
push eax
call fcn.00410b50
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 [0x4b6cc8], ebp
je 0x45db2e
xor eax, eax
xor ebp, ebp
inc ebp
movzx edx, word [ebx + eax]
lea ecx, [ebx + eax]
and edx, 0xfc00
cmp edx, 0xd800
jne 0x45db11
lea esi, [eax + 2]
cmp esi, edi
jge 0x45db11
movzx ebp, word [ecx + 2]
mov edx, 2
and ebp, 0xfc00
cmp ebp, 0xdc00
mov ebp, 1
je 0x45db15
mov edx, ebp
mov esi, eax
push edx
push ecx
push dword [0x4b7660]
call fcn.00450dd1
add esp, 0xc
add esi, 2
cmp esi, edi
mov eax, esi
jl 0x45dad9
push ebx
call fcn.0047d7fb
add esp, 4
mov esi, dword [esp]
push esi
push dword [esp + 0x898]
call sub.IMM32.dll_ImmReleaseContext
jmp 0x45df28
mov eax, ebx
xor ebx, ebx
cmp eax, 0x4d2
jne 0x46012a
push 0x4d2
push edx
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esp + 0x7c]
push eax
push dword [0x4b6cb0]
call fcn.004543c8
add esp, 8
test al, al
je 0x46012a
push dword [esp + 0x7c]
call fcn.00460dd5
add esp, 4
jmp 0x46012a
push edx
mov esi, edx
call sub.IMM32.dll_ImmGetContext
mov edi, eax
push 0x4b75d0
push eax
call sub.IMM32.dll_ImmSetCompositionFontA
push edi
push esi
call sub.IMM32.dll_ImmReleaseContext
jmp 0x45de25
cmp eax, 0x18f
jg 0x45e014
cmp eax, 0x16f
jg 0x45e618
cmp eax, 0x150
je 0x45eba6
cmp eax, 0x160
je 0x45e54e
jmp 0x45ed70
cmp bx, 7
ja case.0x45d26d.1
movzx eax, bx
jmp dword [eax*4 + 0x497a1c]
lea eax, [esp + 0x7c]
mov dword [eax], 0x1c
mov dword [eax + 4], 0x10
push eax
push 1
mov esi, edx
push edx
call dword [sym.imp.USER32.dll_GetScrollInfo]
test eax, eax
je 0x45efe4
mov eax, dword [esp + 0x94]
jmp 0x45eff0
cmp dword [0x4b6c98], ebx
jne case.0x45d26d.1
mov esi, 0x4b6c9c
push 0
push esi
call fcn.0041e3ba
add esp, 8
push 1
push esi
call fcn.0041e3ba
add esp, 8
call fcn.0046095e
jmp 0x460128
mov eax, 0xfc00
mov ecx, ebx
and ecx, eax
cmp ecx, 0xdc00
jne 0x45e049
movzx ecx, word [0x4b7632]
and eax, ecx
movzx eax, ax
cmp eax, 0xd800
jne 0x45e049
lea eax, [esp + 0x7c]
mov word [eax], cx
mov ecx, 2
mov word [eax + 2], bx
push ecx
jmp 0x45e061
cmp dword [esp + 0x898], 0x20a
je 0x45dcbd
mov eax, dword [esp + 0x898]
cmp dword [0x4b5064], eax
jne case.0x45d26d.1
cmp dword [esp + 0x898], 0x20a
jne 0x45e6a1
mov esi, ebx
mov eax, ebx
and ebx, 8
sar esi, 0x10
shr al, 2
shr ebx, 3
add esi, dword [0x4b7634]
and al, 1
mov dword [esp + 4], ebx
mov dword [esp + 0x10], eax
mov dword [0x4b7634], esi
jmp 0x45e6da
push 0x72
push dword [0x4b7678]
call fcn.00403081
add esp, 8
cmp eax, 3
je 0x45e075
test eax, eax
je 0x45e135
push 0x83
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov esi, eax
mov edi, eax
mov eax, dword [0x4b7660]
mov ebx, dword [ebp + 8]
sub edi, dword [0x4b6c7c]
sub esi, dword [0x4b6c78]
mov ecx, dword [eax + 0x12c]
mov dword [esp], eax
mov dword [esp + 4], ebx
add edi, edi
add esi, esi
add edi, dword [0x4b6c70]
add esi, dword [0x4b6c74]
mov eax, ecx
mov dword [esp + 0x18], ecx
shr eax, 0x1f
add eax, ecx
mov ecx, dword [ebp]
sub ebx, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ebx
sar eax, 1
sub ebx, ecx
mov dword [esp + 8], ecx
add ebx, eax
mov eax, dword [esp]
mov ecx, dword [eax + 0x128]
mov eax, dword [ebp + 0xc]
mov ebp, dword [ebp + 4]
mov edx, ecx
mov dword [esp + 0xc], eax
sub eax, esi
mov dword [esp + 0x10], ebp
shr edx, 0x1f
mov dword [esp + 0x1c], eax
sub eax, ebp
add edx, ecx
sar edx, 1
add eax, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x89c]
mov ebp, eax
mov eax, ebx
cdq
idiv dword [esp + 0x18]
add edi, dword [esp + 8]
sub ebx, edx
add edi, ebx
cmp ecx, 7
ja 0x45edff
mov eax, 0x92
bt eax, ecx
jae 0x45edff
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x8a0]
sub ecx, ebx
mov dword [eax], ecx
mov ebx, dword [0x4b7660]
jmp 0x45ee0c
movzx eax, bp
lea edi, [esp + 0x7c]
push 0x14
push edi
push 0x1004
push eax
mov esi, edx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push edi
call fcn.0047c378
add esp, 4
mov dword [0x4b760c], eax
call fcn.00463da1
mov edx, esi
push ebp
push ebx
push dword [esp + 0x8a0]
push edx
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ebx, eax
jmp 0x46012a
push 0x100
push 0
push esi
call fcn.004721e0
add esp, 0xc
mov edx, ebx
jmp 0x45eace
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp + 4]
call dword [ebp]
add esp, 0xc
push ebp
jmp 0x45e239
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
test ebx, ebx
je 0x45e1da
test esi, esi
je 0x45e236
lea ebx, [esi - 2]
cmp word [ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x45de86
sub ebx, esi
mov ebp, ebx
sar ebp, 1
lea eax, [ebp + 1]
push 0
push 2
push eax
call fcn.00410b50
add esp, 0xc
mov edi, eax
push ebx
push esi
push eax
call fcn.004716e0
add esp, 0xc
mov word [edi + ebx], 0
push ebp
jmp 0x45e225
mov byte [0x4b7612], 1
jmp case.0x45d26d.1
push 0
push 8
push 1
call fcn.00410b50
add esp, 0xc
mov dword [eax], ebx
mov dword [eax + 4], ebp
push eax
push 0x464818
call fcn.00401666
add esp, 8
jmp 0x460128
xor ebx, ebx
cmp dword [0x4b6ca8], 0
je 0x46012a
call fcn.00462e1e
test eax, eax
je 0x46012a
mov esi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x45df21
push esi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, esi
call fcn.00463d5d
xor ebx, ebx
inc ebx
jmp 0x46012a
cmp edi, 1
mov ecx, ebx
jg 0x45eac3
mov eax, dword [0x4b7660]
mov ecx, ebx
cmp byte [eax + 0x13d], 0
sete al
cmp ebx, 0x90
jne 0x45eac3
or al, byte [esp + 0xc]
mov ecx, ebx
jne 0x45eac3
cmp byte [esp + 0x8c], 0
js 0x45eabe
mov ecx, 0x2b
cmp ebp, 0x3fffffff
ja 0x45eac3
xor byte [esp + 0x10c], 1
jmp 0x45eac3
lea esi, [esp + 0x7c]
mov byte [esi], bl
push dword [0x4b7660]
call fcn.004497ca
add esp, 4
push 1
push esi
push dword [0x4b760c]
push dword [0x4b7660]
call fcn.00450e80
add esp, 0x10
jmp 0x460128
test ebx, 0xfffffffd
jne 0x45dfd5
push dword [0x4b75c8]
push edi
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edi, dword [esp]
test ebx, ebx
je 0x45e887
xor eax, eax
jmp 0x45e952
cmp eax, 0x6f
jg 0x45e63a
cmp eax, 0x50
je 0x45ebb3
cmp eax, 0x60
jne 0x45ed70
push dword [0x4b7660]
mov esi, edx
call fcn.0044a802
jmp 0x45d9ce
cmp eax, 0xf08f
jg 0x45e662
cmp eax, 0x190
je 0x45ec08
cmp eax, 0x1a0
jne 0x45ed70
push 2
push dword [0x4b7660]
mov esi, edx
call fcn.0044c1e2
jmp 0x45e658
and ebx, 0xf800
cmp ebx, 0xd800
je 0x460128
lea eax, [esp + 0x38]
push 1
push eax
push dword [0x4b7660]
call fcn.00450dd1
add esp, 0xc
jmp 0x460128
lea eax, [esp + 0x7c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45e0a0
cmp byte [esp + 0x8e], 0
js 0x45dd1a
cmp byte [esp + 0x121], 0
js 0x45dd1a
cmp byte [0x4b7611], 0
jne 0x45e135
push 0x77
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov ecx, dword [0x4b7660]
mov ecx, dword [ecx + 0x128]
cmp eax, ecx
jne 0x45e0f1
push 0x76
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov ecx, dword [0x4b7660]
cmp eax, dword [ecx + 0x12c]
je 0x45e135
mov ecx, dword [ecx + 0x128]
push ecx
push 0x77
push dword [0x4b7678]
call fcn.004036b2
add esp, 0xc
mov eax, dword [0x4b7660]
push dword [eax + 0x12c]
push 0x76
push dword [0x4b7678]
call fcn.004036b2
add esp, 0xc
push 1
push 0
push dword [esp + 0x89c]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov byte [0x4b7611], 1
mov esi, dword [ebp + 8]
mov eax, ebp
mov ebp, dword [ebp + 0xc]
mov ecx, dword [0x4b6c68]
sub esi, dword [eax]
sub ebp, dword [eax + 4]
mov eax, ecx
shr eax, 0x1f
add eax, ecx
sar eax, 1
sub esi, dword [0x4b6c70]
sub ebp, dword [0x4b6c74]
add eax, esi
cdq
idiv ecx
mov ecx, dword [0x4b6c6c]
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 + 0x89c]
call fcn.0041e534
add esp, 0xc
imul ebx, dword [0x4b6c6c]
imul edi, dword [0x4b6c68]
mov ecx, dword [esp + 0x89c]
sub ebp, ebx
sub esi, edi
je 0x45f010
cmp ecx, 7
ja 0x45f006
mov eax, 0x92
bt eax, ecx
jae 0x45f006
mov eax, dword [esp + 0x8a0]
add dword [eax], esi
jmp 0x45f010
test esi, esi
je 0x45e236
push esi
call fcn.0047e720
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 ebp
push 2
push eax
call fcn.00410b50
add esp, 0xc
mov edi, eax
push esi
call fcn.0047e720
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 [0x4b7660]
call fcn.0044c22d
add esp, 0xc
jmp 0x45e238
xor edi, edi
push edi
call fcn.00410bcd
add esp, 4
jmp 0x460128
or ebx, 2
mov edi, 3
mov dword [esp + 4], ebx
mov al, 1
mov dword [esp], eax
xor ebp, ebp
inc ebp
mov ecx, ebp
call fcn.00460ede
lea esi, [esp + 0x38]
push esi
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0
push dword [esi + 4]
push dword [esi]
call fcn.0045c32c
mov bl, 1
test eax, eax
je 0x45e2a6
lea esi, [esp + 0x7c]
mov dword [esi], 0x28
push esi
push eax
call fcn.0045c385
mov eax, dword [esi + 4]
cmp eax, dword [esp + 0x38]
jne 0x45e2a6
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x3c]
setne bl
call fcn.00463e38
cmp edi, 1
sete cl
test bl, bl
jne 0x45e2e9
and cl, byte [esp]
je 0x45e2e9
test al, al
je 0x45e2e9
mov ecx, dword [esp + 0x3c]
movzx eax, word [esp + 0x38]
shl ecx, 0x10
or ecx, eax
push ecx
push 0xf090
push 0x112
push dword [esp + 0x8a0]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x460128
lea eax, [esp + 0x7c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
mov dword [esp + 0x10], edi
je 0x45e312
cmp byte [esp + 0x8e], 0
js 0x45e31c
mov al, byte [esp + 0x121]
shr al, 7
jmp 0x45e31e
mov dword [esp + 0xc], 0
jmp 0x45e322
mov al, 1
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x8a0]
mov esi, dword [0x4b6c6c]
mov ecx, ebx
sar ecx, 0x10
mov eax, ecx
sub eax, esi
inc eax
test ebx, ebx
cmovns eax, ecx
mov ecx, ebx
sub eax, dword [0x4b6c78]
shl ecx, 0x10
cdq
idiv esi
mov esi, dword [0x4b6c68]
movsx edx, bx
mov edi, eax
mov eax, edx
sub eax, esi
inc eax
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4b6c7c]
cdq
idiv esi
cmp byte [esp], 0
mov esi, eax
je 0x45e3ff
mov dword [esp], edi
call dword [sym.imp.USER32.dll_GetMessageTime]
cmp byte [0x4b6cdd], 0
mov ebx, dword [esp + 4]
mov edi, eax
je 0x45e3b2
test bl, 4
je 0x45e457
push 0x95
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
test al, al
je 0x45e457
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
cmp dword [0x4b6c88], eax
jne 0x45e49d
mov eax, edi
sub eax, dword [0x4b7638]
cmp eax, dword [0x4b6c8c]
jge 0x45e49d
mov eax, dword [0x4b6c84]
cmp eax, 1
je 0x45f08c
cmp eax, 2
jne 0x45f096
mov ebp, 3
jmp 0x45e4a6
mov ebp, dword [esp + 4]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x10]
mov ebx, ebp
and ebp, 8
mov ecx, esi
and ebx, 4
shr ebp, 3
shr ebx, 2
call fcn.004647bc
movzx ecx, byte [esp + 0xc]
push ecx
push ebp
push ebx
push edi
push dword [esp + 0x24]
push 5
push eax
push esi
push dword [0x4b7660]
call fcn.0044c703
add esp, 0x24
xor ebx, ebx
test byte [esp + 4], 0x13
jne 0x46012a
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x46012a
mov edi, esi
mov esi, dword [esp + 0x10]
mov ebp, ebx
and ebx, 4
mov dword [0x4b6c88], 0
and ebp, 8
shr ebx, 2
shr ebp, 3
mov ecx, esi
call fcn.004647bc
movzx ecx, byte [esp + 0xc]
push ecx
push ebp
push ebx
push dword [esp + 0xc]
push edi
push 1
push eax
push esi
push dword [0x4b7660]
call fcn.0044c703
add esp, 0x24
jmp 0x45e4f0
mov eax, dword [esp + 0x10]
mov dword [0x4b6c88], eax
mov dword [0x4b6c84], ebp
mov edi, dword [esp + 0x10]
mov esi, ebx
and ebx, 8
and esi, 4
shr ebx, 3
shr esi, 2
mov ecx, edi
call fcn.004647bc
movzx ecx, byte [esp + 0xc]
push ecx
push ebx
push esi
push dword [esp + 0xc]
push dword [esp + 0x24]
push ebp
push eax
push edi
push dword [0x4b7660]
call fcn.0044c703
add esp, 0x24
mov edi, dword [esp + 0x18]
mov dword [0x4b7638], edi
mov eax, dword [esp + 0x894]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
jmp 0x460128
cmp eax, 0x30
je 0x45e54e
cmp eax, 0x40
jne 0x45ed70
cmp dword [0x4b6cc4], 0
jne case.0x45d26d.1
mov eax, dword [0x4b504c]
push str.______Session_restarted______
push 0x4b504c
mov esi, edx
call dword [eax]
add esp, 8
push 0
push dword [0x4b7660]
call fcn.00449831
add esp, 8
call fcn.004609df
jmp 0x45de25
cmp byte [0x4b7684], 0
mov eax, 0x4abba4
mov ebp, 0x4a5f68
cmove ebp, eax
cmp ebx, 0x160
je 0x45ec21
cmp ebx, 0x30
jne 0x45ec63
call fcn.00455bd0
mov ebx, eax
mov edi, 0xc
add eax, edi
push dword [0x4b7678]
push eax
call fcn.00403ad2
add esp, 8
mov edx, dword [ebx + 8]
lea eax, [esp + 0x7c]
mov ecx, 4
mov dword [eax], edi
xor edi, edi
mov dword [eax + 4], edi
mov dword [eax + 8], 1
push edi
mov dword [esp + 4], edx
push edx
push edi
push ecx
push eax
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov esi, eax
inc eax
cmp eax, 2
jb 0x45e5f0
push dword [esp]
push edi
push edi
push 2
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
je 0x45e5f0
mov edi, eax
push dword [esp]
push dword [ebx]
push eax
call fcn.004716e0
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push ebx
call fcn.00455c30
add esp, 4
push dword [esp]
push esi
push ebp
push str.putty__s_p:_u
call fcn.004558cb
add esp, 0x10
xor ebp, ebp
mov dword [esp], esi
mov esi, eax
inc ebp
jmp 0x45ec8e
cmp eax, 0x170
je 0x45ed1c
cmp eax, 0x180
jne 0x45ed70
mov esi, edx
call fcn.00464775
jmp 0x45de25
cmp eax, 0x70
je 0x45ed35
cmp eax, 0x140
jne 0x45ed70
push 0
push edx
mov esi, edx
call fcn.00465d53
mov edx, esi
add esp, 8
jmp case.0x45d26d.1
cmp eax, 0xf090
je 0x45ed61
cmp eax, 0xf100
jne 0x45ed70
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00460ede
mov edx, esi
test ebp, ebp
jne case.0x45d26d.1
push 0
push 0x20
push 0x102
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x45de25
add dword [0x4b7634], ebx
lea esi, [esp + 0x7c]
push esi
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov cl, byte [esi + 0x10]
shr cl, 7
cmp byte [esi + 0x11], 0
mov esi, dword [0x4b7634]
movzx ecx, cl
sets dl
test eax, eax
setne bl
cmove ecx, eax
and bl, dl
mov dword [esp + 0x10], ecx
mov dword [esp + 4], ebx
mov eax, esi
neg eax
cmovl eax, esi
xor ebx, ebx
cmp eax, 0x78
jl 0x46012a
mov eax, esi
movsx ecx, bp
sar ebp, 0x10
mov edi, 0xffffff88
xor ebx, ebx
shr eax, 0x1f
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], ebp
test esi, esi
setg cl
test esi, esi
jg 0x45e717
test al, 1
je 0x46012a
test esi, esi
mov eax, pe_nt_image_headers32
mov byte [esp], cl
cmovg eax, edi
add eax, esi
cmp byte [0x4b6cdd], 0
mov dword [0x4b7634], eax
je 0x45e752
push 0x95
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
cmp byte [esp + 0x10], 0
je 0x45e77f
test al, al
je 0x45e77f
mov eax, dword [0x4b7660]
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.0044b994
add esp, 0xc
jmp 0x45e867
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], ebp
push eax
push dword [esp + 0x898]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x45e867
mov cl, byte [esp]
xor eax, eax
mov edi, 8
mov al, cl
sub edi, eax
lea eax, [esp + 0x7c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45e7d8
cmp byte [esp + 0x8e], 0
js 0x45e7e2
mov al, byte [esp + 0x121]
shr al, 7
jmp 0x45e7e4
mov dword [esp + 0x14], 0
jmp 0x45e7e8
mov al, 1
mov dword [esp + 0x14], eax
xor eax, eax
cmp byte [esp + 0x10], 0
mov edx, dword [esp + 0x3c]
mov esi, dword [0x4b6c6c]
mov ecx, dword [esp + 0x38]
setne al
mov dword [esp], eax
mov eax, edx
sub eax, esi
inc eax
test edx, edx
cmovns eax, edx
sub eax, dword [0x4b6c78]
cdq
idiv esi
mov esi, dword [0x4b6c68]
mov ebp, eax
mov eax, ecx
sub eax, esi
inc eax
test ecx, ecx
cmovns eax, ecx
mov ecx, edi
sub eax, dword [0x4b6c7c]
cdq
idiv esi
mov esi, eax
call fcn.004647bc
movzx ecx, byte [esp + 0x14]
movzx edx, byte [esp + 4]
push ecx
push edx
push dword [esp + 8]
push ebp
push esi
push 1
push eax
push edi
push dword [0x4b7660]
call fcn.0044c703
add esp, 0x24
mov ebp, dword [esp + 0xc]
mov edi, 0xffffff88
mov esi, dword [0x4b7634]
mov eax, esi
mov ecx, esi
shr eax, 0x1f
neg ecx
cmovl ecx, esi
cmp ecx, 0x77
jg 0x45e706
jmp 0x46012a
mov byte [0x4b7613], 0
push 0xfffffffffffffff0
push dword [0x4b7668]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov ebx, eax
push 0x72
push dword [0x4b7678]
call fcn.00403081
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 0x70
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ecx, esi
and esi, 0xffdfffff
or ecx, 0x200000
test al, al
cmovne esi, ecx
cmp esi, ebx
je 0x45e915
push esi
push 0xfffffffffffffff0
push dword [0x4b7668]
call dword [sym.imp.USER32.dll_SetWindowLongA]
xor eax, eax
push 0x27
push eax
push eax
push eax
push eax
push eax
push dword [0x4b7668]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ebx, dword [sym.imp.USER32.dll_CheckMenuItem]
xor esi, esi
xor edi, edi
xor ebp, ebp
inc edi
push esi
push 0x180
push dword [ebp*4 + 0x4b6c90]
call ebx
test ebp, ebp
mov ebp, edi
je 0x45e922
xor ebx, ebx
cmp byte [0x4b7613], 0
mov ebp, dword [esp + 0x8a0]
mov edi, dword [esp]
mov al, 1
jne 0x46012a
mov ecx, dword [esp + 0x89c]
cmp ecx, 2
jne 0x45e991
cmp byte [0x4b7612], 1
mov cl, 1
jne 0x45e993
xor ebx, ebx
mov dword [esp], eax
mov byte [0x4b7612], bl
mov byte [0x4b7613], bl
call fcn.0046482e
mov eax, dword [esp]
cmp byte [0x4b7613], bl
mov cl, 1
je 0x45e993
jmp 0x46012a
xor ecx, ecx
cmp edi, 1
mov byte [0x4b7613], 1
jne 0x45e9a7
xor ecx, ecx
dec ecx
jmp 0x45f183
mov esi, eax
push 0x83
push dword [0x4b7678]
mov ebx, ecx
call fcn.00403081
add esp, 8
mov ecx, eax
mov eax, ebp
movzx ebp, ax
shr eax, 0x10
test bl, bl
mov dword [esp + 0xc], eax
je 0x45ea3f
test edi, edi
mov byte [0x4b7631], 1
jne 0x45f181
mov eax, ebp
xor edx, edx
idiv dword [0x4b6c68]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
mov eax, dword [esp + 0xc]
cmovle edi, esi
xor edx, edx
idiv dword [0x4b6c6c]
test eax, eax
cmovg esi, eax
cmp byte [0x4b7630], 1
jne 0x45f160
mov byte [0x4b7611], 1
push esi
push 0x77
push dword [0x4b7678]
call fcn.004036b2
add esp, 0xc
push edi
push 0x76
push dword [0x4b7678]
call fcn.004036b2
add esp, 0xc
jmp 0x45f181
mov ebx, esi
test bl, bl
je 0x45eb42
cmp byte [0x4b7631], 1
jne 0x45eb42
cmp edi, 2
mov byte [0x4b7631], 0
je 0x45f181
test edi, edi
jne 0x45eab4
add ecx, ecx
sub ebp, ecx
mov eax, ebp
cdq
idiv dword [0x4b6c68]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
mov eax, dword [esp + 0xc]
cmovle edi, esi
sub eax, ecx
cdq
idiv dword [0x4b6c6c]
test eax, eax
cmovg esi, eax
push 0x63
push dword [0x4b7678]
call fcn.00403081
add esp, 8
push eax
push edi
push esi
push dword [0x4b7660]
call fcn.0044abe4
add esp, 0x10
mov ecx, 2
jmp 0x45f183
mov ecx, 0x90
push esi
mov esi, ecx
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov edx, esi
mov edi, ebp
and edi, 0xc0000000
cmp edi, 0x40000000
jne 0x45eaf0
mov eax, dword [0x4b7660]
cmp byte [eax + 0x13f], 0
jne 0x460128
bt dword [esp + 0x8a0], 0x1d
movzx ebx, byte [esp + 0x8d]
mov dword [esp + 4], 0
jae 0x45ee67
cmp byte [esp + 0x121], 0
js 0x45ee67
mov al, 1
test bl, bl
mov dword [esp + 4], eax
jns 0x45ee67
cmp byte [esp], 0
je 0x45ee57
mov byte [esp + 0x8e], 0
jmp 0x45ee67
cmp dword [esp + 0x89c], 1
je 0x45f188
test edi, edi
je 0x45f4ab
cmp edi, 3
jne 0x45f181
mov esi, ecx
lea eax, [esp + 0x7c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45f4a9
cmp byte [esp + 0x8e], 0
js 0x45f181
cmp byte [esp + 0x121], 0
mov ecx, esi
jns 0x45f4ab
jmp 0x45f181
push edx
mov esi, edx
call fcn.0045b89d
jmp 0x45d9ce
push edx
mov esi, edx
call fcn.0045bc21
jmp 0x45d9ce
cmp byte [0x4b7618], 0
jne case.0x45d26d.1
mov byte [0x4b7618], 1
push dword [0x4b75c8]
push 0x62
push dword [0x4b7678]
call fcn.004037b5
add esp, 0xc
push dword [0x4b7678]
call fcn.00402fad
add esp, 4
mov esi, eax
mov eax, dword [0x4b6cc4]
test eax, eax
je 0x45f270
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
add esp, 4
jmp 0x45f272
push 1
push 0x497708
push dword [0x4b7660]
mov esi, edx
call fcn.0044c177
jmp 0x45edf5
mov eax, dword [esp + 0x8a0]
lea ecx, [eax - 0x1000]
add eax, 0xfffff00f
test ecx, ecx
cmovns eax, ecx
sar eax, 4
lea ecx, [eax + 1]
cmp ecx, dword [0x4b6c9c]
jae 0x45ed10
mov ecx, dword [0x4b6ca0]
mov dword [esp], 0
push dword [ecx + eax*4 + 4]
push ebp
push str.putty__s__s
jmp 0x45ec82
cmp byte [ebp], 0
mov eax, 0x4abba4
mov ecx, 0x4ab2fc
mov dword [esp], 0
cmove ecx, eax
push ebp
push ecx
push str.putty_s_s
call fcn.004558cb
add esp, 0xc
mov esi, eax
xor ebp, ebp
lea eax, [esp + 0x7c]
xor edi, edi
push 0x7ff
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x38]
lea ebx, [esp + 0x28]
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 + 0xa0]
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 0x45ecf9
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.00410bcd
add esp, 4
mov ebx, dword [esp + 0x89c]
mov edx, dword [esp + 0x894]
mov ebp, dword [esp + 0x8a0]
jmp case.0x45d26d.1
push 1
push 0x497708
push dword [0x4b7660]
mov esi, edx
call fcn.0044ba7d
jmp 0x45edf5
push 1
push dword [0x4b7660]
mov esi, edx
call fcn.00449831
mov edx, esi
add esp, 8
mov eax, dword [0x4b6cc8]
test eax, eax
je case.0x45d26d.1
push eax
call fcn.0040e6b5
jmp 0x45d9ce
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00460ede
jmp 0x45de25
lea eax, [ebx - 0x1000]
cmp eax, 0x3fff
ja 0x45f040
push ebx
push 0x160
push 0x112
push edx
mov esi, edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x45de25
push 0xffffffffffffffff
jmp 0x45eda0
push 1
push 0
jmp 0x45ede8
mov eax, dword [0x4b7660]
mov esi, edx
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 0x45eddb
mov eax, dword [0x4b7660]
mov esi, edx
mov ecx, dword [eax + 0x128]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
sar edx, 1
push edx
push 0
push eax
jmp 0x45edf0
push 0
push 1
jmp 0x45ede8
push 0
push 0xffffffffffffffff
push dword [0x4b7660]
mov esi, edx
call fcn.0044b994
mov edx, esi
add esp, 0xc
jmp case.0x45d26d.1
mov eax, dword [esp + 0x8a0]
mov ebx, dword [esp]
mov dword [eax + 8], edi
mov esi, dword [esp + 0x10]
imul ebp, dword [ebx + 0x128]
mov edx, dword [esp + 4]
xor ebx, ebx
add esi, dword [esp + 0x14]
xor edx, edi
mov ecx, esi
mov esi, dword [esp + 0xc]
add ecx, ebp
xor esi, ecx
or esi, edx
mov esi, dword [esp + 0x89c]
setne bl
add esi, 0xfffffffd
cmp esi, 2
ja 0x45ee4f
mov ecx, dword [esp + 0x1c]
sub ecx, ebp
mov dword [eax + 4], ecx
jmp 0x46012a
mov dword [eax + 0xc], ecx
jmp 0x46012a
mov byte [esp + 0x121], 0x80
mov dword [esp + 4], 0
movzx ebp, byte [esp + 0x8c]
shr ebx, 7
mov dword [esp], edx
shr ebp, 7
cmp dword [0x4b762c], 0
jne 0x45eec3
mov dword [0x4b764c], 0x100
push 0x5e
push dword [0x4b7678]
call fcn.00402fe1
mov edx, dword [esp + 8]
add esp, 8
cmp edx, 0x12
sete cl
cmp edx, 0x5d
je 0x45eebd
mov edx, dword [esp + 0x8a0]
shr edx, 0x18
and al, dl
mov edx, dword [esp]
and cl, al
je 0x45eec3
mov dword [0x4b764c], edx
lea eax, [ebp + ebx*2]
cmp edx, dword [0x4b764c]
mov dword [esp + 8], eax
mov eax, dword [0x4b762c]
jne 0x45eef0
mov esi, dword [esp + 0x8a0]
cmp esi, 0x3fffffff
ja 0x45ef05
test eax, eax
jne 0x45ef05
xor ecx, ecx
inc ecx
jmp 0x45ef3b
mov esi, dword [esp + 0x8a0]
cmp edx, 0x11
je 0x45ef1f
xor ecx, ecx
cmp eax, 1
je 0x45ef3b
jmp 0x45ef1f
xor ecx, ecx
test esi, esi
jns 0x45ef3b
cmp eax, 1
jne 0x45ef3b
mov eax, 2
mov dword [0x4b762c], 2
cmp byte [esp + 4], 0
je 0x45ef4e
cmp eax, 2
jl 0x45ef4e
mov dword [0x4b762c], 0
mov bl, 1
xor eax, eax
jmp 0x45efa4
cmp byte [esp + 4], 0
mov bl, 1
mov eax, ecx
mov dword [0x4b762c], ecx
jne 0x45efa4
jmp 0x45ef57
cmp byte [esp + 4], 0
mov bl, 1
jne 0x45efa4
mov ecx, dword [0x4b7660]
cmp byte [ecx + 0x13d], 0
je 0x45ef84
mov ebp, dword [esp + 0x14]
cmp ebp, 2
setne cl
xor ebx, ebx
cmp ebp, 3
je 0x45efa4
mov ch, byte [esp + 0xc]
xor ch, 1
and cl, ch
je 0x45ef8f
jmp 0x45efa4
cmp dword [esp + 0x14], 3
jne 0x45ef8f
xor ebx, ebx
jmp 0x45efa4
mov ch, byte [esp + 0x18]
test eax, eax
sete cl
xor ebx, ebx
not ch
test ch, cl
jne 0x45f037
bt esi, 0x18
jb 0x45efce
add edx, 0xffffffdf
mov ebp, ebx
cmp edx, 0xd
ja case.default.0x45efbd
mov ecx, 0x60
jmp dword [edx*4 + 0x497804]
mov ecx, 0x69
jmp case.0x45efbd.45
mov ebp, ebx
jmp case.0x45efbd.41
mov edi, ebp
mov dword [esp + 4], 0
jmp 0x45f0ce
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x94], eax
push eax
push 1
push dword [0x4b7660]
call fcn.0044b994
add esp, 0xc
jmp 0x45de25
mov eax, dword [esp + 0x8a0]
sub dword [eax + 8], esi
test ebp, ebp
je 0x45f02b
mov eax, dword [esp + 0x8a0]
add ecx, 0xfffffffd
cmp ecx, 2
ja 0x45f028
add dword [eax + 4], ebp
jmp 0x45f02b
sub dword [eax + 0xc], ebp
xor ebx, ebx
or ebp, esi
setne bl
jmp 0x46012a
xor ebp, ebp
xor eax, eax
jmp case.0x45efbd.41
lea eax, [ebx - 0x400]
cmp eax, 0x400
ja case.0x45d26d.1
shr eax, 4
cmp eax, dword [0x4b6cd0]
jge case.0x45d26d.1
mov ecx, dword [0x4b6cc4]
test ecx, ecx
je case.0x45d26d.1
mov esi, edx
mov edx, dword [0x4b6ccc]
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 0x45edf5
mov ebp, 2
jmp 0x45e4a6
xor ecx, ecx
cmp eax, 3
sete cl
mov dword [0x4b6c84], ecx
jne 0x45e4ea
xor ebp, ebp
inc ebp
jmp 0x45e4ac
cmp dword [esp], 0xc
jne case.0x45efbd.41
mov ecx, 0x65
jmp case.0x45efbd.45
mov edi, ebp
mov al, 1
mov dword [esp + 4], eax
mov eax, esi
mov ebp, esi
mov esi, dword [0x4b6c6c]
mov ecx, edi
and eax, 8
sar ecx, 0x10
shr eax, 3
mov dword [esp + 0x10], eax
mov eax, 4
and ebp, eax
mov eax, ecx
sub eax, esi
shr ebp, 2
inc eax
test edi, edi
cmovns eax, ecx
mov ecx, edi
sub eax, dword [0x4b6c78]
shl ecx, 0x10
cdq
idiv esi
mov esi, dword [0x4b6c68]
movsx edx, di
mov dword [esp + 0xc], eax
mov eax, edx
sub eax, esi
inc eax
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4b6c7c]
cdq
idiv esi
mov edi, dword [esp]
mov esi, eax
mov ecx, edi
call fcn.004647bc
movzx ecx, byte [esp + 4]
push ecx
push dword [esp + 0x14]
push ebp
push dword [esp + 0x18]
push esi
mov ecx, 4
push ecx
push eax
push edi
push dword [0x4b7660]
call fcn.0044c703
add esp, 0x24
jmp 0x46012a
push 0x63
push dword [0x4b7678]
call fcn.00403081
add esp, 8
push eax
push edi
push esi
push dword [0x4b7660]
call fcn.0044abe4
add esp, 0x10
xor ecx, ecx
call fcn.00463ff4
call fcn.00463da1
jmp 0x460128
mov ecx, 0x63
jmp case.0x45efbd.45
mov ecx, 0x61
jmp case.0x45efbd.45
mov ecx, 0x67
jmp case.0x45efbd.45
mov ecx, 0x64
jmp case.0x45efbd.45
mov ecx, 0x68
jmp case.0x45efbd.45
mov ecx, 0x66
jmp case.0x45efbd.45
mov ecx, 0x62
jmp case.0x45efbd.45
mov ecx, 0x6e
mov ebx, dword [esp + 8]
movzx edx, byte [esp + 0x10c]
mov dword [esp], ecx
and edx, 1
movzx ebx, bl
or ebx, edx
mov dword [esp + 8], ebx
test esi, esi
js case.0x45fcb9.14
test eax, eax
jne case.0x45fcb9.14
cmp byte [esp + 0x121], 0
js case.0x45fcb9.14
mov eax, ebp
test al, al
je 0x45f211
lea esi, [esp + 0x39]
mov byte [esi - 1], 0x1b
jmp 0x45f215
lea esi, [esp + 0x38]
mov edx, dword [esp + 8]
mov ecx, dword [esp]
cmp edx, 1
jne 0x45f22f
cmp ecx, 0x21
jne 0x45f22f
push 0
push 2
jmp 0x45f540
cmp edx, 3
jne 0x45f242
cmp ecx, 0x21
jne 0x45f242
push 0
push 6
jmp 0x45f540
cmp edx, 3
jne 0x45f255
cmp ecx, 0x22
jne 0x45f255
push 0
push 7
jmp 0x45f540
cmp edx, 2
jne 0x45f48e
cmp ecx, 0x21
jne 0x45f48e
xor eax, eax
push eax
push eax
jmp 0x45f540
xor eax, eax
push eax
push dword [esp + 0x898]
call fcn.0045b74e
add esp, 8
test al, al
mov byte [0x4b7618], 0
je 0x45f479
push 0x67
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov dword [0x4b7688], eax
push 0x9e
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov dword [0x4b768c], eax
push 0x72
push dword [0x4b7678]
call fcn.00403081
add esp, 8
xor ebx, ebx
cmp eax, 1
mov dword [esp], eax
sete bl
xor ebp, ebp
xor edi, edi
inc edi
push ebx
push 0x180
push dword [ebp*4 + 0x4b6c90]
call dword [sym.imp.USER32.dll_EnableMenuItem]
test ebp, ebp
mov ebp, edi
je 0x45f2de
push dword [esp + 0x894]
call dword [sym.imp.USER32.dll_IsZoomed]
cmp dword [esp], 1
jne 0x45f31d
test eax, eax
je 0x45f31d
push 9
push dword [esp + 0x898]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4b7678]
push dword [0x4b7690]
call fcn.0040f97b
add esp, 8
push dword [0x4b6cac]
call fcn.00410bcd
add esp, 4
mov eax, dword [0x4b6cc8]
test eax, eax
je 0x45f365
push dword [0x4b7678]
push eax
call fcn.0040e625
add esp, 8
push dword [0x4b6cc8]
call fcn.0040e6b5
add esp, 4
mov eax, dword [0x4b6ca8]
test eax, eax
je 0x45f375
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [0x4b6cac], eax
mov dword [0x4b6ca8], eax
call fcn.0046022a
call fcn.00460c23
push dword [0x4b7678]
push dword [0x4b7660]
call fcn.00449fad
add esp, 8
mov edx, dword [0x4b7678]
mov ecx, dword [0x4b7660]
call fcn.004608db
mov eax, dword [0x4b6cc4]
test eax, eax
je 0x45f3c8
mov ecx, dword [eax]
push dword [0x4b7678]
push eax
call dword [ecx + 8]
add esp, 8
mov ebx, 0x77
push ebx
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403081
add esp, 8
cmp edi, eax
jne 0x45f597
mov ebx, 0x76
push ebx
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403081
add esp, 8
cmp edi, eax
jne 0x45f597
mov ebx, 0x63
push ebx
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403081
add esp, 8
cmp dword [esp], 2
je 0x45f597
cmp edi, eax
jne 0x45f597
mov edi, dword [esp]
cmp edi, 3
jne 0x45f592
push dword [esp + 0x894]
call dword [sym.imp.USER32.dll_IsZoomed]
cmp edi, 1
je 0x45f597
test eax, eax
je 0x45f5dc
jmp 0x45f597
push esi
call fcn.00402e9c
add esp, 4
mov edx, dword [esp + 0x894]
jmp case.0x45d26d.1
cmp edx, 1
jne 0x45f532
cmp ecx, 0x22
jne 0x45f532
push 0
push 3
jmp 0x45f540
mov ecx, esi
add ecx, ecx
sub ebp, ecx
mov eax, ebp
cdq
idiv dword [0x4b6c68]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
mov eax, dword [esp + 0xc]
cmovle edi, esi
sub eax, ecx
mov cl, 1
cdq
idiv dword [0x4b6c6c]
test eax, eax
cmovg esi, eax
cmp byte [0x4b7630], cl
jne 0x45f50c
mov byte [0x4b7611], 1
push esi
push 0x77
push dword [0x4b7678]
call fcn.004036b2
add esp, 0xc
push edi
push 0x76
push dword [0x4b7678]
call fcn.004036b2
add esp, 0xc
jmp 0x45f188
push 0x63
push dword [0x4b7678]
call fcn.00403081
add esp, 8
push eax
push edi
push esi
push dword [0x4b7660]
call fcn.0044abe4
add esp, 0x10
jmp 0x45f188
cmp edx, 2
jne 0x45f550
cmp ecx, 0x22
jne 0x45f550
push 0
push 1
push 0x115
push dword [0x4b7668]
jmp 0x45e2de
cmp edx, 3
jne 0x45f576
lea eax, [ecx - 0x21]
cmp eax, 1
ja 0x45f576
xor eax, eax
cmp ecx, 0x21
setne al
push eax
push dword [0x4b7660]
call fcn.0044ba28
jmp 0x45dee9
cmp edx, 2
jne 0x45f937
cmp ecx, 0x2d
jne 0x45f937
push 0x99
jmp 0x45f95d
cmp edi, 1
jne 0x45f5dc
push 0x63
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push 0x76
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov ebx, eax
push 0x77
push dword [0x4b7678]
call fcn.00403081
add esp, 8
push edi
push ebx
push eax
push dword [0x4b7660]
call fcn.0044abe4
add esp, 0x10
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
mov eax, dword [esp + 0x898]
mov ebx, esi
mov esi, eax
push eax
call edi
mov dword [esp + 4], eax
push 0xffffffffffffffec
push esi
mov esi, ebx
call edi
mov ebp, eax
mov edi, 0x59
push edi
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ebx, eax
push edi
push esi
call fcn.00402fe1
add esp, 8
xor al, bl
mov ebx, ebp
cmp al, 1
jne 0x45f662
push 0x59
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ecx, ebp
mov ebx, ebp
movzx edx, al
or ecx, 8
and ebx, 0xfffffff7
or edx, 0xfffffffe
test al, al
cmovne ebx, ecx
xor eax, eax
push 3
push eax
push eax
push eax
push eax
push edx
push dword [esp + 0x8ac]
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x82
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ecx, ebx
and ebx, 0xfffffdff
or ecx, 0x200
test al, al
cmovne ebx, ecx
call fcn.00463e38
movzx eax, al
or eax, 0x70
push eax
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov edx, dword [esp + 4]
mov ecx, edx
mov edi, edx
or ecx, 0x200000
and edi, 0xffdfffff
test al, al
cmovne edi, ecx
mov ecx, dword [esp]
cmp ecx, 1
je 0x45f6d3
call fcn.00463e38
mov edx, dword [esp + 4]
mov ecx, dword [esp]
test al, al
je 0x45f6db
and edi, 0xfffbffff
jmp 0x45f6e1
or edi, 0x40000
mov eax, edi
or edi, 0x10000
and eax, 0xfffeffff
cmp ecx, 1
cmove edi, eax
cmp ebx, ebp
jne 0x45f701
cmp edi, edx
jne 0x45f701
xor ebp, ebp
inc ebp
jmp 0x45f74d
mov ecx, dword [esp + 0x894]
cmp edi, edx
je 0x45f71d
push edi
push 0xfffffffffffffff0
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [esp + 0x894]
cmp ebx, ebp
je 0x45f732
push ebx
push 0xffffffffffffffec
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [esp + 0x894]
xor eax, eax
push 0x137
push eax
push eax
push eax
push eax
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [esp]
mov ebp, 2
mov edi, dword [esp + 0x894]
cmp ecx, 1
jne 0x45f772
push edi
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x45f772
push edi
call fcn.0045ac50
add esp, 4
mov ebp, 2
push 0x62
push dword [0x4b7678]
call fcn.004031c6
add esp, 8
mov ecx, dword [0x4b6154]
push eax
push 0x4b6154
call dword [ecx + 0x38]
add esp, 8
push edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x45f7c7
push 0x75
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ecx, 0x4b75c8
mov edx, 0x4b75cc
test al, al
cmovne edx, ecx
push dword [edx]
push edi
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edi, pe_nt_image_headers32
push edi
push dword [0x4b7678]
call fcn.0040353c
add esp, 8
mov ebx, eax
push edi
push esi
call fcn.0040353c
add esp, 8
mov edi, eax
push dword [eax]
mov dword [esp + 8], ebx
push dword [ebx]
call fcn.0047e4f0
add esp, 8
test eax, eax
je 0x45f8f7
mov eax, 0x9f
push eax
push esi
call fcn.004031c6
add esp, 8
mov ebx, esi
mov esi, ebp
mov ebp, eax
mov eax, 0x9f
push eax
push dword [0x4b7678]
call fcn.004031c6
add esp, 8
push ebp
mov ebp, esi
mov esi, ebx
push eax
call fcn.0047e4f0
add esp, 8
test eax, eax
je 0x45f8f7
mov eax, dword [esp + 4]
mov al, byte [eax + 4]
cmp al, byte [edi + 4]
jne 0x45f8f7
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
cmp eax, dword [edi + 8]
jne 0x45f8f7
mov eax, dword [esp + 4]
mov eax, dword [eax + 0xc]
cmp eax, dword [edi + 0xc]
jne 0x45f8f7
mov ebx, 0x79
push ebx
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403081
add esp, 8
cmp edi, eax
jne 0x45f8f7
mov ebx, 0x9e
push ebx
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403081
add esp, 8
cmp edi, eax
jne 0x45f8f7
mov ebx, 0x8d
push ebx
push dword [0x4b7678]
call fcn.00403081
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.00403081
add esp, 8
mov ecx, dword [esp]
or ecx, 2
cmp ecx, 3
je 0x45f8f7
cmp edi, eax
jne 0x45f8f7
push 0x72
push esi
call fcn.00403081
add esp, 8
cmp dword [esp], eax
je 0x45f8fc
mov ebp, 2
push 1
push 0
mov eax, dword [esp + 0x89c]
mov edi, esi
mov esi, eax
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, ebp
call fcn.00463ff4
push edi
call fcn.00402e9c
mov edx, esi
add esp, 4
mov ebp, dword [esp + 0x8a0]
mov ebx, dword [esp + 0x89c]
jmp case.0x45d26d.1
cmp dword [esp + 8], 1
jne 0x45f94b
cmp dword [esp], 0x2d
jne 0x45f94b
push 0x99
jmp 0x45f99d
cmp dword [esp + 8], 3
jne 0x45f98b
cmp dword [esp], 0x43
jne 0x45f98b
push 0x9a
push dword [0x4b7678]
call fcn.00403081
add esp, 8
cmp eax, 2
jne 0x460128
push 1
push 0x497708
push dword [0x4b7660]
call fcn.0044c177
jmp 0x45e06d
cmp dword [esp + 8], 3
jne 0x45f9cf
cmp dword [esp], 0x56
jne 0x45f9cf
push 0x9a
push dword [0x4b7678]
call fcn.00403081
add esp, 8
cmp eax, 2
je 0x45f9bd
cmp eax, 1
jne 0x460128
push 1
jmp 0x45f9bf
push 2
push dword [0x4b7660]
call fcn.0044c1e2
jmp 0x45dee9
cmp dword [esp], 0x73
mov eax, ebp
setne cl
xor al, 1
or cl, al
jne 0x45fa0b
push 0x54
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ebx, dword [esp + 0x89c]
mov ecx, dword [esp + 0x894]
test al, al
jne 0x46010b
xor ebx, ebx
jmp 0x45fa98
cmp dword [esp], 0x20
mov ecx, ebp
sete bl
and cl, bl
cmp cl, 1
jne 0x45fa5c
mov bl, 1
push 0x55
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
test al, al
je 0x45fa98
push 0
push 0xf100
push 0x112
push dword [0x4b7668]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, dword [esp + 0x89c]
mov ecx, dword [esp + 0x894]
jmp 0x46010b
cmp dword [esp], 0xd
setne cl
or al, cl
jne 0x45faf4
push 0x5a
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
test al, al
je 0x45fa98
push 0x72
push dword [0x4b7678]
call fcn.00403081
add esp, 8
cmp eax, 1
jne 0x45fb7f
cmp dword [esp + 8], 0
sete byte [esp + 0xc]
xor eax, eax
cmp dword [esp + 8], 2
jne 0x45fab4
test bl, bl
je 0x45fab4
mov byte [esi], 0
jmp 0x45fac6
cmp dword [esp + 8], 3
setne cl
xor bl, 1
or bl, cl
jne 0x45fb19
mov byte [esi], 0xa0
lea eax, [esp + 0x38]
neg eax
lea eax, [esi + eax + 1]
test eax, eax
je 0x460128
mov ebx, dword [esp + 0x89c]
mov ecx, dword [esp + 0x894]
cmp eax, 0xffffffff
je 0x46010b
jmp 0x45fbda
cmp dword [esp], 0x13
sete al
cmp dword [esp + 8], 2
jne 0x45fb42
cmp dword [esp], 0x13
jne 0x45fb42
mov eax, dword [0x4b7660]
xor byte [eax + 0x13d], 1
jmp 0x460128
cmp dword [esp + 8], 2
jne 0x45fb72
cmp dword [esp], 3
jne 0x45fb72
mov eax, dword [0x4b6cc4]
test eax, eax
je 0x460128
mov ecx, dword [eax]
xor edx, edx
push edx
push edx
push eax
call dword [ecx + 0x18]
jmp 0x45e06d
cmp dword [esp + 8], 0
sete byte [esp + 0xc]
jne 0x45fba3
cmp dword [esp], 8
jne 0x45fba3
push 0x42
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
test al, al
mov eax, 0x7f
mov ecx, 8
jmp 0x45fbcc
test al, al
je 0x45fbfc
mov byte [esi], 0x1a
jmp 0x45fbd1
mov ebx, dword [esp + 0x89c]
mov ecx, dword [esp + 0x894]
cmp edi, 0x40000000
je 0x46010b
call fcn.00464775
jmp 0x45fa50
cmp dword [esp + 8], 1
jne 0x45fc1b
cmp dword [esp], 8
jne 0x45fc1b
push 0x42
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
test al, al
mov eax, 8
mov ecx, 0x7f
cmovne ecx, eax
mov byte [esi], cl
mov eax, 0xfffffffe
mov byte [esi + 1], 0
lea ecx, [esp + 0x38]
push eax
push ecx
push 0xffffffffffffffff
push dword [0x4b7660]
call fcn.00450e80
add esp, 0x10
xor ecx, ecx
call fcn.00460ede
jmp 0x460128
cmp dword [esp + 8], 2
jne 0x45fc48
mov eax, dword [esp]
add eax, 0xffffffce
cmp eax, 6
ja 0x45fc48
mov al, byte [eax + 0x49cd20]
mov byte [esi], al
jmp 0x45fac6
cmp dword [esp + 8], 1
jne 0x45faa4
cmp dword [esp], 9
jne 0x45faa4
lea eax, [esp + 0x38]
mov word [esi], 0x5b1b
mov byte [esi + 2], 0x5a
neg eax
lea eax, [esi + eax + 3]
jmp 0x45fad0
mov eax, 2
cmp dword [esp + 8], eax
jne 0x45fc65
or eax, dword [esp]
cmp eax, 0xbf
jne 0x45fc65
mov byte [esi], 0x1f
jmp 0x45fac6
cmp dword [esp + 8], 2
jne 0x45fc86
cmp dword [esp], 0xdf
je 0x45fc7e
cmp dword [esp], 0xdc
jne 0x45fc86
mov byte [esi], 0x1c
jmp 0x45fac6
cmp dword [esp + 8], 3
jne 0x45fc9e
cmp dword [esp], 0xde
jne 0x45fc9e
mov byte [esi], 0x1e
jmp 0x45fac6
mov eax, dword [esp]
lea edi, [eax - 0xc]
cmp edi, 0x77
ja case.0x45fcb9.14
xor ecx, ecx
xor eax, eax
mov edx, 0x41
mov bl, 0x30
inc eax
jmp dword [edi*4 + 0x49783c]
mov edx, 0x47
jmp case.0x45fcb9.38
bt dword [esp + 0x8a0], 0x18
mov bl, 0xd
jb case.0x45fcb9.96
jmp 0x45fdf8
mov ecx, 4
jmp case.0x45fcb9.36
mov ecx, 5
jmp case.0x45fcb9.36
xor ecx, ecx
inc ecx
jmp case.0x45fcb9.36
mov edx, 0x44
jmp case.0x45fcb9.38
mov edx, 0x43
jmp case.0x45fcb9.38
mov edx, 0x42
mov ebp, dword [esp + 8]
shr ebp, 1
push ebp
push edx
push dword [0x4b7660]
push esi
call fcn.004509cc
add esp, 0x10
jmp 0x46021d
mov bl, 0x47
jmp case.0x45fcb9.96
mov ecx, 2
jmp case.0x45fcb9.36
mov ecx, 3
test byte [esp + 8], 2
jne case.0x45fcb9.14
push ecx
push dword [0x4b7660]
push esi
call fcn.00450b5e
add esp, 0xc
jmp 0x46021d
mov bl, 0x31
jmp case.0x45fcb9.96
mov bl, 0x32
jmp case.0x45fcb9.96
mov bl, 0x33
jmp case.0x45fcb9.96
mov bl, 0x34
jmp case.0x45fcb9.96
mov bl, 0x35
jmp case.0x45fcb9.96
mov bl, 0x36
jmp case.0x45fcb9.96
mov bl, 0x37
jmp case.0x45fcb9.96
mov bl, 0x38
jmp case.0x45fcb9.96
mov bl, 0x39
jmp case.0x45fcb9.96
mov bl, 0x2a
jmp case.0x45fcb9.96
mov bl, 0x2b
jmp case.0x45fcb9.96
mov bl, 0x2d
jmp case.0x45fcb9.96
mov bl, 0x2e
jmp case.0x45fcb9.96
mov bl, 0x2f
mov eax, ebp
test al, al
je 0x45fdb1
mov eax, ebx
add al, 0xd0
cmp al, 9
ja 0x45fe29
mov ecx, dword [0x4b763c]
movzx eax, bl
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2 - 0x30]
mov dword [0x4b763c], eax
jmp case.0x45fcb9.14
mov edx, dword [esp + 8]
movzx ecx, bl
mov eax, edx
shr eax, 1
xor edi, edi
inc edi
and edx, edi
push eax
push edx
push ecx
push dword [0x4b7660]
push esi
call fcn.00450c30
add esp, 0x14
xor ecx, ecx
cmp bl, 0xd
mov edx, 7
sete cl
add ecx, ecx
add ecx, edx
test eax, eax
cmovne ecx, edi
cmp ecx, edx
je case.0x45fcb9.14
add esi, eax
cmp ecx, 9
jne 0x460168
cmp byte [esp + 0xc], 0
je 0x460175
mov eax, dword [0x4b7660]
cmp byte [eax + 0x141], 0
je 0x460175
lea eax, [esp + 0x38]
mov word [esi], 0xa0d
neg eax
lea eax, [esi + eax + 2]
jmp 0x45fad0
mov dword [0x4b763c], 0
mov edi, dword [esp + 0x8a0]
shr edi, 0x10
cmp byte [esp + 0x90], 0
je 0x45fe75
push 0xa2
push dword [0x4b7678]
call fcn.00402fe1
add esp, 8
mov ebx, dword [esp + 0x89c]
test al, al
je 0x45fe7c
mov eax, ebp
xor al, 1
mov byte [esp + 0x90], 0
mov esi, eax
jmp 0x45fe7e
mov ebx, dword [esp + 0x89c]
xor esi, esi
and edi, 0x81ff
mov ecx, dword [esp + 0x10]
mov edx, dword [esp]
cmp dword [0x4b7674], 2
jne 0x45feb7
mov eax, dword [0x4b7650]
test eax, eax
je 0x45feb7
push ecx
push 0
push 3
push 0x4b7640
lea ecx, [esp + 0x8c]
push ecx
push edi
push edx
call eax
mov edi, eax
jmp 0x45ff04
push ecx
push 0
push 0x4b7654
lea eax, [esp + 0x88]
push eax
push edi
push edx
call dword [sym.imp.USER32.dll_ToAsciiEx]
test eax, eax
jle 0x460096
mov edi, eax
xor eax, eax
mov cl, byte [eax + eax + 0x4b7654]
mov byte [eax + 0x4b765a], cl
inc eax
cmp edi, eax
jne 0x45fedb
xor eax, eax
push 3
push 0x4b7640
push edi
push 0x4b765a
push eax
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test edi, edi
jle 0x460096
mov eax, dword [esp + 4]
mov ecx, ebp
xor ebx, ebx
xor cl, 1
inc al
movzx eax, al
mov dword [esp], eax
movzx eax, cl
lea eax, [esp + eax*2 + 0x28]
mov dword [esp + 4], eax
mov eax, esi
xor al, 1
mov esi, eax
movzx ecx, word [ebx + ebx + 0x4b7640]
mov edx, dword [0x4b762c]
movzx ebp, cx
cmp edx, 3
mov word [esp + 0x24], bp
je 0x45ff6e
cmp edx, 2
jne 0x45ffb8
lea edx, [ecx - 0x20]
cmp dx, 0x5f
ja 0x45ffb8
mov dword [0x4b7648], ebp
mov dword [0x4b762c], 3
jmp 0x460051
lea edx, [ecx - 0x20]
cmp dx, 0x5f
ja 0x45ffb8
mov dword [0x4b762c], 0
push ebp
push dword [0x4b7648]
call fcn.0046d355
add esp, 8
cmp eax, 0xffffffff
je 0x460120
mov word [esp + 0x26], ax
push 1
lea eax, [esp + 0x2a]
push eax
push dword [0x4b7660]
call fcn.00450dd1
add esp, 0xc
jmp 0x460051
cmp dword [esp + 0x8a0], 0
mov eax, 0
mov dword [0x4b762c], eax
js 0x45fff0
cmp cx, 0x7f
mov eax, esi
seta dl
or dl, al
jne 0x460029
mov word [esp + 0x28], 0x1b
push ebp
call fcn.0046d247
add esp, 4
mov word [esp + 0x2a], ax
jmp 0x460035
mov ecx, dword [0x4b763c]
mov eax, dword [0x4b7660]
test ecx, ecx
je 0x46005c
cmp byte [eax + 0xd5], 0
je 0x460066
mov word [esp + 0x26], cx
push 1
lea ecx, [esp + 0x2a]
push ecx
push eax
call fcn.00450dd1
add esp, 0xc
mov dword [0x4b763c], 0
jmp 0x46004a
mov word [esp + 0x28], 0x1b
mov word [esp + 0x2a], cx
push dword [esp]
push dword [esp + 8]
push dword [0x4b7660]
call fcn.00450dd1
add esp, 0xc
xor ecx, ecx
call fcn.00460ede
inc ebx
cmp edi, ebx
jne 0x45ff30
jmp 0x4600cd
push 1
lea ecx, [esp + 0x28]
push ecx
push eax
jmp 0x460042
mov edx, dword [eax + 0x1060]
cmp dword [edx + 0xc], 0xfde9
je 0x460008
cmp byte [0x4b615c], 0
jne 0x460008
mov byte [esp + 0x28], cl
push 1
lea ecx, [esp + 0x2c]
push ecx
push 0xffffffffffffffff
push eax
call fcn.00450e80
add esp, 0x10
jmp 0x46001d
mov eax, ebp
test al, al
je 0x4600d8
cmp word [0x4b7640], 0
mov ecx, dword [esp + 0x894]
mov esi, dword [esp]
je 0x4600eb
mov eax, dword [0x4b7660]
cmp byte [eax + 0xd5], 0
je 0x460147
mov word [0x4b7640], 0xa
jmp 0x4600eb
mov word [0x4b7640], 0
jmp 0x460128
mov ecx, dword [esp + 0x894]
mov esi, dword [esp]
mov word [0x4b7640], 0
cmp esi, 0x12
jne 0x46010b
push 0x56
push dword [0x4b7678]
call fcn.00402fe1
mov ecx, dword [esp + 0x89c]
add esp, 8
test al, al
je 0x460128
push dword [esp + 0x8a0]
push ebx
push dword [esp + 0x8a0]
push ecx
jmp 0x45de31
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
xor ebx, ebx
mov ecx, dword [esp + 0x87c]
xor ecx, esp
call fcn.0046f0c8
mov eax, ebx
add esp, 0x880
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov eax, dword [eax + 0x1060]
cmp dword [eax + 0xc], 0xfde9
je 0x4600c2
cmp byte [0x4b615c], 0
je 0x4600eb
jmp 0x4600c2
lea eax, [esp + 0x38]
sub esi, eax
mov eax, esi
jmp 0x45fad0
mov byte [esi], 0xd
jmp 0x45fbd1
mov eax, 2
jmp case.0x45fcb9.112
mov eax, 3
jmp case.0x45fcb9.112
mov eax, 4
jmp case.0x45fcb9.112
mov eax, 5
jmp case.0x45fcb9.112
mov eax, 6
jmp case.0x45fcb9.112
mov eax, 7
jmp case.0x45fcb9.112
mov eax, 8
jmp case.0x45fcb9.112
mov eax, 9
jmp case.0x45fcb9.112
mov eax, 0xa
jmp case.0x45fcb9.112
mov eax, 0xb
jmp case.0x45fcb9.112
mov eax, 0xc
jmp case.0x45fcb9.112
mov eax, 0xd
jmp case.0x45fcb9.112
mov eax, 0xe
jmp case.0x45fcb9.112
mov eax, 0xf
jmp case.0x45fcb9.112
mov eax, 0x10
jmp case.0x45fcb9.112
mov eax, 0x11
jmp case.0x45fcb9.112
mov eax, 0x12
jmp case.0x45fcb9.112
mov eax, 0x13
jmp case.0x45fcb9.112
mov eax, 0x14
mov edx, dword [esp + 8]
mov ecx, edx
and edx, 1
shr ecx, 1
push ecx
push edx
push eax
push dword [0x4b7660]
push esi
call fcn.00450a26
add esp, 0x14
add eax, esi
lea ecx, [esp + 0x38]
sub eax, ecx
jmp 0x45fad0