Function at 0x4990dc
Capabilities:
Copy file
Get common file path
Set current directory

Disassembly:
mov eax, 0x56f7c0
call fcn.00524444
mov eax, 0x24d8
call fcn.00524e70
mov eax, dword [ebp + 0x14]
push ebx
xor ebx, ebx
push esi
push edi
cmp eax, ebx
mov edi, ecx
je 0x499100
mov dword [eax], ebx
cmp dword [ebp + 8], ebx
push ebx
je 0x49965c
lea eax, [ebp + 8]
push ebx
push eax
call fcn.0047a9b3
add esp, 0xc
cmp dword [ebp + 0xc], ebx
mov dword [ebp - 4], ebx
push ebx
jne 0x499279
lea ecx, [ebp - 0x21c]
call fcn.0040215a
lea eax, [edi + 0x20e0]
lea esi, [edi + 0x3664]
mov dword [ebp - 0x1ac], eax
mov eax, dword [edi + 0x7f0]
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 1
mov dword [ebp - 0x1a8], esi
mov dword [ebp - 0x1b8], eax
call fcn.005453a7
cmp eax, 1
je 0x49918a
push dword [edi + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], bl
call fcn.0040223a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
jmp 0x499a34
mov eax, dword [ebp - 0x1b8]
cmp dword [ebp - 0xe8], ebx
mov dword [edi + 0x7f0], eax
je 0x49925d
mov eax, dword [ebp + 8]
cmp dword [eax - 8], ebx
je 0x49925d
push dword [esi]
lea ecx, [ebp - 0x14e0]
call fcn.00404989
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0x14e0]
push eax
call fcn.00404a99
lea ecx, [ebp + 8]
mov byte [ebp - 4], 2
push ecx
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0053ed7e
push 0x5bc9e8
push eax
lea eax, [ebp + 0x14]
mov byte [ebp - 4], 3
push eax
call fcn.0053ede4
mov eax, dword [eax]
mov esi, dword [esi]
push ebx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileA]
neg eax
sbb al, al
lea ecx, [ebp + 0x14]
inc al
mov byte [ebp + 0x13], al
call fcn.0053eb4f
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 2
call fcn.0053eb4f
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.0053eb4f
cmp byte [ebp + 0x13], bl
je 0x49925d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.00404c80
pop ecx
pop ecx
mov eax, dword [eax]
push ebx
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.0054239a
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 1
call fcn.0053eb4f
jmp 0x499170
push dword [edi + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], bl
call fcn.0040223a
jmp 0x499650
lea ecx, [ebp - 0x190]
call fcn.004efd2b
lea esi, [edi + 0x3664]
lea ecx, [ebp - 0x12c]
push esi
mov byte [ebp - 4], 5
mov dword [ebp - 0x134], 1
call fcn.0053ec88
lea ecx, [ebp - 0x3c]
call fcn.0053d5c9
cmp dword [ebp + 0x10], ebx
mov byte [ebp - 4], 6
jne 0x499370
lea ecx, [ebp - 0x60]
call fcn.00519a72
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 7
mov dword [ebp + 0x10], eax
call fcn.0055c7c5
mov eax, dword [eax + 4]
add eax, 0x2cc
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x4dc]
push eax
push 0x208
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x4992f7
mov byte [ebp - 0x4dc], bl
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x499309
cmp byte [eax], bl
je 0x499309
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push ebx
push 0x5bc9d8
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 8
call fcn.00519b35
cmp eax, ebx
je 0x499357
lea ecx, [ebp - 0x60]
call fcn.00519d55
mov dword [ebp - 0x10], eax
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x60]
call fcn.00519e24
push eax
lea ecx, [ebp - 0x3c]
push dword [ebp - 0x34]
mov byte [ebp - 4], 9
call fcn.0053d7d1
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 8
call fcn.0053eb4f
cmp dword [ebp - 0x10], ebx
jne 0x49931f
lea eax, [ebp - 0x4dc]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 6
call fcn.00519aaf
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x190]
mov dword [ebp - 0x128], eax
call fcn.005453a7
push 1
pop ecx
cmp eax, ecx
jne 0x49961c
mov eax, dword [ebp - 0xe8]
cmp dword [eax - 8], ebx
je 0x49962d
push dword [esi]
lea ecx, [ebp - 0x14e0]
call fcn.00404989
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x14e0]
push eax
call fcn.00404a99
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 0xa
push ecx
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0053ed7e
push 0x5bc9e8
push eax
lea eax, [ebp + 0xc]
mov byte [ebp - 4], 0xb
push eax
call fcn.0053ede4
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xe
call fcn.0053eb4f
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xd
call fcn.0053eb4f
push 0x400
lea ecx, [ebp - 0x9c]
call fcn.0054b04e
mov dword [ebp - 0x9c], 0x57aaf0
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov esi, dword [esi]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x9c]
push eax
push esi
mov byte [ebp - 4], 0x10
call fcn.00401ba7
add esp, 0xc
test eax, eax
je 0x4995bd
push dword [ebp + 0xc]
lea ecx, [ebp - 0xe4]
call fcn.0040207d
push ebx
lea ecx, [ebp - 0xe4]
call fcn.004020bb
test eax, eax
je 0x4994ec
push dword [ebp - 0xe8]
lea eax, [ebp - 0x18]
push 0x8537
push eax
call fcn.00402f3e
add esp, 0xc
mov eax, dword [eax]
push 4
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call fcn.0054239a
cmp eax, 6
lea ecx, [ebp - 0x18]
setne byte [ebp + 0x13]
mov byte [ebp - 4], 0x10
call fcn.0053eb4f
cmp byte [ebp + 0x13], bl
je 0x4994ec
cmp dword [ebp - 0x28], ebx
je 0x4994b2
push dword [ebp - 0x28]
call fcn.005444e2
pop ecx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xd
call fcn.0054b101
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 6
call fcn.0053eb4f
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 5
call fcn.0053d5fc
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], bl
call fcn.00499bc6
jmp 0x49917e
mov eax, dword [0x61d784]
mov dword [ebp + 0x14], eax
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x12
call fcn.00540041
push ebx
push 0x1001
push dword [ebp + 0xc]
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x13
call fcn.005400b6
test eax, eax
je 0x49957a
lea eax, [ebp + 0x14]
lea ecx, [ebp - 0x9c]
push eax
call fcn.004048f2
test eax, eax
je 0x49955a
lea eax, [ebp + 0x14]
push 0x5b85a0
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.0053ede4
push dword [eax]
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x14
call fcn.00540229
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x13
call fcn.0053eb4f
jmp 0x499519
lea ecx, [ebp - 0x74]
call fcn.005403be
lea ecx, [ebp - 0x74]
call fcn.005403e6
push dword [ebp - 0xe8]
push ebx
call fcn.0047a9ed
pop ecx
pop ecx
jmp 0x4995a8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.00404c80
pop ecx
pop ecx
mov eax, dword [eax]
push ebx
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x15
call fcn.0054239a
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x13
call fcn.0053eb4f
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x12
call fcn.00540073
mov byte [ebp - 4], 0x10
lea ecx, [ebp + 0x14]
jmp 0x4995e6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.00404c80
pop ecx
pop ecx
mov eax, dword [eax]
push ebx
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.0054239a
mov byte [ebp - 4], 0x10
lea ecx, [ebp + 0x10]
call fcn.0053eb4f
cmp dword [ebp - 0x28], ebx
je 0x4995ff
push dword [ebp - 0x28]
call fcn.005444e2
pop ecx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0xd
call fcn.0054b101
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 6
call fcn.0053eb4f
jmp 0x49962d
cmp dword [ebp - 0x130], ebx
je 0x49962d
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x49962d
mov dword [eax], ecx
push dword [edi + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 5
call fcn.0053d5fc
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], bl
call fcn.00499bc6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
jmp 0x499bad
lea eax, [ebp - 0x14]
push 1
push eax
call fcn.0047a9b3
add esp, 0xc
cmp dword [ebp + 0xc], ebx
mov dword [ebp - 4], 0x17
push ebx
jne 0x4997c2
lea ecx, [ebp - 0x228]
call fcn.00402fcb
lea eax, [edi + 0x20e0]
lea esi, [edi + 0x3668]
mov dword [ebp - 0x1ac], eax
mov eax, dword [edi + 0x388]
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0x18
mov dword [ebp - 0x1bc], esi
mov dword [ebp - 0xe8], eax
call fcn.005453a7
cmp eax, 1
je 0x4996d2
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0x17
call fcn.004030cf
jmp 0x499a2d
mov eax, dword [ebp - 0xe8]
cmp dword [ebp - 0xf4], ebx
mov dword [edi + 0x388], eax
je 0x4997a5
mov eax, dword [ebp - 0x14]
cmp dword [eax - 8], ebx
je 0x4997a5
push dword [esi]
lea ecx, [ebp - 0x14e0]
call fcn.00404989
lea eax, [ebp + 8]
lea ecx, [ebp - 0x14e0]
push eax
call fcn.00404a99
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x19
push ecx
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0053ed7e
push 0x5bc9e0
push eax
lea eax, [ebp + 0x14]
mov byte [ebp - 4], 0x1a
push eax
call fcn.0053ede4
mov eax, dword [eax]
mov esi, dword [esi]
push ebx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileA]
neg eax
sbb al, al
lea ecx, [ebp + 0x14]
inc al
mov byte [ebp + 0x13], al
call fcn.0053eb4f
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x19
call fcn.0053eb4f
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x18
call fcn.0053eb4f
cmp byte [ebp + 0x13], bl
je 0x4997a5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.00404c80
pop ecx
pop ecx
mov eax, dword [eax]
push ebx
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1b
call fcn.0054239a
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x18
call fcn.0053eb4f
jmp 0x4996be
push dword [edi + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x228]
mov byte [ebp - 4], 0x17
call fcn.004030cf
jmp 0x499ba6
lea ecx, [ebp - 0x2d4]
call fcn.004efd2b
lea esi, [edi + 0x3668]
lea ecx, [ebp - 0x270]
push esi
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x278], ebx
call fcn.0053ec88
lea ecx, [ebp - 0x58]
call fcn.0053d5c9
cmp dword [ebp + 0x10], ebx
mov byte [ebp - 4], 0x1d
jne 0x4998b5
lea ecx, [ebp - 0x44]
call fcn.00519a72
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x1e
mov dword [ebp + 0x10], eax
call fcn.0055c7c5
mov eax, dword [eax + 4]
add eax, 0x2cc
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x4dc]
push eax
push 0x208
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
jne 0x49983c
mov byte [ebp - 0x4dc], bl
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x49984e
cmp byte [eax], bl
je 0x49984e
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push ebx
push 0x5bc9d0
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x1f
call fcn.00519b35
cmp eax, ebx
je 0x49989c
lea ecx, [ebp - 0x44]
call fcn.00519d55
mov dword [ebp + 8], eax
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x44]
call fcn.00519e24
push eax
lea ecx, [ebp - 0x58]
push dword [ebp - 0x50]
mov byte [ebp - 4], 0x20
call fcn.0053d7d1
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x1f
call fcn.0053eb4f
cmp dword [ebp + 8], ebx
jne 0x499864
lea eax, [ebp - 0x4dc]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x1d
call fcn.00519aaf
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x26c], eax
call fcn.005453a7
push 1
pop ecx
cmp eax, ecx
jne 0x499b71
mov eax, dword [ebp - 0x22c]
cmp dword [eax - 8], ebx
je 0x499b82
push dword [esi]
lea ecx, [ebp - 0x24e4]
call fcn.00404989
lea eax, [ebp + 8]
lea ecx, [ebp - 0x24e4]
push eax
call fcn.00404a99
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 0x21
push ecx
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0053ed7e
push 0x5bc9e0
push eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 0x22
push eax
call fcn.0053ede4
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x25
call fcn.0053eb4f
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x24
call fcn.0053eb4f
push 0x400
lea ecx, [ebp - 0xd4]
call fcn.0054b04e
mov dword [ebp - 0xd4], 0x57aaf0
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov esi, dword [esi]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xd4]
push eax
push esi
mov byte [ebp - 4], 0x27
call fcn.00405a50
add esp, 0xc
test eax, eax
je 0x499b12
push dword [ebp - 0x10]
lea ecx, [ebp - 0xac]
call fcn.0040207d
push ebx
lea ecx, [ebp - 0xac]
call fcn.004020bb
test eax, eax
je 0x499a40
push dword [ebp - 0x22c]
lea eax, [ebp - 0x18]
push 0x8537
push eax
call fcn.00402f3e
add esp, 0xc
mov eax, dword [eax]
push 4
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.0054239a
cmp eax, 6
lea ecx, [ebp - 0x18]
setne byte [ebp + 0x13]
mov byte [ebp - 4], 0x27
call fcn.0053eb4f
cmp byte [ebp + 0x13], bl
je 0x499a40
cmp dword [ebp - 0x20], ebx
je 0x4999f7
push dword [ebp - 0x20]
call fcn.005444e2
pop ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x24
call fcn.0054b101
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x1d
call fcn.0053eb4f
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1c
call fcn.0053d5fc
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 0x17
call fcn.00499bc6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0053eb4f
xor eax, eax
jmp 0x499bb5
mov eax, dword [0x61d784]
mov dword [ebp + 0x14], eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x29
call fcn.00540041
push ebx
push 0x1001
push dword [ebp - 0x10]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x2a
call fcn.005400b6
test eax, eax
je 0x499acf
lea eax, [ebp + 0x14]
lea ecx, [ebp - 0xd4]
push eax
call fcn.004048f2
test eax, eax
je 0x499aae
lea eax, [ebp + 0x14]
push 0x5b85a0
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.0053ede4
push dword [eax]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x2b
call fcn.00540229
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x2a
call fcn.0053eb4f
jmp 0x499a6d
lea ecx, [ebp - 0x3c]
call fcn.005403be
lea ecx, [ebp - 0x3c]
call fcn.005403e6
push dword [ebp - 0x22c]
push 1
call fcn.0047a9ed
pop ecx
pop ecx
jmp 0x499afd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.00404c80
pop ecx
pop ecx
mov eax, dword [eax]
push ebx
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2c
call fcn.0054239a
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x2a
call fcn.0053eb4f
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x29
call fcn.00540073
mov byte [ebp - 4], 0x27
lea ecx, [ebp + 0x14]
jmp 0x499b3b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00404c80
pop ecx
pop ecx
mov eax, dword [eax]
push ebx
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2d
call fcn.0054239a
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x18]
call fcn.0053eb4f
cmp dword [ebp - 0x20], ebx
je 0x499b54
push dword [ebp - 0x20]
call fcn.005444e2
pop ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x24
call fcn.0054b101
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x1d
call fcn.0053eb4f
jmp 0x499b82
cmp dword [ebp - 0x274], ebx
je 0x499b82
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x499b82
mov dword [eax], ecx
push dword [edi + 0x1c]
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1c
call fcn.0053d5fc
lea ecx, [ebp - 0x2d4]
mov byte [ebp - 4], 0x17
call fcn.00499bc6
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0053eb4f
push 1
pop eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x10