Function at 0x406680
Capabilities:
Delete file
Move file
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x43f55b
mov eax, dword fs:[0]
push eax
sub esp, 0x838
mov eax, dword [0x44fb64]
xor eax, esp
mov dword [esp + 0x830], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44fb64]
xor eax, esp
push eax
lea eax, [esp + 0x84c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x860]
mov esi, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ecx
call fcn.00413be1
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4066ea
push 0x80004005
call fcn.0040a000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push 0x208
lea ecx, [esp + 0x28]
push 0
push ecx
mov dword [esp + 0x860], 0
call fcn.004253a0
lea edx, [esp + 0x30]
add esp, 0xc
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x406721
lea eax, [esp + 0x24]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406730
mov edx, dword [str..tmp]
mov cl, byte [0x447de0]
mov dword [eax], edx
lea edx, [esp + 0x24]
push 0x447a50
push edx
mov byte [eax + 4], cl
call fcn.004228cf
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x4067a7
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
lea esp, [esp]
lea eax, [esp + 0x24]
push 0x447a50
push eax
call fcn.004228cf
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x4067a7
push 0x64
inc esi
call edi
cmp esi, 0x64
jl 0x406770
lea ecx, [esp + 0x24]
push ecx
call fcn.0040ae10
add esp, 4
push 2
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x208
lea edx, [esp + 0x230]
push 0
push edx
call fcn.004253a0
mov eax, dword [esp + 0x870]
lea esi, [esp + 0x238]
add esp, 0xc
sub esi, eax
mov edi, edi
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x4067d0
lea eax, [esp + 0x22c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4067e2
mov ecx, dword [str._forbit.ini]
mov edx, dword [0x447a58]
mov dword [eax], ecx
mov ecx, dword [0x447a5c]
mov dword [eax + 4], edx
lea edx, [esp + 0x22c]
push edx
mov dword [eax + 8], ecx
call fcn.0040a100
add esp, 4
test eax, eax
jne 0x406843
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x18]
push str.LdxFile__s__Not_Exists
push ecx
call fcn.00409910
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push edx
push 0x453d11
call fcn.0040d890
lea eax, [esp + 0x22c]
push 0
push eax
mov ebx, ebp
lea ecx, [esp + 0x2c]
call fcn.00403d10
mov edi, eax
add esp, 8
test edi, edi
je 0x4068e8
test ebp, ebp
je 0x406872
push ebp
call fcn.0042295d
add esp, 4
lea ecx, [esp + 0x24]
push ecx
call fcn.0040a100
add esp, 4
test eax, eax
je 0x40688e
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x1c]
push str.JoinFiles__s_in_UpdateLdxToExeFile__failed_with_error_code:__d
push ecx
call fcn.00409910
mov esi, dword [esp + 0x24]
add esp, 0x10
push 0
push esi
push 0x453d11
call fcn.0040d890
lea eax, [esi - 0x10]
mov dword [esp + 0x854], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4068e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x406c90
push 0x208
lea ecx, [esp + 0x230]
push 0
push ecx
call fcn.004253a0
mov eax, dword [esp + 0x870]
add esp, 0xc
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x406906
lea eax, [esp + 0x22c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406918
mov edx, dword [0x447a1c]
mov ecx, dword [0x447a20]
mov dword [eax], edx
mov dx, word [0x447a24]
mov dword [eax + 4], ecx
mov cl, byte [0x447a26]
mov word [eax + 8], dx
lea edx, [esp + 0x22c]
push edx
mov byte [eax + 0xa], cl
call fcn.0040a100
add esp, 4
test eax, eax
jne 0x406984
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x18]
push str.LdxFile__s__Not_Exists
push ecx
call fcn.00409910
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push edx
push 0x453d11
call fcn.0040d890
lea eax, [esp + 0x22c]
push 0
push eax
mov ebx, ebp
lea ecx, [esp + 0x2c]
call fcn.00403d10
mov edi, eax
add esp, 8
test edi, edi
je 0x406a2d
test ebp, ebp
je 0x4069b3
push ebp
call fcn.0042295d
add esp, 4
lea ecx, [esp + 0x24]
push ecx
call fcn.0040a100
add esp, 4
test eax, eax
je 0x4069cf
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0x1c]
push str.JoinFiles__s_in_UpdateLdxToExeFile__failed_with_error_code:__d
push ecx
call fcn.00409910
mov esi, dword [esp + 0x24]
add esp, 0x10
push 0
push esi
push 0x453d11
call fcn.0040d890
lea eax, [esi - 0x10]
mov dword [esp + 0x854], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4068e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x406c90
push 0x208
lea ecx, [esp + 0x438]
push 0
push ecx
call fcn.004253a0
mov esi, dword [esp + 0x868]
lea edx, [esp + 0x440]
add esp, 0xc
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x406a56
lea eax, [esp + 0x434]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406a68
mov edx, dword [0x447a40]
mov ecx, dword [0x447a44]
mov dword [eax], edx
mov edx, dword [0x447a48]
mov dword [eax + 4], ecx
mov cl, byte [0x447a4c]
mov dword [eax + 8], edx
lea edx, [esp + 0x63c]
mov byte [eax + 0xc], cl
mov eax, esi
sub edx, esi
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x406aa0
lea eax, [esp + 0x63c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406ab2
mov edx, dword [0x447ca4]
mov ecx, dword [0x447ca8]
mov dword [eax], edx
mov edx, dword [0x447cac]
mov dword [eax + 4], ecx
mov cl, byte [0x447cb0]
mov dword [eax + 8], edx
lea edx, [esp + 0x434]
mov byte [eax + 0xc], cl
push 0
push edx
mov ebx, ebp
lea ecx, [esp + 0x2c]
call fcn.00403d10
mov edi, eax
add esp, 8
test edi, edi
je 0x406b10
push edi
lea eax, [esp + 0x438]
push eax
push str.JoinFiles__s_in_UpdateLdxToExeFile__failed_with_error_code:__d
lea ecx, [esp + 0x20]
push ecx
jmp 0x406b57
lea edx, [esp + 0x24]
push 0x447a18
push edx
call fcn.004228cf
mov edx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [esp + 0x28]
push eax
mov ecx, esi
call fcn.00407850
add esp, 0xc
push esi
mov bl, al
call fcn.0042295d
add esp, 4
test bl, bl
jne 0x406b5f
push 0
lea ecx, [esp + 0x640]
push ecx
push str.JoinFiles__s_in_UpdateLdxToExeFile__failed_with_error_code:__d
lea edx, [esp + 0x20]
push edx
call fcn.00409910
add esp, 0x10
test ebp, ebp
je 0x406b6c
push ebp
call fcn.0042295d
add esp, 4
test edi, edi
je 0x406bff
lea eax, [esp + 0x24]
push eax
call fcn.0040a100
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 4
test eax, eax
je 0x406b92
lea ecx, [esp + 0x24]
push ecx
call esi
lea edx, [esp + 0x434]
push edx
call fcn.0040a100
add esp, 4
test eax, eax
je 0x406bb0
lea eax, [esp + 0x434]
push eax
call esi
lea ecx, [esp + 0x63c]
push ecx
call fcn.0040a100
add esp, 4
test eax, eax
je 0x406bce
lea edx, [esp + 0x63c]
push edx
call esi
mov esi, dword [esp + 0x14]
push 0
push esi
push 0x453d11
call fcn.0040d890
lea eax, [esi - 0x10]
mov dword [esp + 0x854], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x4068d5
mov edi, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
call esi
push edi
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea edx, [esp + 0x24]
push edx
call fcn.0040a100
add esp, 4
test eax, eax
je 0x406c30
lea eax, [esp + 0x24]
push eax
call esi
lea ecx, [esp + 0x434]
push ecx
call esi
lea edx, [esp + 0x63c]
push edx
call esi
lea eax, [esp + 0x14]
push str.SimpleUpdate_File_Success
push eax
call fcn.00409910
mov esi, dword [esp + 0x1c]
add esp, 8
push 0
push esi
push 0x453d11
call fcn.0040d890
lea eax, [esi - 0x10]
mov dword [esp + 0x854], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x406c8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x84c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x830]
xor ecx, esp
call fcn.00421f05
add esp, 0x844
ret