Function at 0x458de0
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor edx, edx
push ebp
push 0x459470
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa8]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x458e48
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa8]
mov edx, esi
call fcn.0041cc70
mov edi, eax
mov edx, dword [ebp - 8]
mov eax, dword [edi + 4]
call dword [edi]
test al, al
je 0x458e44
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x459485
inc esi
dec ebx
jne 0x458e19
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00458c94
mov ebx, dword [ebp - 8]
mov ebx, dword [ebx]
mov eax, ebx
cmp eax, 0x53
jg 0x458f11
je 0x4593a4
cmp eax, 0x16
jg 0x458ed8
je 0x459169
cmp eax, 0x14
ja case.0x458e7d.1
jmp dword [eax*4 + 0x458e84]
cmp eax, 0x1d
jg 0x458efa
je 0x459445
sub eax, 0x1a
je 0x45941f
sub eax, 2
je 0x459068
jmp case.0x458e7d.1
sub eax, 0x37
je 0x459034
sub eax, 0x13
je 0x459185
jmp case.0x458e7d.1
cmp eax, 0xb017
jg 0x458f5c
je 0x45927c
cmp eax, 0xb000
jg 0x458f43
je 0x459315
sub eax, 0x112
je 0x458f9e
add eax, 0xffffffe0
sub eax, 7
jb 0x45913d
jmp case.0x458e7d.1
sub eax, 0xb001
je 0x45933d
sub eax, 0x15
je 0x45925a
jmp case.0x458e7d.1
cmp eax, 0xb020
jg 0x458f82
je 0x4593be
sub eax, 0xb01a
je 0x459365
sub eax, 5
je 0x4593a4
jmp case.0x458e7d.1
sub eax, 0xb031
je 0x4593f4
add eax, 0xfffffff2
sub eax, 2
jb 0x459239
jmp case.0x458e7d.1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
and eax, 0xfff0
sub eax, 0xf020
je 0x458fb9
sub eax, 0x100
je 0x458fc6
jmp 0x458fd3
mov eax, dword [ebp - 4]
call fcn.004594d4
jmp 0x459466
mov eax, dword [ebp - 4]
call fcn.00459584
jmp 0x459466
push ebp
call fcn.00458d58
pop ecx
jmp 0x459466
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x459466
call fcn.00456564
jmp 0x459466
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_GetPropA
test eax, eax
je 0x459013
push ebp
call fcn.00458d94
pop ecx
jmp 0x459466
push ebp
call fcn.00458d58
pop ecx
jmp 0x459466
mov eax, dword [ebp - 8]
mov dword [eax], 0x27
push ebp
call fcn.00458d58
pop ecx
jmp 0x459466
mov eax, dword [ebp - 4]
call fcn.004594b8
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x459466
push 0
push 0
push 0xb01a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_IsIconic
push ebp
call fcn.00458d58
pop ecx
jmp 0x459466
push ebp
call fcn.00458d58
pop ecx
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 1
sbb eax, eax
inc eax
mov edx, dword [ebp - 4]
mov byte [edx + 0x9d], al
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
je 0x4590ad
mov eax, dword [ebp - 4]
call fcn.00458bf8
push 0
push 0
push 0xb000
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_IsIconic
jmp 0x459466
mov eax, dword [ebp - 4]
call fcn.00458be8
push 0
push 0
push 0xb001
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_IsIconic
jmp 0x459466
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
je 0x459109
mov eax, dword [ebp - 4]
call fcn.00458bf8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xac]
test eax, eax
je 0x4590fd
call fcn.00450c6c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xac], edx
push ebp
call fcn.00458d58
pop ecx
jmp 0x459466
push ebp
call fcn.00458d58
pop ecx
mov eax, dword [ebp - 4]
cmp dword [eax + 0xac], 0
jne 0x459130
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00450bb8
mov edx, dword [ebp - 4]
mov dword [edx + 0xac], eax
mov eax, dword [ebp - 4]
call fcn.00458bf0
jmp 0x459466
mov esi, dword [ebp - 8]
mov esi, dword [esi + 8]
push esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 8]
add ebx, 0xbc00
push ebx
mov eax, dword [ebp - 8]
push esi
call sub.user32.dll_MapVirtualKeyA
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x459466
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
je 0x459466
mov eax, dword [ebp - 4]
mov byte [eax + 0x9c], 1
jmp 0x459466
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
cmp dword [eax], 0xde534454
jne 0x459466
mov eax, dword [ebp - 4]
cmp byte [eax + 0x9e], 0
je 0x459466
mov eax, dword [ebp - 4]
cmp dword [eax + 0xa0], 0
jne 0x45922c
mov edx, 0x8000
mov eax, 0x459494
call fcn.0040faec
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0xa0], ebx
test ebx, ebx
je 0x459211
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0xc], edx
push 0x4594a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa0]
push eax
call fcn.00408ca4
mov esi, eax
mov ebx, esi
test esi, esi
je 0x459466
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov edx, dword [eax + 8]
push edx
mov edx, dword [ebp - 8]
mov eax, dword [eax + 4]
push eax
call ebx
jmp 0x459466
call fcn.00408c74
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xa0], edx
jmp 0x459466
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0xc], edx
jmp 0x459466
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
mov eax, dword [ebp - 8]
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0045ae50
and eax, 0x7f
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x459466
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004598e8
test al, al
je 0x459466
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x459466
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x459466
mov esi, eax
mov eax, esi
call fcn.0044078c
test eax, eax
je 0x459466
mov eax, esi
call fcn.0044078c
push eax
call sub.user32.dll_GetScrollRange
test eax, eax
je 0x459466
mov eax, esi
call fcn.0044078c
push eax
call sub.user32.dll_GetSubMenu
test eax, eax
je 0x459466
mov byte [0x4b83cc], 0
call sub.user32.dll_EnumChildWindows
mov ebx, eax
mov eax, esi
call fcn.0044078c
push eax
call sub.user32.dll_OemToCharA
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov edx, 0x112
mov eax, esi
call fcn.0043b368
push ebx
call sub.user32.dll_OemToCharA
mov byte [0x4b83cc], 1
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x459466
mov eax, dword [ebp - 4]
cmp word [eax + 0xfa], 0
je 0x459466
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xfc]
call dword [ebx + 0xf8]
jmp 0x459466
mov eax, dword [ebp - 4]
cmp word [eax + 0xf2], 0
je 0x459466
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xf4]
call dword [ebx + 0xf0]
jmp 0x459466
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_GetPropA
test eax, eax
jne 0x459466
call sub.user32.dll_EnumChildWindows
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x30]
jne 0x459466
xor eax, eax
call fcn.00450d08
test eax, eax
je 0x459466
push eax
call sub.user32.dll_OemToCharA
jmp 0x459466
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
mov edx, dword [ebp - 8]
mov dx, word [edx + 4]
mov eax, dword [ebp - 4]
call fcn.00459f68
jmp 0x459466
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x4593df
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
call fcn.00459a28
jmp 0x459466
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
call fcn.00459a84
jmp 0x459466
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 1
jne 0x45940e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb0]
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x459466
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0xb0], eax
jmp 0x459466
mov edx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov eax, dword [0x4bbf54]
mov eax, dword [eax]
call fcn.00444f54
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00458cec
push ebp
call fcn.00458d58
pop ecx
jmp 0x459466
mov eax, dword [0x4bee24]
call fcn.004582fc
push ebp
call fcn.00458d58
pop ecx
jmp 0x459466
call fcn.00424bd8
jmp 0x459466
push ebp
call fcn.00458d58
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x459485
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret