Function at 0x4569d5
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64c
mov eax, dword [0x478b78]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
and dword [ebp - 0x638], 0
and dword [ebp - 0x640], 0
push ebx
push edi
mov edi, dword [ebp + 0x18]
push 0x228
mov dword [ebp - 0x648], eax
mov eax, dword [ebp + 0x1c]
push 2
mov dword [ebp - 0x630], edi
mov dword [ebp - 0x63c], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push ebx
mov dword [ebp - 0x634], ebx
call fcn.0046bf87
test eax, eax
jne 0x456d85
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
lea eax, [ebp - 0x214]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x10c]
push eax
push 0
push str.OPWTMP
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [ebp - 0x10c]
push eax
push 0x106
lea eax, [esi + 0x10a]
push eax
call fcn.00442b42
push 2
lea eax, [ebp - 0x10c]
push eax
call fcn.0046b716
or ecx, 0xffffffff
mov dword [ebp - 0x644], eax
mov dword [esi + 0x214], eax
mov ebx, 0x2717
cmp eax, ecx
jne 0x456ab2
mov edi, ebx
jmp 0x456bab
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
neg eax
mov edx, dword [ebp + 0x10]
sbb eax, eax
mov dword [esi + 0x220], 1
and dword [esi + 0x224], 0
add eax, 3
mov dword [esi + 0x21c], eax
test ecx, ecx
je 0x456ae1
test edx, edx
je 0x456aeb
cmp dword [ebp + 0x14], 0
je 0x456c73
push 0xc8
push 6
push 0
lea eax, [esi + 0x218]
mov dword [esi], ecx
push eax
push dword [ebp - 0x644]
call fcn.0043cd21
mov edi, eax
test edi, edi
jne 0x456b8a
mov edx, dword [ebp - 0x63c]
lea ecx, [esi + 0x218]
mov eax, dword [ecx]
mov dword [edx], eax
push dword [ecx]
call fcn.0045748c
mov edi, eax
test edi, edi
jne 0x456b8a
cmp dword [ebp + 0xc], eax
jne 0x456d37
push dword [ebp - 0x630]
lea eax, [esi + 4]
push 0x105
push eax
call fcn.00442b42
push 2
push dword [ebp - 0x630]
call fcn.0046b716
mov dword [esi + 0x210], eax
cmp eax, 0xffffffff
jne 0x456d37
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp edi, 0x20
je 0x456bd2
cmp edi, 0x13
je 0x456bd2
cmp edi, 5
je 0x456bd2
push edi
push dword [0x49d9fc]
call fcn.004550ee
or edi, 0xffffffff
push dword [esi + 0x214]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x638], 0
je 0x456bab
push dword [esi + 0x210]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp - 0x640], 0
je 0x456d4e
cmp edi, ebx
push 0xffffffffffffffff
pop ebx
cmove edi, ebx
jmp 0x456d51
push 0x105
lea eax, [ebp - 0x420]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x630]
push 1
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x62c]
push 0x105
push eax
lea eax, [ebp - 0x420]
push eax
cmp edi, 0x20
jne 0x456c0f
push 0x84
jmp 0x456c14
push 0x86
call fcn.0046be71
push 4
lea eax, [ebp - 0x62c]
push eax
push dword [0x49d9fc]
call fcn.0044bc43
cmp eax, 7
jne 0x456c43
mov edi, ebx
mov dword [ebp - 0x640], 1
jmp 0x456b8a
push 0
push dword [ebp - 0x630]
call fcn.0046b716
mov dword [esi + 0x210], eax
cmp eax, 0xffffffff
jne 0x456c62
mov edi, ebx
jmp 0x456b8a
mov dword [esi + 0x224], 1
xor edi, edi
jmp 0x456d37
xor eax, eax
test edx, edx
push edi
cmovne eax, ecx
mov dword [esi], eax
lea eax, [esi + 4]
push 0x106
push eax
call fcn.00442b42
push 2
push edi
call fcn.0046b716
mov dword [esi + 0x210], eax
cmp eax, 0xffffffff
jne 0x456cbc
push 0
push edi
call fcn.0046b716
mov dword [esi + 0x210], eax
cmp eax, 0xffffffff
je 0x456c5b
xor eax, eax
inc eax
mov dword [esi + 0x224], eax
jmp 0x456cbf
xor eax, eax
inc eax
push 0
push dword [esi + 0x214]
mov dword [ebp - 0x638], eax
push eax
push dword [esi + 0x210]
push edi
call fcn.00454334
mov edi, eax
test edi, edi
jne 0x456b8a
lea ecx, [ebp - 0x64c]
push ecx
push edi
lea eax, [esi + 0x218]
push eax
push dword [esi + 0x214]
call fcn.0043cd51
mov edi, eax
test edi, edi
jne 0x456b8a
mov edx, dword [ebp - 0x63c]
mov eax, dword [esi + 0x218]
mov dword [edx], eax
cmp dword [ebp + 0x10], edi
jne 0x456d24
lea eax, [esi + 4]
push eax
call fcn.00456257
push dword [esi + 0x210]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [esi + 0x210], 0xffffffff
mov esi, dword [ebp - 0x634]
push esi
push 0
push dword [ebp - 0x648]
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp 0x456d7b
or ebx, 0xffffffff
cmp dword [esi + 0x224], 0
je 0x456d75
cmp dword [ebp - 0x638], 0
je 0x456d75
push dword [esi + 0x210]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x210], ebx
mov esi, dword [ebp - 0x634]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, edi
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.00475d95
mov esp, ebp
pop ebp
ret 0x18