Function at 0x10036390
Capabilities:
Log keystrokes

Disassembly:
mov eax, 0x100601e0
call fcn.1005f330
sub esp, 0x94
push ebx
push esi
push edi
mov dword [ebp - 0x24], 0x31f0
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x10], esp
cmp dword [ebp - 0x24], 0x3346
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x1c], edi
jle 0x100363ea
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x106092f8
or eax, esi
cdq
push edx
push eax
call fcn.1002e06f
inc edi
cmp edi, 0x677f
jl 0x100363c4
inc esi
cmp esi, 0x77c1
jl 0x100363c2
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0x31c7
mov dword [ebp - 0x3c], edi
jge 0x10036408
mov edx, 0x1000abf8
mov ecx, 0x106092f8
call fcn.1002fb19
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x18], 0x88a137b1
xor esi, esi
mov dword [ebp - 0x14], 0xfdb6968
inc esi
mov dword [ebp - 0x24], 0xe5809974
mov ecx, ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
je 0x10036439
mov ecx, esi
mov eax, dword [ebp - 0x18]
xor edx, edx
sub ecx, eax
add ecx, 0x82a1
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
neg ecx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setl dl
sub eax, edx
sub eax, dword [ebp - 0x24]
je 0x100364ba
cmp dword [ebp - 0x14], ebx
je 0x100364ba
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x100364cb
push ebx
push esi
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
jmp 0x100364cb
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x18], 0xe055a24b
dec dword [ebp - 0x24]
mov dword [ebp - 0x18], 0xac453072
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x24], 0xbbd0a708
mov dword [ebp - 0x30], esi
push esi
call fcn.1002e184
mov dword [ebp - 0x1c], 0xe1dc630d
mov dword [ebp - 0x14], ebx
jmp 0x10036507
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x100364f4
mov ecx, dword [ebp - 0x18]
xor edx, edx
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
sub ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
neg eax
sbb eax, eax
neg eax
neg eax
je 0x10036581
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], 0xfffffffc
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
sub ecx, eax
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
sub edx, 0x9a01
cmp eax, edx
setne cl
mov dword [ebp - 0x28], ecx
jmp 0x100365dd
mov dword [ebp - 0x14], 0xfffffff6
xor edx, edx
mov dword [ebp - 0x2c], 0xd3709e8e
mov dword [ebp - 0x2c], 0xc1e183a0
mov dword [ebp - 0x2c], 0xeae11771
mov dword [ebp - 0x2c], 0xc4b79a97
mov dword [ebp - 0x2c], 9
mov dword [ebp - 0x2c], 3
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
setge dl
mov dword [ebp - 0x18], edx
dec dword [ebp - 0x1c]
lea ecx, [ebp - 0x88]
call fcn.1002e206
mov eax, dword [edi]
mov edi, dword [ebp - 0x3c]
mov dword [eax], 2
mov eax, dword [edi]
cmp dword [eax], ebx
jl 0x100369eb
mov dword [ebp - 0x18], 0x2fe22364
mov dword [ebp - 0x14], ebx
jmp 0x10036617
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x34], 0x55bb
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10036609
push 2
mov dword [ebp - 0x18], ebx
pop edi
cmp dword [ebp - 0x18], ebx
jg 0x100367e6
mov dword [ebp - 0x14], 0x2526041
lea ecx, [ebp - 0x64]
push 3
call fcn.1002e184
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], ebx
jmp 0x10036654
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x64]
mov dword [eax + ecx*4], 0x3df2ef51
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10036644
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jg 0x100367be
push edi
lea ecx, [ebp - 0x7c]
call fcn.1002e184
mov byte [ebp - 4], 3
mov dword [ebp - 0x1c], ebx
jmp 0x10036688
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0x79facd4a
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10036678
mov dword [ebp - 0x28], 0x5e2e
cmp dword [ebp - 0x28], 0x60f2
jle 0x10036734
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov edi, ebx
mov edx, ecx
mov eax, ebx
mov ecx, edi
mov dword [ebp - 0x1c], eax
sar edx, cl
mov dword [ebp - 0x4c], edx
mov ecx, eax
mov edx, ebx
mov eax, dword [ebp - 0x4c]
shl eax, cl
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], eax
mov ecx, edx
shl eax, cl
lea ecx, [ebp - 0xa0]
cdq
push edx
push eax
call fcn.1000d7c0
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100366e1
mov eax, dword [eax]
push eax
call fcn.1004a056
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xa0]
call fcn.1002e510
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
inc edx
mov dword [ebp - 0x30], edx
cmp edx, 0x541c
jl 0x100366c5
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x479e
jl 0x100366b6
mov ecx, dword [ebp - 0x24]
inc edi
cmp edi, 0x4171
jl 0x100366a8
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x12f4
jl 0x100366a6
push 2
pop edi
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
sub edx, 0xfffffff6
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x64]
setg cl
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x34]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
mov eax, dword [ebp + eax*4 - 0x34]
cmp eax, 0x1a17e59
mov eax, dword [ebp - 0x18]
setle cl
mov eax, dword [ebp + eax*4 - 0x34]
imul eax, edx
sub ecx, eax
je 0x10036790
mov ecx, esi
cmp dword [ebp - 0x34], ebx
jne 0x10036792
mov ecx, ebx
cmp dword [ebp - 0x28], 0x5c66
mov eax, dword [ebp - 0x7c]
mov dword [eax], ecx
jge 0x100367ab
push 0x1000ac9c
call fcn.1004a056
pop ecx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], edi
call fcn.1002e206
inc dword [ebp - 0x14]
jmp 0x1003665d
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x100367d2
push 0x87d
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x64]
call fcn.1002e206
inc dword [ebp - 0x18]
jmp 0x10036622
mov dword [ebp - 0x2c], 0xb4b13281
lea ecx, [ebp - 0x48]
push edi
call fcn.1002e184
mov dword [ebp - 4], 6
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x14], 0x2a67f8b4
mov dword [ebp - 0x1c], ebx
jmp 0x1003681d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x10036810
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x100368fd
push 3
lea ecx, [ebp - 0x58]
call fcn.1002e184
mov dword [ebp - 0x1c], ebx
jmp 0x1003684d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1003683d
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], esi
ja 0x100368b8
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x58]
mov dword [eax + ecx*4], 0x1c03
xor eax, eax
cmp dword [edx + 4], esi
setg al
xor ecx, ecx
cmp eax, dword [edx]
mov eax, dword [ebp - 0x18]
setg cl
add ecx, 0x1c03
imul eax, ecx
xor ecx, ecx
cmp eax, dword [edx + 4]
mov eax, dword [ebp - 0x58]
setge cl
xor edx, edx
cmp ecx, dword [eax + 8]
mov eax, 0xd34caa8e
setl dl
cmp eax, edx
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, 0xfffffffe
setl cl
mov dword [ebp - 0x14], ecx
mov ecx, esi
cmp dword [ebp - 0x14], ebx
jne 0x100368ba
mov ecx, ebx
mov eax, dword [ebp - 0x58]
mov dword [eax + 4], ecx
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], ebx
jl 0x100368ec
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x100368dc
push 0x1af8
call dword [sym.imp.GDI32.dll_CreateHalftonePalette]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], ebx
jne 0x100368ec
dec dword [ebp - 0x14]
jns 0x100368c8
lea ecx, [ebp - 0x58]
call fcn.1002e206
dec dword [ebp - 0x18]
jns 0x1003682e
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x48]
cmp dword [eax], ecx
lea ecx, [ebp - 0x48]
setg dl
mov dword [ebp - 0x18], edx
or dword [ebp - 4], 0xffffffff
call fcn.1002e206
mov dword [ebp - 0x2c], 0xffffffff
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], 0x4a20a298
mov dword [ebp - 0x28], 0x4aad9ddc
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x28], 0xd76df3e2
mov dword [ebp - 0x28], edi
push esi
call fcn.1002e184
mov dword [ebp - 0x1c], ebx
jmp 0x10036960
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 0x26de0d61
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10036950
mov eax, dword [ebp - 0x18]
mov edx, 0xb885b3d9
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
sub edx, eax
mov eax, dword [ebp - 0x18]
cmp eax, edx
setl cl
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], ebx
je 0x100369b2
mov eax, esi
cmp dword [ebp - 0x24], ebx
jne 0x100369b4
mov eax, ebx
add eax, 0xd1fe
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
lea ecx, [ebp - 0x70]
call fcn.1002e206
mov edi, dword [ebp - 0x3c]
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
cmp dword [eax + ecx*4], ebx
jne 0x100369eb
mov eax, dword [ebp + 8]
dec dword [eax]
mov eax, dword [edi]
dec dword [eax]
jmp 0x100365f3
mov dword [ebp - 0x38], 0xeca4
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp + 8], 0xe164caf
mov dword [ebp + 8], esi
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x14], 0xfffffff5
jmp 0x10036a44
mov dword [ebp + 8], 0x708ef6b8
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
mov dword [ebp + 8], eax
mov byte [ebp + 0xb], bl
cmp byte [ebp + 0xb], 0
je 0x10036a41
push ebx
push 0x19c0
push 0x16eb
call dword [sym.imp.USER32.dll_AttachThreadInput]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffa
jne 0x10036a12
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret