Function at 0x409640
Capabilities:
Copy file
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x42e23b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa48
mov eax, dword [esp + 0xa60]
mov dword [esp], ecx
test eax, eax
je 0x409924
mov dl, byte [0x440950]
push ebx
push ebp
push esi
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x31]
mov byte [esp + 0x30], dl
mov byte [esp + 0x238], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x239]
mov byte [esp + 0x74c], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x74d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x30]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov cl, byte [esp + eax + 0x2f]
lea eax, [esp + eax + 0x2f]
cmp cl, 0x5c
jne 0x4096eb
mov byte [eax], 0
mov dl, byte [0x440950]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x545]
mov byte [esp + 0x544], dl
mov byte [esp + 0x440], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x441]
mov byte [esp + 0x33c], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x33d]
xor ebx, ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x14]
stosb byte es:[edi], al
call fcn.0040ad1b
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
mov dword [esp + 0xa60], ebx
lea edx, [esp + 0x30]
push ebx
push edx
lea eax, [esp + 0x344]
push 0x43c8e8
push eax
call esi
add esp, 0x10
lea ecx, [esp + 0x33c]
push 0
push ecx
lea ecx, [esp + 0x1c]
call fcn.0040adde
lea ecx, [esp + 0x14]
mov edi, eax
call fcn.0040ad94
test edi, edi
je 0x409794
inc ebx
jmp 0x409757
push ebx
lea edx, [esp + 0x548]
push 0x43c8d8
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x440]
push ebx
push 0x43c8c8
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x544]
lea edx, [esp + 0x30]
lea eax, [esp + 0x238]
push ecx
push edx
push 0x43c300
push eax
call esi
mov ecx, dword [esp + 0xa7c]
mov ebx, dword [esp + 0xa78]
add esp, 0x10
lea edx, [esp + 0x74c]
push ecx
push ebx
push 0x43c300
push edx
call esi
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileA]
add esp, 0x10
lea eax, [esp + 0x238]
lea ecx, [esp + 0x74c]
push 0
push eax
push ecx
call ebp
mov dl, byte [0x440950]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x649]
mov byte [esp + 0x648], dl
mov byte [esp + 0x134], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x135]
push 0x43c8bc
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push ebx
lea edx, [esp + 0x650]
push 0x43c300
push edx
stosb byte es:[edi], al
call esi
add esp, 0x10
lea eax, [esp + 0x440]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x134]
push eax
push ecx
push 0x43c300
push edx
call esi
add esp, 0x10
lea eax, [esp + 0x134]
lea ecx, [esp + 0x648]
push 0
push eax
push ecx
call ebp
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [esp + 0xa74]
push eax
lea edx, [esp + 0x138]
push 0x43c8a8
test ecx, ecx
push edx
je 0x4098c0
push 0x43c894
jmp 0x4098c5
push 0x43c888
lea eax, [esp + 0x248]
lea ecx, [esp + 0x860]
push eax
push 0x43c874
push ecx
call esi
mov eax, dword [esp + 0xa94]
add esp, 0x1c
test eax, eax
pop edi
pop esi
pop ebp
pop ebx
je 0x4098fb
push eax
lea edx, [esp + 0x844]
push 0
push edx
jmp 0x409907
push 0
lea eax, [esp + 0x844]
push 0
push eax
mov ecx, dword [esp + 0xc]
call fcn.00409e20
lea ecx, [esp + 4]
mov dword [esp + 0xa50], 0xffffffff
call fcn.0040ad58
mov ecx, dword [esp + 0xa48]
mov dword fs:[0], ecx
add esp, 0xa54
ret 0x14