Function at 0x419090
Capabilities:
Move file

Disassembly:
sub esp, 0x57c
push ebx
push ebp
push esi
mov eax, dword [esp + 0x58c]
push edi
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
mov edi, ecx
mov dword [esp + 0x14], 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], eax
mov edx, dword [edi + 0xc]
push ecx
push 0
push 0x1005
push edx
mov dword [esp + 0x2c], 0
call ebp
mov esi, eax
mov eax, dword [esp + 0x34]
neg esi
sbb esi, esi
lea ecx, [esp + 0x64]
and esi, eax
mov eax, dword [esp + 0x594]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi + 0x68]
lea edx, [esp + 0x16c]
push 0x105
push edx
push eax
call sub.comdlg32.dll_GetFileTitleA
lea ecx, [esp + 0x16c]
push 0x2e
push ecx
call fcn.004bea30
mov ebx, eax
mov eax, dword [esi + 0x68]
push 0x2e
push eax
call fcn.004bea30
add esp, 0x10
test eax, eax
je 0x41914b
test ebx, ebx
je 0x41913f
mov ecx, dword [esi + 0x68]
mov edx, eax
sub edx, ecx
lea ecx, [esp + 0x16c]
sub ebx, ecx
cmp ebx, edx
je 0x41914b
lea edx, [esp + 0x64]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [esi + 0x68]
lea ebx, [edi + 0x20c]
push eax
lea ecx, [esp + 0x488]
push ebx
push ecx
call fcn.0044a2d0
lea edx, [esp + 0x70]
lea eax, [esp + 0x280]
push edx
push ebx
push eax
call fcn.0044a2d0
add esp, 0x18
lea ecx, [esp + 0x10]
lea edx, [esp + 0x37c]
lea eax, [esp + 0x274]
push ecx
push edx
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov ecx, dword [edi + 0x208]
mov ebx, dword [ecx + 0x30]
test ebx, ebx
je 0x4191ba
mov ecx, ebx
call fcn.0045aeb0
test eax, eax
je 0x4191ba
push 1
mov ecx, ebx
call fcn.0045a850
lea edx, [esp + 0x37c]
lea eax, [esp + 0x484]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x4192f5
mov ecx, dword [edi + 0x7f4]
test ecx, ecx
je 0x4191f0
mov eax, dword [esi + 0x68]
lea edx, [esp + 0x64]
push edx
push eax
call fcn.004295f0
lea ecx, [esp + 0x64]
push ecx
mov ecx, esi
call fcn.00424320
mov ecx, esi
mov dword [esp + 0x44], 0
call fcn.00424640
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x590]
lea edx, [esp + 0x3c]
push edx
push eax
push 0x102e
push ecx
call ebp
mov eax, dword [esi + 8]
test eax, eax
jne 0x41924c
mov eax, dword [esi + 0x3c]
test eax, eax
jge 0x41924c
mov eax, dword [esi + 0x68]
push eax
call fcn.0045d0d0
add esp, 4
test eax, eax
je 0x41924c
mov dword [esi + 0x3c], 0xff
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x419269
call fcn.00423190
test eax, eax
jne 0x419269
mov ebx, 1
mov dword [edi + 0x40c], ebx
jmp 0x41926e
mov ebx, 1
mov ecx, edi
mov dword [edi + 0x410], ebx
call fcn.00417060
mov eax, dword [0x4eb350]
test eax, eax
je 0x41929b
push 0
mov ecx, edi
call fcn.0041c930
mov edx, dword [edi + 0xc]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esi + 8], ebx
jne 0x4192ca
mov eax, dword [0x4eb434]
test eax, eax
je 0x4192ca
mov eax, dword [edi + 0x10]
push 0
push 0
push 0xb
push eax
call ebp
push ebx
push 0
mov ecx, edi
call fcn.0041ce90
mov ecx, dword [edi + 0x10]
push 0
push ebx
push 0xb
push ecx
call ebp
mov ecx, edi
call fcn.00418f50
dec dword [edi + 0x428]
call fcn.0044b3e0
cmp eax, ebx
jne 0x4192e6
dec dword [edi + 0x428]
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x57c
ret 8
mov edx, dword [edi + 8]
mov eax, dword [edi + 0x200]
push 0x45b
push edx
push eax
call fcn.0044aec0
mov ecx, dword [edi + 8]
add esp, 0xc
push 0
push 0x4e88
push 0x111
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x57c
ret 8