Function at 0x41e0a0
Capabilities:
Copy file
Get common file path
Move file

Disassembly:
sub esp, 0x6c8
push ebx
push ebp
push esi
push edi
mov ebp, dword [esp + 0x6dc]
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0xfc]
rep stosd dword es:[edi], eax
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xfc]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0xfc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [esp + 0x20], 0x50
rep movsb byte es:[edi], byte [esi]
mov edi, str..IDX
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0xfc]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00420bf0
mov ebx, eax
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0x100]
rep stosd dword es:[edi], eax
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x100]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x100]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..DAT
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x100]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00420bf0
add esp, 8
test ebx, ebx
jl 0x41e9f2
test eax, eax
jl 0x41e9f2
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0xfc]
lea edx, [esp + 0x28c]
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x28c]
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x228]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x228]
lea eax, [esp + 0xfc]
push ecx
push edx
push eax
push ebp
call fcn.0041f2a0
add esp, 0x10
cmp eax, 0xfffffffe
mov dword [esp + 0x18], eax
jne 0x41e217
pop edi
pop esi
pop ebp
mov ax, 0xff9d
pop ebx
add esp, 0x6c8
ret
lea edi, [esp + 0x28c]
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x228]
mov esi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov eax, dword [0x96b330]
mov dword [esp + 0x24], ebp
not ecx
dec ecx
cmp eax, ebp
mov edi, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x1c], ebp
jne 0x41e265
mov dword [esp + 0x1c], ebp
mov ebx, 1
jmp 0x41e27e
add eax, 0x66
push eax
call fcn.00421130
mov ebx, 1
add esp, 4
cmp eax, ebx
jne 0x41e27e
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0xfc]
push ecx
call fcn.00421130
add esp, 4
cmp eax, ebx
jne 0x41e296
mov dword [esp + 0x1c], ebp
cmp esi, 4
mov dword [esp + 0x14], ebp
jl 0x41e392
mov eax, dword [esp + edi + 0xfc]
lea edi, [esp + edi + 0xfc]
mov edx, str.f300
cmp eax, dword [edx]
je 0x41e381
mov ecx, str.F300
mov edx, eax
cmp edx, dword [ecx]
je 0x41e381
mov eax, str.f100
mov ecx, edx
cmp ecx, dword [eax]
je 0x41e373
mov edx, str.F100
mov eax, ecx
cmp eax, dword [edx]
je 0x41e373
mov ecx, str.f220
mov edx, eax
cmp edx, dword [ecx]
je 0x41e365
mov eax, str.F220
mov ecx, edx
cmp ecx, dword [eax]
je 0x41e365
mov edx, str.f550
mov eax, ecx
cmp eax, dword [edx]
je 0x41e357
mov ecx, str.F550
mov edx, eax
cmp edx, dword [ecx]
je 0x41e357
mov eax, str.f770
mov ecx, edx
cmp ecx, dword [eax]
je 0x41e349
mov edx, str.F770
mov eax, ecx
cmp eax, dword [edx]
je 0x41e349
mov ecx, str.f302
mov edx, eax
cmp edx, dword [ecx]
je 0x41e343
mov eax, str.F302
mov ecx, edx
cmp ecx, dword [eax]
jne 0x41e392
mov dword [esp + 0x14], ebx
jmp 0x41e392
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x302
jmp 0x41e392
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x226
jmp 0x41e392
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0xdc
jmp 0x41e392
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0x64
jmp 0x41e392
mov eax, 0x12c
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], ebp
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [esp + 0x6e0]
lea eax, [esp + 0xfc]
push edx
push eax
call sub.F3CCISAM.dll_xism_open
mov ebx, eax
test bx, bx
jg 0x41e8cd
cmp bx, 0xffd4
je 0x41e781
cmp bx, 0xffe1
je 0x41e781
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41e5d4
mov esi, dword [esp + 0x18]
test esi, esi
jl 0x41e8c2
lea eax, [esi + esi*4]
lea ecx, [eax + eax*8]
cmp dword [ecx*4 + 0xa4a39c], 1
jne 0x41e8c2
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 0xa
mov dword [esp + 0x28], eax
jg 0x41e8c2
push 0x64
call ebp
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x34]
lea edx, [esp + 0x34]
rep stosd dword es:[edi], eax
or ecx, 0xffffffff
lea edi, [esp + 0xfc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, str..IDX
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x98]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x19
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x6dc]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x98]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..IDX
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileA]
and ecx, 3
lea eax, [esp + 0x34]
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x98]
push eax
push ecx
call ebx
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x34]
lea edx, [esp + 0x34]
rep stosd dword es:[edi], eax
or ecx, 0xffffffff
lea edi, [esp + 0xfc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
shr ecx, 2
mov edi, edx
lea edx, [esp + 0x34]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, str..DAT
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x98]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x19
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x6dc]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x98]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..DAT
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x34]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x9c]
push ecx
call ebx
push 0xc8
call ebp
jmp 0x41e39c
cmp word [esp + 0x10], 0
jle 0x41e79e
cmp word [esp + 0x1c], 1
jne 0x41e79e
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0x354]
lea esi, [esp + 0xfc]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x2c]
lea edi, [esp + 0x354]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x354]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, str.IDXBK_
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, dword [esp + 0x2c]
and ecx, 3
lea edx, [esp + 0x354]
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + eax + 0xfc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x354]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str..idx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x354]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00420bf0
add esp, 4
test eax, eax
jl 0x41e822
cmp word [esp + 0x30], 1
je 0x41e822
push 0x42ecb8
push 0x42eca8
lea ecx, [esp + 0x104]
push ebx
push ecx
call fcn.00421400
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x300]
add esp, 0x10
rep stosd dword es:[edi], eax
lea edi, [esp + 0xfc]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x2f0]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x2f0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, str..IDX
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x2f4]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x35c]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [esp + 0x30], 1
mov esi, dword [esp + 0x20]
dec esi
test esi, esi
mov dword [esp + 0x20], esi
jle 0x41e8be
push 0x1f4
call ebp
jmp 0x41e39c
mov esi, dword [esp + 0x20]
cmp esi, 0x32
je 0x41e7c0
cmp esi, 0x28
je 0x41e7c0
cmp esi, 0x1e
je 0x41e7c0
cmp esi, 0x14
je 0x41e7c0
cmp esi, 0xa
je 0x41e7c0
cmp esi, 5
jge 0x41e785
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x480]
lea edx, [esp + 0x228]
rep stosd dword es:[edi], eax
movsx eax, bx
push edx
lea ecx, [esp + 0x290]
push eax
push ecx
lea edx, [esp + 0x48c]
push 0x42ea84
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
lea eax, [esp + 0x480]
push 0x40015
push 0x42ea78
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 4
jne 0x41e8be
jmp 0x41e785
push 0x42e99c
push 0x42eca8
lea ecx, [esp + 0x104]
push ebx
push ecx
call fcn.00421400
mov edx, dword [esp + 0x20]
push edx
call fcn.00421790
add esp, 0x14
cmp eax, 1
je 0x41e8be
mov eax, dword [0x96b390]
mov cl, byte [eax + 0x376e9]
test cl, cl
jne 0x41e8af
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x480]
rep stosd dword es:[edi], eax
movsx edx, bx
lea ecx, [esp + 0x228]
lea eax, [esp + 0x28c]
push ecx
push edx
push eax
lea ecx, [esp + 0x48c]
push 0x42e9fc
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
lea edx, [esp + 0x480]
push 0x40010
push 0x42ea78
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x10]
push 1
push eax
call fcn.00421700
add esp, 8
mov esi, dword [esp + 0x18]
test bx, bx
jle 0x41e9ac
jmp 0x41e8d1
mov esi, dword [esp + 0x18]
cmp word [esp + 0x1c], 1
jne 0x41e8f4
push 0x42e9f8
push 0x42eca8
lea ecx, [esp + 0x104]
push ebx
push ecx
call fcn.00421400
add esp, 0x10
mov edx, dword [esp + 0x10]
push 0
push edx
call fcn.00421700
add esp, 8
test esi, esi
jl 0x41e915
lea eax, [esi + esi*4]
lea eax, [eax + eax*8]
mov word [eax*4 + 0xa4a398], bx
mov eax, dword [esp + 0x24]
movsx ecx, bx
cmp eax, 0x12c
mov dword [ecx*4 + 0xa4c8a8], eax
jne 0x41e9e4
mov ecx, 0x19
xor eax, eax
mov edi, 0xa4c778
push 0xa4c778
rep stosd dword es:[edi], eax
push 0x64
mov dword [0xa4c9f8], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov esi, dword [esp + 0x6dc]
mov ecx, 0x19
xor eax, eax
mov edi, 0xa4a108
rep stosd dword es:[edi], eax
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
js 0x41e9e4
cmp byte [ecx + esi], 0x5c
je 0x41e98b
dec ecx
jns 0x41e974
pop edi
pop esi
mov ax, bx
pop ebp
pop ebx
add esp, 0x6c8
ret
mov edx, ecx
mov edi, 0xa4a108
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov ax, bx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c8
ret
test esi, esi
jl 0x41e9b9
push esi
call fcn.004205d0
add esp, 4
cmp word [esp + 0x10], 0
jne 0x41e9e4
cmp word [esp + 0x1c], 1
jne 0x41e9e4
push 0x42e99c
push 0x42eca8
lea eax, [esp + 0x104]
push ebx
push eax
call fcn.00421400
add esp, 0x10
pop edi
pop esi
mov ax, bx
pop ebp
pop ebx
add esp, 0x6c8
ret
pop edi
pop esi
pop ebp
mov ax, 0xfffe
pop ebx
add esp, 0x6c8
ret