Function at 0x46daf3
Capabilities:
Log keystrokes via application hook

Disassembly:
mov eax, 0x51b508
call fcn.004edf30
sub esp, 0x70
push ebx
push esi
mov esi, ecx
push edi
push 1
cmp dword [esi + 0x8b2d4], 0
lea eax, [esi + 0x8b2d4]
pop ebx
jne 0x46db19
mov dword [eax], ebx
cmp dword [esi + 0x8b2d8], 0
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esi + 0x8b2d8]
jne 0x46e1b0
mov dword [eax], ebx
lea eax, [ebp - 0x2c]
push eax
push dword [esi + 0x8b6c4]
call edi
mov eax, dword [ebp - 0x20]
push ebx
sub eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x2c]
push eax
call fcn.0045f70c
mov ecx, eax
call fcn.004cc09e
mov ecx, dword [0x55e2a0]
sub ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x28]
sub ecx, eax
sub ecx, 0x8c
push ecx
push 0
lea ecx, [esi + 0x8b6a4]
call sub.MFC42.DLL_CWnd::MoveWindow
lea eax, [ebp - 0x2c]
push eax
push dword [esi + 0x20]
call edi
push ebx
push str.Slider0
push dword [ebp - 0x28]
lea ecx, [esi + 0x8b6a4]
push dword [ebp - 0x2c]
call fcn.0047dd3e
mov ebx, 0x12c
lea ecx, [esi + 0x8b6a4]
push ebx
call fcn.0047dd07
push ebx
lea ecx, [esi + 0x8b6a4]
call fcn.0047dd16
mov ebx, dword [sym.imp.graphic.dll_public:_static_int___cdecl_CMyBitmap::GetScreenWidth_void_]
push 1
push 0x10
push 0x10
push 4
call ebx
sub eax, 0x28
lea ecx, [esi + 0x8b504]
push eax
call sub.MFC42.DLL_CWnd::MoveWindow
push 1
push 0x10
push 0x10
push 4
call ebx
sub eax, 0x14
lea ebx, [esi + 0x8b5d4]
push eax
mov ecx, ebx
call sub.MFC42.DLL_CWnd::MoveWindow
push 0
push 0
push str.Button01
lea ecx, [esi + 0x8b504]
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.0046027d
push 0
push 0
push str.Button02
mov ecx, ebx
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
call fcn.0046027d
push esi
push 0xad
lea ecx, [esi + 0x87dac]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x9e
lea ecx, [esi + 0x6c838]
call sub.MFC42.DLL_CDialog::Create
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46dc53
mov eax, dword [eax + 4]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 1
push eax
push 0x30
push dword [esi + 0x6cf80]
call ebx
push esi
push 0x14b
lea ecx, [esi + 0x86fc8]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x13e
lea ecx, [esi + 0x86490]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x13d
lea ecx, [esi + 0x861ec]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x14d
lea ecx, [esi + 0x71318]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x14c
lea ecx, [esi + 0x8580c]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x14e
lea ecx, [esi + 0x6d784]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x128
lea ecx, [esi + 0x70c24]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x12a
lea ecx, [esi + 0x86b84]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x12b
lea ecx, [esi + 0x87348]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x125
lea ecx, [esi + 0x86818]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x12e
lea ecx, [esi + 0x87a38]
call sub.MFC42.DLL_CDialog::Create
push esi
push 0x134
lea ecx, [esi + 0x875e8]
call sub.MFC42.DLL_CDialog::Create
push esi
lea ecx, [esi + 0x7e8]
push 0x82
call sub.MFC42.DLL_CDialog::Create
lea eax, [ebp - 0x2c]
push eax
push dword [esi + 0x808]
call edi
push 1
push 0x8d
call dword [sym.imp.graphic.dll_public:_static_int___cdecl_CMyBitmap::GetScreenWidth_void_]
push eax
call dword [sym.imp.graphic.dll_public:_static_int___cdecl_CMyBitmap::GetScreenHeight_void_]
sub eax, 0x8d
lea ecx, [esi + 0x7e8]
push eax
push 0
call sub.MFC42.DLL_CWnd::MoveWindow
push esi
push 0x127
lea ecx, [esi + 0x85df4]
call sub.MFC42.DLL_CDialog::Create
mov eax, dword [esi + 0x8b360]
cmp eax, 2
je 0x46dd97
cmp eax, 3
jne 0x46dda4
push 1
lea ecx, [esi + 0x22658]
call fcn.004551a0
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46ddb1
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x8aa78]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46ddcb
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x2af68]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46dde5
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x27f40]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46ddff
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x27ffc]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46de19
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x220bc]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46de33
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x3c0a4]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46de4d
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x416e0]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46de67
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x39238]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46de81
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x43538]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46de9b
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x43fcc]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46deb5
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x3b594]
call ebx
mov eax, dword [esi + 0x8b430]
test eax, eax
je 0x46decf
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [esi + 0x3b8d8]
call ebx
call dword [sym.imp.GraphicData.dll_GameDataSetQuery]
mov edx, dword [eax]
push str.English
mov ecx, eax
call dword [edx + 0x34]
push eax
call sub.MSVCRT.dll_strcmp
pop ecx
test eax, eax
pop ecx
jne 0x46df76
xor ebx, ebx
lea ecx, [esi + 0x8aa58]
push ebx
call fcn.004628b6
push ebx
lea ecx, [esi + 0x2af48]
call fcn.004628b6
push ebx
lea ecx, [esi + 0x27f20]
call fcn.004d6e77
push ebx
lea ecx, [esi + 0x27fdc]
call fcn.004628b6
push ebx
lea ecx, [esi + 0x2209c]
call fcn.004628b6
push ebx
lea ecx, [esi + 0x3c084]
call fcn.004628b6
push ebx
lea ecx, [esi + 0x416c0]
call fcn.004628b6
push ebx
lea ecx, [esi + 0x39218]
call fcn.004628b6
push ebx
lea ecx, [esi + 0x43518]
call fcn.004628b6
push ebx
lea ecx, [esi + 0x43fac]
call fcn.004628b6
jmp 0x46df78
xor ebx, ebx
push 0x64
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
pop eax
mov dword [ebp - 0x70], ebx
mov ebx, dword [sym.imp.graphic.dll_public:_static_int___cdecl_CMyBitmap::GetScreenWidth_void_]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], 0x5a
call ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], 0x5a
call ebx
mov dword [ebp - 0x5c], eax
mov eax, 0x8d
xor ecx, ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], 0x525220
push 1
lea eax, [ebp - 0x7c]
push 6
push eax
mov dword [ebp - 4], ecx
call dword [sym.imp.GDI32.dll_CreatePolygonRgn]
push eax
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CGdiObject::Attach
lea eax, [ebp - 0x14]
push 1
neg eax
sbb eax, eax
and eax, dword [ebp - 0x10]
push eax
push dword [esi + 0x808]
call dword [sym.imp.USER32.dll_SetWindowRgn]
push 5
lea ecx, [esi + 0x7e8]
call sub.MFC42.DLL_CWnd::ShowWindow
lea eax, [ebp - 0x2c]
push eax
push dword [esi + 0x20]
call edi
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6b9ac]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
push 0x14
pop ebx
mov dword [esi + 0x8b2f4], ecx
sub eax, ebx
mov dword [esi + 0x8b2f8], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6bdec]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
sub eax, ebx
mov dword [esi + 0x8b2fc], ecx
mov dword [esi + 0x8b300], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6bc9c]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub eax, ebx
sub ecx, dword [ebp - 0x2c]
mov dword [esi + 0x8b304], ecx
mov dword [esi + 0x8b308], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6bd44]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
sub eax, ebx
mov dword [esi + 0x8b30c], ecx
mov dword [esi + 0x8b310], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6be94]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
sub eax, ebx
mov dword [esi + 0x8b314], ecx
mov dword [esi + 0x8b318], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6bf3c]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
sub eax, ebx
mov dword [esi + 0x8b31c], ecx
mov dword [esi + 0x8b320], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6ba68]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
sub eax, ebx
mov dword [esi + 0x8b324], ecx
mov dword [esi + 0x8b328], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6bb24]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
sub eax, ebx
mov dword [esi + 0x8b32c], ecx
mov dword [esi + 0x8b330], eax
lea eax, [ebp - 0x3c]
push eax
push dword [esi + 0x6bbe0]
call edi
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x28]
sub ecx, dword [ebp - 0x2c]
sub eax, ebx
mov dword [esi + 0x8b334], ecx
mov dword [esi + 0x8b338], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
push 0
push 0x46d75f
push 2
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
test eax, eax
mov dword [0x5694b0], eax
je 0x46e194
lea eax, [esi + 0x7e8]
mov dword [0x569684], esi
mov dword [0x569680], eax
mov dword [ebp - 0x14], 0x52393c
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 1
call sub.MFC42.DLL_CGdiObject::DeleteObject
or dword [ebp - 4], 0xffffffff
jmp 0x46e1bb
lea ecx, [esi + 0x24404]
call fcn.0042bae4
and dword [esi + 0x8b418], 0
and dword [esi + 0x8b3f8], 0
lea eax, [ebp - 0x4c]
push eax
push dword [esi + 0x6bd44]
call edi
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push 8
push eax
push 0x56988c
mov dword [ebp - 0x18], ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetFocus
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret