Function at 0x473aa0
Capabilities:
Copy file
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54bee5
mov eax, dword fs:[0]
push eax
sub esp, 0x730
mov eax, dword [0x582654]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
push 0x518
mov dword [ebp - 0x72c], ebx
call fcn.00523854
add esp, 4
mov dword [ebp - 0x720], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x473b06
mov ecx, eax
call fcn.0051b32f
mov edi, eax
mov dword [ebp - 0x71c], eax
jmp 0x473b0e
xor edi, edi
mov dword [ebp - 0x71c], edi
push ebx
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
call fcn.0051b3eb
test eax, eax
jne 0x473b44
test edi, edi
je 0x473b3a
mov ecx, edi
call fcn.0051b348
push 0x518
push edi
call fcn.0052389d
add esp, 8
mov eax, 1
jmp 0x473ea8
mov ecx, dword [0x6e4500]
push 0
call fcn.00520ec9
mov ecx, dword [0x6e4500]
call fcn.0051e60c
push dword [0x697d98]
push dword [0x6e4500]
call fcn.0051ae1b
add esp, 8
mov esi, eax
push ebx
push 0x559bd0
call fcn.00404580
add esp, 4
push eax
push 0xc8
push 0x64
push esi
call fcn.004724d0
push 0x559bec
call fcn.00404580
push eax
push 0xd9
push 0x64
push esi
call fcn.004724d0
push esi
push dword [0x6e4500]
call fcn.0051ad85
movzx eax, byte [0x6e20a4]
push 0
push 0x582190
push eax
movzx eax, byte [0x57f938]
push eax
call fcn.0051e572
add esp, 0x40
mov byte [ebp - 0x711], 0
lea eax, [ebp - 0x210]
push 0x100
push 0
push eax
call fcn.00527170
push 0x100
lea eax, [ebp - 0x110]
push 0
push eax
call fcn.00527170
push 0x100
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.00527170
push 0x2c
call fcn.00523854
add esp, 0x28
mov dword [ebp - 0x720], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x473c3c
push 0x1000
mov ecx, eax
call fcn.005220f9
mov ebx, eax
jmp 0x473c3e
xor ebx, ebx
push 0
mov ecx, edi
mov dword [ebp - 4], 0xffffffff
call fcn.0051b35d
test eax, eax
je 0x473e64
lea esi, [edi + 0x418]
mov dword [ebp - 0x718], esi
cmp byte [esi], 0
je case.0x473d3f.1
mov ecx, 0x554da8
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x473c92
test dl, dl
je 0x473c8e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x473c92
add eax, 2
add ecx, 2
test dl, dl
jne 0x473c72
xor eax, eax
jmp 0x473c97
sbb eax, eax
or eax, 1
test eax, eax
jne 0x473d28
cmp byte [ebp - 0x210], al
je 0x473cb5
lea eax, [ebp - 0x210]
mov ecx, ebx
push eax
call fcn.00522937
test ebx, ebx
je 0x473ccb
mov ecx, ebx
call fcn.005221d7
push 0x2c
push ebx
call fcn.0052389d
add esp, 8
push 0x2c
call fcn.00523854
add esp, 4
mov dword [ebp - 0x730], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x473d0e
push 0x1000
mov ecx, eax
call fcn.005220f9
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
mov byte [ebp - 0x210], 0
mov byte [ebp - 0x711], 0
jmp case.0x473d3f.1
xor ebx, ebx
mov dword [ebp - 4], 0xffffffff
mov byte [ebp - 0x210], bl
mov byte [ebp - 0x711], bl
jmp case.0x473d3f.1
movsx eax, byte [ebp - 0x711]
cmp eax, 0x70
ja case.0x473d3f.1
movzx eax, byte [eax + 0x47470c]
jmp dword [eax*4 + 0x4746f4]
mov ecx, 0x559a60
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x473d70
test dl, dl
je 0x473d6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x473d70
add eax, 2
add ecx, 2
test dl, dl
jne 0x473d50
xor eax, eax
jmp 0x473d75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x473db9
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x711]
push eax
push str._c__s
push dword [edi + 0x10]
call fcn.00417870
add esp, 0x10
lea eax, [ebp - 0x210]
mov ecx, ebx
push eax
call fcn.00522768
test eax, eax
je 0x4745fb
mov ecx, ebx
call fcn.00522744
jmp case.0x473d3f.1
mov ecx, str.chmod
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x473de0
test dl, dl
je 0x473ddc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x473de0
add eax, 2
add ecx, 2
test dl, dl
jne 0x473dc0
xor eax, eax
jmp 0x473de5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x473ec4
lea eax, [ebp - 0x410]
xor esi, esi
push eax
lea eax, [ebp - 0x110]
push eax
push str._s__s
push dword [edi + 0x10]
call fcn.00417870
lea eax, [ebp - 0x410]
push 0x72
push eax
call fcn.005272d0
test eax, eax
mov eax, 0x100
push 0x77
cmovne esi, eax
lea eax, [ebp - 0x410]
push eax
call fcn.005272d0
add esp, 0x20
test eax, eax
je 0x473e3d
or esi, 0x80
lea eax, [ebp - 0x110]
push esi
push eax
call fcn.00535e4b
add esp, 8
mov esi, dword [ebp - 0x718]
push 0
mov ecx, edi
call fcn.0051b35d
test eax, eax
jne 0x473c62
mov esi, 1
test ebx, ebx
je 0x473e7f
mov ecx, ebx
call fcn.005221d7
push 0x2c
push ebx
call fcn.0052389d
add esp, 8
test edi, edi
je 0x473e98
mov ecx, edi
call fcn.0051b348
push 0x518
push edi
call fcn.0052389d
add esp, 8
push dword [ebp - 0x72c]
call fcn.00535d38
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052388c
mov esp, ebp
pop ebp
ret
mov ecx, 0x559a6c
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x473ef0
test dl, dl
je 0x473eec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x473ef0
add eax, 2
add ecx, 2
test dl, dl
jne 0x473ed0
xor eax, eax
jmp 0x473ef5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x473f21
lea eax, [ebp - 0x110]
push eax
push 0x553e38
push dword [edi + 0x10]
call fcn.00417870
lea eax, [ebp - 0x110]
push eax
call fcn.00535d38
add esp, 0x10
jmp case.0x473d3f.1
mov ecx, str.copy
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x473f48
test dl, dl
je 0x473f44
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x473f48
add eax, 2
add ecx, 2
test dl, dl
jne 0x473f28
xor eax, eax
jmp 0x473f4d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x473f9e
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x110]
push eax
push str._s__s
push dword [edi + 0x10]
call fcn.00417870
lea eax, [ebp - 0x110]
push eax
call fcn.00473a30
add esp, 0x14
test eax, eax
je case.0x473d3f.1
push 0
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
jmp case.0x473d3f.1
mov ecx, str.move
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x473fc5
test dl, dl
je 0x473fc1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x473fc5
add eax, 2
add ecx, 2
test dl, dl
jne 0x473fa5
xor eax, eax
jmp 0x473fca
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47402a
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x110]
push eax
push str._s__s
push dword [edi + 0x10]
call fcn.00417870
lea eax, [ebp - 0x110]
push eax
call fcn.00473a30
add esp, 0x14
test eax, eax
je case.0x473d3f.1
push 0
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x110]
push eax
call fcn.00535d38
add esp, 4
jmp case.0x473d3f.1
mov ecx, 0x559a88
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x474051
test dl, dl
je 0x47404d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x474051
add eax, 2
add ecx, 2
test dl, dl
jne 0x474031
xor eax, eax
jmp 0x474056
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4740b2
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x110]
push eax
push str._s__s
push dword [edi + 0x10]
call fcn.00417870
lea eax, [ebp - 0x110]
push eax
call fcn.00473a30
add esp, 0x14
test eax, eax
je case.0x473d3f.1
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp case.0x473d3f.1
mov ecx, 0x559c08
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4740e0
test dl, dl
je 0x4740dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4740e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4740c0
xor eax, eax
jmp 0x4740e5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x474228
mov byte [ebp - 0x712], al
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x712]
push eax
push str._c__s
push dword [edi + 0x10]
call fcn.00417870
add esp, 0x10
cmp byte [ebp - 0x712], 0x6f
jne case.0x473d3f.1
push 0x84
call fcn.00523854
add esp, 4
mov dword [ebp - 0x734], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x474147
mov ecx, eax
call fcn.00416030
mov esi, eax
jmp 0x474149
xor esi, esi
lea eax, [ebp - 0x110]
mov dword [ebp - 4], 0xffffffff
push 0x553d34
push eax
call fcn.00521cc9
mov edi, eax
add esp, 8
test edi, edi
je 0x47461b
push edi
mov ecx, esi
call fcn.00416510
push edi
call fcn.005286e7
lea eax, [ebp - 0x110]
push 0x55486c
push eax
call fcn.00521cc9
mov edi, eax
add esp, 0xc
test edi, edi
je 0x47461b
push edi
mov ecx, esi
mov byte [esi + 1], 0
call fcn.004170a0
push edi
call fcn.005286e7
lea eax, [ebp - 0x110]
push 0x553d34
push eax
call fcn.00521cc9
mov edi, eax
add esp, 0xc
test edi, edi
je 0x47461b
push edi
mov ecx, esi
call fcn.00416510
push edi
call fcn.005286e7
lea eax, [ebp - 0x110]
push 0x55486c
push eax
call fcn.00521cc9
mov edi, eax
add esp, 0xc
test edi, edi
je 0x47461b
push edi
mov ecx, esi
mov byte [esi + 1], 1
call fcn.004170a0
push edi
call fcn.005286e7
add esp, 4
mov ecx, esi
call fcn.004160a0
push 0x84
push esi
call fcn.0052389d
mov edi, dword [ebp - 0x71c]
jmp 0x473e4a
mov ecx, str.chkani
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x474250
test dl, dl
je 0x47424c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x474250
add eax, 2
add ecx, 2
test dl, dl
jne 0x474230
xor eax, eax
jmp 0x474255
sbb eax, eax
or eax, 1
test eax, eax
jne 0x474344
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x710]
push eax
push str._s__s__d
push dword [edi + 0x10]
call fcn.00417870
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x710]
push eax
lea eax, [ebp - 0x410]
push str._s_s
push eax
call fcn.0041f000
push 0x2c
call fcn.00523854
add esp, 0x28
mov dword [ebp - 0x738], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x4742c9
push 0x1000
mov ecx, eax
call fcn.005220f9
mov esi, eax
jmp 0x4742cb
xor esi, esi
lea eax, [ebp - 0x410]
mov dword [ebp - 4], 0xffffffff
push eax
mov ecx, esi
call fcn.00522768
test eax, eax
je 0x474614
lea eax, [ebp - 0x110]
push 0x559c2c
push eax
call fcn.0051c1cd
lea eax, [ebp - 0x110]
push eax
push esi
call fcn.0052266a
add esp, 0x10
test eax, eax
jne 0x474328
lea eax, [ebp - 0x410]
push eax
call fcn.00473850
add esp, 4
cmp eax, dword [ebp - 0x724]
jne 0x47463b
test esi, esi
je 0x473e4d
mov ecx, esi
call fcn.005221d7
push 0x2c
push esi
call fcn.0052389d
jmp 0x473e4a
mov ecx, str.chksize
mov eax, esi
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x474370
test dl, dl
je 0x47436c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x474370
add eax, 2
add ecx, 2
test dl, dl
jne 0x474350
xor eax, eax
jmp 0x474375
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4743c3
lea eax, [ebp - 0x728]
push eax
lea eax, [ebp - 0x110]
push eax
push str._s__d
push dword [edi + 0x10]
call fcn.00417870
lea eax, [ebp - 0x110]
push eax
call fcn.00473850
add esp, 0x14
cmp eax, dword [ebp - 0x728]
jne 0x47463b
lea eax, [ebp - 0x110]
push eax
call fcn.00535d38
add esp, 4
jmp case.0x473d3f.1
mov ecx, str.gather
mov eax, esi
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4743f0
test dl, dl
je 0x4743ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4743f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4743d0
xor eax, eax
jmp 0x4743f5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47442e
lea eax, [ebp - 0x720]
push eax
lea eax, [ebp - 0x110]
push eax
push str._s__d
push dword [edi + 0x10]
call fcn.00417870
push dword [ebp - 0x720]
lea eax, [ebp - 0x110]
push eax
call fcn.00473890
add esp, 0x18
jmp case.0x473d3f.1
mov ecx, str.anihd
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x474455
test dl, dl
je 0x474451
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x474455
add eax, 2
add ecx, 2
test dl, dl
jne 0x474435
xor eax, eax
jmp 0x47445a
sbb eax, eax
or eax, 1
test eax, eax
jne case.0x473d3f.1
lea eax, [ebp - 0x610]
push eax
lea eax, [ebp - 0x510]
push eax
push str._s__s
push dword [edi + 0x10]
call fcn.00417870
push 0x84
call fcn.00523854
add esp, 0x14
mov dword [ebp - 0x73c], eax
mov dword [ebp - 4], 5
test eax, eax
je 0x4744a6
mov ecx, eax
call fcn.00416030
mov esi, eax
jmp 0x4744a8
xor esi, esi
lea eax, [ebp - 0x510]
mov dword [ebp - 4], 0xffffffff
push 0x553d34
push eax
call fcn.00521cc9
mov edi, eax
add esp, 8
test edi, edi
je 0x474694
push edi
mov ecx, esi
call fcn.00416510
push edi
call fcn.005286e7
lea eax, [ebp - 0x610]
push 0x553d34
push eax
call fcn.00521cc9
mov edi, eax
add esp, 0xc
test edi, edi
je 0x474674
push edi
mov ecx, esi
call fcn.00416bf0
push edi
call fcn.005286e7
lea eax, [ebp - 0x510]
push 0x55486c
push eax
call fcn.00521cc9
mov edi, eax
add esp, 0xc
test edi, edi
je 0x474654
push edi
mov ecx, esi
call fcn.004170a0
push edi
call fcn.005286e7
add esp, 4
test esi, esi
je 0x47454f
mov ecx, esi
call fcn.004160a0
push 0x84
push esi
call fcn.0052389d
add esp, 8
lea eax, [ebp - 0x610]
push eax
call fcn.00535d38
mov edi, dword [ebp - 0x71c]
add esp, 4
jmp 0x473e4d
push esi
mov ecx, ebx
call fcn.00522601
jmp case.0x473d3f.1
push 0x553d34
push esi
call fcn.00521cc9
add esp, 8
test eax, eax
je case.0x473d3f.1
push eax
call fcn.005286e7
add esp, 4
mov ecx, ebx
push esi
call fcn.00522873
push esi
test eax, eax
je 0x4746b4
call fcn.00535d38
add esp, 4
jmp case.0x473d3f.1
push 0x553d34
push esi
call fcn.00521cc9
add esp, 8
test eax, eax
je case.0x473d3f.1
push eax
call fcn.005286e7
add esp, 4
mov ecx, ebx
push esi
call fcn.005222bb
push esi
test eax, eax
je 0x4746d4
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp case.0x473d3f.1
push esi
mov ecx, ebx
call fcn.005224f3
jmp case.0x473d3f.1
lea eax, [ebp - 0x210]
push eax
push 0x5543cc
push str.Error
call fcn.00521c77
add esp, 0xc
xor eax, eax
jmp 0x473ea8
lea eax, [ebp - 0x110]
push eax
push 0x5543cc
push str.Script_Error
call fcn.00521c77
add esp, 0xc
xor eax, eax
jmp 0x473ea8
push str.File_Error._Reinstall__
push str.Error
call fcn.00521c77
add esp, 8
xor eax, eax
jmp 0x473ea8
lea eax, [ebp - 0x510]
push eax
push str.save__s
push str.error
call fcn.00521c77
add esp, 0xc
xor eax, eax
jmp 0x473ea8
lea eax, [ebp - 0x610]
push eax
push str.load__s__2_
push str.error
call fcn.00521c77
add esp, 0xc
xor eax, eax
jmp 0x473ea8
lea eax, [ebp - 0x510]
push eax
push str.load__s__1_
push str.error
call fcn.00521c77
add esp, 0xc
xor eax, eax
jmp 0x473ea8
lea eax, [ebp - 0x210]
push eax
push str.Patching_Fail__s:_s
push str.Error
call fcn.00521c77
add esp, 0x10
xor esi, esi
jmp 0x473e69
lea eax, [ebp - 0x210]
push eax
push str.Adding_Fail__s:_s
push str.Error
call fcn.00521c77
add esp, 0x10
xor esi, esi
jmp 0x473e69