Function at 0x1000431a
Capabilities:
Check if file exists
Log keystrokes via polling

Disassembly:
push 0x38
mov eax, 0x1001fe22
call fcn.1000952c
mov edi, ecx
lea ecx, [ebp - 0x2c]
call fcn.100033c4
xor esi, esi
mov dword [ebp - 0x30], 7
xor eax, eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x34], esi
mov word [ebp - 0x44], ax
xor ebx, ebx
lea eax, [ebp - 0x44]
inc ebx
push eax
mov byte [ebp - 4], bl
call fcn.10004287
pop ecx
test eax, eax
je 0x10004547
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10004547
mov eax, dword [ebp + 8]
test eax, eax
jne 0x1000443d
mov eax, dword [edi]
cmp eax, 2
je 0x1000441e
cmp eax, 3
je 0x100043b4
add eax, 0xfffffffc
cmp eax, ebx
ja 0x1000444b
lea ecx, [edi + 0x10]
push esi
call fcn.10003061
lea ecx, [edi + 0x28]
push esi
call fcn.10003061
jmp 0x1000444b
lea esi, [edi + 4]
push esi
push 3
mov ecx, esi
call fcn.1000384c
mov ecx, dword [esi]
push ecx
add ecx, 0x30
call fcn.10001fa1
mov ecx, dword [esi]
lea eax, [edi + 0x10]
push eax
call fcn.10001fa1
mov ecx, dword [esi]
lea eax, [edi + 0x28]
add ecx, 0x18
push eax
call fcn.10001fa1
push str.SoftwareThingamahoochieWinMerge
push SysReAllocString
lea ecx, [ebp - 0x2c]
call fcn.10003409
test eax, eax
jne 0x1000444b
mov esi, 0x10021280
lea ecx, [ebp - 0x2c]
push esi
push str.FirstSelection
call fcn.10003612
push esi
push str.SecondSelection
lea ecx, [ebp - 0x2c]
call fcn.10003612
jmp 0x1000444b
lea esi, [edi + 4]
push esi
push 2
mov ecx, esi
call fcn.1000384c
mov ecx, dword [esi]
push ecx
add ecx, 0x18
call fcn.10001fa1
mov ecx, dword [esi]
lea eax, [edi + 0x10]
jmp 0x100043df
cmp eax, ebx
jne 0x10004476
lea ecx, [edi + 4]
push ecx
push ebx
call fcn.1000384c
push 0x11
lea esi, [edi + 4]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx eax, ax
shr eax, 0xf
push eax
lea eax, [ebp - 0x44]
push esi
push eax
call fcn.10004561
add esp, 0xc
mov ebx, eax
neg ebx
sbb ebx, ebx
inc ebx
jmp 0x10004547
cmp eax, 2
jne 0x100044b5
push dword [edi + 4]
lea esi, [edi + 0x10]
mov ecx, esi
call fcn.10001fa1
push str.SoftwareThingamahoochieWinMerge
push SysReAllocString
lea ecx, [ebp - 0x2c]
call fcn.10003409
test eax, eax
jne 0x10004547
cmp dword [esi + 0x14], 8
jb 0x100044aa
mov esi, dword [esi]
push esi
push str.FirstSelection
jmp 0x10004538
cmp eax, 3
jne 0x100044e8
push dword [edi + 4]
lea esi, [edi + 0x28]
mov ecx, esi
call fcn.10001fa1
push str.SoftwareThingamahoochieWinMerge
push SysReAllocString
lea ecx, [ebp - 0x2c]
call fcn.10003409
test eax, eax
jne 0x10004547
cmp dword [esi + 0x14], 8
jb 0x100044e5
mov esi, dword [esi]
push esi
jmp 0x10004533
cmp eax, 4
jne 0x10004542
push dword [edi + 4]
lea esi, [edi + 0x10]
mov ecx, esi
call fcn.10001fa1
lea ecx, [edi + 0x28]
call fcn.10004a10
push str.SoftwareThingamahoochieWinMerge
push SysReAllocString
lea ecx, [ebp - 0x2c]
call fcn.10003409
test eax, eax
jne 0x10004547
cmp dword [esi + 0x14], 8
jb 0x10004520
mov esi, dword [esi]
push esi
push str.FirstSelection
lea ecx, [ebp - 0x2c]
call fcn.10003612
push 0x10021280
push str.SecondSelection
lea ecx, [ebp - 0x2c]
call fcn.10003612
jmp 0x10004547
mov ebx, 0x80070057
lea ecx, [ebp - 0x44]
call fcn.10002d4c
lea ecx, [ebp - 0x2c]
call fcn.100033e3
mov eax, ebx
call fcn.100094d6
ret 4