Function at 0x419ff0
Capabilities:
Copy file
Get common file path

Disassembly:
sub esp, 0x72c
push ebx
push ebp
push esi
push edi
mov ebp, dword [esp + 0x740]
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0x34]
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 + 0x34]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
mov dword [esp + 0x20], 0x64
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 + 0x34]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0041c1d0
mov ebx, eax
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0x38]
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 + 0x38]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x38]
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 + 0x38]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0041c1d0
add esp, 8
test ebx, ebx
jl 0x41a870
test eax, eax
jl 0x41a870
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0x34]
lea edx, [esp + 0x1c4]
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x1c4]
rep stosd dword es:[edi], eax
mov ecx, 0x19
lea edi, [esp + 0x160]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x160]
lea eax, [esp + 0x34]
push ecx
push edx
push eax
push ebp
call fcn.0041a880
add esp, 0x10
cmp eax, 0xfffffffe
mov dword [esp + 0x2c], eax
jne 0x41a149
pop edi
pop esi
pop ebp
mov ax, 0xff9d
pop ebx
add esp, 0x72c
ret
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [0x9a7d2c]
xor edi, edi
not ecx
dec ecx
cmp eax, edi
mov esi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], edi
jne 0x41a17f
mov dword [esp + 0x1c], edi
mov ebx, 1
jmp 0x41a198
add eax, 0x66
push eax
call fcn.0041c710
mov ebx, 1
add esp, 4
cmp eax, ebx
jne 0x41a198
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x34]
push ecx
call fcn.0041c710
add esp, 4
cmp eax, ebx
jne 0x41a1ad
mov dword [esp + 0x1c], edi
cmp esi, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], edi
jl 0x41a2a7
mov eax, dword [esp + esi + 0x30]
lea esi, [esp + esi + 0x30]
mov edx, str.f300
cmp eax, dword [edx]
je 0x41a296
mov ecx, str.F300
mov edx, eax
cmp edx, dword [ecx]
je 0x41a296
mov eax, str.f100
mov ecx, edx
cmp ecx, dword [eax]
je 0x41a288
mov edx, str.F100
mov eax, ecx
cmp eax, dword [edx]
je 0x41a288
mov ecx, str.f220
mov edx, eax
cmp edx, dword [ecx]
je 0x41a27a
mov eax, str.F220
mov ecx, edx
cmp ecx, dword [eax]
je 0x41a27a
mov edx, str.f550
mov eax, ecx
cmp eax, dword [edx]
je 0x41a26c
mov ecx, str.F550
mov edx, eax
cmp edx, dword [ecx]
je 0x41a26c
mov eax, str.f770
mov ecx, edx
cmp ecx, dword [eax]
je 0x41a25e
mov edx, str.F770
mov eax, ecx
cmp eax, dword [edx]
je 0x41a25e
mov ecx, str.f302
mov edx, eax
cmp edx, dword [ecx]
je 0x41a258
mov eax, str.F302
mov ecx, edx
cmp ecx, dword [eax]
jne 0x41a2a7
mov dword [esp + 0x18], ebx
jmp 0x41a2a7
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0x302
jmp 0x41a2a7
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0x226
jmp 0x41a2a7
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0xdc
jmp 0x41a2a7
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], 0x64
jmp 0x41a2a7
mov eax, 0x12c
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov ebx, dword [sym.imp.MSVCRT.dll_sprintf]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [esp + 0x744]
lea eax, [esp + 0x34]
push edx
push eax
call sub.F3CCISAM.dll_xism_open
mov edi, eax
cmp di, 0xffd4
mov dword [esp + 0x14], edi
je 0x41a579
test di, di
jg 0x41a70a
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41a705
cmp word [esp + 0x10], 0
jle 0x41a510
mov esi, 1
cmp word [esp + 0x1c], si
jne 0x41a510
cmp di, 0xffe9
jne 0x41a510
push esi
call dword [sym.imp.USER32.dll_ShowCursor]
cmp word [esp + 0x24], si
je 0x41a582
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0x28c]
lea esi, [esp + 0x34]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x30]
lea edi, [esp + 0x28c]
add ecx, 0xfffffffc
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x28c]
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 + 0x30]
and ecx, 3
lea edx, [esp + 0x28c]
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + eax + 0x30]
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 + 0x28c]
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 + 0x28c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0041c1d0
add esp, 4
test eax, eax
jl 0x41a61f
push 0x429c30
push 0x429db4
lea ecx, [esp + 0x3c]
push 0xffffffffffffffe9
push ecx
call fcn.0041c9e0
add esp, 0x10
cmp word [esp + 0x10], 0x12c
jne 0x41a468
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x3b8]
lea edx, [esp + 0x160]
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0x1c8]
push 0xffffffffffffffe9
push eax
lea ecx, [esp + 0x3c4]
push 0x429d50
push ecx
call ebx
add esp, 0x14
lea edx, [esp + 0x3b8]
push 0x40040
push 0x429d44
push edx
push 0
call ebp
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x228]
lea edx, [esp + 0x228]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x34]
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 + 0x228]
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 + 0x22c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x294]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], 1
mov edi, dword [esp + 0x14]
dec esi
test esi, esi
mov dword [esp + 0x20], esi
jle 0x41a705
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x41a2b3
mov esi, dword [esp + 0x20]
cmp esi, 0x46
je 0x41a528
cmp esi, 0x3c
je 0x41a528
cmp esi, 0x32
je 0x41a528
cmp esi, 0x28
jge 0x41a4f6
movsx edx, word [esp + 0x14]
mov ecx, 0x4b
xor eax, eax
lea edi, [esp + 0x610]
push edx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x38]
lea ecx, [esp + 0x614]
push eax
push 0x429c80
push ecx
call ebx
add esp, 0x10
lea edx, [esp + 0x610]
push 0x40015
push 0x4299f0
push edx
push 0
call ebp
cmp eax, 4
jne 0x41a701
jmp 0x41a4f2
mov esi, dword [esp + 0x20]
jmp 0x41a4f6
push str.NG_2
push 0x429db4
lea eax, [esp + 0x3c]
push 0xffffffffffffffe9
push eax
call fcn.0041c9e0
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041cd70
add esp, 0x14
cmp eax, esi
je 0x41a6b4
mov edx, dword [0x9a8064]
mov al, byte [edx + 0x376e9]
test al, al
jne 0x41a60b
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x3b8]
lea edx, [esp + 0x3b8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x160]
lea ecx, [esp + 0x1c4]
push eax
push 0xffffffffffffffe9
push ecx
push 0x429974
push edx
call ebx
add esp, 0x14
lea eax, [esp + 0x3b8]
push 0x40010
push 0x4299f0
push eax
push 0
call ebp
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 1
push ecx
call fcn.0041cce0
add esp, 8
jmp 0x41a6b4
push str.NG_BK
push 0x429db4
lea edx, [esp + 0x3c]
push 0xffffffffffffffe9
push edx
call fcn.0041c9e0
mov eax, dword [esp + 0x20]
push eax
call fcn.0041cd70
add esp, 0x14
cmp eax, 1
je 0x41a6b0
mov ecx, dword [0x9a8064]
mov al, byte [ecx + 0x376e9]
test al, al
jne 0x41a6a1
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x3b8]
lea edx, [esp + 0x160]
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0x1c8]
push 0xffffffffffffffe9
push eax
lea ecx, [esp + 0x3c4]
push 0x429974
push ecx
call ebx
add esp, 0x14
lea edx, [esp + 0x3b8]
push 0x40010
push 0x4299f0
push edx
push 0
call ebp
mov eax, dword [esp + 0x10]
push 2
push eax
call fcn.0041cce0
add esp, 8
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x41a6c5
push eax
call fcn.0041bbb0
add esp, 4
cmp di, 0xffe9
je 0x41a839
cmp word [esp + 0x1c], 1
jne 0x41a804
push 0x429914
push 0x429db4
lea eax, [esp + 0x3c]
push edi
push eax
call fcn.0041c9e0
add esp, 0x10
mov ax, di
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x72c
ret
mov edi, dword [esp + 0x14]
test di, di
jle 0x41a6b4
cmp word [esp + 0x24], 1
jne 0x41a757
cmp word [esp + 0x10], 0x12c
jne 0x41a757
mov ecx, 0x96
xor eax, eax
lea edi, [esp + 0x3b8]
push 0x429c4c
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x3bc]
push ecx
call ebx
add esp, 8
lea edx, [esp + 0x3b8]
push 0x40040
push 0x429d44
push edx
push 0
call ebp
mov edi, dword [esp + 0x14]
cmp word [esp + 0x1c], 1
jne 0x41a777
push 0x429970
push 0x429db4
lea eax, [esp + 0x3c]
push edi
push eax
call fcn.0041c9e0
add esp, 0x10
mov ecx, dword [esp + 0x10]
push 0
push ecx
call fcn.0041cce0
mov eax, dword [esp + 0x34]
add esp, 8
test eax, eax
jl 0x41a79c
lea eax, [eax + eax*4]
lea edx, [eax + eax*8]
mov word [edx*4 + 0xa42df0], di
mov eax, dword [esp + 0x28]
movsx ecx, di
cmp eax, 0x12c
mov dword [ecx*4 + 0xa45300], eax
jne 0x41a804
mov ecx, 0x19
xor eax, eax
mov edi, 0xa451d0
push 0xa451d0
rep stosd dword es:[edi], eax
push 0x64
mov dword [0xa45450], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edx, dword [esp + 0x740]
mov ecx, 0x19
xor eax, eax
mov edi, 0xa42b60
rep stosd dword es:[edi], eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
js 0x41a800
cmp byte [ecx + edx], 0x5c
je 0x41a812
dec ecx
jns 0x41a7f7
mov edi, dword [esp + 0x14]
mov ax, di
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x72c
ret
mov esi, edx
mov edx, ecx
mov edi, 0xa42b60
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
mov ax, di
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x72c
ret
cmp word [esp + 0x10], 0
jne 0x41a804
cmp word [esp + 0x1c], 1
jne 0x41a804
push 0x429914
push 0x429db4
lea ecx, [esp + 0x3c]
push 0xffffffffffffffe9
push ecx
call fcn.0041c9e0
add esp, 0x10
mov ax, di
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x72c
ret
pop edi
pop esi
pop ebp
mov ax, 0xfffe
pop ebx
add esp, 0x72c
ret