Function at 0x510ff0
Capabilities:
Get graphical window text
Hide graphical window
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57002b
mov eax, dword fs:[0]
push eax
sub esp, 0x7f4
mov eax, dword [0x661850]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.Sun_Oct__5_10:27:24_2014
push 0x3e
push str.CChatEdit::ChatEditProc
push str.UIChatEditBox.cpp
lea ecx, [ebp - 0x55]
call fcn.004024e0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x7e8], eax
mov ecx, dword [ebp - 0x7e8]
sub ecx, 7
mov dword [ebp - 0x7e8], ecx
cmp dword [ebp - 0x7e8], 0xfb
ja case.0x511072.2
mov edx, dword [ebp - 0x7e8]
movzx eax, byte [edx + 0x511df0]
jmp dword [eax*4 + 0x511dd0]
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x7ec], ecx
mov edx, dword [ebp - 0x7ec]
sub edx, 0x11
mov dword [ebp - 0x7ec], edx
cmp dword [ebp - 0x7ec], 0x66
ja case.0x5110ab.1
mov eax, dword [ebp - 0x7ec]
movzx ecx, byte [eax + 0x511f00]
jmp dword [ecx*4 + 0x511eec]
movzx edx, byte [0x7bf400]
test edx, edx
jne 0x5110c7
mov dword [0x7bf404], 0
mov byte [0x7bf400], 1
jmp case.0x5110ab.1
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov word [ebp - 0x5c], ax
movzx eax, word [ebp - 0x5c]
shr eax, 8
and eax, 0xff
movzx ecx, al
test ecx, ecx
je 0x511188
mov edx, dword [0x7bf404]
sub edx, 1
mov dword [0x7bf404], edx
jns 0x511111
mov dword [0x7bf404], 0
mov byte [ebp - 0x164], 0
push 0x103
push 0
lea eax, [ebp - 0x163]
push eax
call fcn.005454d0
add esp, 0xc
mov ecx, dword [0x7bf404]
imul ecx, ecx, 0x104
add ecx, 0x7be8d4
push ecx
push 0x577430
lea edx, [ebp - 0x164]
push edx
call fcn.005456a9
add esp, 0xc
lea eax, [ebp - 0x164]
push eax
mov ecx, dword [0x7d8ba4]
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0xffffffffffffffff
push 0xfffffffffffffffe
push 0xb1
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x7c8], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7c8]
jmp 0x511db2
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov word [ebp - 0x168], ax
movzx ecx, word [ebp - 0x168]
shr ecx, 8
and ecx, 0xff
movzx edx, cl
test edx, edx
je 0x5112b6
mov eax, dword [0x7bf404]
add eax, 1
mov dword [0x7bf404], eax
js 0x511212
cmp dword [0x7bf404], 0xa
jge 0x511212
mov ecx, dword [0x7bf404]
imul ecx, ecx, 0x104
movsx edx, byte [ecx + 0x7be8d4]
test edx, edx
jne 0x511212
mov eax, dword [0x7bf404]
sub eax, 1
mov dword [0x7bf404], eax
cmp dword [0x7bf404], 0xa
jl 0x511227
mov dword [0x7bf404], 9
jmp 0x51123a
cmp dword [0x7bf404], 0
jge 0x51123a
mov dword [0x7bf404], 0
mov byte [ebp - 0x274], 0
push 0x103
push 0
lea ecx, [ebp - 0x273]
push ecx
call fcn.005454d0
add esp, 0xc
mov edx, dword [0x7bf404]
imul edx, edx, 0x104
add edx, 0x7be8d4
push edx
push 0x577430
push 0x104
lea eax, [ebp - 0x274]
push eax
call fcn.0054572d
add esp, 0x10
lea ecx, [ebp - 0x274]
push ecx
mov ecx, dword [0x7d8ba4]
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0xffffffffffffffff
push 0xfffffffffffffffe
push 0xb1
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x7cc], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7cc]
jmp 0x511db2
mov ecx, 0x69ec08
call fcn.004edfb0
mov dword [ebp - 0x278], eax
mov edx, dword [ebp - 0x278]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push 0x100
mov edx, dword [ebp - 0x278]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x7d0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7d0]
jmp 0x511db2
jmp case.0x511072.2
cmp dword [0x6f3228], 0x22
je 0x511c66
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x7f0], eax
cmp dword [ebp - 0x7f0], 9
je 0x511c0b
cmp dword [ebp - 0x7f0], 0xa
je 0x511376
cmp dword [ebp - 0x7f0], 0xd
je 0x511376
jmp 0x511c66
movzx ecx, byte [0x69e641]
cmp ecx, 2
jne 0x5113ea
mov ecx, 0x6a0858
call fcn.005122e0
cmp eax, 9
jne 0x5113b5
mov dword [ebp - 0x7d4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7d4]
jmp 0x511db2
mov ecx, 0x6a0858
call fcn.00512300
movzx edx, al
test edx, edx
je 0x5113ea
mov dword [ebp - 0x7d8], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7d8]
jmp 0x511db2
cmp dword [0x6ef668], 0xffffffff
je 0x511ae7
mov eax, dword [0x6f09c4]
mov ecx, 0x6f09c4
mov edx, dword [eax + 0xc]
call edx
push 0x1fff
push 0x6f1228
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
push 0x6f1228
call fcn.00547d0c
add esp, 4
mov dword [ebp - 0x27c], eax
mov eax, dword [0x6ef668]
mov dword [ebp - 0x7f4], eax
cmp dword [ebp - 0x7f4], 0x2e
ja case.0x511459.23
mov ecx, dword [ebp - 0x7f4]
movzx edx, byte [ecx + 0x511fc8]
jmp dword [edx*4 + 0x511f68]
push 5
push str.GOLD
push 0x6eef52
call fcn.005482ba
add esp, 0xc
test eax, eax
jne 0x5114cc
cmp dword [ebp - 0x27c], 0
jne 0x5114a2
mov eax, dword [0x76ec69]
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0x2710
jle 0x5114a2
mov dword [ebp - 0x27c], 0x2710
mov ecx, dword [ebp - 0x27c]
push ecx
mov ecx, 0x7c46b0
call fcn.00508a50
push 0x67e
push 0
push 0x6eef44
call fcn.005454d0
add esp, 0xc
jmp 0x51158b
cmp dword [ebp - 0x27c], 0
jne 0x511516
movzx edx, byte [0x6eef9f]
and edx, 0xff
movzx eax, dl
movzx ecx, byte [0x6eefa0]
and ecx, 0xff
movzx edx, cl
shl edx, 8
or eax, edx
movzx eax, ax
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0x64
jle 0x511516
mov dword [ebp - 0x27c], 0x64
push 0
mov ecx, dword [ebp - 0x27c]
push ecx
push 0x6eef52
mov edx, dword [0x6eef94]
push edx
push 0x44d
mov ecx, 0x7c46b0
call fcn.00505ca0
mov ecx, 0x6eef52
call fcn.0043b7c0
cmp eax, dword [ebp - 0x27c]
jle 0x511584
push 0
push 0
sub esp, 0x338
mov ecx, 0xce
mov esi, 0x6eef52
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x6f322c
call fcn.004a2ba0
push 0x67e
push 0
push 0x6eef44
call fcn.005454d0
add esp, 0xc
jmp 0x51158b
mov byte [0x6eef45], 1
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
cmp dword [ebp - 0x27c], 0
jne 0x5115af
mov dword [ebp - 0x27c], 1
jmp 0x5115c5
cmp dword [ebp - 0x27c], 0x3e8
jl 0x5115c5
mov dword [ebp - 0x27c], 0x3e8
mov eax, dword [ebp - 0x27c]
push eax
mov ecx, dword [0x7797b0]
push ecx
push 0x77976e
mov edx, dword [0x78ec84]
push edx
push 0x3f6
mov ecx, 0x7c46b0
call fcn.005080f0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
cmp dword [ebp - 0x27c], 0
jne 0x511616
mov ecx, 0x777f38
call fcn.0043b7c0
mov dword [ebp - 0x27c], eax
mov eax, dword [ebp - 0x27c]
push eax
mov ecx, dword [0x777f7a]
push ecx
push 0x777f38
mov edx, dword [0x78ec84]
push edx
push 0x408
mov ecx, 0x7c46b0
call fcn.005080f0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov eax, dword [0x76f8d4]
imul eax, eax, 0x339
add eax, 0x6f5e99
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x27c], 0
jne 0x51167e
mov ecx, dword [ebp - 0x280]
call fcn.0043b7c0
mov dword [ebp - 0x27c], eax
mov ecx, dword [ebp - 0x27c]
push ecx
mov edx, dword [0x76f8d4]
imul edx, edx, 0x339
mov eax, dword [edx + 0x6f5edb]
push eax
mov ecx, dword [0x76f8d4]
imul ecx, ecx, 0x339
add ecx, 0x6f5e99
push ecx
mov edx, dword [0x78ec84]
push edx
push 0x407
mov ecx, 0x7c46b0
call fcn.005080f0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
push 0x6f1228
push 0x40f
mov ecx, 0x7c46b0
call fcn.005085a0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov byte [ebp - 0x38c], 0
push 0x103
push 0
lea eax, [ebp - 0x38b]
push eax
call fcn.005454d0
add esp, 0xc
push 0x6f1228
push 0x57e5d4
lea ecx, [ebp - 0x38c]
push ecx
call fcn.005456a9
add esp, 0xc
lea edx, [ebp - 0x38c]
push edx
mov ecx, 0x7c46b0
call fcn.005072e0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
cmp dword [ebp - 0x27c], 0
jne 0x51175c
mov dword [ebp - 0x27c], 1
push 0x6f1228
push 0x78ec88
push str._s_r_s
lea eax, [ebp - 0x494]
push eax
call fcn.005456a9
add esp, 0x10
lea ecx, [ebp - 0x494]
push ecx
push 0
mov edx, dword [0x78ec84]
push edx
push 0x3f3
mov ecx, 0x7c46b0
call fcn.00508040
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov byte [ebp - 0x59c], 0
push 0x103
push 0
lea eax, [ebp - 0x59b]
push eax
call fcn.005454d0
add esp, 0xc
push 0x14
lea ecx, [ebp - 0x59c]
push ecx
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea edx, [ebp - 0x59c]
push edx
push 0x78ec88
push str._s_r_s
lea eax, [ebp - 0x6a4]
push eax
call fcn.005456a9
add esp, 0x10
lea ecx, [ebp - 0x6a4]
push ecx
push 0
mov edx, dword [0x78ec84]
push edx
push 0x3f3
mov ecx, 0x7c46b0
call fcn.00508040
push 0
push 0
push 0xcc
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
push 2
mov ecx, 0x6eeef8
call fcn.0049e240
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov byte [ebp - 0x7b4], 0
push 0x77
push 0
lea eax, [ebp - 0x7b3]
push eax
call fcn.005454d0
add esp, 0xc
push 0x78
lea ecx, [ebp - 0x7b4]
push ecx
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov byte [ebp - 0x73c], 0
push 0x95
push 0
lea edx, [ebp - 0x73b]
push edx
call fcn.005454d0
add esp, 0xc
lea eax, [ebp - 0x7b4]
push eax
push 0x57e5c8
lea ecx, [ebp - 0x73c]
push ecx
call fcn.005456a9
add esp, 0xc
lea edx, [ebp - 0x73c]
push edx
mov ecx, 0x7c46b0
call fcn.005072e0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov eax, dword [ebp - 0x27c]
push eax
mov ecx, 0x6eeef8
call fcn.00499fb0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
push 0x6f1228
push 0x40e
mov ecx, 0x7c46b0
call fcn.005085a0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov ecx, dword [ebp - 0x27c]
push ecx
mov ecx, 0x79b890
call fcn.004e6e90
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
movzx edx, byte [0x7ac64c]
test edx, edx
je 0x51196d
push 0x6f1228
mov ecx, 0x7c46b0
call fcn.005083c0
jmp 0x51197c
push 0x6f1228
mov ecx, 0x7c46b0
call fcn.00508260
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
push 0x6f1228
mov ecx, 0x7c46b0
call fcn.00508460
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
push 0x6f1228
mov eax, dword [0x797a1c]
push eax
mov ecx, 0x7c46b0
call fcn.00508cd0
jmp case.0x511459.23
push 0x6f1228
mov ecx, dword [0x797a1c]
push ecx
mov ecx, 0x7c46b0
call fcn.00508dd0
jmp case.0x511459.23
push 0x6f1228
mov ecx, 0x77b1b8
call fcn.00474900
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov edx, dword [ebp - 0x27c]
push edx
mov ecx, 0x79f2e8
call fcn.005312d0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov ecx, 0x79c200
call fcn.004f91a0
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov eax, dword [ebp - 0x27c]
push eax
mov ecx, 0x7a52d8
call fcn.0045e580
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov ecx, dword [ebp - 0x27c]
push ecx
mov ecx, 0x7923e0
call fcn.004ed720
mov dword [0x6ef668], 0xffffffff
jmp case.0x511459.23
mov edx, dword [ebp - 0x27c]
push edx
mov ecx, 0x6f322c
call fcn.004a5a60
mov byte [0x7c0e68], 0
push 0x78
mov ecx, 0x7c0e48
call fcn.005121c0
push 0
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 0
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 1
push 0x11
push 0x15a
mov eax, dword [0x69edd6]
add eax, 0x23f
push eax
mov ecx, dword [0x69edd2]
add ecx, 0xb8
push ecx
mov ecx, 0x7c0e48
call fcn.0043b450
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
jmp 0x511be7
push 0x104
mov edx, dword [ebp + 8]
add edx, 0x20
push edx
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
push 0x574a9b
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, 0x69ec08
call fcn.004edfb0
mov dword [ebp - 0x7b8], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x6658cc]
mov dword [ebp - 0x7f8], eax
cmp dword [ebp - 0x7f8], 0
je 0x511b4e
jmp 0x511b77
movzx ecx, byte [0x69d4b5]
cmp ecx, 2
jne 0x511b77
mov ecx, 0x79548c
call fcn.0043b9f0
movzx edx, al
test edx, edx
je 0x511b77
push 0x15
mov ecx, 0x6eeef8
call fcn.00496ec0
movzx eax, byte [0x7bf400]
test eax, eax
je 0x511b89
mov byte [0x7bf400], 0
mov ecx, dword [ebp + 8]
add ecx, 0x20
je 0x511be7
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 0x20]
cmp eax, 0x40
jne 0x511bd1
push 0
push 0
mov ecx, dword [ebp + 8]
add ecx, 0x20
push ecx
push 0xffffff
push 0
mov ecx, 0x6eeef8
call fcn.0048ce80
push 0
push 1
push 0x7ed
mov edx, dword [ebp - 0x7b8]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x511be7
push 0
push 0
push 0x7ed
mov eax, dword [ebp - 0x7b8]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x7dc], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7dc]
jmp 0x511db2
mov ecx, 0x69ec08
call fcn.004edfb0
mov dword [ebp - 0x7bc], eax
mov ecx, dword [ebp - 0x7bc]
push ecx
call dword [sym.imp.USER32.dll_SetFocus]
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 0x100
mov ecx, dword [ebp - 0x7bc]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x7e0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7e0]
jmp 0x511db2
jmp case.0x511072.2
lea edx, [ebp - 0x54]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.USER32.dll_BeginPaint]
push 0
push 0
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [ebp - 0x54]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.USER32.dll_EndPaint]
jmp case.0x511072.2
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x7fc], eax
cmp dword [ebp - 0x7fc], 0x11
je 0x511cb4
jmp 0x511cc5
mov dword [0x7bf404], 0
mov byte [0x7bf400], 0
jmp case.0x511072.2
mov ecx, dword [ebp + 8]
mov byte [ecx + 5], 1
mov ecx, 0x69ec08
call fcn.004edfb0
push eax
call sub.IMM32.dll_ImmGetContext
mov dword [ebp - 0x7c0], eax
push 0xa
push 1
mov edx, dword [ebp - 0x7c0]
push edx
call sub.IMM32.dll_ImmSetConversionStatus
mov eax, dword [ebp - 0x7c0]
push eax
mov ecx, 0x69ec08
call fcn.004edfb0
push eax
call sub.IMM32.dll_ImmReleaseContext
jmp case.0x511072.2
mov ecx, dword [ebp + 8]
mov byte [ecx + 5], 0
mov ecx, 0x69ec08
call fcn.004edfb0
push eax
call sub.IMM32.dll_ImmGetContext
mov dword [ebp - 0x7c4], eax
push 0xa
push 0
mov edx, dword [ebp - 0x7c4]
push edx
call sub.IMM32.dll_ImmSetConversionStatus
mov eax, dword [ebp - 0x7c4]
push eax
mov ecx, 0x69ec08
call fcn.004edfb0
push eax
call sub.IMM32.dll_ImmReleaseContext
jmp case.0x511072.2
cmp dword [ebp + 0x14], 0
je 0x511d6c
mov ecx, dword [ebp + 8]
mov byte [ecx + 4], 1
mov byte [ebp - 0x7fd], 1
jmp case.0x511072.2
mov edx, dword [ebp + 8]
mov byte [edx + 4], 0
mov byte [ebp - 0x7fd], 0
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
push edx
call dword [sym.imp.USER32.dll_CallWindowProcA]
mov dword [ebp - 0x7e4], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x55]
call fcn.00402620
mov eax, dword [ebp - 0x7e4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0054514c
mov esp, ebp
pop ebp
ret 0x14