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

Disassembly:
push 0xffffffffffffffff
push 0x4a6a64
mov eax, dword fs:[0]
push eax
sub esp, 0x72c
mov eax, dword [0x4bdcf8]
xor eax, esp
mov dword [esp + 0x728], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4bdcf8]
xor eax, esp
push eax
lea eax, [esp + 0x740]
mov dword fs:[0], eax
mov edi, ecx
push 0x518
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], 1
call fcn.00476b22
add esp, 4
mov dword [esp + 0x24], eax
xor ebx, ebx
mov dword [esp + 0x748], ebx
cmp eax, ebx
je 0x440a36
mov ecx, eax
call fcn.00474980
mov ebp, eax
mov dword [esp + 0x18], eax
jmp 0x440a3c
xor ebp, ebp
mov dword [esp + 0x18], ebp
push edi
mov ecx, ebp
mov dword [esp + 0x74c], 0xffffffff
call fcn.004749c0
test eax, eax
jne 0x440a71
cmp ebp, ebx
je 0x440a67
mov ecx, ebp
call fcn.004749a0
push ebp
call fcn.00476a7f
add esp, 4
mov eax, 1
jmp 0x4414f1
mov ecx, dword [0x4c02d8]
push ebx
call fcn.004670a0
mov ecx, dword [0x4c02d8]
call fcn.00467360
mov eax, dword [0x6043b8]
mov ecx, dword [0x4c02d8]
push eax
push ecx
call fcn.004733b0
add esp, 8
push edi
mov edi, 0x4b4d24
mov esi, eax
call fcn.00402ac0
push eax
push 0xc8
push 0x64
call fcn.00441740
mov edi, 0x4b4d58
call fcn.00402ac0
push eax
push 0xd9
push 0x64
call fcn.00441740
mov edx, dword [0x4c02d8]
push esi
push edx
call fcn.00473540
movzx eax, byte [0x4ca974]
movzx ecx, byte [0x4bef1e]
push 0x4bd5a0
push eax
push ecx
call fcn.00467b20
push 0xff
lea edx, [esp + 0x171]
push ebx
push edx
mov byte [esp + 0x5a], bl
mov byte [esp + 0x178], bl
call fcn.0047cbe0
push 0xff
lea eax, [esp + 0x7d]
push ebx
push eax
mov byte [esp + 0x84], bl
call fcn.0047cbe0
add esp, 0x48
push 0xff
lea ecx, [esp + 0x241]
push ebx
push ecx
mov byte [esp + 0x248], bl
call fcn.0047cbe0
push 0x1c
call fcn.00476b22
add esp, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0x748], 1
cmp eax, ebx
je 0x440b72
push 0x800
mov ecx, eax
call fcn.0046598d
jmp 0x440b74
xor eax, eax
mov dword [esp + 0x748], 0xffffffff
push ebx
mov ecx, ebp
mov dword [esp + 0x24], eax
call fcn.00474b70
test eax, eax
je 0x4414b0
mov ebp, dword [esp + 0x18]
add ebp, 0x418
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
cmp byte [ebp], bl
je case.0x440c7a.1
mov ecx, 0x4b49b0
mov eax, ebp
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440be0
cmp dl, bl
je 0x440bdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440be0
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440bc0
xor eax, eax
jmp 0x440be5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x440c65
mov esi, dword [esp + 0x20]
cmp byte [esp + 0x13c], bl
je 0x440c05
lea edx, [esp + 0x13c]
push edx
mov ecx, esi
call fcn.00465f7b
cmp esi, ebx
je 0x440c19
mov ecx, esi
call fcn.00466678
push esi
call fcn.00476a7f
add esp, 4
push 0x1c
call fcn.00476b22
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x748], 2
cmp eax, ebx
je 0x440c44
push 0x800
mov ecx, eax
call fcn.0046598d
jmp 0x440c46
xor eax, eax
mov dword [esp + 0x748], 0xffffffff
mov dword [esp + 0x20], eax
mov byte [esp + 0x13c], bl
mov byte [esp + 0x1e], bl
jmp case.0x440c7a.1
movsx eax, byte [esp + 0x1e]
cmp eax, 0x70
ja case.0x440c7a.1
movzx eax, byte [eax + 0x441658]
jmp dword [eax*4 + 0x441640]
mov ecx, 0x4b49b4
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440ca8
cmp dl, bl
je 0x440ca4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440ca8
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440c88
xor eax, eax
jmp 0x440cad
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x440cfa
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x13c]
push ecx
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x22]
push edx
push str._c__s
push ecx
call fcn.00477aa7
mov esi, dword [esp + 0x30]
add esp, 0x10
lea edx, [esp + 0x13c]
push edx
mov ecx, esi
call fcn.00465a36
test eax, eax
je 0x44154b
mov ecx, esi
call fcn.00465e50
jmp case.0x440c7a.1
mov ecx, str.chmod
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440d21
cmp dl, bl
je 0x440d1d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440d21
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440d01
xor eax, eax
jmp 0x440d26
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x440d95
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x33c]
push eax
mov eax, dword [edx + 0x10]
lea ecx, [esp + 0x40]
push ecx
push str._s__s
push eax
xor esi, esi
call fcn.00477aa7
lea ecx, [esp + 0x34c]
push 0x72
push ecx
call fcn.00477300
add esp, 0x18
test eax, eax
je 0x440d66
mov esi, 0x100
lea edx, [esp + 0x33c]
push 0x77
push edx
call fcn.00477300
add esp, 8
test eax, eax
je 0x440d82
or esi, 0x80
lea eax, [esp + 0x3c]
push esi
push eax
call fcn.00479857
add esp, 8
jmp case.0x440c7a.1
mov ecx, 0x4b49c0
mov eax, ebp
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440dc0
cmp dl, bl
je 0x440dbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440dc0
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440da0
xor eax, eax
jmp 0x440dc5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x440df2
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
lea ecx, [esp + 0x3c]
push ecx
push 0x4b1b20
push eax
call fcn.00477aa7
lea ecx, [esp + 0x48]
push ecx
call fcn.00478d37
add esp, 0x10
jmp case.0x440c7a.1
mov ecx, str.copy
mov eax, ebp
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440e20
cmp dl, bl
je 0x440e1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440e20
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440e00
xor eax, eax
jmp 0x440e25
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x440e71
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x23c]
push edx
mov edx, dword [ecx + 0x10]
lea eax, [esp + 0x40]
push eax
push str._s__s
push edx
call fcn.00477aa7
add esp, 0x10
lea eax, [esp + 0x3c]
call fcn.00440650
test eax, eax
je case.0x440c7a.1
push ebx
lea eax, [esp + 0x240]
push eax
lea ecx, [esp + 0x44]
push ecx
call esi
jmp case.0x440c7a.1
mov ecx, str.move
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440e98
cmp dl, bl
je 0x440e94
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440e98
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440e78
xor eax, eax
jmp 0x440e9d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x440ef6
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x23c]
push edx
mov edx, dword [ecx + 0x10]
lea eax, [esp + 0x40]
push eax
push str._s__s
push edx
call fcn.00477aa7
add esp, 0x10
lea eax, [esp + 0x3c]
call fcn.00440650
test eax, eax
je case.0x440c7a.1
push ebx
lea eax, [esp + 0x240]
push eax
lea ecx, [esp + 0x44]
push ecx
call esi
lea edx, [esp + 0x3c]
push edx
call fcn.00478d37
add esp, 4
jmp case.0x440c7a.1
mov ecx, 0x4b49dc
mov eax, ebp
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440f20
cmp dl, bl
je 0x440f1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440f20
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440f00
xor eax, eax
jmp 0x440f25
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x440f7e
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x23c]
push eax
mov eax, dword [edx + 0x10]
lea ecx, [esp + 0x40]
push ecx
push str._s__s
push eax
call fcn.00477aa7
add esp, 0x10
lea eax, [esp + 0x3c]
call fcn.00440650
test eax, eax
je case.0x440c7a.1
lea ecx, [esp + 0x23c]
push ecx
call edi
lea edx, [esp + 0x23c]
push edx
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp case.0x440c7a.1
mov ecx, 0x4b4d78
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440fa5
cmp dl, bl
je 0x440fa1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440fa5
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x440f85
xor eax, eax
jmp 0x440faa
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4410d0
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x23]
push edx
push str._c__s
push ecx
mov byte [esp + 0x2f], bl
call fcn.00477aa7
add esp, 0x10
cmp byte [esp + 0x1f], 0x6f
jne case.0x440c7a.1
push 0x70
call fcn.00476b22
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x748], 3
cmp eax, ebx
je 0x441007
push eax
call fcn.00457d20
mov esi, eax
jmp 0x441009
xor esi, esi
lea edx, [esp + 0x3c]
push 0x4b1b94
push edx
mov dword [esp + 0x750], 0xffffffff
call fcn.004656f1
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x441569
push edi
mov ecx, esi
call fcn.00456d50
push edi
call fcn.0047766d
lea eax, [esp + 0x40]
push 0x4b4518
push eax
call fcn.004656f1
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x441587
mov byte [esi + 1], bl
push edi
mov ebx, esi
call fcn.004577f0
push edi
call fcn.0047766d
lea ecx, [esp + 0x40]
push 0x4b1b94
push ecx
call fcn.004656f1
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4415a5
push edi
mov ecx, esi
call fcn.00456d50
push edi
call fcn.0047766d
lea edx, [esp + 0x40]
push 0x4b4518
push edx
call fcn.004656f1
mov edi, eax
add esp, 0xc
test edi, edi
je 0x441569
push edi
mov byte [esi + 1], 1
call fcn.004577f0
push edi
call fcn.0047766d
add esp, 4
call fcn.0042e130
xor ebx, ebx
jmp case.0x440c7a.1
mov ecx, str.chkani
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4410f7
cmp dl, bl
je 0x4410f3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4410f7
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x4410d7
xor eax, eax
jmp 0x4410fc
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4411fb
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x644]
push edx
push str._s__s__d
push ecx
call fcn.00477aa7
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x654]
push eax
lea ecx, [esp + 0x358]
push 0x4b4d90
push ecx
call fcn.004770e4
push 0x1c
call fcn.00476b22
add esp, 0x28
mov dword [esp + 0x2c], eax
mov dword [esp + 0x748], 4
cmp eax, ebx
je 0x441174
push 0x800
mov ecx, eax
call fcn.0046598d
mov edi, eax
jmp 0x441176
xor edi, edi
lea edx, [esp + 0x33c]
push edx
mov ecx, edi
mov dword [esp + 0x74c], 0xffffffff
call fcn.00465a36
test eax, eax
je 0x441565
lea eax, [esp + 0x3c]
push 0x4b4d98
push eax
call fcn.004751a0
lea ecx, [esp + 0x44]
push ecx
push edi
call fcn.00465bdb
add esp, 0x10
test eax, eax
jne 0x4411e7
lea edx, [esp + 0x33c]
push 0x4b1b94
push edx
call fcn.004656f1
add esp, 8
cmp eax, ebx
jne 0x4411d6
xor eax, eax
jmp 0x4411dd
mov esi, eax
call fcn.004407b0
cmp eax, dword [esp + 0x34]
jne 0x4415c3
cmp edi, ebx
je case.0x440c7a.1
mov esi, edi
call fcn.0042e9a0
jmp case.0x440c7a.1
mov ecx, str.chksize
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x441222
cmp dl, bl
je 0x44121e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x441222
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x441202
xor eax, eax
jmp 0x441227
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x441284
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x38]
push eax
mov eax, dword [edx + 0x10]
lea ecx, [esp + 0x40]
push ecx
push str._s__d
push eax
call fcn.00477aa7
lea ecx, [esp + 0x4c]
push 0x4b1b94
push ecx
call fcn.004656f1
add esp, 0x18
cmp eax, ebx
jne 0x441261
xor eax, eax
jmp 0x441268
mov esi, eax
call fcn.004407b0
cmp eax, dword [esp + 0x38]
jne 0x4415c3
lea edx, [esp + 0x3c]
push edx
call fcn.00478d37
add esp, 4
jmp case.0x440c7a.1
mov ecx, str.gather
mov eax, ebp
jmp 0x441290
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4412b0
cmp dl, bl
je 0x4412ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4412b0
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x441290
xor eax, eax
jmp 0x4412b5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4412eb
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
mov eax, dword [edx + 0x10]
lea ecx, [esp + 0x40]
push ecx
push str._s__d
push eax
call fcn.00477aa7
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x50]
call fcn.00440830
add esp, 0x14
jmp case.0x440c7a.1
mov ecx, str.anihd
mov eax, ebp
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x441312
cmp dl, bl
je 0x44130e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x441312
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x4412f2
xor eax, eax
jmp 0x441317
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne case.0x440c7a.1
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x53c]
push edx
mov edx, dword [ecx + 0x10]
lea eax, [esp + 0x440]
push eax
push str._s__s
push edx
call fcn.00477aa7
push 0x70
call fcn.00476b22
add esp, 0x14
mov dword [esp + 0x2c], eax
mov dword [esp + 0x748], 5
cmp eax, ebx
je 0x441368
push eax
call fcn.00457d20
mov edi, eax
jmp 0x44136a
xor edi, edi
lea eax, [esp + 0x43c]
push 0x4b1b94
push eax
mov dword [esp + 0x750], 0xffffffff
call fcn.004656f1
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x4415dc
push esi
mov ecx, edi
call fcn.00456d50
push esi
call fcn.0047766d
lea ecx, [esp + 0x540]
push 0x4b1b94
push ecx
call fcn.004656f1
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x4415fd
call fcn.004576b0
push esi
call fcn.0047766d
lea edx, [esp + 0x440]
push 0x4b4518
push edx
call fcn.004656f1
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x44161e
push esi
mov ebx, edi
call fcn.004577f0
push esi
call fcn.0047766d
add esp, 4
test edi, edi
je 0x441407
mov esi, edi
call fcn.0042e130
lea eax, [esp + 0x53c]
push eax
call fcn.00478d37
add esp, 4
xor ebx, ebx
jmp case.0x440c7a.1
mov ecx, dword [esp + 0x20]
push ebp
call fcn.00465d19
jmp case.0x440c7a.1
push 0x4b1b94
push ebp
call fcn.004656f1
add esp, 8
cmp eax, ebx
je case.0x440c7a.1
push eax
call fcn.0047766d
mov ecx, dword [esp + 0x24]
add esp, 4
push ebp
call fcn.00465e07
push ebp
test eax, eax
je 0x441519
call fcn.00478d37
add esp, 4
jmp case.0x440c7a.1
push 0x4b1b94
push ebp
call fcn.004656f1
add esp, 8
cmp eax, ebx
je case.0x440c7a.1
push eax
call fcn.0047766d
mov ecx, dword [esp + 0x24]
add esp, 4
push ebp
call fcn.00466357
push ebp
test eax, eax
je 0x44153c
call edi
jmp case.0x440c7a.1
mov ecx, dword [esp + 0x20]
push ebp
call fcn.00465c9b
mov ecx, dword [esp + 0x18]
push ebx
call fcn.00474b70
test eax, eax
jne 0x440b9d
mov esi, dword [esp + 0x20]
cmp esi, ebx
je 0x4414c8
mov ecx, esi
call fcn.00466678
push esi
call fcn.00476a7f
add esp, 4
mov esi, dword [esp + 0x18]
cmp esi, ebx
je 0x4414e0
mov ecx, esi
call fcn.004749a0
push esi
call fcn.00476a7f
add esp, 4
mov edx, dword [esp + 0x30]
push edx
call fcn.00478d37
mov eax, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [esp + 0x740]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x728]
xor ecx, esp
call fcn.004768b9
add esp, 0x738
ret
lea ecx, [esp + 0x140]
push ecx
push str.Patching_Fail__s:_s
push str.Error
call fcn.00465616
add esp, 0x10
mov dword [esp + 0x28], ebx
jmp 0x4414b0
lea edx, [esp + 0x140]
push edx
push str.Adding_Fail__s:_s
jmp 0x441526
lea eax, [esp + 0x13c]
push eax
push 0x4b451c
push str.Error
call fcn.00465616
add esp, 0xc
xor eax, eax
jmp 0x4414f1
lea ecx, [esp + 0x3c]
push ecx
push 0x4b451c
push str.Script_Error
call fcn.00465616
add esp, 0xc
xor eax, eax
jmp 0x4414f1
lea edx, [esp + 0x3c]
push edx
push 0x4b451c
push str.Script_Error
call fcn.00465616
add esp, 0xc
xor eax, eax
jmp 0x4414f1
lea eax, [esp + 0x3c]
push eax
push 0x4b451c
push str.Script_Error
call fcn.00465616
add esp, 0xc
xor eax, eax
jmp 0x4414f1
push str.File_Error._Reinstall__
push str.Error
call fcn.00465616
add esp, 8
xor eax, eax
jmp 0x4414f1
lea edx, [esp + 0x43c]
push edx
push str.load__s__1_
push str.error
call fcn.00465616
add esp, 0xc
xor eax, eax
jmp 0x4414f1
lea eax, [esp + 0x53c]
push eax
push str.load__s__2_
push str.error
call fcn.00465616
add esp, 0xc
xor eax, eax
jmp 0x4414f1
lea ecx, [esp + 0x43c]
push ecx
push str.save__s
push str.error
call fcn.00465616
add esp, 0xc
xor eax, eax
jmp 0x4414f1