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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x509fcd
mov eax, dword fs:[0]
push eax
sub esp, 0x8a4
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esi - 0x2b02]
cmp eax, 0x2d
ja case.0x45a866.11011
movzx eax, byte [eax + 0x45afb4]
jmp dword [eax*4 + 0x45af84]
call fcn.0045b000
jmp case.0x45a866.11042
mov dl, byte [0x549075]
cmp esi, 0x2b17
mov eax, dword [0x549070]
sete byte [ebp - 0x84]
test dl, dl
je 0x45a8b7
test eax, eax
je 0x45a8a6
mov ecx, dword [eax + 8]
call fcn.0043a860
mov dl, byte [0x549075]
mov ecx, eax
jmp 0x45a8c2
xor ecx, ecx
call fcn.0043a860
mov dl, byte [0x549075]
mov ecx, eax
jmp 0x45a8c2
test eax, eax
je 0x45a8c0
mov ecx, dword [eax + 8]
jmp 0x45a8c2
xor ecx, ecx
push dword [ebp - 0x84]
movzx eax, dl
mov edx, 1
push eax
push 0
call fcn.0045eb10
add esp, 0xc
cmp esi, 0x2b0a
je 0x45a8f9
cmp esi, 0x2b09
je 0x45a8f9
sub esp, 0xc
call fcn.0044a140
push ecx
call fcn.0044a460
mov eax, 1
jmp 0x45af68
mov ecx, 0x2b0d
call fcn.00464ce0
mov esi, eax
mov dword [ebp - 0x7c], 0x459bd0
lea eax, [ebp - 0x80]
mov dword [ebp - 0x80], 4
push eax
lea eax, [ebp - 0x8a8]
push eax
call fcn.0046c750
mov ecx, dword [eax]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x8b0]
add ecx, 0xc
push eax
call fcn.00463f10
push dword [0x549fdc]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x45a9d9
push 0x816
push eax
lea eax, [ebp - 0x8a0]
push eax
call fcn.004ded20
movq xmm0, qword [0x52ac34]
xor eax, eax
add esp, 0xc
mov word [ebp - 0x898], ax
mov ax, word [0x52ac3c]
mov ecx, 0x549fe0
mov dword [ebp - 0x8a0], 0x14c80000
mov dword [ebp - 0x89c], 0x10101
movq qword [ebp - 0x88a], xmm0
mov word [ebp - 0x882], ax
call fcn.00407c50
push 0
push 0x459410
push dword [0x5482c0]
mov byte [0x549074], al
lea eax, [ebp - 0x8a0]
push eax
push dword [0x548d7c]
call dword [sym.imp.USER32.dll_CreateDialogIndirectParamW]
mov dword [0x549fdc], eax
test esi, esi
je case.0x45a866.11042
cmp dword [0x549340], 0
je 0x45aa05
push 0
push 0x51d474
mov ecx, 0x5492d0
call fcn.004347b0
mov ecx, eax
mov dword [0x549304], ecx
jmp 0x45aa0b
mov ecx, dword [0x549304]
test ecx, ecx
mov edx, 0x51c1c8
mov eax, str.0x_08X
cmove eax, edx
push esi
push eax
lea eax, [ebp - 0x78]
push 0x32
push eax
call fcn.00407ae0
add esp, 0x10
mov dword [ebp - 0x80], 0
lea eax, [ebp - 0x78]
lea ecx, [ebp - 0x80]
push 0
push eax
call fcn.0042dfa0
mov esi, dword [ebp - 0x80]
test esi, esi
je 0x45aa4b
mov eax, dword [esi + 8]
jmp 0x45aa4d
xor eax, eax
push eax
push 0x3e8
push dword [0x549fdc]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov dword [ebp - 4], 0
jmp 0x45ac07
mov ecx, dword [0x5492d0]
call fcn.0047e440
mov ecx, dword [0x5482c4]
mov ecx, dword [ecx]
call fcn.0047e4d0
mov ecx, dword [0x5482c4]
mov edx, dword [0x5482c0]
push eax
mov ecx, dword [ecx]
call fcn.0047f4c0
add esp, 4
jmp case.0x45a866.11042
mov ecx, 0x2b0d
call fcn.00464ce0
test eax, eax
jne 0x45aaca
push 0x10
push 0x51c3bc
push 0x52b180
push dword [0x5482c0]
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp case.0x45a866.11042
mov ecx, eax
call fcn.0045dc50
jmp case.0x45a866.11042
mov ecx, 0x2b0e
call fcn.0045b3c0
jmp case.0x45a866.11042
mov ecx, 0x2b0f
call fcn.0045b3c0
jmp case.0x45a866.11042
call fcn.0045b4d0
jmp case.0x45a866.11042
push 0x2b12
push dword [0x5482c0]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edx, eax
mov dword [ebp - 0x80], 0
lea ecx, [ebp - 0x80]
call fcn.0042e8a0
mov dword [ebp - 4], 4
mov esi, dword [ebp - 0x80]
test esi, esi
je 0x45ab33
mov eax, dword [esi + 8]
jmp 0x45ab35
xor eax, eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x45ab5e
push 0x52b1b0
push 0x51cc1c
call fcn.00464a70
add esp, 8
mov dword [ebp - 4], 5
jmp 0x45ac07
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x11
call edi
push 0x10
movzx ebx, ax
call edi
movzx eax, ax
shr eax, 0xf
shr ebx, 0xf
and al, 1
test bl, 1
je 0x45ab8a
test al, al
jne 0x45ab8a
mov ebx, 1
jmp 0x45ab8c
xor ebx, ebx
test esi, esi
je 0x45ab95
mov eax, dword [esi + 8]
jmp 0x45ab97
xor eax, eax
push eax
call dword [sym.imp.SHELL32.dll_ILCreateFromPathW]
mov edi, eax
test edi, edi
je 0x45abc1
push ebx
push 0
push 0
push edi
call dword [sym.imp.SHELL32.dll_SHOpenFolderAndSelectItems]
push edi
mov ebx, eax
call dword [sym.imp.SHELL32.dll_SHFree]
shr ebx, 0x1f
xor bl, 1
jne 0x45ac00
test esi, esi
je 0x45abca
mov eax, dword [esi + 8]
jmp 0x45abcc
xor eax, eax
push eax
push 0x51c38c
lea eax, [ebp - 0x4a0]
push 0x208
push eax
call fcn.00407ae0
add esp, 0x10
lea eax, [ebp - 0x4a0]
push 0
push 0x51c3bc
push eax
push dword [0x5482c0]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 4], 6
test esi, esi
je 0x45ac1a
add dword [esi + 4], 0xffffffff
jne 0x45ac1a
push esi
call fcn.004eb01a
add esp, 4
mov dword [ebp - 4], 0xffffffff
jmp case.0x45a866.11042
mov ecx, dword [0x5482c4]
mov ecx, dword [ecx]
call fcn.0045dbc0
lea eax, [esi - 0x2b2a]
cmp eax, 5
ja case.0x45ac42.11053
jmp dword [eax*4 + 0x45afe4]
mov ecx, 0x2b0d
call fcn.00464ce0
push 0x2b2a
push dword [0x5482c0]
mov edi, eax
call dword [sym.imp.USER32.dll_GetDlgItem]
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x80], 0
push ecx
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov esi, dword [ebp - 0x80]
and esi, 1
je 0x45ac94
push 8
jmp 0x45ac96
push 0
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
cmp eax, esi
je case.0x45a866.11042
mov ecx, dword [0x5482c0]
xor esi, 1
push esi
mov edx, 0x2b2a
call fcn.0042e930
add esp, 4
jmp case.0x45a866.11042
mov ecx, 0x2b0d
call fcn.00464ce0
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
push 0x2b2c
push dword [0x5482c0]
call ebx
mov edi, dword [sym.imp.USER32.dll_SendMessageTimeoutW]
lea ecx, [ebp - 0x80]
push ecx
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push eax
mov dword [ebp - 0x80], 0
call edi
test byte [ebp - 0x80], 1
push 3
push 0
push 0
push 0
push 0
je 0x45ad85
push 0xffffffffffffffff
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test al, 8
jne case.0x45a866.11042
push 0x2b2c
push dword [0x5482c0]
call ebx
mov esi, eax
mov dword [ebp - 0x7c], 0
lea eax, [ebp - 0x7c]
push eax
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push esi
call edi
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x7c], 0
push eax
push 0x3e8
push 0x2a
push 0
push 0
push 0xf1
push esi
call edi
jmp case.0x45a866.11042
push 0xfffffffffffffffe
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test al, 8
je case.0x45a866.11042
push 0x2b2c
push dword [0x5482c0]
call ebx
mov esi, eax
mov dword [ebp - 0x7c], 0
lea eax, [ebp - 0x7c]
push eax
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push esi
call edi
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x7c], 0
push eax
push 0x3e8
push 0x2a
push 0
push 1
push 0xf1
push esi
call edi
jmp case.0x45a866.11042
mov ecx, 0x2b0d
call fcn.00464ce0
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
push 0x2b2b
push dword [0x5482c0]
call ebx
mov edi, dword [sym.imp.USER32.dll_SendMessageTimeoutW]
lea ecx, [ebp - 0x80]
push ecx
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push eax
mov dword [ebp - 0x80], 0
call edi
test byte [ebp - 0x80], 1
je 0x45aea1
push 0
push esi
call dword [sym.imp.USER32.dll_EnableWindow]
push esi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
cmp eax, 1
jne case.0x45a866.11042
push 0x2b2b
push dword [0x5482c0]
call ebx
mov esi, eax
mov dword [ebp - 0x7c], 0
lea eax, [ebp - 0x7c]
push eax
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push esi
call edi
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x7c], 0
push eax
push 0x3e8
push 0x2a
push 0
push 0
push 0xf1
push esi
call edi
jmp case.0x45a866.11042
push 1
push esi
call dword [sym.imp.USER32.dll_EnableWindow]
push esi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
jne case.0x45a866.11042
push 0x2b2b
push dword [0x5482c0]
call ebx
mov esi, eax
mov dword [ebp - 0x7c], 0
lea eax, [ebp - 0x7c]
push eax
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push esi
call edi
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x7c], 0
push eax
push 0x3e8
push 0x2a
push 0
push 1
push 0xf1
push esi
call edi
jmp case.0x45a866.11042
push 0x2b2f
push dword [0x5482c0]
call dword [sym.imp.USER32.dll_GetDlgItem]
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], 0
push ecx
push 0x3e8
push 0x2a
push 0
push 0
push 0xf0
push eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov eax, dword [ebp - 0x84]
mov edx, 0x2b2f
mov ecx, dword [0x5482c0]
not eax
and eax, 1
push eax
call fcn.0042e930
add esp, 4
jmp case.0x45a866.11042
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004dadd7
mov esp, ebp
pop ebp
ret