Function at 0x436520
Capabilities:
Get file system object information
Log keystrokes via polling

Disassembly:
sub esp, 0x320
mov dl, byte [0x4caf4c]
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x65]
mov byte [esp + 0x64], dl
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
xor eax, eax
mov ecx, 0x40
mov dword [esp + 0x1d], eax
lea edi, [esp + 0xcd]
mov dword [esp + 0x21], eax
mov byte [esp + 0xcc], dl
mov byte [esp + 0x25], al
mov byte [esp + 0x84], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x85]
mov byte [esp + 0x44], dl
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x45]
mov byte [esp + 0x1c], dl
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x4c]
stosb byte es:[edi], al
mov eax, dword [esi + 0x70]
cmp eax, ecx
jge 0x4365ae
test eax, eax
jl 0x4365ae
mov ecx, dword [esi + 0x48]
mov edi, dword [ecx + eax*4]
jmp 0x4365b0
xor edi, edi
test edi, edi
je 0x4365d0
push 0xffffffffffffffff
mov ecx, edi
call fcn.00444cb0
test edi, edi
je 0x4365d0
mov eax, dword [edi + 0x28]
mov dword [esp + 0x18], 1
test eax, eax
je 0x4365d8
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4366b5
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x4365fe
lea edx, [esp + 0x44]
push 0x4be9f8
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x5a
call ebx
test ah, 0x80
je 0x43667f
push 0x10
call ebx
test ah, 0x80
je 0x43667f
mov eax, dword [esi + 0xc]
push 0xffffffffffffffff
mov ecx, edi
mov ebp, dword [eax + 0x4c]
call fcn.00444db0
push ebp
push 0xffffffffffffffff
mov ecx, edi
mov ebx, eax
call fcn.00444cb0
lea eax, [eax + eax*4]
fld qword [esi + 0xb8]
lea ecx, [eax + eax*4]
mov eax, ebx
cdq
fmul qword [0x4aa8e8]
sub eax, edx
sar eax, 1
fsubr qword [0x4aa8f0]
lea eax, [eax + ecx*4]
cdq
idiv ebx
push eax
call fcn.00498ab0
push eax
lea edx, [esp + 0x50]
push str._d____s_d___z_d___
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + eax + 0x54]
push eax
call ebx
add esp, 0x14
jmp 0x4366bb
fld qword [esi + 0xb8]
fmul qword [0x4aa8e8]
fsubr qword [0x4aa8f0]
call fcn.00498ab0
push eax
lea ecx, [esp + 0x48]
push str._d__
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esp + eax + 0x4c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x4366d9
push eax
mov eax, dword [esi + 0x70]
inc eax
lea ecx, [esp + 0x68]
push eax
push str._d__d
push ecx
call ebx
add esp, 0x10
jmp 0x4366ef
mov eax, dword [esi + 8]
lea edx, [esp + 0x64]
push 0x1e
push edx
push 0xa3
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x436763
mov ecx, edi
call fcn.004465d0
cmp eax, 1
jle 0x436763
mov ecx, edi
call fcn.004449f0
cmp eax, 1
jne 0x43672b
mov ecx, edi
call fcn.004465d0
push eax
lea ecx, [esp + 0xa8]
push str.___d_frames_
push ecx
call ebx
add esp, 0xc
jmp 0x436750
mov edx, dword [esi + 0xc]
mov ecx, edi
mov ebp, dword [edx + 0x6bc]
call fcn.004465d0
inc ebp
push eax
push ebp
lea eax, [esp + 0xac]
push str.__page__d__d_
push eax
call ebx
add esp, 0x10
lea ecx, [esp + 0xa4]
lea edx, [esp + 0x64]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
test edi, edi
je 0x43679d
mov eax, dword [0x4caee4]
test eax, eax
je 0x43679d
lea eax, [esp + 0x18]
mov ecx, edi
push eax
push 0
call fcn.00445190
push eax
call fcn.0043c5a0
add esp, 0xc
test eax, eax
je 0x43679d
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push ecx
push edx
call fcn.0043ccf0
add esp, 8
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4367b2
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov dword [esi + 0x28], 0
test edi, edi
je 0x43686a
mov eax, dword [0x4cae68]
test eax, eax
jne 0x4367d4
push 0x50
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
jne 0x4367d4
xor eax, eax
jmp 0x4367d9
mov eax, 1
test eax, eax
je 0x4367f5
mov ecx, edi
call fcn.00445190
push eax
lea eax, [esp + 0xd0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x43680f
lea ecx, [esp + 0xcc]
push 0x104
push ecx
mov ecx, edi
call fcn.00445190
push eax
call sub.comdlg32.dll_GetFileTitleA
mov eax, dword [edi + 0x28]
test eax, eax
je 0x43682e
mov ecx, edi
call fcn.00445340
lea edx, [esp + 0x84]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x43686a
push 0
push 0
push 0xffffffffffffffff
mov ecx, edi
call fcn.00444e70
push eax
push 0xffffffffffffffff
mov ecx, edi
call fcn.00444e10
push eax
push 0xffffffffffffffff
mov ecx, edi
call fcn.00444db0
push eax
mov ecx, edi
call fcn.004449f0
push eax
lea eax, [esp + 0x9c]
push 0
push eax
call fcn.00446610
add esp, 0x20
mov ecx, dword [esi + 0x18]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov edx, dword [esi + 0x18]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x31
push edx
mov ebx, eax
call ebp
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x64]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esp + 0x68]
push eax
push edx
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
lea edx, [esp + 0xcc]
add eax, 0xa
push ecx
push edx
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [esp + 0xd4]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
test edi, edi
lea eax, [ecx + edx + 0xa]
mov dword [esp + 0x2c], eax
je 0x436921
push 0x101
lea ecx, [esp + 0x1d4]
push 0x160
push ecx
push 0
mov ecx, edi
call fcn.00445190
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
test eax, eax
je 0x436921
mov edx, dword [esp + 0x1d0]
mov dword [esi + 0x28], edx
jmp 0x436928
mov dword [esi + 0x28], 0
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x18]
push eax
push 1
push 0x40f
push ecx
call ebp
test eax, eax
je 0x436958
mov eax, dword [esi + 0x28]
test eax, eax
je 0x436958
push 0x31
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edx, dword [esp + 0x2c]
lea eax, [edx + eax + 5]
mov dword [esp + 0x2c], eax
mov eax, dword [0x4caee4]
mov edi, 2
test eax, eax
je 0x436998
lea ecx, [esp + 0x10]
lea edx, [esp + 0x1c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
mov edi, 3
lea eax, [ecx + edx + 0xa]
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x10]
lea edx, [esp + 0x84]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [esp + 0x8c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + edi*4 + 0x24]
mov edx, dword [esp + 0x10]
inc edi
lea eax, [ecx + edx + 0xa]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x44]
push ecx
mov dword [esp + edi*4 + 0x28], eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [esp + 0x4c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov ecx, dword [esp + edi*4 + 0x24]
mov edx, dword [esp + 0x10]
inc edi
lea eax, [ecx + edx + 0xa]
lea ecx, [esp + 0x10]
push ecx
push 0x10
push str.Loaded_in_99.9_s
mov dword [esp + edi*4 + 0x30], eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
mov edx, dword [esp + edi*4 + 0x24]
mov eax, dword [esp + 0x10]
inc edi
push ebx
lea ecx, [edx + eax + 0xa]
mov edx, dword [esi + 0x18]
mov dword [esp + edi*4 + 0x28], ecx
mov dword [esp + edi*4 + 0x2c], 0xffffffff
push edx
inc edi
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esi + 0x18]
lea eax, [esp + 0x28]
push eax
push edi
push 0x404
push ecx
call ebp
mov eax, dword [esi + 0x18]
lea edx, [esp + 0x64]
push edx
push 0
push 0x401
push eax
call ebp
mov edx, dword [esi + 0x18]
lea ecx, [esp + 0xcc]
push ecx
push 1
push 0x401
push edx
mov edi, 2
call ebp
mov eax, dword [0x4caee4]
test eax, eax
je 0x436a8f
mov ecx, dword [esi + 0x18]
lea eax, [esp + 0x1c]
push eax
push 2
push 0x401
push ecx
mov edi, 3
call ebp
lea edx, [esp + 0x84]
mov eax, edi
push edx
push eax
mov eax, dword [esi + 0x18]
push 0x401
push eax
inc edi
call ebp
mov edx, dword [esi + 0x18]
lea ecx, [esp + 0x44]
mov eax, edi
push ecx
push eax
push 0x401
push edx
inc edi
call ebp
mov eax, edi
push 0
or ah, 0x10
inc edi
push eax
mov eax, dword [esi + 0x18]
push 0x401
push eax
call ebp
mov eax, dword [esi + 0x9c]
test eax, eax
jne 0x436add
mov eax, 0x4caf4c
mov ecx, dword [esi + 0x18]
push eax
push edi
push 0x410
push ecx
call ebp
mov eax, dword [esi + 0x9c]
test eax, eax
jne 0x436af9
mov eax, 0x4caf4c
mov edx, dword [esi + 0x18]
push eax
push edi
push 0x401
push edx
call ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x320
ret