Function at 0x409a20
Capabilities:
Copy file

Disassembly:
sub esp, 0x428
mov eax, dword [esp + 0x430]
push ebx
push ebp
push esi
push edi
push eax
mov dword [esp + 0x18], 0
call fcn.0040ca00
add esp, 4
test eax, eax
je 0x409b3a
mov ebp, dword [esp + 0x444]
mov ebx, dword [esp + 0x448]
test ebp, ebp
je 0x409a64
test ebx, ebx
jle 0x409a64
mov byte [ebp], 0
call fcn.0040a4a0
lea ecx, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
lea edx, [esp + 0x28]
push 0x5c
push edx
lea esi, [esp + 0x30]
call fcn.0041bb00
add esp, 8
test eax, eax
je 0x409a8f
lea esi, [eax + 1]
push 0x2e
push esi
call fcn.0041bb00
add esp, 8
test eax, eax
je 0x409aa1
mov byte [eax], 0
push 0x5f
push esi
call fcn.0041bb00
mov esi, eax
add esp, 8
test esi, esi
je 0x409ac6
lea eax, [esi + 1]
push eax
call fcn.0040a580
add esp, 4
cmp eax, 4
jne 0x409ac6
mov byte [esi], 0
mov edi, dword [esp + 0x43c]
mov esi, dword [sym.imp.USER32.DLL_wsprintfA]
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 0
lea ecx, [esp + 0x12]
lea edx, [esp + 0x28]
push ecx
push edi
push edx
lea eax, [esp + 0x138]
push str._s__lu_s.exe
push eax
call esi
mov al, byte [esp + 0x26]
add esp, 0x14
test al, al
je 0x409b0a
inc al
mov byte [esp + 0x12], al
jmp 0x409b0f
mov byte [esp + 0x12], 0x61
lea ecx, [esp + 0x12c]
push ecx
call fcn.0040ca00
add esp, 4
test eax, eax
mov al, byte [esp + 0x12]
je 0x409b49
cmp al, 0x7a
jle 0x409add
push str.no_unique_file
push ebx
push ebp
call fcn.00409d70
add esp, 0xc
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x428
ret
cmp al, 0x7a
jg 0x409b2b
lea edx, [esp + 0x12c]
lea eax, [esp + 0x28]
push edx
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyA]
lea ecx, [esp + 0x28]
push ecx
push str.New_Trickler_file_will_be__s
call fcn.00407160
lea edx, [esp + 0x30]
push 0
push edx
call fcn.0040ca30
add esp, 0x10
test eax, eax
je 0x409d5e
mov ecx, dword [esp + 0x440]
lea eax, [esp + 0x28]
push 0
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_CopyFileA]
test eax, eax
je 0x409d54
lea edx, [esp + 0x28]
push 1
push edx
call fcn.004196a0
add esp, 8
test eax, eax
je 0x409d36
call fcn.0040aa90
push eax
lea eax, [esp + 0x2c]
push 0x4298b8
push eax
call fcn.004191d0
add esp, 0xc
test eax, eax
je 0x409d18
lea ecx, [esp + 0x18]
push ecx
call fcn.0040ab00
push eax
lea edx, [esp + 0x30]
push 0x42b09c
push edx
call fcn.004191d0
add esp, 0x10
test eax, eax
je 0x409cfa
push 0
call fcn.0041b800
push eax
lea eax, [esp + 0x24]
push str._08lx
push eax
call esi
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x38]
push ecx
push 0x42a204
push edx
call fcn.004191d0
add esp, 0x1c
test eax, eax
je 0x409cdc
push str.New_Trickler_successfully_prepared.
call fcn.00407160
push 0
push 0
call fcn.0040a5c0
lea eax, [esp + 0x34]
push eax
push 1
call fcn.0040a5c0
lea ecx, [esp + 0x3c]
push ecx
call fcn.0040a700
add esp, 0x18
call fcn.00406ce0
push eax
call fcn.0040a4a0
push eax
call fcn.0040a7e0
lea edx, [esp + 0x1c]
push 0
lea eax, [esp + 0x34]
push edx
push eax
mov dword [esp + 0x28], 0
call fcn.0040d5e0
add esp, 0x14
test eax, eax
mov eax, 0x429578
jne 0x409c99
mov eax, str.FAIL
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x28]
push ecx
push eax
push edx
lea eax, [esp + 0x23c]
push str.LaunchExe__s_:__s__err_d_
push eax
call esi
lea ecx, [esp + 0x244]
push ecx
push ebx
push ebp
call fcn.00409d70
add esp, 0x20
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x428
ret
push str.Bind_TID
push ebx
push ebp
call fcn.00409da0
mov eax, dword [esp + 0x20]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x428
ret
push str.Bind_SERVER
push ebx
push ebp
call fcn.00409da0
mov eax, dword [esp + 0x20]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x428
ret
push str.Bind_AIC
push ebx
push ebp
call fcn.00409da0
mov eax, dword [esp + 0x20]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x428
ret
push str.Unbind_All
push ebx
push ebp
call fcn.00409da0
mov eax, dword [esp + 0x20]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x428
ret
push str.copy_failed
jmp 0x409b30
push str.no_del_old_file
jmp 0x409b30