Function at 0x445327
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x2cdc
call fcn.004a5100
mov eax, dword [0x4cc3b0]
xor eax, esp
mov dword [esp + 0x2cd8], eax
mov eax, dword [esp + 0x2ce0]
push ebx
mov ebx, dword [esp + 0x2cf0]
push ebp
mov ebp, ecx
mov ecx, dword [esp + 0x2cec]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
cmp ecx, 0x4e
jne 0x445e77
mov ecx, dword [ebx + 8]
push esi
xor esi, esi
xor eax, eax
lea ebx, [ebx]
cmp dword [eax + 0x4cb0fc], ecx
je 0x4452f2
add eax, 4
cmp eax, 0x1c
jb 0x4452e0
jmp 0x445305
mov eax, dword [0x4eacd4]
push esi
push esi
push 0x400
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [ebx + 8]
add eax, 0xb1
push edi
cmp eax, 0xb0
ja case.0x445320.174
movzx ecx, byte [eax + 0x445ebc]
jmp dword [ecx*4 + 0x445e90]
mov ebp, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
call ebp
movzx esi, ax
shr esi, 0xf
push 0x12
and esi, 1
call ebp
movzx edi, ax
shr edi, 0xf
push 0x11
and edi, 1
call ebp
movzx ebp, ax
shr ebp, 0xf
and ebp, 1
cmp word [ebx + 0xc], 0x79
jne 0x44536c
test esi, esi
jne 0x445363
test edi, edi
je 0x44537c
mov ecx, dword [esp + 0x10]
call fcn.00441820
test esi, esi
jne case.0x445320.174
test edi, edi
jne case.0x445320.174
test ebp, ebp
jne case.0x445320.174
movzx eax, word [ebx + 0xc]
add eax, 0xfffffff7
cmp eax, 0x6b
ja case.0x445320.174
movzx edx, byte [eax + 0x445f90]
jmp dword [edx*4 + 0x445f70]
call fcn.004a5c05
mov ecx, dword [esp + 0x10]
push 0
push 1
mov dword [0x501320], eax
call fcn.00444e20
call fcn.004a5c05
mov dword [0x501320], eax
jmp case.0x445320.174
mov ecx, dword [esp + 0x10]
call fcn.00441790
jmp case.0x445320.174
mov eax, dword [0x4eacd4]
push 0
push 0xb4
push 0x111
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
jmp case.0x445320.174
mov ecx, dword [esp + 0x10]
call fcn.0043ffb0
jmp case.0x445320.174
mov ecx, 0x4f0468
call fcn.00406e20
jmp case.0x445320.174
cmp byte [0x4e9b89], 0
mov ecx, 0x4f0478
je 0x445422
call fcn.004443d0
jmp case.0x445320.174
call fcn.004439b0
jmp case.0x445320.174
cmp dword [0x4ea41c], 0
je case.0x445320.174
call dword [sym.imp.USER32.dll_GetFocus]
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx]
jne case.0x445320.174
mov edx, dword [0x4ea41c]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
jmp case.0x445320.174
push esi
push str.SingleClick
push str.FileList
call fcn.0045b940
test eax, eax
je case.0x445320.174
mov ecx, ebp
call fcn.0043fe20
test eax, eax
je case.0x445320.174
call fcn.004a5c05
sub eax, dword [0x501320]
cmp eax, 0x3e8
jle case.0x445320.174
push esi
push 1
mov ecx, ebp
call fcn.00444e20
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x2ce0]
pop ebp
pop ebx
xor ecx, esp
call fcn.004a48d3
add esp, 0x2cdc
ret 0x10
mov ecx, ebp
call fcn.0043fe20
test eax, eax
je case.0x445320.174
jmp 0x445480
call fcn.00423ca0
jmp case.0x445320.174
mov eax, dword [ebx + 0x10]
push eax
mov ecx, ebp
call fcn.004449d0
jmp case.0x445320.174
mov ecx, 0x4f0da0
call fcn.00411680
mov dword [esp + 0x18], edx
cmp dword [0x4ea434], esi
jne 0x4455d3
cmp byte [ebp + 0x81a], 0
jne 0x4455d3
cmp byte [0x4e9b89], 0
je 0x44550a
and eax, 0x40
xor ecx, ecx
or eax, ecx
jne 0x44550a
cmp byte [ebp + 0x18], cl
je 0x4455d3
cmp byte [ebp + 0x18], 0
je 0x44551b
xor ecx, ecx
mov word [ebp + 0x1a], cx
jmp case.0x445320.174
mov ecx, dword [ebp]
mov edx, dword [ebx + 0x10]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x1c]
push eax
push esi
push 0x104b
push ecx
mov dword [esp + 0x2c], 4
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], esi
call edi
test eax, eax
je 0x4455d3
mov edx, dword [esp + 0x3c]
push edx
lea eax, [esp + 0xb2c]
push eax
mov ecx, 0x500a48
call fcn.0043f1d0
push 0x400
lea ecx, [esp + 0xb2c]
push ecx
lea esi, [ebp + 0x1a]
call fcn.00451c30
push eax
push esi
call fcn.0046aa40
mov edx, dword [ebp]
push 0
push 0
push 0x1018
push edx
call edi
push esi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, 0x4babbc
lea esp, [esp]
mov cx, word [esi]
cmp cx, word [eax]
jne 0x4455c6
test cx, cx
je 0x4455c2
mov cx, word [esi + 2]
cmp cx, word [eax + 2]
jne 0x4455c6
add esi, 4
add eax, 4
test cx, cx
jne 0x4455a0
xor eax, eax
jmp 0x4455cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x445320.174
mov eax, 1
jmp 0x44548c
xor eax, eax
mov word [0x500b20], ax
mov eax, dword [ebx + 0x20]
xor ecx, ecx
mov dword [esp + 0x10], esi
mov word [esp + 0x1ce8], cx
lea edi, [ecx + 1]
cmp eax, esi
jne 0x44563c
cmp byte [ebp + 0x18], cl
je case.0x445320.174
mov ecx, dword [ebp]
mov edx, dword [ebx + 0x10]
lea eax, [esp + 0x1c]
push eax
push esi
push 0x104b
push ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], 0x500b20
mov dword [esp + 0x44], 0x400
mov dword [esp + 0x2c], edi
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x445696
push 0x400
push eax
push 0x500b20
call fcn.0046aa40
mov eax, dword [ebx + 0x2c]
cmp eax, dword [0x500afc]
jae 0x445696
push eax
lea edx, [esp + 0xb2c]
push edx
mov ecx, 0x500a48
call fcn.0043f1d0
push 0x400
lea eax, [esp + 0xb2c]
push eax
lea ecx, [esp + 0x1cf0]
push ecx
call fcn.0046aa40
lea edx, [esp + 0x1ce8]
push edx
call fcn.00451c30
xor ecx, ecx
mov word [eax], cx
cmp word [0x500b20], si
je case.0x445320.174
cmp byte [ebp + 0x18], 0
je 0x4458b5
mov byte [ebp + 0x18], 0
cmp byte [0x4e9b89], 0
je 0x44588d
lea edx, [esp + 0xb28]
push edx
push str.Rar_MDXXXXXX
call fcn.00485420
test al, al
je 0x445b28
xor eax, eax
mov ebx, 2
nop
movzx ecx, word [esp + eax + 0xb28]
mov word [esp + eax + 0x14e8], cx
add eax, ebx
test cx, cx
jne 0x4456e0
lea eax, [esp + 0x14e8]
push eax
call fcn.004516d0
mov eax, 0x500b20
mov edx, eax
jmp 0x445710
mov cx, word [eax]
add eax, ebx
test cx, cx
jne 0x445710
lea edi, [esp + 0x14e8]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, ebx
test cx, cx
jne 0x445726
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
lea ecx, [esp + 0x14ec]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x44586d
push 0
call fcn.00481770
push 0x400
push 0x4f901c
mov ecx, 0x4f0da0
call fcn.004130e0
mov ecx, dword [0x4f981c]
lea edx, [esp + 0x14e8]
push edx
call fcn.0046b090
push 0x400
push 0x4f58b8
mov ecx, 0x4f0da0
mov dword [0x4f65ec], ebx
mov dword [0x4f65e8], ebx
mov byte [0x4f6626], 0
call fcn.004130c0
xor eax, eax
movzx ecx, word [eax + 0x4f58b8]
mov word [esp + eax + 0x24e8], cx
add eax, ebx
test cx, cx
jne 0x4457b0
lea eax, [esp + 0x24e8]
push eax
call fcn.004516d0
mov eax, 0x500b20
mov edx, eax
lea ebx, [ebx]
mov cx, word [eax]
add eax, ebx
test cx, cx
jne 0x4457e0
lea edi, [esp + 0x24e8]
sub eax, edx
add edi, 0xfffffffe
mov cx, word [edi + 2]
add edi, ebx
test cx, cx
jne 0x4457f6
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
jmp 0x445820
movzx ecx, word [esp + eax + 0x24e8]
mov word [eax + 0x500b20], cx
add eax, ebx
test cx, cx
jne 0x445820
mov ecx, dword [0x4f0fac]
mov dword [0x4f6fbc], ecx
push 0
mov ecx, 0x4f0da0
call fcn.00417240
mov esi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea edx, [esp + 0x14e8]
push edx
call esi
lea eax, [esp + 0xb28]
push eax
call esi
jmp 0x445b28
lea ecx, [esp + 0x14e8]
push ecx
push 0x1f7
call fcn.004611c0
push eax
call fcn.00493250
add esp, 8
jmp 0x445b1e
push esi
push 0x500b20
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x445aff
cmp word [0x500b20], si
je 0x445b28
push 0x500b20
jmp 0x445875
cmp byte [0x4e9b89], 0
je 0x445ae9
lea edx, [esp + 0xb28]
push edx
mov ecx, ebp
call fcn.004407a0
test al, al
je 0x4458eb
push 0x400
lea eax, [esp + 0xb2c]
push eax
lea ecx, [ebp + 0x1a]
push ecx
call fcn.0046aa40
push esi
call fcn.00481770
push 0x400
push 0x4f901c
mov ecx, 0x4f0da0
call fcn.004130e0
mov edx, dword [0x4f0fac]
push esi
push 0x4bb9d4
push str.FileList
mov dword [0x4f6fbc], edx
call fcn.0045b940
test eax, eax
je 0x44594a
xor eax, eax
jmp 0x445930
movzx ecx, word [esp + eax + 0x1ce8]
mov word [esp + eax + 0x24e8], cx
add eax, 2
cmp cx, si
jne 0x445930
jmp 0x44596e
push 0x400
lea eax, [esp + 0x24ec]
push eax
mov ecx, 0x4f0da0
call fcn.004130c0
lea ecx, [esp + 0x24e8]
push ecx
call fcn.004516d0
mov ecx, dword [0x4f981c]
lea ebx, [ebp + 0x1a]
push ebx
call fcn.0046b090
xor eax, eax
nop
movzx ecx, word [esp + eax + 0x24e8]
mov word [esp + eax + 0x14e8], cx
add eax, 2
cmp cx, si
jne 0x445980
mov eax, 0x500b20
mov edx, eax
nop
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4459a0
lea edi, [esp + 0x14e8]
sub eax, edx
add edi, 0xfffffffe
jmp 0x4459c0
mov cx, word [edi + 2]
add edi, 2
cmp cx, si
jne 0x4459c0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4f982c]
call fcn.0046ac90
mov ecx, dword [0x4f982c]
lea edx, [esp + 0x14e8]
push edx
call fcn.0046b090
push 0
push 0
lea eax, [esp + 0x14f0]
push eax
push 0
mov ecx, 0x500a48
call fcn.0043f2d0
test al, al
je 0x445a87
lea ecx, [esp + 0x14e8]
push ecx
push ebx
call fcn.00473340
test eax, eax
jne 0x445a60
lea ecx, [esp + 0x14e8]
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x445a57
test dx, dx
je 0x445a53
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x445a57
add eax, 4
add ecx, 4
test dx, dx
jne 0x445a31
xor eax, eax
jmp 0x445a5c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x445a87
lea edx, [esp + 0x14e8]
push edx
mov ecx, ebp
call fcn.00442b40
push 0x50d
call fcn.004611c0
push eax
call fcn.00493250
add esp, 4
jmp 0x445b28
cmp word [0x500b20], 0
mov esi, 0x500b20
je 0x445ab4
movzx eax, word [esi]
push eax
mov eax, dword [str._____:]
push eax
call fcn.004a5870
add esp, 8
test eax, eax
jne 0x445ac0
add esi, 2
cmp word [esi], ax
jne 0x445a96
push 0
mov ecx, 0x4f0da0
call fcn.00413d40
xor eax, eax
jmp 0x445ad0
movzx ecx, word [esp + eax + 0x14e8]
mov word [eax + 0x500b20], cx
add eax, 2
test cx, cx
jne 0x445ad0
jmp 0x445b28
push 0x500b20
push 0
lea esi, [ebp + 0x1a]
push esi
push 0
call fcn.00431980
test al, al
je 0x445b05
mov dword [esp + 0x10], edi
jmp 0x445b28
push 0x500b20
push esi
push 0x207
call fcn.004611c0
push eax
call fcn.00493250
add esp, 0xc
mov ecx, 0x4d76b4
call fcn.00428fb0
mov ecx, dword [0x4eacd4]
push 0x500b20
push 0
push 0x402
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esp + 0x10]
jmp 0x44548c
push 0x30
push 0x65
call fcn.004611c0
push eax
push 0x1f4
call fcn.004611c0
mov edx, dword [0x4eacd4]
push eax
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp case.0x445320.174
mov eax, dword [ebx + 0xc]
sub eax, 1
je 0x445c04
sub eax, 0x10000
jne case.0x445320.174
cmp dword [0x4cb0f4], 0xffffffff
jne 0x445bc3
push 0xff0000
push str.AltColor
push str.SoftwareMicrosoftWindowsCurrentVersionExplorer
call fcn.0045b940
push 0xd9213
push str.AltEncryptionColor
push str.SoftwareMicrosoftWindowsCurrentVersionExplorer
mov dword [0x4cb0f4], eax
call fcn.0045b940
mov dword [0x500b1c], eax
mov eax, dword [ebx + 0x2c]
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, 0x500a48
call fcn.0043f1d0
mov eax, dword [eax + 0x810]
test eax, 0x800
je 0x445bec
mov edx, dword [0x4cb0f4]
mov dword [ebx + 0x30], edx
test eax, 0x4000
je case.0x445320.174
mov eax, dword [0x500b1c]
mov dword [ebx + 0x30], eax
jmp case.0x445320.174
movzx eax, byte [0x4f0d98]
neg eax
sbb eax, eax
and eax, 0x20
jmp 0x44548c
test byte [ebx + 0xc], 2
je case.0x445320.174
mov eax, dword [ebx + 0x2c]
cmp eax, dword [0x500afc]
jae case.0x445320.174
push eax
mov ecx, 0x500a48
call fcn.0043f3a0
mov ebp, eax
mov ebx, 0x4401
call fcn.0043ee30
cmp eax, 0x501
jb 0x445c57
cmp byte [0x4e9b89], 0
je 0x445c5c
mov ebx, 0x4411
push 0x400
lea ecx, [esp + 0x1cec]
push ecx
call fcn.00485b10
cmp byte [0x4e9b89], 0
mov esi, dword [ebp]
je 0x445c9b
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x445c80
sub eax, edx
sar eax, 1
cmp eax, 0x101
ja 0x445cd8
jmp 0x445d14
lea eax, [esp + 0x1ce8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x445ca5
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, esi
lea edi, [eax + 2]
jmp 0x445cc0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x445cc0
sub eax, edi
sar eax, 1
add eax, edx
cmp eax, 0x101
jbe 0x445d32
push esi
or ebx, 0x10
call fcn.00451fc0
mov esi, eax
test esi, esi
je 0x445d06
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x445cf0
sub eax, edx
sar eax, 1
cmp eax, 0x101
jbe 0x445d0b
mov esi, str.dummy
cmp byte [0x4e9b89], 0
je 0x445d32
movzx edx, word [esi]
push edx
call fcn.004516a0
test al, al
je 0x445d32
movzx eax, word [esi + 2]
add esi, 2
push eax
call fcn.004516a0
test al, al
jne 0x445d21
mov edx, dword [ebp + 0x18]
mov edi, dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
push ebx
push 0x2b4
lea ecx, [esp + 0x87c]
push ecx
push edx
push esi
call edi
test eax, eax
setne al
test al, al
jne 0x445d84
test bl, 0x10
jne 0x445e07
mov ecx, dword [ebp + 0x18]
or ebx, 0x10
push ebx
push 0x2b4
lea eax, [esp + 0x87c]
push eax
push ecx
push esi
call edi
test eax, eax
setne al
test al, al
je 0x445e07
push 0xc8
lea edx, [esp + 0xa8c]
push edx
lea eax, [esp + 0x1360]
push eax
call fcn.0046aa40
cmp word [esp + 0x1358], 0
jne 0x445dc3
mov edx, dword [ebp]
push 0xc8
lea ecx, [esp + 0x135c]
push ecx
mov ecx, dword [esp + 0x18]
push edx
call fcn.0043fff0
movzx eax, byte [0x4e9b89]
mov esi, dword [esp + 0x14]
add eax, 2
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
lea ecx, [esp + 0x135c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
push eax
push 0x1074
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x878]
mov dword [esi + 0x28], eax
jmp 0x445e0b
mov esi, dword [esp + 0x14]
or dword [esi + 0xc], 0x1000
push 0x400
lea ecx, [esp + 0xb2c]
push ecx
call fcn.00485b10
lea ecx, [esp + 0xb28]
lea eax, [esp + 0x1ce8]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x445e58
test dx, dx
je 0x445e54
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x445e58
add eax, 4
add ecx, 4
test dx, dx
jne 0x445e32
xor eax, eax
jmp 0x445e5d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x445320.174
lea edx, [esp + 0x1ce8]
push edx
call fcn.00485af0
jmp case.0x445320.174
mov edx, dword [esp + 0x2cf0]
push ebx
push edx
push ecx
push eax
call dword [sym.imp.USER32.dll_DefWindowProcW]
jmp 0x44548e