Function at 0x45d86a
Capabilities:
Check http status code
Create process on windows
Get geographical location
Get keyboard layout
Log keystrokes via input method manager
Log keystrokes via polling
Resolve function by parsing pe exports
Terminate process

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.004561ec
add esp, 8
mov esi, eax
push dword [0x48f058]
push str._s_Command_Line_Error
call fcn.004560a0
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.00410c0e
add esp, 4
push edi
call fcn.00410c0e
add esp, 4
push 1
call fcn.0047a8db
push ebp
push ebx
push edi
push esi
sub esp, 0x884
mov eax, dword [0x4b6078]
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 0x45d97b
cmp ecx, 0xff
jle 0x45d9e0
lea eax, [ecx - 0x100]
cmp eax, 0x17
ja case.0x45da17.515
jmp dword [eax*4 + 0x498790]
push edx
push 3
call fcn.0046a109
add esp, 8
mov eax, ebx
or eax, 2
cmp eax, 0xe7
jne 0x45db65
cmp dword [esp + 0x89c], 0x100
jne 0x45ddc5
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 0x4609ad
cmp ecx, 0x231
jle 0x45da08
cmp ecx, 0x30e
jg 0x45daa1
mov esi, edx
cmp ecx, 0x232
je 0x45dc98
cmp ecx, 0x286
je 0x45dc78
cmp ecx, 0x307
mov edx, esi
jne case.0x45da17.515
cmp byte [0x4b8610], 0
jne 0x45d9d4
push 2
push dword [0x4b8660]
call fcn.00451724
add esp, 8
mov byte [0x4b8610], 0
jmp 0x4609ad
lea eax, [ecx - 1]
cmp eax, 0x14
ja case.default.0x45d9ec
jmp dword [eax*4 + 0x49873c]
xor ecx, ecx
inc ecx
call fcn.00464fb2
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x4609ad
lea eax, [ecx - 0x200]
cmp eax, 8
ja case.default.0x45da17
jmp dword [eax*4 + 0x4987f0]
cmp dword [0x4b861c], ebx
jne 0x45da3a
cmp dword [0x4b8620], edx
jne 0x45da3a
cmp dword [0x4b8614], 0x200
je 0x45da5c
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00464fb2
mov edx, esi
mov dword [0x4b861c], ebx
mov dword [0x4b8620], esi
mov dword [0x4b8614], 0x200
mov edi, edx
push edx
push 5
call fcn.0046a109
add esp, 8
mov eax, ebx
xor ebx, ebx
test al, 0x13
je 0x4609af
mov esi, eax
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, ebp
jne 0x4609af
mov eax, esi
test al, 1
jne 0x45f31a
xor ecx, ecx
test al, 0x10
sete cl
or ecx, 2
mov dword [esp], ecx
jmp 0x45f320
lea eax, [ecx - 0x8002]
cmp eax, 4
ja case.default.0x45dab0
jmp dword [eax*4 + 0x498814]
test ebx, ebx
setne byte [0x4b8610]
jmp case.0x45d9ec.1
cmp ecx, 0x214
je 0x45e48e
cmp ecx, 0x231
jne case.0x45da17.515
push 1
mov esi, edx
call fcn.0041e9df
mov edx, esi
add esp, 4
mov byte [0x4b8630], 1
mov byte [0x4b8611], 0
jmp case.0x45d9ec.1
cmp ecx, 0x51
je 0x45e5aa
cmp ecx, 0xa0
jne case.0x45da17.515
cmp dword [0x4b8624], ebx
jne 0x45db2f
cmp dword [0x4b8628], edx
jne 0x45db2f
cmp dword [0x4b8614], 0xa0
je 0x45db51
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00464fb2
mov edx, esi
mov dword [0x4b8624], ebx
mov dword [0x4b8628], esi
mov dword [0x4b8614], 0xa0
push edx
push 5
mov esi, edx
call fcn.0046a109
mov edx, esi
add esp, 8
jmp case.0x45d9ec.1
push 0x43
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push 0x45
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
mov bh, al
push 0x5e
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
mov bl, al
push 0x50
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
mov byte [esp + 0x1c], 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 + 0xc], edi
je 0x45e5f1
cmp dword [esp + 0x8a0], 0x12
mov eax, dword [esp + 0x8a4]
jne 0x45dbfb
and eax, 0x1000000
je 0x45dbfb
mov al, byte [esp + 0x92]
mov byte [esp + 0x125], al
cmp edi, 3
jne 0x45e6eb
mov edi, dword [esp + 0x8a0]
cmp edi, 0x90
je 0x45e738
jmp 0x45f13d
mov eax, ebx
and eax, 0xfffffff0
cmp eax, 0x14f
jg 0x45e33d
cmp eax, 0x4f
jg 0x45e7c8
cmp eax, 0x2f
jg 0x45eced
cmp eax, 0x10
je 0x45f357
cmp eax, 0x20
je 0x45ed38
jmp 0x45f532
mov eax, ebx
mov word [esp + 0x3c], bx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x45e36e
mov word [0x4b8632], bx
jmp 0x4609ad
test ebx, 0xff00
je 0x45e769
lea eax, [esp + 0x80]
mov byte [eax + 1], bl
mov byte [eax], bh
push 2
push eax
jmp 0x45e783
push 0
call fcn.0041e9df
add esp, 4
cmp byte [0x4b8611], 1
mov edx, esi
mov byte [0x4b8630], 0
jne case.0x45d9ec.1
push 0x62
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push 0x75
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov ebp, ebx
mov ebx, eax
push 0x76
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
push edi
push ebx
mov ebx, ebp
mov ebp, dword [esp + 0x8a0]
push eax
push dword [0x4b8660]
call fcn.0044b1f4
add esp, 0x10
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x45e5d8
cmp ecx, 0x30f
je 0x45e6ac
cmp ecx, 0x311
jne case.0x45da17.515
cmp ebx, ebp
je case.0x45d9ec.1
mov eax, dword [0x4b7ca8]
test eax, eax
je case.0x45d9ec.1
mov esi, edx
call fcn.0046365c
mov edx, esi
test eax, eax
je case.0x45d9ec.1
mov edi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x45dd6a
push edi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, edi
call fcn.0046459c
jmp 0x45e5d8
test bl, 8
jne 0x45dd97
push 0x8e
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
cmp eax, 2
jne 0x45ea29
xor ecx, ecx
inc ecx
call fcn.00464fb2
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 [0x4b7c94]
call dword [sym.imp.USER32.dll_TrackPopupMenu]
mov edx, dword [esp + 0x8a4]
jmp case.0x45d9ec.1
and ebx, 0xfffffffd
mov dword [esp], 3
jmp 0x45de03
or ebx, 0x10
mov dword [esp], 2
jmp 0x45ea33
and ebx, 0xfffffffe
xor eax, eax
inc eax
mov edi, ebx
mov dword [esp], eax
jmp 0x45de05
and ebx, 0xffffffef
mov dword [esp], 2
mov edi, ebx
mov dword [esp + 8], 0
jmp 0x45ea3b
or ebx, 1
xor eax, eax
inc eax
mov edi, ebx
mov dword [esp], eax
jmp 0x45ea35
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00464fb2
push 0
push dword [0x4b8660]
call fcn.0045181e
add esp, 8
call dword [sym.imp.USER32.dll_DestroyCaret]
xor eax, eax
dec eax
mov dword [0x4b606c], eax
mov dword [0x4b6068], eax
jmp 0x45e0f4
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 [0x4b7ca8]
test eax, eax
je 0x45de86
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 0x45dea6
push 0xaf9
push str..._windows_window.c
push str._wintw_hdc
call fcn.0047bdbf
add esp, 0xc
mov eax, dword [0x4b8660]
mov ebx, dword [0x4b7c78]
mov dword [0x4b7ce8], esi
xor ecx, ecx
mov ebp, dword [0x4b7c6c]
mov dword [esp + 8], esi
cmp byte [eax + 0x106d], 0
mov dword [esp], eax
mov eax, ebx
not eax
sete cl
add eax, dword [esp + 0x94]
cdq
idiv ebp
mov edi, dword [0x4b7c7c]
mov esi, dword [0x4b7c68]
mov dword [esp + 4], eax
mov eax, edi
not eax
add eax, dword [esp + 0x90]
cdq
idiv esi
mov dword [esp + 0x18], 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 + 8]
push dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x18]
push eax
push dword [esp + 0x14]
call fcn.0044bec1
add esp, 0x18
xor ebx, ebx
cmp dword [esp + 0x84], ebx
mov dword [0x4b7ce8], ebx
jne 0x45df9f
mov ecx, dword [0x4b7c7c]
cmp dword [esp + 0x88], ecx
jl 0x45df9f
mov eax, dword [0x4b7c78]
cmp dword [esp + 0x8c], eax
jl 0x45df9f
mov edx, dword [0x4b8660]
mov esi, dword [edx + 0x12c]
imul esi, dword [0x4b7c68]
add esi, ecx
cmp dword [esp + 0x90], esi
jge 0x45df9f
mov ecx, dword [edx + 0x128]
imul ecx, dword [0x4b7c6c]
add ecx, eax
cmp dword [esp + 0x94], ecx
jl 0x45e071
push dword [0x4b8208]
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 [0x4b8208]
push ebx
push ebx
call dword [sym.imp.GDI32.dll_CreatePen]
mov ebx, eax
push eax
push ebp
call esi
mov dword [esp + 4], 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 [0x4b7c78]
mov esi, dword [0x4b7c7c]
mov edx, dword [ecx + 0x128]
mov ecx, dword [ecx + 0x12c]
imul edx, dword [0x4b7c6c]
imul ecx, dword [0x4b7c68]
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]
call edi
push dword [esp + 4]
push ebp
call esi
push ebx
call edi
mov esi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0xd
call esi
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebp
call edi
push 6
call esi
push eax
push ebp
call edi
lea eax, [esp + 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 0x4609ad
push 1
push dword [0x4b8660]
mov esi, edx
call fcn.0045181e
add esp, 8
push dword [0x4b7c6c]
push dword [0x4b7c68]
push dword [0x4b7c80]
push ebp
call dword [sym.imp.USER32.dll_CreateCaret]
push ebp
call dword [sym.imp.USER32.dll_ShowCaret]
xor ecx, ecx
call fcn.004646a1
mov dword [0x4b862c], 0
push dword [0x4b8660]
call fcn.00448fe4
mov edx, esi
add esp, 4
jmp case.0x45d9ec.1
mov esi, edx
jmp 0x45e5d3
push 0x71
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
cmp ebx, 1
jne 0x45e79c
mov esi, ebx
push 0x74
push dword [0x4b8678]
call fcn.00402fed
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 0x45efbb
xor ecx, ecx
inc ecx
call fcn.00464fb2
push dword [0x48f058]
push str._s_Exit_Confirmation
call fcn.004560a0
add esp, 8
cmp byte [0x4b7cc0], 0
mov esi, eax
jne 0x45e1b0
push 5
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
je 0x45e1b0
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 0x45e67e
push ebp
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x45e67e
push 0x8a
push dword [0x4b8678]
mov esi, edx
call fcn.00402fed
mov edx, esi
add esp, 8
test al, al
je case.0x45d9ec.1
call fcn.00464ec4
call fcn.004614c6
push dword [0x4b8660]
call fcn.0044be4c
jmp 0x45e0ff
bt edx, 0xb
jae case.0x45d9ec.1
cmp dword [0x4b8674], 2
jb case.0x45d9ec.1
push ebp
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 0x45e2bd
mov edi, eax
push ebp
push 1
push eax
call fcn.00410b8c
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 [0x4b7cc8], ebp
je 0x45e2b1
xor ebp, ebp
movzx ecx, word [ebx + ebp]
lea eax, [ebx + ebp]
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x45e299
lea esi, [ebp + 2]
cmp esi, edi
jge 0x45e299
movzx ecx, word [eax + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
jne 0x45e299
push 2
push eax
push dword [0x4b8660]
call fcn.0045146a
add esp, 0xc
mov ebp, esi
jmp 0x45e2aa
push 1
push eax
push dword [0x4b8660]
call fcn.0045146a
add esp, 0xc
add ebp, 2
cmp ebp, edi
jl 0x45e256
push ebx
call fcn.0047e1cb
add esp, 4
mov esi, dword [esp]
push esi
push dword [esp + 0x89c]
call sub.IMM32.dll_ImmReleaseContext
jmp 0x45e6e3
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 0x45e5d8
mov eax, ebx
xor ebx, ebx
cmp eax, 0x4d2
jne 0x4609af
push 0x4d2
push ebp
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [esp + 0x80]
push eax
push dword [0x4b7cb0]
call fcn.00454a94
add esp, 8
test al, al
je 0x4609af
push dword [esp + 0x80]
call fcn.00461679
add esp, 4
jmp 0x4609af
cmp eax, 0x18f
jg 0x45e7f5
cmp eax, 0x16f
jg 0x45ee06
cmp eax, 0x150
je 0x45f364
cmp eax, 0x160
je 0x45ed38
jmp 0x45f532
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xdc00
jne 0x45e82a
movzx eax, word [0x4b8632]
mov ecx, eax
and ecx, 0xfc00
movzx ecx, cx
cmp ecx, 0xd800
jne 0x45e82a
lea ecx, [esp + 0x80]
mov word [ecx], ax
mov eax, 2
mov word [ecx + 2], bx
push eax
push ecx
jmp 0x45e843
movzx eax, bx
cmp eax, 7
ja case.0x45d9ec.1
mov edi, edx
jmp dword [eax*4 + 0x498a40]
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 0x45f837
mov eax, dword [esp + 0x98]
jmp 0x45f843
cmp dword [0x4b7c98], ebx
jne case.0x45d9ec.1
mov esi, 0x4b7c9c
push 0
push esi
call fcn.0041e4a8
add esp, 8
push 1
push esi
call fcn.0041e4a8
add esp, 8
call fcn.00461219
jmp 0x4609ad
cmp dword [esp + 0x89c], 0x20a
je 0x45e450
mov eax, dword [esp + 0x89c]
cmp dword [0x4b6060], eax
jne case.0x45d9ec.1
cmp dword [esp + 0x89c], 0x20a
mov edi, edx
jne 0x45ee8a
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 + 0xc], ebx
mov dword [esp + 4], eax
mov dword [0x4b8634], esi
jmp 0x45f67a
mov dword [esp + 8], edx
push 0x71
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
cmp eax, 3
je 0x45e856
test eax, eax
je 0x45e919
push 0x82
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edx, dword [0x4b8660]
mov esi, eax
mov ecx, eax
mov eax, dword [esp + 0x8a4]
sub esi, dword [0x4b7c7c]
sub ecx, dword [0x4b7c78]
mov edi, dword [edx + 0x12c]
mov ebp, dword [eax + 8]
mov ebx, eax
mov dword [esp + 0x24], edx
add esi, esi
add ecx, ecx
add esi, dword [0x4b7c70]
add ecx, dword [0x4b7c74]
mov eax, edi
mov dword [esp + 0x10], edi
mov dword [esp], ebp
shr eax, 0x1f
add eax, edi
mov edi, dword [ebx]
sub ebp, esi
mov dword [esp + 0x18], ecx
mov ebx, ebp
sar eax, 1
sub ebx, edi
mov dword [esp + 0x14], 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 + 0x1c], eax
sub eax, ecx
mov ecx, dword [esp + 0x8a4]
mov dword [esp + 0x20], eax
mov ecx, dword [ecx + 4]
sub eax, ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x8a0]
add eax, edx
cdq
idiv edi
mov dword [esp + 0xc], eax
mov eax, ebx
cdq
idiv dword [esp + 0x10]
add esi, dword [esp + 0x14]
sub ebx, edx
add esi, ebx
cmp ecx, 7
ja 0x45f60f
mov eax, 0x92
bt eax, ecx
jae 0x45f60f
mov edx, dword [esp + 0x8a4]
sub ebp, ebx
mov eax, ecx
mov ecx, 0x128
mov dword [edx], ebp
add ecx, dword [0x4b8660]
jmp 0x45f625
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.0047cd48
add esp, 4
mov dword [0x4b860c], eax
call fcn.004645e0
mov edx, esi
push edx
push ebx
push dword [esp + 0x8a4]
push ebp
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ebx, eax
jmp 0x4609af
push 0x100
push 0
push esi
call fcn.00472bb0
add esp, 0xc
mov edi, dword [esp + 0x8a0]
jmp 0x45f144
push edx
call dword [sym.imp.KERNEL32.DLL_GlobalLock]
mov esi, eax
test ebx, ebx
je 0x45e9bd
test esi, esi
je 0x45ea19
lea ebx, [esi - 2]
cmp word [ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x45e629
sub ebx, esi
mov ebp, ebx
sar ebp, 1
lea eax, [ebp + 1]
push 0
push 2
push eax
call fcn.00410b8c
add esp, 0xc
mov edi, eax
push ebx
push esi
push eax
call fcn.004720b0
add esp, 0xc
mov word [edi + ebx], 0
push ebp
jmp 0x45ea08
mov byte [0x4b8612], 1
jmp case.0x45d9ec.1
push dword [edx + 0xc]
push dword [edx + 8]
push dword [edx + 4]
mov esi, edx
call dword [edx]
add esp, 0xc
push esi
jmp 0x45ea1c
push 0
push 8
push 1
mov esi, edx
call fcn.00410b8c
add esp, 0xc
mov dword [eax], ebx
mov dword [eax + 4], esi
push eax
push 0x4650aa
call fcn.0040166a
add esp, 8
jmp 0x4609ad
xor ebx, ebx
cmp dword [0x4b7ca8], 0
je 0x4609af
call fcn.0046365c
test eax, eax
je 0x4609af
mov esi, eax
push eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x45e6dc
push esi
call dword [sym.imp.GDI32.dll_UpdateColors]
mov ecx, esi
call fcn.0046459c
xor ebx, ebx
inc ebx
jmp 0x4609af
cmp edi, 1
mov edi, dword [esp + 0x8a0]
jg 0x45f13d
mov eax, dword [0x4b8660]
mov edi, dword [esp + 0x8a0]
cmp byte [eax + 0x13d], 0
je 0x45f13d
mov edi, dword [esp + 0x8a0]
cmp edi, 0x90
jne 0x45f13d
mov edi, dword [esp + 0x8a0]
mov al, bh
xor al, 1
je 0x45f13d
cmp byte [esp + 0x90], 0
js 0x45f138
cmp dword [esp + 0x8a4], 0x3fffffff
mov edi, 0x2b
ja 0x45f13d
xor byte [esp + 0x110], 1
jmp 0x45f13d
lea esi, [esp + 0x80]
mov byte [esi], bl
push dword [0x4b8660]
call fcn.00449e6a
add esp, 4
push 1
push esi
push dword [0x4b860c]
push dword [0x4b8660]
call fcn.00451518
add esp, 0x10
jmp 0x4609ad
mov eax, ebx
mov ecx, 2
or eax, 2
cmp eax, ecx
jne 0x45e7b7
push dword [0x4b85c8]
push ebp
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ebp, ebx
test ebx, ebx
je 0x45eec3
xor eax, eax
jmp 0x45ef81
cmp eax, 0x6f
jg 0x45ee28
cmp eax, 0x50
je 0x45f371
cmp eax, 0x60
jne 0x45f532
push dword [0x4b8660]
mov esi, edx
call fcn.0044ae12
jmp 0x45e0ff
cmp eax, 0xf08f
jg 0x45ee4b
cmp eax, 0x190
je 0x45f3c6
cmp eax, 0x1a0
jne 0x45f532
push 2
push dword [0x4b8660]
mov esi, edx
call fcn.0044c83d
jmp 0x45db5b
and ebx, 0xf800
cmp ebx, 0xd800
je 0x4609ad
lea eax, [esp + 0x3c]
push 1
push eax
push dword [0x4b8660]
call fcn.0045146a
add esp, 0xc
jmp 0x4609ad
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45e884
cmp byte [esp + 0x92], 0
js 0x45e4b3
cmp byte [esp + 0x125], 0
js 0x45e4b3
cmp byte [0x4b8611], 0
jne 0x45e919
push 0x76
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov ecx, dword [0x4b8660]
mov ecx, dword [ecx + 0x128]
cmp eax, ecx
jne 0x45e8d5
push 0x75
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov ecx, dword [0x4b8660]
cmp eax, dword [ecx + 0x12c]
je 0x45e919
mov ecx, dword [ecx + 0x128]
push ecx
push 0x76
push dword [0x4b8678]
call fcn.004036be
add esp, 0xc
mov eax, dword [0x4b8660]
push dword [eax + 0x12c]
push 0x75
push dword [0x4b8678]
call fcn.004036be
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 + 8]
mov ecx, dword [0x4b7c68]
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 [0x4b7c70]
sub ebp, dword [0x4b7c74]
add eax, esi
cdq
idiv ecx
mov ecx, dword [0x4b7c6c]
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.0041e624
add esp, 0xc
imul ebx, dword [0x4b7c6c]
imul edi, dword [0x4b7c68]
mov ecx, dword [esp + 0x8a0]
sub ebp, ebx
sub esi, edi
je 0x45f862
cmp ecx, 7
ja 0x45f85b
mov eax, 0x92
bt eax, ecx
jae 0x45f85b
mov eax, dword [esp + 8]
add dword [eax], esi
jmp 0x45f862
test esi, esi
je 0x45ea19
push esi
call fcn.0047f0f0
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.00410b8c
add esp, 0xc
mov edi, eax
push esi
call fcn.0047f0f0
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.0044c888
add esp, 0xc
jmp 0x45ea1b
xor edi, edi
push edi
call fcn.00410c0e
add esp, 4
jmp 0x4609ad
or ebx, 2
mov dword [esp], 3
mov edi, ebx
mov al, 1
mov dword [esp + 8], eax
xor ebp, ebp
inc ebp
mov ecx, ebp
call fcn.00464fb2
lea esi, [esp + 0x3c]
push esi
call dword [sym.imp.USER32.dll_GetCursorPos]
push 0
push dword [esi + 4]
push dword [esi]
call fcn.0045cac0
mov bl, 1
test eax, eax
je 0x45ea8d
lea esi, [esp + 0x80]
mov dword [esi], 0x28
push esi
push eax
call fcn.0045cb19
mov eax, dword [esi + 4]
cmp eax, dword [esp + 0x3c]
jne 0x45ea8d
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x40]
setne bl
call fcn.00464677
cmp dword [esp], 1
sete cl
test bl, bl
jne 0x45ead2
and cl, byte [esp + 8]
je 0x45ead2
test al, al
je 0x45ead2
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 0x4609ad
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45eb03
cmp byte [esp + 0x92], 0
mov edx, dword [esp + 0x8a4]
mov ebx, edi
js 0x45eb16
mov al, byte [esp + 0x125]
shr al, 7
jmp 0x45eb18
mov edx, dword [esp + 0x8a4]
mov dword [esp + 4], 0
mov ebx, edi
jmp 0x45eb1c
mov al, 1
mov dword [esp + 4], eax
mov esi, dword [0x4b7c6c]
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 [0x4b7c78]
shl ecx, 0x10
cdq
idiv esi
mov esi, dword [0x4b7c68]
movsx edx, di
mov dword [esp + 0x18], eax
lea eax, [edx + 1]
sub eax, esi
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4b7c7c]
cdq
idiv esi
cmp byte [esp + 8], 0
mov edi, eax
je 0x45ebef
call dword [sym.imp.USER32.dll_GetMessageTime]
cmp byte [0x4b7cdd], 0
mov esi, eax
je 0x45eba3
test bl, 4
je 0x45ec44
push 0x94
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
je 0x45ec44
mov eax, dword [esp]
mov dword [esp + 0x1c], edi
mov dword [esp + 8], esi
cmp dword [0x4b7c88], eax
jne 0x45ec89
mov eax, esi
sub eax, dword [0x4b8638]
cmp eax, dword [0x4b7c8c]
jge 0x45ec89
mov eax, dword [0x4b7c84]
cmp eax, 1
je 0x45f8f6
cmp eax, 2
jne 0x45f900
mov ebp, 3
jmp 0x45ec91
mov esi, dword [esp]
mov eax, ebx
mov dword [esp + 0xc], ebx
and ebx, 4
mov ebp, eax
shr ebx, 2
and ebp, 8
shr ebp, 3
mov ecx, esi
call fcn.0046504e
movzx ecx, byte [esp + 4]
push ecx
push ebp
push ebx
push dword [esp + 0x24]
push edi
push 5
push eax
push esi
push dword [0x4b8660]
call fcn.0044cd5d
add esp, 0x24
xor ebx, ebx
test byte [esp + 0xc], 0x13
jne 0x4609af
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x4609af
mov ebp, dword [esp]
mov esi, edi
mov edi, ebx
and ebx, 4
mov dword [0x4b7c88], 0
and edi, 8
shr ebx, 2
shr edi, 3
mov ecx, ebp
call fcn.0046504e
movzx ecx, byte [esp + 4]
push ecx
push edi
push ebx
push dword [esp + 0x24]
push esi
push 1
push eax
push ebp
push dword [0x4b8660]
call fcn.0044cd5d
add esp, 0x24
jmp 0x45ecda
mov eax, dword [esp]
mov dword [0x4b7c88], eax
mov dword [0x4b7c84], ebp
mov esi, dword [esp]
mov edi, ebx
and ebx, 4
and edi, 8
shr ebx, 2
shr edi, 3
mov ecx, esi
call fcn.0046504e
movzx ecx, byte [esp + 4]
push ecx
push edi
push ebx
push dword [esp + 0x24]
push dword [esp + 0x2c]
push ebp
push eax
push esi
push dword [0x4b8660]
call fcn.0044cd5d
add esp, 0x24
mov esi, dword [esp + 8]
mov dword [0x4b8638], esi
mov eax, dword [esp + 0x898]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
jmp 0x4609ad
cmp eax, 0x30
je 0x45ed38
cmp eax, 0x40
jne 0x45f532
cmp dword [0x4b7cc4], 0
jne case.0x45d9ec.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.00449ed1
add esp, 8
call fcn.0046129a
jmp 0x45e5d8
cmp byte [0x4b8684], 0
mov eax, 0x4acb35
mov ebp, 0x4a6f11
cmove ebp, eax
cmp ebx, 0x160
je 0x45f3df
cmp ebx, 0x30
jne 0x45f41d
call fcn.00456342
mov ebx, eax
lea eax, [eax + 0xc]
push dword [0x4b8678]
push eax
call fcn.00403ade
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 + 4], 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 0x45edde
push dword [esp]
push edi
push edi
push 2
push esi
call dword [sym.imp.KERNEL32.DLL_MapViewOfFile]
test eax, eax
je 0x45edde
mov edi, eax
push dword [esp]
push dword [ebx]
push eax
call fcn.004720b0
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.DLL_UnmapViewOfFile]
push ebx
call fcn.004563a4
add esp, 4
push dword [esp]
push esi
push ebp
push str.putty__s_p:_u
call fcn.004560a0
add esp, 0x10
xor ebp, ebp
mov dword [esp], esi
mov esi, eax
inc ebp
jmp 0x45f448
cmp eax, 0x170
je 0x45f4d9
cmp eax, 0x180
jne 0x45f532
mov esi, edx
call fcn.00465002
jmp 0x45e5d8
cmp eax, 0x70
je 0x45f4f7
cmp eax, 0x140
jne 0x45f532
push 0
push ebp
mov esi, edx
call fcn.004665fd
jmp 0x45db5b
cmp eax, 0xf090
je 0x45f523
cmp eax, 0xf100
jne 0x45f532
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00464fb2
mov edx, esi
test esi, esi
jne case.0x45d9ec.1
push 0
push 0x20
push 0x102
push ebp
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x45e5d8
add dword [0x4b8634], ebx
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45f666
mov cl, byte [esp + 0x90]
mov al, byte [esp + 0x91]
shr cl, 7
shr al, 7
mov dword [esp + 4], ecx
jmp 0x45f670
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.0040308d
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.00402fed
add esp, 8
mov ecx, esi
and esi, 0xffdfffff
or ecx, 0x200000
test al, al
cmovne esi, ecx
cmp esi, ebx
je 0x45ef51
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 + 0x4b7c98]
call ebx
add esi, 4
jne 0x45ef5c
xor ebx, ebx
cmp byte [0x4b8613], 0
mov al, 1
jne 0x4609af
mov esi, ebp
cmp ebp, 2
jne 0x45efb9
cmp byte [0x4b8612], 1
mov cl, 1
jne 0x45efbb
xor ebx, ebx
mov ebp, eax
mov byte [0x4b8612], bl
mov byte [0x4b8613], bl
call fcn.004650c0
cmp byte [0x4b8613], bl
mov cl, 1
mov eax, ebp
je 0x45efbb
jmp 0x4609af
xor ecx, ecx
cmp edi, 1
mov byte [0x4b8613], 1
jne 0x45efcf
xor ecx, ecx
dec ecx
jmp 0x45fa92
mov ebp, eax
push 0x82
push dword [0x4b8678]
mov ebx, ecx
call fcn.0040308d
add esp, 8
mov ecx, dword [esp + 0x8a4]
movzx edx, cx
shr ecx, 0x10
test bl, bl
je 0x45f064
test edi, edi
mov byte [0x4b8631], 1
jne 0x45fa90
mov eax, edx
xor edx, edx
idiv dword [0x4b7c68]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
mov eax, ecx
cmovle edi, esi
xor edx, edx
idiv dword [0x4b7c6c]
test eax, eax
cmovg esi, eax
cmp byte [0x4b8630], 1
jne 0x45fa6f
mov byte [0x4b8611], 1
push esi
push 0x76
push dword [0x4b8678]
call fcn.004036be
add esp, 0xc
push edi
push 0x75
push dword [0x4b8678]
call fcn.004036be
add esp, 0xc
jmp 0x45fa90
mov ebx, ebp
test bl, bl
je 0x45f0db
cmp byte [0x4b8631], 1
jne 0x45f0db
cmp edi, 2
mov byte [0x4b8631], 0
je 0x45fa90
test edi, edi
jne 0x45f0d1
add eax, eax
sub edx, eax
mov ebx, eax
mov eax, edx
cdq
idiv dword [0x4b7c68]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
cmovle edi, esi
sub ecx, ebx
mov eax, ecx
cdq
idiv dword [0x4b7c6c]
test eax, eax
cmovg esi, eax
push 0x62
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
push eax
push edi
push esi
push dword [0x4b8660]
call fcn.0044b1f4
add esp, 0x10
mov ecx, 2
jmp 0x45fa92
cmp esi, 1
je 0x45fa97
test edi, edi
mov dword [esp + 8], ecx
je 0x45fce1
cmp edi, 3
jne 0x45fa90
mov esi, eax
mov edi, edx
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x45fcdd
cmp byte [esp + 0x92], 0
js 0x45fa90
cmp byte [esp + 0x125], 0
mov eax, esi
mov edx, edi
jns 0x45fce1
jmp 0x45fa90
mov edi, 0x90
push esi
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov edx, dword [esp + 0x8a4]
mov ebp, edx
and ebp, 0xc0000000
cmp ebp, 0x40000000
jne 0x45f16e
mov eax, dword [0x4b8660]
mov al, byte [eax + 0x13f]
test al, al
jne 0x4609ad
bt edx, 0x1d
mov dword [esp + 0x14], ebp
mov byte [esp + 0x10], bh
jae 0x45f1af
cmp byte [esp + 0x125], 0
js 0x45f1af
mov al, byte [esp + 0x91]
test edx, edx
mov cl, 1
setns byte [esp]
mov dword [esp + 0x18], ecx
test al, al
jns 0x45f1c4
test bl, bl
je 0x45f8e9
mov byte [esp + 0x92], 0
jmp 0x45f1c4
mov al, byte [esp + 0x91]
test edx, edx
setns byte [esp]
mov dword [esp + 0x18], 0
movzx ebp, byte [esp + 0x90]
shr al, 6
movzx ebx, al
and ebx, 2
shr ebp, 7
cmp dword [0x4b862c], 0
jne 0x45f23b
mov eax, 0x5d
mov dword [0x4b864c], 0x100
push eax
push dword [0x4b8678]
call fcn.00402fed
mov edx, dword [esp + 0x8ac]
add esp, 8
cmp edi, 0x12
mov ecx, 0x5d
mov esi, edi
lea esi, [esp + 0x80]
sete ah
cmp edi, ecx
je 0x45f235
mov edx, dword [esp + 0x8a4]
shr edx, 0x18
and al, dl
mov edx, dword [esp + 0x8a4]
and ah, al
je 0x45f23b
mov dword [0x4b864c], edi
or ebp, ebx
cmp edi, dword [0x4b864c]
mov eax, dword [0x4b862c]
mov ebx, edi
mov edi, ebp
jne 0x45f25f
cmp edx, 0x3fffffff
ja 0x45f26d
test eax, eax
jne 0x45f26d
xor ecx, ecx
inc ecx
jmp 0x45f27a
cmp ebx, 0x11
je 0x45f2a4
xor ecx, ecx
cmp eax, 1
je 0x45f27a
jmp 0x45f2a4
cmp eax, 1
setne al
xor ecx, ecx
or al, byte [esp]
je 0x45f295
cmp byte [esp + 0x18], 0
mov al, 1
mov dword [0x4b862c], ecx
mov dword [esp + 4], eax
mov eax, ecx
jne 0x45f56b
jmp 0x45f2d8
mov eax, 2
mov dword [0x4b862c], 2
cmp byte [esp + 0x18], 0
je 0x45f2c7
cmp eax, 2
jl 0x45f2c7
mov al, 1
mov dword [0x4b862c], 0
mov dword [esp + 4], eax
xor eax, eax
jmp 0x45f56b
cmp byte [esp + 0x18], 0
mov cl, 1
mov dword [esp + 4], ecx
jne 0x45f56b
mov ecx, dword [0x4b8660]
cmp byte [ecx + 0x13d], 0
je 0x45f55c
mov ebp, dword [esp + 0xc]
mov dword [esp + 4], 0
cmp ebp, 2
setne cl
cmp ebp, 3
je 0x45f56b
mov ch, byte [esp + 0x10]
xor ch, 1
and cl, ch
je 0x45f597
jmp 0x45f56b
xor eax, eax
inc eax
mov dword [esp], eax
lea eax, [esp + 0x80]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
xor ebx, ebx
test eax, eax
je 0x45f828
cmp byte [esp + 0x92], 0
mov edx, edi
js 0x45f91c
mov al, byte [esp + 0x125]
shr al, 7
jmp 0x45f91e
push ebp
mov esi, edx
call fcn.0045c031
jmp 0x45e0ff
push ebp
mov esi, edx
call fcn.0045c3b4
jmp 0x45e0ff
cmp byte [0x4b8618], 0
jne case.0x45d9ec.1
mov byte [0x4b8618], 1
push dword [0x4b85c8]
push 0x61
push dword [0x4b8678]
call fcn.004037c1
add esp, 0xc
push dword [0x4b8678]
call fcn.00402fb9
add esp, 4
mov esi, eax
mov eax, dword [0x4b7cc4]
test eax, eax
je 0x45fabc
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
add esp, 4
jmp 0x45fabe
push 1
push 0x498738
push dword [0x4b8660]
mov esi, edx
call fcn.0044c7d2
jmp 0x45f4ed
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 [0x4b7c9c]
jae 0x45f4cd
mov ecx, dword [0x4b7ca0]
mov dword [esp], 0
push dword [ecx + eax*4 + 4]
push ebp
push str.putty__s__s
jmp 0x45f43c
cmp byte [ebp], 0
mov eax, 0x4acb35
mov ecx, 0x4ac2bd
mov dword [esp], 0
cmove ecx, eax
push ebp
push ecx
push str.putty_s_s
call fcn.004560a0
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]
test eax, eax
je 0x45f4b6
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push esi
call fcn.00410c0e
add esp, 4
mov ebx, dword [esp + 0x8a0]
mov edx, dword [esp + 0x8a4]
mov ebp, dword [esp + 0x898]
jmp case.0x45d9ec.1
push 1
push 0x498738
push dword [0x4b8660]
mov esi, edx
call fcn.0044c113
mov edx, esi
add esp, 0xc
jmp case.0x45d9ec.1
push 1
push dword [0x4b8660]
mov esi, edx
call fcn.00449ed1
mov edx, esi
add esp, 8
mov eax, dword [0x4b7cc8]
test eax, eax
je case.0x45d9ec.1
push eax
call fcn.0040e671
jmp 0x45e0ff
xor ecx, ecx
mov esi, edx
inc ecx
call fcn.00464fb2
jmp 0x45e5d8
lea eax, [ebx - 0x1000]
cmp eax, 0x3fff
ja 0x45f89d
push ebx
push 0x160
push 0x112
push ebp
mov esi, edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x45e5d8
cmp dword [esp + 0xc], 3
jne 0x45f597
mov dword [esp + 4], 0
bt edx, 0x18
jb case.0x45f586.41
lea edx, [ebx - 0x21]
cmp edx, 0xd
ja case.default.0x45f586
mov ecx, 0x60
jmp dword [edx*4 + 0x498828]
mov ecx, 0x69
jmp case.0x45f586.45
test eax, eax
mov dword [esp + 4], 0
setne cl
bt edx, 0x18
jb case.0x45f586.41
or byte [esp + 0x1c], cl
jne 0x45f575
jmp case.0x45f586.41
push 0xffffffffffffffff
jmp 0x45f5bf
push 1
push 0
jmp 0x45f846
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 0x45f5f9
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 0x45f84c
push 0
jmp 0x45f844
push 0
push 0xffffffffffffffff
jmp 0x45f846
mov eax, ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x8a4]
add ecx, 0x128
mov dword [edx + 8], esi
mov edi, dword [esp]
mov ebp, dword [esp + 0x1c]
xor ebx, ebx
xor edi, esi
mov esi, dword [esp + 0xc]
imul esi, dword [ecx]
mov ecx, dword [esp + 4]
add ecx, dword [esp + 0x18]
add ecx, esi
xor ebp, ecx
or ebp, edi
setne bl
add eax, 0xfffffffd
cmp eax, 2
ja 0x45f65e
mov eax, dword [esp + 0x20]
sub eax, esi
mov dword [edx + 4], eax
jmp 0x4609af
mov dword [edx + 0xc], ecx
jmp 0x4609af
mov dword [esp + 4], 0
xor eax, eax
mov esi, dword [0x4b8634]
mov dword [esp + 0xc], eax
mov eax, esi
neg eax
cmovl eax, esi
xor ebx, ebx
cmp eax, 0x78
jl 0x4609af
mov eax, esi
mov ecx, edi
mov edi, 0xffffff88
xor ebx, ebx
movsx edx, cx
shr eax, 0x1f
sar ecx, 0x10
mov dword [esp + 0x1c], edx
mov dword [esp + 8], ecx
test esi, esi
setg dl
test esi, esi
jg 0x45f6b9
test al, 1
je 0x4609af
test esi, esi
mov eax, pe_nt_image_headers32
mov byte [esp], dl
cmovg eax, edi
add eax, esi
cmp byte [0x4b7cdd], 0
mov dword [0x4b8634], eax
je 0x45f6f4
push 0x94
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
cmp byte [esp + 4], 0
je 0x45f721
test al, al
je 0x45f721
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.0044c029
add esp, 0xc
jmp 0x45f808
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x3c]
push eax
push ebp
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x45f808
mov cl, byte [esp]
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 0x45f77b
cmp byte [esp + 0x92], 0
js 0x45f784
mov al, byte [esp + 0x125]
shr al, 7
jmp 0x45f786
mov dword [esp], 0
jmp 0x45f789
mov al, 1
mov dword [esp], eax
mov edx, dword [esp + 0x40]
mov esi, dword [0x4b7c6c]
mov ecx, dword [esp + 0x3c]
lea eax, [edx + 1]
sub eax, esi
test edx, edx
cmovns eax, edx
sub eax, dword [0x4b7c78]
cdq
idiv esi
mov esi, dword [0x4b7c68]
mov dword [esp + 0x18], eax
lea eax, [ecx + 1]
sub eax, esi
test ecx, ecx
cmovns eax, ecx
mov ecx, ebp
sub eax, dword [0x4b7c7c]
cdq
idiv esi
mov esi, eax
call fcn.0046504e
movzx ecx, byte [esp]
movzx edi, byte [esp + 4]
movzx edx, byte [esp + 0xc]
push ecx
push edx
push edi
push dword [esp + 0x24]
push esi
mov ecx, 1
push ecx
push eax
push ebp
push dword [0x4b8660]
call fcn.0044cd5d
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 0x45f6a8
jmp 0x4609af
mov dword [esp + 8], 0
mov edx, edi
jmp 0x45f922
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x98], eax
push eax
push 1
push dword [0x4b8660]
call fcn.0044c029
add esp, 0xc
mov edx, edi
jmp case.0x45d9ec.1
mov eax, dword [esp + 8]
sub dword [eax + 8], esi
test ebp, ebp
je 0x45f87e
add ecx, 0xfffffffd
cmp ecx, 2
ja 0x45f877
mov eax, dword [esp + 8]
add dword [eax + 4], ebp
jmp 0x45f87e
mov eax, dword [esp + 8]
sub dword [eax + 0xc], ebp
xor ebx, ebx
or ebp, esi
setne bl
jmp 0x4609af
cmp ebx, 0xc
jne case.0x45f586.41
mov ecx, 0x65
jmp case.0x45f586.45
lea eax, [ebx - 0x400]
cmp eax, 0x400
ja case.0x45d9ec.1
shr eax, 4
cmp eax, dword [0x4b7cd0]
jge case.0x45d9ec.1
mov ecx, dword [0x4b7cc4]
test ecx, ecx
je case.0x45d9ec.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 0x45f4ed
mov byte [esp + 0x125], 0x80
jmp 0x45f1bc
mov ebp, 2
jmp 0x45ec91
xor ecx, ecx
cmp eax, 3
sete cl
mov dword [0x4b7c84], ecx
jne 0x45ecd4
xor ebp, ebp
inc ebp
jmp 0x45ec97
mov al, 1
mov dword [esp + 8], eax
mov eax, esi
mov ebp, dword [0x4b7c6c]
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 + 4], eax
lea eax, [ecx + 1]
sub eax, ebp
test edx, edx
cmovns eax, ecx
mov ecx, esi
sub eax, dword [0x4b7c78]
shl ecx, 0x10
cdq
idiv ebp
movsx edx, si
mov esi, dword [0x4b7c68]
mov dword [esp + 0x18], eax
lea eax, [edx + 1]
sub eax, esi
test ecx, ecx
cmovns eax, edx
sub eax, dword [0x4b7c7c]
cdq
idiv esi
mov ebp, dword [esp]
mov esi, eax
mov ecx, ebp
call fcn.0046504e
movzx ecx, byte [esp + 8]
mov edx, 4
push ecx
push dword [esp + 8]
push edi
push dword [esp + 0x24]
push esi
push edx
push eax
push ebp
push dword [0x4b8660]
call fcn.0044cd5d
add esp, 0x24
jmp 0x4609af
mov ecx, 0x63
jmp case.0x45f586.45
mov ecx, 0x61
jmp case.0x45f586.45
mov ecx, 0x67
jmp case.0x45f586.45
mov ecx, 0x64
jmp case.0x45f586.45
mov ecx, 0x68
jmp case.0x45f586.45
mov ecx, 0x66
jmp case.0x45f586.45
mov ecx, 0x62
jmp case.0x45f586.45
mov ecx, 0x6e
movzx edx, byte [esp + 0x110]
mov ebx, edi
movzx ebx, bl
and edx, 1
or ebx, edx
mov edi, ebx
mov ebx, ecx
cmp byte [esp], 0
je case.0x4604f2.14
test eax, eax
jne case.0x4604f2.14
mov al, byte [esp + 0x125]
test al, al
js case.0x4604f2.14
cmp byte [esp + 4], 0
je 0x45fa30
lea ebp, [esp + 0x3d]
mov byte [ebp - 1], 0x1b
jmp 0x45fa34
lea ebp, [esp + 0x3c]
mov ecx, edi
cmp edi, 1
jne 0x45fa49
cmp ebx, 0x21
jne 0x45fa49
push 0
push 2
jmp 0x45fd78
cmp ecx, 3
jne 0x45fa5c
cmp ebx, 0x21
jne 0x45fa5c
push 0
push 6
jmp 0x45fd78
cmp ecx, 3
jne 0x45faa1
cmp ebx, 0x22
jne 0x45faa1
push 0
push 7
jmp 0x45fd78
push 0x62
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
push eax
push edi
push esi
push dword [0x4b8660]
call fcn.0044b1f4
add esp, 0x10
xor ecx, ecx
call fcn.00464835
call fcn.004645e0
jmp 0x4609ad
cmp ecx, 2
jne 0x45fcc2
cmp ebx, 0x21
jne 0x45fcc2
xor eax, eax
push eax
push eax
jmp 0x45fd78
xor eax, eax
push eax
push ebp
call fcn.0045bee2
add esp, 8
test al, al
mov byte [0x4b8618], 0
je 0x45fcb4
push 0x66
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov dword [0x4b8688], eax
push 0x9d
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov dword [0x4b868c], eax
push 0x71
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov ebp, dword [sym.imp.USER32.dll_EnableMenuItem]
xor ebx, ebx
cmp eax, 1
mov edi, 0xfffffff8
mov dword [esp], eax
sete bl
push ebx
push 0x180
push dword [edi + 0x4b7c98]
call ebp
add edi, 4
jne 0x45fb2a
mov ebp, dword [esp + 0x898]
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
cmp dword [esp], 1
jne 0x45fb5e
test eax, eax
je 0x45fb5e
push 9
push ebp
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4b8678]
push dword [0x4b8690]
call fcn.0040f96d
add esp, 8
push dword [0x4b7cac]
call fcn.00410c0e
add esp, 4
mov eax, dword [0x4b7cc8]
test eax, eax
je 0x45fba6
push dword [0x4b8678]
push eax
call fcn.0040e5e1
add esp, 8
push dword [0x4b7cc8]
call fcn.0040e671
add esp, 4
mov eax, dword [0x4b7ca8]
test eax, eax
je 0x45fbb6
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
xor eax, eax
mov dword [0x4b7cac], eax
mov dword [0x4b7ca8], eax
call fcn.00460afa
call fcn.004614c6
push dword [0x4b8678]
push dword [0x4b8660]
call fcn.0044a648
add esp, 8
mov edx, dword [0x4b8678]
mov ecx, dword [0x4b8660]
call fcn.00461196
mov eax, dword [0x4b7cc4]
test eax, eax
je 0x45fc09
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.0040308d
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.0040308d
add esp, 8
cmp edi, eax
jne 0x45fdd5
mov ebx, 0x75
push ebx
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.0040308d
add esp, 8
cmp edi, eax
jne 0x45fdd5
mov ebx, 0x62
push ebx
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push ebx
push esi
call fcn.0040308d
add esp, 8
cmp dword [esp], 2
je 0x45fdd5
cmp edi, eax
jne 0x45fdd5
mov edi, dword [esp]
cmp edi, 3
jne 0x45fdd0
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
cmp edi, 1
je 0x45fdd5
test eax, eax
je 0x45fe1a
jmp 0x45fdd5
push esi
call fcn.00402ea8
add esp, 4
jmp 0x45ddc5
cmp ecx, 1
jne 0x45fd6a
cmp ebx, 0x22
jne 0x45fd6a
push 0
push 3
jmp 0x45fd78
mov eax, esi
mov edx, edi
add eax, eax
sub edx, eax
mov ecx, eax
mov eax, edx
cdq
idiv dword [0x4b7c68]
xor esi, esi
inc esi
mov edi, eax
test eax, eax
mov eax, dword [esp + 8]
cmovle edi, esi
sub eax, ecx
mov cl, 1
cdq
idiv dword [0x4b7c6c]
test eax, eax
cmovg esi, eax
cmp byte [0x4b8630], cl
jne 0x45fd44
mov byte [0x4b8611], 1
push esi
push 0x76
push dword [0x4b8678]
call fcn.004036be
add esp, 0xc
push edi
push 0x75
push dword [0x4b8678]
call fcn.004036be
add esp, 0xc
jmp 0x45fa97
push 0x62
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
push eax
push edi
push esi
push dword [0x4b8660]
call fcn.0044b1f4
add esp, 0x10
jmp 0x45fa97
cmp ecx, 2
jne 0x45fd88
cmp ebx, 0x22
jne 0x45fd88
push 0
push 1
push 0x115
push dword [0x4b8668]
jmp 0x45eac7
cmp ecx, 3
jne 0x45fdae
lea eax, [ebx - 0x21]
cmp eax, 1
ja 0x45fdae
xor eax, eax
cmp ebx, 0x21
setne al
push eax
push dword [0x4b8660]
call fcn.0044c0bd
jmp 0x45e6a4
cmp ecx, 2
mov dword [esp + 0xc], ebx
jne 0x460165
cmp dword [esp + 0xc], 0x2d
jne 0x460165
push 0x98
jmp 0x46018d
cmp edi, 1
jne 0x45fe1a
push 0x62
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push 0x75
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov ebx, eax
push 0x76
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
push edi
push ebx
push eax
push dword [0x4b8660]
call fcn.0044b1f4
add esp, 0x10
mov edi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push ebp
call edi
mov dword [esp + 0x18], eax
push 0xffffffffffffffec
push ebp
call edi
mov edi, 0x58
mov ebp, eax
push edi
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
mov ebx, eax
push edi
mov dword [esp + 0xc], esi
push esi
call fcn.00402fed
add esp, 8
xor al, bl
mov ebx, ebp
mov dword [esp + 4], ebp
cmp al, 1
jne 0x45fea5
push 0x58
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
je 0x45fe87
mov ebx, dword [esp + 4]
xor eax, eax
or ebx, 8
push 3
push eax
push eax
push eax
push eax
push 0xffffffffffffffff
jmp 0x45fe98
mov ebx, dword [esp + 4]
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.00402fed
add esp, 8
mov ecx, ebx
and ebx, 0xfffffdff
or ecx, 0x200
test al, al
cmovne ebx, ecx
call fcn.00464677
movzx eax, al
add eax, 0x6f
push eax
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
mov ebp, dword [esp + 0x18]
mov ecx, ebp
mov edi, ebp
or ecx, 0x200000
and edi, 0xffdfffff
test al, al
cmovne edi, ecx
mov ecx, dword [esp]
cmp ecx, 1
je 0x45ff12
call fcn.00464677
mov ecx, dword [esp]
test al, al
je 0x45ff1a
and edi, 0xfffbffff
jmp 0x45ff20
or edi, 0x40000
mov eax, edi
or edi, 0x10000
and eax, 0xfffeffff
cmp ecx, 1
cmove edi, eax
cmp ebx, dword [esp + 4]
jne 0x45ff49
cmp edi, ebp
jne 0x45ff49
mov ebp, dword [esp + 0x898]
xor esi, esi
inc esi
jmp 0x45ff89
cmp edi, ebp
mov ebp, dword [esp + 0x898]
je 0x45ff5e
push edi
push 0xfffffffffffffff0
push ebp
call dword [sym.imp.USER32.dll_SetWindowLongA]
cmp ebx, dword [esp + 4]
je 0x45ff6e
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]
mov esi, 2
cmp ecx, 1
jne 0x45ffa7
push ebp
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x45ffa7
push ebp
call fcn.0045b3e0
add esp, 4
mov esi, 2
mov dword [esp + 4], esi
push 0x61
push dword [0x4b8678]
call fcn.004031d2
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 0x460000
push 0x74
push dword [0x4b8678]
call fcn.00402fed
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.00403548
add esp, 8
mov ebx, eax
push edi
push dword [esp + 0xc]
call fcn.00403548
add esp, 8
mov edi, eax
push dword [eax]
push dword [ebx]
call fcn.0047eec0
add esp, 8
test eax, eax
je 0x460131
mov eax, 0x9e
push eax
mov esi, 0x9e
push dword [esp + 0xc]
call fcn.004031d2
add esp, 8
mov ebp, eax
push esi
push dword [0x4b8678]
call fcn.004031d2
add esp, 8
push ebp
mov ebp, dword [esp + 0x89c]
push eax
call fcn.0047eec0
add esp, 8
test eax, eax
je 0x460131
mov al, byte [ebx + 4]
cmp al, byte [edi + 4]
jne 0x460131
mov eax, dword [ebx + 8]
cmp eax, dword [edi + 8]
jne 0x460131
mov eax, dword [ebx + 0xc]
cmp eax, dword [edi + 0xc]
jne 0x460131
mov ebx, pe_nt_image_headers32
push ebx
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 0xc]
call fcn.0040308d
add esp, 8
cmp edi, eax
jne 0x460131
mov ebx, 0x9d
push ebx
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 0xc]
call fcn.0040308d
add esp, 8
cmp edi, eax
jne 0x460131
mov ebx, 0x8c
push ebx
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
mov edi, eax
push ebx
push dword [esp + 0xc]
call fcn.0040308d
add esp, 8
mov ecx, dword [esp]
or ecx, 2
cmp ecx, 3
je 0x460131
cmp edi, eax
jne 0x460131
push 0x71
push dword [esp + 0xc]
call fcn.0040308d
add esp, 8
cmp dword [esp], eax
je 0x460139
mov dword [esp + 4], 2
push 1
push 0
push ebp
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esp + 4]
call fcn.00464835
push dword [esp + 8]
call fcn.00402ea8
add esp, 4
mov ebx, dword [esp + 0x8a0]
jmp 0x45ddc5
cmp edi, 1
mov eax, edi
jne 0x46017a
cmp dword [esp + 0xc], 0x2d
jne 0x46017a
push 0x98
jmp 0x4601ce
cmp edi, 3
mov eax, edi
jne 0x4601bb
cmp dword [esp + 0xc], 0x43
jne 0x4601bb
push 0x99
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
cmp eax, 2
jne 0x4609ad
push 1
push 0x498738
push dword [0x4b8660]
call fcn.0044c7d2
jmp 0x45e84e
cmp edi, 3
mov eax, edi
jne 0x460200
cmp dword [esp + 0xc], 0x56
jne 0x460200
push 0x99
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
cmp eax, 2
je 0x4601ee
cmp eax, 1
jne 0x4609ad
push 1
jmp 0x4601f0
push 2
push dword [0x4b8660]
call fcn.0044c83d
jmp 0x45e6a4
mov eax, dword [esp + 4]
cmp dword [esp + 0xc], 0x73
setne cl
xor al, 1
or cl, al
jne 0x460238
push 0x53
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
mov ecx, dword [esp + 0x8a4]
test al, al
jne 0x46098a
xor ebx, ebx
jmp 0x4602c2
cmp dword [esp + 0xc], 0x20
mov ecx, dword [esp + 4]
sete bl
and cl, bl
cmp cl, 1
jne 0x460285
mov bl, 1
push 0x54
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
je 0x4602c2
push 0
push 0xf100
push 0x112
push dword [0x4b8668]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x8a4]
jmp 0x46098a
cmp dword [esp + 0xc], 0xd
setne cl
or al, cl
jne 0x460318
push 0x59
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
je 0x4602c2
push 0x71
push dword [0x4b8678]
call fcn.0040308d
add esp, 8
cmp eax, 1
jne 0x46039f
test edi, edi
mov eax, edi
sete byte [esp + 0x1c]
xor eax, eax
cmp edi, 2
mov ecx, edi
jne 0x4602de
test bl, bl
je 0x4602de
mov byte [ebp], 0
jmp 0x4602f1
cmp edi, 3
mov ecx, edi
setne cl
xor bl, 1
or bl, cl
jne 0x46033f
mov byte [ebp], 0xa0
lea eax, [esp + 0x3c]
neg eax
lea eax, [ebp + eax + 1]
test eax, eax
je 0x4609ad
mov ecx, dword [esp + 0x8a4]
cmp eax, 0xffffffff
je 0x46098a
jmp 0x4603f0
cmp dword [esp + 0xc], 0x13
mov ecx, edi
sete al
cmp edi, 2
jne 0x460369
cmp dword [esp + 0xc], 0x13
jne 0x460369
mov eax, dword [0x4b8660]
xor byte [eax + 0x13d], 1
jmp 0x4609ad
cmp edi, 2
mov ecx, edi
jne 0x460395
cmp dword [esp + 0xc], 3
jne 0x460395
mov eax, dword [0x4b7cc4]
test eax, eax
je 0x4609ad
mov ecx, dword [eax]
xor edx, edx
push edx
push edx
push eax
call dword [ecx + 0x18]
jmp 0x45e84e
test edi, edi
mov ecx, edi
sete byte [esp + 0x1c]
jne 0x4603be
cmp dword [esp + 0xc], 8
jne 0x4603be
push 0x41
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
mov al, 0x7f
jne 0x4603e4
mov al, 8
jmp 0x4603e4
test al, al
je 0x460412
mov byte [ebp], 0x1a
jmp 0x4603e7
cmp dword [esp + 0x14], 0x40000000
mov ecx, dword [esp + 0x8a4]
je 0x46098a
call fcn.00465002
jmp 0x460279
cmp edi, 1
mov ecx, edi
jne 0x460433
cmp dword [esp + 0xc], 8
jne 0x460433
push 0x41
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
mov al, 8
jne 0x4603e4
mov al, 0x7f
mov byte [ebp], al
mov eax, 0xfffffffe
mov byte [ebp + 1], 0
lea ecx, [esp + 0x3c]
push eax
push ecx
push 0xffffffffffffffff
push dword [0x4b8660]
call fcn.00451518
add esp, 0x10
xor ecx, ecx
call fcn.00464fb2
jmp 0x4609ad
cmp edi, 2
mov eax, edi
jne 0x460462
mov eax, dword [esp + 0xc]
lea eax, [eax - 0x32]
cmp eax, 6
ja 0x460462
mov al, byte [eax + 0x49dd10]
mov byte [ebp], al
jmp 0x4602f1
cmp edi, 1
mov ecx, edi
jne 0x4602cd
cmp dword [esp + 0xc], 9
jne 0x4602cd
lea eax, [esp + 0x3c]
mov word [ebp], 0x5b1b
mov byte [ebp + 2], 0x5a
neg eax
lea eax, [ebp + eax + 3]
jmp 0x4602fb
mov eax, 2
mov ecx, edi
cmp edi, eax
jne 0x460484
mov eax, dword [esp + 0xc]
or eax, 2
cmp eax, 0xbf
jne 0x460484
mov byte [ebp], 0x1f
jmp 0x4602f1
cmp edi, 2
mov eax, edi
jne 0x4604a8
cmp dword [esp + 0xc], 0xdf
je 0x46049f
cmp dword [esp + 0xc], 0xdc
jne 0x4604a8
mov byte [ebp], 0x1c
jmp 0x4602f1
cmp edi, 3
mov eax, edi
jne 0x4604c2
cmp dword [esp + 0xc], 0xde
jne 0x4604c2
mov byte [ebp], 0x1e
jmp 0x4602f1
mov ebx, dword [esp + 0xc]
lea esi, [esp + 0x80]
lea eax, [ebx - 0xc]
cmp eax, 0x77
ja case.0x4604f2.14
xor ecx, ecx
mov edx, 0x41
mov dword [esp + 0x20], 0
mov byte [esp + 0x14], 0x30
inc ecx
mov dword [esp + 0x10], ecx
jmp dword [eax*4 + 0x498860]
mov edx, 0x47
jmp case.0x4604f2.38
bt dword [esp + 0x8a4], 0x18
mov byte [esp + 0x14], 0xd
jb case.0x4604f2.96
jmp 0x46067a
mov dword [esp + 0x20], 4
jmp case.0x4604f2.36
mov dword [esp + 0x20], 5
jmp case.0x4604f2.36
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
jmp case.0x4604f2.36
mov edx, 0x44
jmp case.0x4604f2.38
mov edx, 0x43
jmp case.0x4604f2.38
mov edx, 0x42
shr edi, 1
push edi
push edx
push dword [0x4b8660]
push ebp
call fcn.00451072
add esp, 0x10
jmp 0x460aed
mov byte [esp + 0x14], 0x47
jmp case.0x4604f2.96
mov dword [esp + 0x20], 2
jmp case.0x4604f2.36
mov dword [esp + 0x20], 3
mov eax, edi
test al, 2
jne case.0x4604f2.14
push dword [esp + 0x20]
push dword [0x4b8660]
push ebp
call fcn.004511f4
add esp, 0xc
jmp 0x460aed
mov byte [esp + 0x14], 0x31
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x32
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x33
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x34
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x35
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x36
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x37
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x38
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x39
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x2a
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x2b
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x2d
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x2e
jmp case.0x4604f2.96
mov byte [esp + 0x14], 0x2f
cmp byte [esp + 4], 0
je 0x460630
mov al, byte [esp + 0x14]
add al, 0xd0
cmp al, 9
ja 0x4606ac
mov ecx, dword [0x4b863c]
movzx eax, byte [esp + 0x14]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*2 - 0x30]
mov dword [0x4b863c], eax
jmp 0x4606b6
mov bl, byte [esp + 0x14]
mov eax, edi
and edi, 1
shr eax, 1
movzx ecx, bl
push eax
push edi
push ecx
push dword [0x4b8660]
push ebp
call fcn.004512c9
add esp, 0x14
cmp bl, 0xd
mov cl, 9
je 0x460659
mov cl, 7
test eax, eax
je 0x46065f
mov cl, 1
mov ebx, dword [esp + 0xc]
cmp cl, 7
lea esi, [esp + 0x80]
je case.0x4604f2.14
add ebp, eax
cmp cl, 9
jne 0x4609ed
cmp byte [esp + 0x1c], 0
je 0x4609fa
mov eax, dword [0x4b8660]
cmp byte [eax + 0x141], 0
je 0x4609fa
lea eax, [esp + 0x3c]
mov word [ebp], 0xa0d
neg eax
lea eax, [ebp + eax + 2]
jmp 0x4602fb
mov dword [0x4b863c], 0
mov ebx, dword [esp + 0xc]
lea esi, [esp + 0x80]
mov edi, dword [esp + 0x8a4]
shr edi, 0x10
cmp byte [esp + 0x94], 0
je 0x460700
push 0xa1
push dword [0x4b8678]
call fcn.00402fed
add esp, 8
test al, al
je 0x460700
mov eax, dword [esp + 4]
mov byte [esp + 0x94], 0
xor al, 1
mov dword [esp + 0xc], eax
jmp 0x460708
mov dword [esp + 0xc], 0
and edi, 0x81ff
cmp dword [0x4b8674], 2
jne 0x460736
mov eax, dword [0x4b8650]
test eax, eax
je 0x460736
push dword [esp + 8]
push 0
push 3
push 0x4b8640
push esi
push edi
push ebx
call eax
mov edi, eax
jmp 0x46077f
push dword [esp + 8]
push 0
push 0x4b8654
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_ToAsciiEx]
test eax, eax
jle 0x460930
mov edi, eax
xor eax, eax
mov cl, byte [eax + eax + 0x4b8654]
mov byte [eax + 0x4b865a], cl
inc eax
cmp edi, eax
jne 0x460756
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 0x460930
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
xor ebp, ebp
inc al
xor cl, 1
movzx eax, al
mov dword [esp + 8], eax
movzx eax, cl
lea eax, [esp + eax*2 + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc]
xor al, 1
mov esi, eax
jmp 0x4607ee
mov edx, dword [eax + 0x1060]
cmp dword [edx + 0xc], 0xfde9
je 0x4608c8
mov dl, byte [0x4b715c]
test dl, dl
jne 0x4608c8
mov byte [esp + 0x2c], cl
push 1
lea ecx, [esp + 0x30]
push ecx
push 0xffffffffffffffff
push eax
call fcn.00451518
add esp, 0x10
jmp 0x4608dd
movzx ecx, word [ebp + ebp + 0x4b8640]
mov edx, dword [0x4b862c]
movzx eax, cx
cmp edx, 3
mov word [esp + 0x28], ax
je 0x46082d
cmp edx, 2
jne 0x460879
lea edx, [ecx - 0x20]
movzx edx, dx
cmp edx, 0x5f
ja 0x460879
mov dword [0x4b8648], eax
mov dword [0x4b862c], 3
jmp 0x46091c
lea edx, [ecx - 0x20]
movzx edx, dx
cmp edx, 0x5f
ja 0x460879
mov dword [0x4b862c], 0
push eax
push dword [0x4b8648]
call fcn.0046dc68
add esp, 8
cmp eax, 0xffffffff
je 0x4609a5
mov word [esp + 0x2a], ax
push 1
lea eax, [esp + 0x2e]
push eax
push dword [0x4b8660]
call fcn.0045146a
add esp, 0xc
jmp 0x46091c
cmp byte [esp], 0
mov dword [0x4b862c], 0
je 0x4608ac
cmp eax, 0x7f
mov ebx, esi
seta dl
or dl, bl
jne 0x4608e9
mov word [esp + 0x2c], 0x1b
push eax
call fcn.0046db5a
add esp, 4
mov word [esp + 0x2e], ax
jmp 0x4608f5
mov ecx, dword [0x4b863c]
mov eax, dword [0x4b8660]
test ecx, ecx
je 0x460905
cmp byte [eax + 0xd5], 0
je 0x4607b2
mov word [esp + 0x2a], cx
push 1
lea ecx, [esp + 0x2e]
push ecx
push eax
call fcn.0045146a
add esp, 0xc
mov dword [0x4b863c], 0
jmp 0x460915
mov word [esp + 0x2c], 0x1b
mov word [esp + 0x2e], cx
push dword [esp + 8]
push dword [esp + 8]
push dword [0x4b8660]
jmp 0x46090d
push 1
lea ecx, [esp + 0x2c]
push ecx
push eax
call fcn.0045146a
add esp, 0xc
xor ecx, ecx
call fcn.00464fb2
inc ebp
cmp ebp, edi
jl 0x4607ee
mov word [0x4b8640], 0
jmp 0x4609ad
cmp byte [esp + 4], 0
mov ecx, dword [esp + 0x8a4]
je 0x460961
cmp word [0x4b8640], 0
je 0x46096a
mov eax, dword [0x4b8660]
cmp byte [eax + 0xd5], 0
je 0x4609cc
mov word [0x4b8640], 0xa
jmp 0x46096a
mov word [0x4b8640], 0
cmp ebx, 0x12
jne 0x46098a
push 0x55
push dword [0x4b8678]
call fcn.00402fed
mov ecx, dword [esp + 0x8ac]
add esp, 8
test al, al
je 0x4609ad
push ecx
push dword [esp + 0x8a4]
push dword [esp + 0x8a4]
push dword [esp + 0x8a4]
jmp 0x45e5e4
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
xor ebx, ebx
mov ecx, dword [esp + 0x880]
xor ecx, esp
call fcn.0046fa9a
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 0x460956
mov al, byte [0x4b715c]
test al, al
je 0x46096a
jmp 0x460956
lea eax, [esp + 0x3c]
sub ebp, eax
mov eax, ebp
jmp 0x4602fb
mov byte [ebp], 0xd
jmp 0x4603e7
mov dword [esp + 0x10], 2
jmp case.0x4604f2.112
mov dword [esp + 0x10], 3
jmp case.0x4604f2.112
mov dword [esp + 0x10], 4
jmp case.0x4604f2.112
mov dword [esp + 0x10], 5
jmp case.0x4604f2.112
mov dword [esp + 0x10], 6
jmp case.0x4604f2.112
mov dword [esp + 0x10], 7
jmp case.0x4604f2.112
mov dword [esp + 0x10], 8
jmp case.0x4604f2.112
mov dword [esp + 0x10], 9
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0xa
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0xb
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0xc
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0xd
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0xe
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0xf
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0x10
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0x11
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0x12
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0x13
jmp case.0x4604f2.112
mov dword [esp + 0x10], 0x14
mov ecx, edi
and edi, 1
shr ecx, 1
push ecx
push edi
push dword [esp + 0x18]
push dword [0x4b8660]
push ebp
call fcn.004510cc
add esp, 0x14
add eax, ebp
lea ecx, [esp + 0x3c]
sub eax, ecx
jmp 0x4602fb