Function at 0x53c774
Capabilities:
Log keystrokes via application hook

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x15
push 0
push 0
dec ecx
jne 0x53c77c
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
xor edx, edx
push ebp
push 0x53d6b7
push dword fs:[edx]
mov dword fs:[edx], esp
cmp eax, 0x802d
jne 0x53cb1c
mov eax, 0x53d6d4
call fcn.004a0240
mov eax, dword [0x560900]
cmp dword [eax + 0x34], 1
jne 0x53c7df
mov eax, dword [0x55cd94]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov edx, 0x53d6e8
call fcn.0045cbe4
mov eax, dword [0x55cd94]
mov eax, dword [eax]
call fcn.00479548
jmp 0x53d699
mov eax, dword [0x560900]
call fcn.00524b28
mov eax, dword [0x55d2e4]
cmp dword [eax], 1
jne 0x53c838
mov byte [0x560480], 0
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov dword [eax + 0x328], 1
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
call fcn.004793a0
mov eax, dword [0x560444]
mov eax, dword [eax + 0x348]
xor edx, edx
call fcn.0045cbe4
mov eax, dword [0x560444]
call fcn.00479548
jmp 0x53d699
mov eax, dword [0x560444]
cmp dword [eax + 0x4cc], 0
jne 0x53ca51
xor eax, eax
push ebp
push 0x53c924
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
mov ebx, dword [eax + 0x34]
mov eax, dword [0x5603d8]
mov eax, dword [eax + 0x90]
call fcn.0047f46c
mov eax, dword [0x5603d8]
call fcn.00481534
mov eax, dword [0x5603d8]
call fcn.00403c6c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x47e858]
call fcn.00481668
mov dword [0x5603d8], eax
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x54a374
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x546ef0
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x7c], edx
mov dword [eax + 0x78], 0x540ab0
mov eax, dword [0x560444]
mov edx, dword [eax + 0x474]
mov eax, dword [0x5603d8]
call fcn.00481380
cmp ebx, 0x1842
jl 0x53c90a
mov edx, 0xc8a
mov eax, dword [0x5603d8]
call fcn.00481480
jmp 0x53c91a
lea edx, [ebx + 0x3e8]
mov eax, dword [0x5603d8]
call fcn.00481480
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53c99b
xor eax, eax
push ebp
push 0x53c9c0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
call fcn.0048152c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53ca51
xor eax, eax
push ebp
push 0x53cab3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
cmp byte [eax + 0x30], 0
jne 0x53ca74
mov eax, dword [0x5603d8]
call fcn.0048152c
push 0x53d764
mov eax, dword [0x560444]
push dword [eax + 0x448]
push 0x53d770
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.00404f88
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x5603d8]
mov eax, dword [eax + 0x90]
call fcn.0047fe60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53cad7
mov byte [0x560480], 0
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov dword [eax + 0x328], 1
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
call fcn.004793a0
mov eax, dword [0x560444]
mov eax, dword [eax + 0x348]
xor edx, edx
call fcn.0045cbe4
mov eax, dword [0x560444]
call fcn.00479548
jmp 0x53d699
cmp eax, 0x8020
jne 0x53ce1e
mov eax, 0x53d77c
call fcn.004a0240
mov eax, dword [0x560900]
call fcn.00524b28
mov eax, dword [0x560444]
cmp dword [eax + 0x4cc], 0
jne 0x53cd44
xor eax, eax
push ebp
push 0x53cc17
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
mov ebx, dword [eax + 0x34]
mov eax, dword [0x5603d8]
call fcn.00481534
mov eax, dword [0x5603d8]
call fcn.00403c6c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x47e858]
call fcn.00481668
mov dword [0x5603d8], eax
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x54a374
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x546ef0
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x7c], edx
mov dword [eax + 0x78], 0x540ab0
mov eax, dword [0x560444]
mov edx, dword [eax + 0x474]
mov eax, dword [0x5603d8]
call fcn.00481380
cmp ebx, 0x1842
jl 0x53cbfd
mov edx, 0xc8a
mov eax, dword [0x5603d8]
call fcn.00481480
jmp 0x53cc0d
lea edx, [ebx + 0x3e8]
mov eax, dword [0x5603d8]
call fcn.00481480
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53cc8e
xor eax, eax
push ebp
push 0x53ccb3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
call fcn.0048152c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53cd44
xor eax, eax
push ebp
push 0x53cda6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
cmp byte [eax + 0x30], 0
jne 0x53cd67
mov eax, dword [0x5603d8]
call fcn.0048152c
push 0x53d790
mov eax, dword [0x560444]
push dword [eax + 0x448]
push 0x53d770
lea eax, [ebp - 0x50]
mov edx, 3
call fcn.00404f88
mov edx, dword [ebp - 0x50]
mov eax, dword [0x5603d8]
mov eax, dword [eax + 0x90]
call fcn.0047fe60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53cdca
mov byte [0x560480], 0
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov dword [eax + 0x328], 1
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
call fcn.004793a0
mov eax, dword [0x560444]
mov eax, dword [eax + 0x348]
xor edx, edx
call fcn.0045cbe4
mov eax, dword [0x560444]
call fcn.00479548
mov eax, dword [0x55d300]
mov edx, 0x53d79c
call fcn.00404c5c
jmp 0x53d699
cmp eax, 0x8017
jne 0x53d114
mov eax, 0x53d7a8
call fcn.004a0240
mov eax, dword [0x560444]
cmp dword [eax + 0x4cc], 0
jne 0x53d04c
xor eax, eax
push ebp
push 0x53cf1f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
mov ebx, dword [eax + 0x34]
mov eax, dword [0x5603d8]
mov eax, dword [eax + 0x90]
call fcn.0047f46c
mov eax, dword [0x5603d8]
call fcn.00481534
mov eax, dword [0x5603d8]
call fcn.00403c6c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x47e858]
call fcn.00481668
mov dword [0x5603d8], eax
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x54a374
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x546ef0
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x7c], edx
mov dword [eax + 0x78], 0x540ab0
mov eax, dword [0x560444]
mov edx, dword [eax + 0x474]
mov eax, dword [0x5603d8]
call fcn.00481380
cmp ebx, 0x1842
jl 0x53cf05
mov edx, 0xc8a
mov eax, dword [0x5603d8]
call fcn.00481480
jmp 0x53cf15
lea edx, [ebx + 0x3e8]
mov eax, dword [0x5603d8]
call fcn.00481480
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53cf96
xor eax, eax
push ebp
push 0x53cfbb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
call fcn.0048152c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d04c
xor eax, eax
push ebp
push 0x53d0eb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
cmp byte [eax + 0x30], 0
jne 0x53d06f
mov eax, dword [0x5603d8]
call fcn.0048152c
push 0x53d7bc
mov eax, dword [0x560444]
push dword [eax + 0x54c]
mov eax, dword [0x560444]
push dword [eax + 0x448]
push 0x53d770
lea eax, [ebp - 0x74]
mov edx, 4
call fcn.00404f88
mov edx, dword [ebp - 0x74]
mov eax, dword [0x5603d8]
mov eax, dword [eax + 0x90]
call fcn.0047fe60
mov eax, dword [0x560444]
mov edx, dword [eax + 0x54c]
mov eax, dword [0x55d6a8]
mov eax, dword [eax]
mov eax, dword [eax + 0x330]
call fcn.0045cbe4
mov eax, dword [0x560444]
mov eax, dword [eax + 0x32c]
xor edx, edx
call fcn.0046ec74
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d699
cmp eax, 0x801d
jne 0x53d328
mov dl, 1
mov eax, dword [0x441250]
call fcn.00441350
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x53d1a4
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000002
mov eax, dword [ebp - 8]
call fcn.004413f0
mov cl, 1
mov edx, 0x53d7c8
mov eax, dword [ebp - 8]
call fcn.00441458
mov ecx, 0x53d7e8
mov edx, 0x53d7f8
mov eax, dword [ebp - 8]
call fcn.004417f4
push 0
mov eax, dword [0x55e668]
push eax
push 0x53c6d0
push 0xd
call sub.user32.dll_SetWindowsHookExW
mov edx, dword [0x560444]
mov dword [edx + 0x43c], eax
mov eax, dword [ebp - 8]
call fcn.004413c0
mov eax, dword [ebp - 8]
call fcn.00403c6c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d1b6
xor eax, eax
push ebp
push 0x53d319
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x78]
mov edx, dword [0x55d34c]
call fcn.00404e6c
lea eax, [ebp - 0x78]
mov edx, 0x53d808
call fcn.00404ed0
mov edx, dword [ebp - 0x78]
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x310]
call fcn.0045cbe4
mov eax, dword [0x560444]
mov edx, dword [eax + 0x54c]
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x308]
call fcn.0045cbe4
lea edx, [ebp - 0x7c]
mov eax, dword [0x560444]
mov eax, dword [eax + 0x4c4]
call fcn.004099fc
cmp dword [ebp - 0x7c], 0
jne 0x53d26f
lea eax, [ebp - 0x80]
push eax
mov eax, dword [0x560444]
mov eax, dword [eax + 0x54c]
call fcn.00404ec8
mov edx, eax
sub edx, 5
mov eax, dword [0x560444]
mov eax, dword [eax + 0x54c]
mov ecx, 6
call fcn.00405128
mov edx, dword [ebp - 0x80]
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x31c]
call fcn.0045cbe4
jmp 0x53d28c
mov eax, dword [0x560444]
mov edx, dword [eax + 0x4c4]
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x31c]
call fcn.0045cbe4
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x30c]
xor edx, edx
call fcn.0045cbe4
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x2f8]
mov edx, 0x53d81c
call fcn.0045cbe4
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x314]
mov edx, 0x53d828
call fcn.0045cbe4
mov eax, dword [0x560444]
mov eax, dword [eax + 0x43c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x84]
call fcn.00409d54
mov edx, dword [ebp - 0x84]
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
mov eax, dword [eax + 0x318]
call fcn.0045cbe4
mov eax, dword [0x55cdc4]
mov eax, dword [eax]
call fcn.00479548
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d699
cmp eax, 0x801a
jne 0x53d699
mov eax, 0x53d858
call fcn.004a0240
mov eax, dword [0x560444]
mov eax, dword [eax + 0x324]
xor edx, edx
call fcn.0046ec74
mov eax, dword [0x560444]
cmp dword [eax + 0x4cc], 0
jne 0x53d59b
xor eax, eax
push ebp
push 0x53d43e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
mov ebx, dword [eax + 0x34]
mov eax, dword [0x5603d8]
mov eax, dword [eax + 0x90]
call fcn.0047f46c
mov eax, dword [0x5603d8]
call fcn.00481534
mov eax, dword [0x5603d8]
call fcn.00403c6c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x47e858]
call fcn.00481668
mov dword [0x5603d8], eax
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x54a374
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x546ef0
mov eax, dword [0x5603d8]
mov edx, dword [0x560444]
mov dword [eax + 0x7c], edx
mov dword [eax + 0x78], 0x540ab0
mov eax, dword [0x560444]
mov edx, dword [eax + 0x474]
mov eax, dword [0x5603d8]
call fcn.00481380
cmp ebx, 0x1842
jl 0x53d421
mov edx, 0xc8a
mov eax, dword [0x5603d8]
call fcn.00481480
jmp 0x53d431
lea edx, [ebx + 0x3e8]
mov eax, dword [0x5603d8]
call fcn.00481480
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d4cd
xor eax, eax
push ebp
push 0x53d4f2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
call fcn.0048152c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d59b
xor eax, eax
push ebp
push 0x53d68f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5603d8]
cmp byte [eax + 0x30], 0
je 0x53d685
mov eax, dword [0x55d638]
cmp byte [eax], 0
jne 0x53d64e
mov eax, dword [0x55d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x304]
mov edx, dword [eax]
call dword [edx + 0xd8]
push 0x53d86c
mov eax, dword [0x560444]
push dword [eax + 0x54c]
mov eax, dword [0x560444]
push dword [eax + 0x448]
push 0x53d770
lea eax, [ebp - 0xa8]
mov edx, 4
call fcn.00404f88
mov edx, dword [ebp - 0xa8]
mov eax, dword [0x5603d8]
mov eax, dword [eax + 0x90]
call fcn.0047fe60
mov eax, dword [0x55d0f0]
mov eax, dword [eax]
mov eax, dword [eax + 0x2fc]
mov edx, 0x53d878
call fcn.0045cbe4
mov eax, dword [0x55d0f0]
mov eax, dword [eax]
call fcn.00479548
mov eax, dword [0x55d638]
mov byte [eax], 1
jmp 0x53d685
mov eax, dword [0x55cd94]
mov eax, dword [eax]
mov eax, dword [eax + 0x300]
mov edx, 0x53d878
call fcn.0045cbe4
mov eax, dword [0x55cd94]
mov eax, dword [eax]
call fcn.00479548
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d699
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x53d699
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53d6be
lea eax, [ebp - 0xa8]
mov edx, 0x28
call fcn.00404c2c
ret