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

Disassembly:
push 0xffffffffffffffff
push 0x43eccb
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.004133f1
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4063fa
push 0x80004005
call fcn.00409d60
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.00424c40
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 0x406431
lea eax, [esp + 0x24]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406440
mov edx, dword [str..tmp]
mov cl, byte [0x447cc8]
mov dword [eax], edx
lea edx, [esp + 0x24]
push 0x4479c0
push edx
mov byte [eax + 4], cl
call fcn.00422167
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x4064b7
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
lea esp, [esp]
lea eax, [esp + 0x24]
push 0x4479c0
push eax
call fcn.00422167
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x4064b7
push 0x64
inc esi
call edi
cmp esi, 0x64
jl 0x406480
lea ecx, [esp + 0x24]
push ecx
call fcn.0040aa10
add esp, 4
push 2
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x208
lea edx, [esp + 0x230]
push 0
push edx
call fcn.00424c40
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 0x4064e0
lea eax, [esp + 0x22c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4064f2
mov ecx, dword [str._forbit.ini]
mov edx, dword [0x4479c8]
mov dword [eax], ecx
mov ecx, dword [0x4479cc]
mov dword [eax + 4], edx
lea edx, [esp + 0x22c]
push edx
mov dword [eax + 8], ecx
call fcn.00409e30
add esp, 4
test eax, eax
jne 0x406553
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x18]
push str.LdxFile__s__Not_Exists
push ecx
call fcn.00409670
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push edx
push 0x453d09
call fcn.0040d390
lea eax, [esp + 0x22c]
push 0
push eax
mov ebx, ebp
lea ecx, [esp + 0x2c]
call fcn.00403cf0
mov edi, eax
add esp, 8
test edi, edi
je 0x4065f8
test ebp, ebp
je 0x406582
push ebp
call fcn.004221f5
add esp, 4
lea ecx, [esp + 0x24]
push ecx
call fcn.00409e30
add esp, 4
test eax, eax
je 0x40659e
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.00409670
mov esi, dword [esp + 0x24]
add esp, 0x10
push 0
push esi
push 0x453d09
call fcn.0040d390
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 0x4065f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x4069a0
push 0x208
lea ecx, [esp + 0x230]
push 0
push ecx
call fcn.00424c40
mov eax, dword [esp + 0x870]
add esp, 0xc
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x406616
lea eax, [esp + 0x22c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406628
mov edx, dword [0x44798c]
mov ecx, dword [0x447990]
mov dword [eax], edx
mov dx, word [0x447994]
mov dword [eax + 4], ecx
mov cl, byte [0x447996]
mov word [eax + 8], dx
lea edx, [esp + 0x22c]
push edx
mov byte [eax + 0xa], cl
call fcn.00409e30
add esp, 4
test eax, eax
jne 0x406694
lea eax, [esp + 0x22c]
push eax
lea ecx, [esp + 0x18]
push str.LdxFile__s__Not_Exists
push ecx
call fcn.00409670
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push edx
push 0x453d09
call fcn.0040d390
lea eax, [esp + 0x22c]
push 0
push eax
mov ebx, ebp
lea ecx, [esp + 0x2c]
call fcn.00403cf0
mov edi, eax
add esp, 8
test edi, edi
je 0x40673d
test ebp, ebp
je 0x4066c3
push ebp
call fcn.004221f5
add esp, 4
lea ecx, [esp + 0x24]
push ecx
call fcn.00409e30
add esp, 4
test eax, eax
je 0x4066df
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.00409670
mov esi, dword [esp + 0x24]
add esp, 0x10
push 0
push esi
push 0x453d09
call fcn.0040d390
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 0x4065f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x4069a0
push 0x208
lea ecx, [esp + 0x438]
push 0
push ecx
call fcn.00424c40
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 0x406766
lea eax, [esp + 0x434]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x406778
mov edx, dword [0x4479b0]
mov ecx, dword [0x4479b4]
mov dword [eax], edx
mov edx, dword [0x4479b8]
mov dword [eax + 4], ecx
mov cl, byte [0x4479bc]
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 0x4067b0
lea eax, [esp + 0x63c]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4067c2
mov edx, dword [0x447bc0]
mov ecx, dword [0x447bc4]
mov dword [eax], edx
mov edx, dword [0x447bc8]
mov dword [eax + 4], ecx
mov cl, byte [0x447bcc]
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.00403cf0
mov edi, eax
add esp, 8
test edi, edi
je 0x406820
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 0x406867
lea edx, [esp + 0x24]
push 0x447988
push edx
call fcn.00422167
mov edx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [esp + 0x28]
push eax
mov ecx, esi
call fcn.00407580
add esp, 0xc
push esi
mov bl, al
call fcn.004221f5
add esp, 4
test bl, bl
jne 0x40686f
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.00409670
add esp, 0x10
test ebp, ebp
je 0x40687c
push ebp
call fcn.004221f5
add esp, 4
test edi, edi
je 0x40690f
lea eax, [esp + 0x24]
push eax
call fcn.00409e30
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 4
test eax, eax
je 0x4068a2
lea ecx, [esp + 0x24]
push ecx
call esi
lea edx, [esp + 0x434]
push edx
call fcn.00409e30
add esp, 4
test eax, eax
je 0x4068c0
lea eax, [esp + 0x434]
push eax
call esi
lea ecx, [esp + 0x63c]
push ecx
call fcn.00409e30
add esp, 4
test eax, eax
je 0x4068de
lea edx, [esp + 0x63c]
push edx
call esi
mov esi, dword [esp + 0x14]
push 0
push esi
push 0x453d09
call fcn.0040d390
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 0x4065e5
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.00409e30
add esp, 4
test eax, eax
je 0x406940
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.00409670
mov esi, dword [esp + 0x1c]
add esp, 8
push 0
push esi
push 0x453d09
call fcn.0040d390
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 0x40699e
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.0042179d
add esp, 0x844
ret