Function at 0x470e36
Capabilities:
Delete file
Get common file path
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x418
add eax, 0xfffffcf7
push ebx
push esi
push edi
push 8
pop ebx
cmp eax, ebx
ja case.default.0x470e55
jmp dword [eax*4 + 0x47112e]
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne 0x471002
mov eax, dword [eax]
mov esi, dword [eax + 8]
test esi, esi
je 0x470eae
xor ebx, ebx
cmp word [esi], bx
je 0x470eae
push esi
mov edi, 0x504ce0
push edi
call fcn.0049e71a
pop ecx
pop ecx
test eax, eax
je 0x470eae
push esi
push 0x104
push edi
call fcn.0040c4d6
push ebx
push 0x9d63
push 0x111
push dword [0x531f70]
call dword [sym.imp.USER32.dll_PostMessageW]
xor eax, eax
jmp 0x471126
push dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
push 0
push dword [ebp + 0x1c]
lea ecx, [ecx + 4]
call fcn.00419512
jmp 0x471126
push dword [ebp + 0x28]
mov ecx, dword [ebp + 8]
push 0
push dword [ebp + 0x1c]
lea ecx, [ecx + 4]
call fcn.004196e0
jmp 0x471126
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne 0x471002
mov eax, dword [eax]
push dword [eax + 8]
call fcn.00473601
mov ecx, eax
xorps xmm0, xmm0
shr ecx, 0x10
movzx edx, cl
movzx ecx, al
and eax, 0xff00
shl ecx, 0x10
or edx, ecx
movlpd qword [ebp - 8], xmm0
or edx, eax
lea eax, [ebp - 8]
push edx
push str._06X
push ebx
push eax
call fcn.00405a8d
lea eax, [ebp - 8]
push 0
push eax
call fcn.00405018
add esp, 0x1c
mov esi, eax
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, dword [ebp + 0x20]
mov ebx, eax
push edi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 8
pop eax
push esi
mov word [edi], ax
mov dword [edi + 8], ebx
call fcn.004a1b5f
pop ecx
jmp 0x470eae
push 0x504ce0
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [ebp + 0x20]
mov edi, eax
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov word [esi], bx
mov dword [esi + 8], edi
jmp 0x470eae
call fcn.004732aa
push eax
jmp 0x470f68
mov esi, dword [ebp + 0x20]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 3
pop eax
mov word [esi], ax
call fcn.004732e8
mov dword [esi + 8], eax
jmp 0x470eae
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne 0x471002
mov eax, dword [eax]
xorps xmm0, xmm0
mov eax, dword [eax + 8]
movlpd qword [ebp - 8], xmm0
mov edx, dword [eax*4 + 0x4fa020]
mov eax, edx
shr eax, 0x10
movzx ecx, al
movzx eax, dl
and edx, 0xff00
shl eax, 0x10
or ecx, eax
lea eax, [ebp - 8]
or ecx, edx
push ecx
push str._06X
push ebx
push eax
call fcn.00405a8d
lea eax, [ebp - 8]
push 0
push eax
call fcn.00405018
add esp, 0x18
jmp 0x470f39
mov eax, 0x8002000e
jmp 0x471126
mov eax, dword [ebp + 0x1c]
xor esi, esi
mov edi, esi
cmp dword [eax + 8], 1
jne 0x471026
mov eax, dword [eax]
push dword [eax + 8]
call fcn.004a2eb4
pop ecx
mov edi, eax
mov ebx, 0x208
lea eax, [ebp - 0x418]
push ebx
push esi
push eax
call fcn.0049a3b0
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push ebx
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.0049a3b0
add esp, 0xc
lea eax, [ebp - 0x210]
push eax
push esi
push 0x4d533c
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x210]
push edi
push eax
call fcn.004711c7
pop ecx
pop ecx
push esi
push esi
push 3
push esi
push 1
push SysReAllocStringLen
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 2
push esi
mov ebx, eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
mov dword [ebp + 8], ebx
call esi
mov edi, eax
xor eax, eax
push eax
push eax
push eax
push ebx
call esi
push edi
xor esi, esi
push esi
push 0x11
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
mov ebx, eax
lea eax, [ebp + 0x28]
push eax
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
push esi
lea eax, [ebp + 0x1c]
mov dword [ebp + 0x1c], esi
mov esi, dword [ebp + 8]
push eax
push edi
push dword [ebp + 0x28]
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp + 0x20]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, 0x2011
mov word [esi], ax
lea eax, [ebp - 0x210]
push eax
mov dword [esi + 8], ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x470eae
mov eax, 0x80020003
pop edi
pop esi
pop ebx
leave
ret 0x24