Function at 0x4c81a0
Capabilities:
Check if file exists
Copy file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5da4dd
mov eax, dword fs:[0]
push eax
sub esp, 0x564
mov eax, dword [0x63d284]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x558], ecx
xor edi, edi
mov dword [ebp - 0x554], edi
mov dword [ebp - 4], 1
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 8
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
lea eax, [ebp + 0x20]
je 0x4c8b84
sub esp, 0x18
mov edx, SysReAllocString
mov esi, esp
mov dword [esi], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
cmp dword [ebp + 0x34], 8
mov ecx, dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
mov dword [ebp - 0x55c], ecx
mov dword [ebp - 0x544], eax
cmp ecx, 8
jae 0x4c823b
movups xmm0, xmmword [eax]
lea eax, [edi + 7]
movups xmmword [esi], xmm0
jmp 0x4c82d0
mov eax, ecx
or eax, 7
cmp eax, 0x7ffffffe
cmova eax, edx
mov dword [ebp - 0x560], eax
inc eax
cmp eax, 0x7fffffff
ja 0x4c9190
add eax, eax
cmp eax, 0x1000
jb 0x4c828a
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4c9190
push ecx
call fcn.00591cad
add esp, 4
test eax, eax
je 0x4c914b
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4c82a5
test eax, eax
je 0x4c82a3
push eax
call fcn.00591cad
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4c915c
jmp 0x4c82a5
xor ecx, ecx
mov eax, dword [ebp - 0x55c]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x544]
push ecx
call fcn.005729d0
mov eax, dword [ebp - 0x560]
add esp, 0xc
mov ecx, dword [ebp - 0x55c]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 0x558]
mov dword [esi + 0x14], eax
call fcn.004cc910
test eax, eax
jne 0x4c82ec
xor esi, esi
jmp 0x4c90a4
mov eax, 0x5c
mov dword [ebp - 0xe0], 0
mov word [ebp - 0xe4], ax
mov dword [ebp - 0xdc], 0
mov byte [ebp - 4], 2
mov eax, SysReAllocString
mov ecx, dword [ebp + 0x18]
sub eax, ecx
cmp eax, 2
jb 0x4c916d
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 2
cmovae eax, dword [ebp + 8]
push 0x61befc
push ecx
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x550]
lea ecx, [ebp - 0x40]
call fcn.00447219
or edi, 1
mov dword [ebp - 0x554], edi
mov byte [ebp - 4], 3
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x53c]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.004c5a20
mov byte [ebp - 4], 2
mov esi, eax
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x4c83ad
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c83a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c9172
push edx
push ecx
call fcn.0056c61e
add esp, 8
test esi, esi
je 0x4c8af3
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x570], esi
xor edx, edx
test ecx, ecx
je 0x4c8405
mov eax, dword [ebp - 0x53c]
shr eax, 4
and eax, 1
je 0x4c8405
cmp word [ebp - 0x510], 0x2e
jne 0x4c8405
mov ax, word [ebp - 0x50e]
test ax, ax
je 0x4c8400
cmp ax, 0x2e
jne 0x4c8405
cmp word [ebp - 0x50c], dx
jne 0x4c8405
mov edx, 1
test edx, edx
jne 0x4c8acb
mov byte [ebp - 4], 4
call fcn.0040b813
mov ecx, eax
test ecx, ecx
je 0x4c9186
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
or edi, 2
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x548], edi
mov dword [ebp - 0x554], edi
lea esi, [eax + 0x10]
mov dword [ebp - 0x564], esi
je 0x4c859b
lea edi, [ebp - 0x510]
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4c8455
sub edi, ecx
sar edi, 1
jne 0x4c84c4
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x4c8595
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4c8499
cmp dword [esi - 8], 0
jl 0x4c9177
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x4c8595
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4c84ad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x564], esi
jmp 0x4c8595
mov eax, dword [esi - 0xc]
lea edx, [ebp - 0x510]
sub edx, esi
mov dword [ebp - 0x560], eax
sar edx, 1
mov dword [ebp - 0x544], edx
test edi, edi
js 0x4c9177
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x4c850e
push edi
lea ecx, [ebp - 0x564]
call fcn.0040bfb3
mov esi, dword [ebp - 0x564]
mov edx, dword [ebp - 0x544]
lea ecx, [edi + edi]
mov eax, dword [esi - 8]
cmp edx, dword [ebp - 0x560]
ja 0x4c8547
lea edx, [esi + edx*2]
test ecx, ecx
je 0x4c8583
test edx, edx
jne 0x4c8534
call fcn.00591b4a
mov dword [eax], 0x16
jmp 0x4c857b
add eax, eax
cmp eax, ecx
jb 0x4c8570
push ecx
push edx
push esi
call fcn.00572f50
add esp, 0xc
jmp 0x4c8580
add eax, eax
test ecx, ecx
je 0x4c8583
cmp eax, ecx
jb 0x4c8564
push ecx
lea eax, [ebp - 0x510]
push eax
push esi
call fcn.005729d0
add esp, 0xc
jmp 0x4c8580
push eax
push 0
push esi
call fcn.00573610
add esp, 0xc
call fcn.00591b4a
mov dword [eax], 0x22
call fcn.0057da70
lea ecx, [edi + edi]
cmp edi, dword [esi - 8]
jg 0x4c9177
xor eax, eax
mov dword [esi - 0xc], edi
mov word [ecx + esi], ax
mov edi, dword [ebp - 0x548]
mov ecx, dword [ebp + 0x30]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x4c916d
cmp dword [ebp + 0x34], 8
lea eax, [ebp + 0x20]
push 1
cmovae eax, dword [ebp + 0x20]
push 0x60db0c
push ecx
push eax
lea eax, [ebp + 0x20]
push eax
push dword [ebp - 0x544]
lea ecx, [ebp - 0x58]
call fcn.00447219
or edi, 4
mov dword [ebp - 0x554], edi
mov ecx, esi
mov byte [ebp - 4], 5
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c85e6
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.0040993b
xor ecx, ecx
or edi, 8
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x70], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x60], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x4c8664
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c865a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c9172
push edx
push ecx
call fcn.0056c61e
add esp, 8
xor eax, eax
mov dword [ebp - 0x48], 0
and edi, 0xfffffffd
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
mov dword [ebp - 0x554], edi
mov byte [ebp - 4], 8
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4c869d
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x70]
sub esp, 0x18
mov dword [ebp - 0x560], ecx
cmp ecx, 8
mov dword [ebp - 0x56c], esp
mov ecx, dword [ebp - 0x70]
mov esi, esp
cmovae eax, ecx
mov dword [ebp - 0x544], ecx
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x568], eax
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [ebp - 0x548], ecx
cmp ecx, 8
jae 0x4c86fb
movups xmm0, xmmword [eax]
mov eax, 7
movups xmmword [esi], xmm0
jmp 0x4c8795
mov eax, ecx
mov ecx, SysReAllocString
or eax, 7
cmp eax, 0x7ffffffe
cmova eax, ecx
mov dword [ebp - 0x54c], eax
inc eax
cmp eax, 0x7fffffff
ja 0x4c9190
add eax, eax
cmp eax, 0x1000
jb 0x4c874f
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4c9190
push ecx
call fcn.00591cad
add esp, 4
test eax, eax
je 0x4c915c
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4c876a
test eax, eax
je 0x4c8768
push eax
call fcn.00591cad
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4c914b
jmp 0x4c876a
xor ecx, ecx
mov eax, dword [ebp - 0x548]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x568]
push ecx
call fcn.005729d0
mov eax, dword [ebp - 0x54c]
add esp, 0xc
mov ecx, dword [ebp - 0x548]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], eax
mov byte [ebp - 4], 0xa
call fcn.0040b813
mov ecx, eax
test ecx, ecx
je 0x4c9186
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
or edi, 0x10
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x548], edi
mov dword [ebp - 0x554], edi
lea esi, [eax + 0x10]
mov dword [ebp - 0x55c], esi
je 0x4c8929
lea edi, [ebp - 0x510]
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4c87e3
sub edi, ecx
sar edi, 1
jne 0x4c8852
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x4c8923
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4c8827
cmp dword [esi - 8], 0
jl 0x4c9177
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x4c8923
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4c883b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x55c], esi
jmp 0x4c8923
mov eax, dword [esi - 0xc]
lea edx, [ebp - 0x510]
sub edx, esi
mov dword [ebp - 0x568], eax
sar edx, 1
mov dword [ebp - 0x54c], edx
test edi, edi
js 0x4c9177
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x4c889c
push edi
lea ecx, [ebp - 0x55c]
call fcn.0040bfb3
mov esi, dword [ebp - 0x55c]
mov edx, dword [ebp - 0x54c]
lea ecx, [edi + edi]
mov eax, dword [esi - 8]
cmp edx, dword [ebp - 0x568]
ja 0x4c88d5
lea edx, [esi + edx*2]
test ecx, ecx
je 0x4c8911
test edx, edx
jne 0x4c88c2
call fcn.00591b4a
mov dword [eax], 0x16
jmp 0x4c8909
add eax, eax
cmp eax, ecx
jb 0x4c88fe
push ecx
push edx
push esi
call fcn.00572f50
add esp, 0xc
jmp 0x4c890e
add eax, eax
test ecx, ecx
je 0x4c8911
cmp eax, ecx
jb 0x4c88f2
push ecx
lea eax, [ebp - 0x510]
push eax
push esi
call fcn.005729d0
add esp, 0xc
jmp 0x4c890e
push eax
push 0
push esi
call fcn.00573610
add esp, 0xc
call fcn.00591b4a
mov dword [eax], 0x22
call fcn.0057da70
lea ecx, [edi + edi]
cmp edi, dword [esi - 8]
jg 0x4c9177
xor eax, eax
mov dword [esi - 0xc], edi
mov word [ecx + esi], ax
mov edi, dword [ebp - 0x548]
mov ecx, dword [ebp + 0x18]
mov eax, SysReAllocString
sub eax, ecx
cmp eax, 1
jb 0x4c916d
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 1
cmovae eax, dword [ebp + 8]
push 0x60db0c
push ecx
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x54c]
lea ecx, [ebp - 0x40]
call fcn.00447219
or edi, 0x20
mov dword [ebp - 0x554], edi
mov ecx, esi
mov byte [ebp - 4], 0xb
sub esp, 0x18
mov dword [ebp - 0x550], esp
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c8980
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x40]
call fcn.0040993b
mov ecx, dword [ebp - 0x550]
or edi, 0x40
mov dword [ebp - 0x554], edi
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
xor ecx, ecx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov ecx, dword [ebp - 0x558]
mov byte [ebp - 4], 0xd
call fcn.004c81a0
test eax, eax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x2c]
sete byte [ebp - 0x53d]
cmp edx, 8
jb 0x4c8a35
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c8a2b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c9172
push edx
push ecx
call fcn.0056c61e
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
and edi, 0xffffffef
mov word [ebp - 0x40], ax
mov dword [ebp - 0x2c], 7
add esi, 0xfffffff0
mov dword [ebp - 0x554], edi
or eax, 0xffffffff
mov byte [ebp - 4], 8
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4c8a6e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x53d], 0
jne 0x4c8b1d
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x560]
cmp ecx, 8
jb 0x4c8abf
mov edx, dword [ebp - 0x544]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c8ab5
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c9181
push ecx
push edx
call fcn.0056c61e
add esp, 8
mov esi, dword [ebp - 0x570]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x4c8b13
test ecx, ecx
je 0x4c8af9
lea ecx, [ebp - 0x53c]
push ecx
push eax
call esi
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x4c83c7
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], 0
test eax, eax
je 0x4c8b13
cmp eax, 0xffffffff
je 0x4c8b13
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, 1
jmp 0x4c90a4
mov ecx, dword [ebp - 0x560]
cmp ecx, 8
jb 0x4c8b5d
mov edx, dword [ebp - 0x544]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c8b53
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c9181
push ecx
push edx
call fcn.0056c61e
add esp, 8
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], 0
test eax, eax
je 0x4c8b7d
cmp eax, 0xffffffff
je 0x4c8b7d
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor esi, esi
jmp 0x4c90a4
cmp dword [ebp + 0x34], 8
cmovae eax, dword [ebp + 0x20]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edx, SysReAllocString
test eax, eax
je 0x4c8e6a
sub esp, 0x18
lea eax, [ebp + 0x20]
mov edi, esp
mov dword [edi], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
cmp dword [ebp + 0x34], 8
mov ecx, dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
mov dword [ebp - 0x544], ecx
mov dword [ebp - 0x550], eax
cmp ecx, 8
jae 0x4c8be8
movups xmm0, xmmword [eax]
mov esi, 7
movups xmmword [edi], xmm0
jmp 0x4c8c70
mov esi, ecx
or esi, 7
cmp esi, edx
cmova esi, edx
lea eax, [esi + 1]
cmp eax, 0x7fffffff
ja 0x4c9190
add eax, eax
cmp eax, 0x1000
jb 0x4c8c30
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4c9190
push ecx
call fcn.00591cad
add esp, 4
test eax, eax
je 0x4c9195
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4c8c4b
test eax, eax
je 0x4c8c49
push eax
call fcn.00591cad
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4c91a6
jmp 0x4c8c4b
xor ecx, ecx
mov eax, dword [ebp - 0x544]
mov dword [edi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x550]
push ecx
call fcn.005729d0
mov ecx, dword [ebp - 0x544]
add esp, 0xc
lea eax, [ebp - 0x28]
mov dword [edi + 0x10], ecx
push eax
mov dword [edi + 0x14], esi
call fcn.004c8050
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
lea eax, [ebp + 0x20]
cmovae ecx, dword [ebp - 0x28]
cmp dword [ebp + 0x34], 8
push ecx
cmovae eax, dword [ebp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x4c8ebb
mov eax, dword [ebp - 0x558]
add eax, 0x2c
mov dword [ebp - 0x54c], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
je 0x4c8db4
mov dword [esi], 0
lea edi, [ebp - 0x28]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x18]
cmovae edi, dword [ebp - 0x28]
mov dword [ebp - 0x544], ecx
mov dword [ebp - 0x550], edi
cmp ecx, 8
jae 0x4c8d11
movups xmm0, xmmword [edi]
mov edi, 7
movups xmmword [esi], xmm0
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
add dword [eax + 4], 0x18
jmp 0x4c8dc0
mov edi, ecx
mov eax, SysReAllocString
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, eax
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4c9190
add eax, eax
cmp eax, 0x1000
jb 0x4c8d62
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4c9190
push ecx
call fcn.00591cad
add esp, 4
test eax, eax
je 0x4c91b7
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4c8d7d
test eax, eax
je 0x4c8d7b
push eax
call fcn.00591cad
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4c91c8
jmp 0x4c8d7d
xor ecx, ecx
mov eax, dword [ebp - 0x544]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x550]
push ecx
call fcn.005729d0
mov eax, dword [ebp - 0x54c]
add esp, 0xc
mov ecx, dword [ebp - 0x544]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edi
add dword [eax + 4], 0x18
jmp 0x4c8dc0
lea ecx, [ebp - 0x28]
push ecx
push esi
mov ecx, eax
call fcn.00453179
mov esi, dword [ebp - 0x558]
cmp dword [esi], 0
je 0x4c8e27
lea ecx, [ebp - 0xa4]
call fcn.004c9210
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa4], 1
call fcn.00406392
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push dword [ebp + 0x18]
cmovae eax, dword [ebp + 8]
lea ecx, [ebp - 0x88]
push eax
call fcn.00407cc7
lea eax, [ebp - 0xa4]
push eax
lea ecx, [esi + 0x20]
call fcn.004cdc60
lea ecx, [ebp - 0xa4]
call fcn.004c9240
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x4c8e65
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c8e5b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c91d9
push edx
push ecx
call fcn.0056c61e
add esp, 8
mov edx, SysReAllocString
sub esp, 0x18
lea eax, [ebp + 0x20]
mov dword [ebp - 0x54c], esp
sub esp, 0x18
mov esi, esp
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [ebp + 0x34], 8
mov ecx, dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
mov dword [ebp - 0x544], ecx
mov dword [ebp - 0x550], eax
cmp ecx, 8
jae 0x4c8f2a
movups xmm0, xmmword [eax]
mov edi, 7
movups xmmword [esi], xmm0
jmp 0x4c8fb6
mov esi, dword [ebp - 0x558]
lea eax, [ebp + 0x20]
lea ecx, [esi + 8]
cmp ecx, eax
je 0x4c8edc
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407cc7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x14]
mov dword [esi + 4], eax
cmp edx, 8
jb 0x4c8fff
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c8f19
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c91de
push edx
push ecx
call fcn.0056c61e
add esp, 8
xor esi, esi
jmp 0x4c90a4
mov edi, ecx
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, edx
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4c9190
add eax, eax
cmp eax, 0x1000
jb 0x4c8f76
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4c9190
push ecx
call fcn.00591cad
add esp, 4
test eax, eax
je 0x4c91e3
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4c8f91
test eax, eax
je 0x4c8f8f
push eax
call fcn.00591cad
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4c91f4
jmp 0x4c8f91
xor ecx, ecx
mov eax, dword [ebp - 0x544]
mov dword [esi], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x550]
push ecx
call fcn.005729d0
mov ecx, dword [ebp - 0x544]
add esp, 0xc
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 0x54c]
mov dword [esi + 0x14], edi
call fcn.004c64f0
mov edi, dword [ebp - 0x558]
add esp, 0x18
mov ecx, edi
call fcn.004cc910
test eax, eax
jne 0x4c9006
lea ecx, [edi + 8]
lea eax, [ebp + 0x20]
cmp ecx, eax
je 0x4c8ff6
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407cc7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 4], eax
xor esi, esi
jmp 0x4c90a4
cmp dword [ebp + 0x34], 8
lea ecx, [ebp + 0x20]
push 0
cmovae ecx, dword [ebp + 0x20]
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 8
push ecx
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov esi, eax
test esi, esi
jne 0x4c9052
lea ecx, [edi + 8]
lea eax, [ebp + 0x20]
cmp ecx, eax
je 0x4c9047
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407cc7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 4], eax
jmp 0x4c90a4
cmp dword [edi], 0
je 0x4c90a4
lea ecx, [ebp - 0xd8]
call fcn.004c9210
mov byte [ebp - 4], 0x10
lea eax, [ebp + 0x20]
cmp dword [ebp + 0x34], 8
lea ecx, [ebp - 0xd4]
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
mov dword [ebp - 0xd8], 2
call fcn.00407cc7
lea eax, [ebp - 0xd8]
push eax
lea ecx, [edi + 0x20]
call fcn.004cdc60
lea ecx, [ebp - 0xd8]
call fcn.004c9240
mov edx, dword [ebp + 0x1c]
cmp edx, 8
jb 0x4c90de
mov ecx, dword [ebp + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c90d4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c9205
push edx
push ecx
call fcn.0056c61e
add esp, 8
mov edx, dword [ebp + 0x34]
xor eax, eax
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 7
mov word [ebp + 8], ax
cmp edx, 8
jb 0x4c912c
mov ecx, dword [ebp + 0x20]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4c9122
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c9205
push edx
push ecx
call fcn.0056c61e
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056cd75
mov esp, ebp
pop ebp
ret 0x30
push 0x638780
lea eax, [ebp - 0x53d]
push eax
call fcn.0057359b
push 0x638780
lea eax, [ebp - 0x53e]
push eax
call fcn.0057359b
call fcn.0040791f
call fcn.0057da80
push 0x80070057
call fcn.0040c3c1
call fcn.0057da80
push 0x80004005
call fcn.0040c3c1
call fcn.00407b84
push 0x638780
lea eax, [ebp - 0x53e]
push eax
call fcn.0057359b
push 0x638780
lea eax, [ebp - 0x53d]
push eax
call fcn.0057359b
push 0x638780
lea eax, [ebp - 0x53e]
push eax
call fcn.0057359b
push 0x638780
lea eax, [ebp - 0x53d]
push eax
call fcn.0057359b
call fcn.0057da80
call fcn.0057da80
push 0x638780
lea eax, [ebp - 0x53e]
push eax
call fcn.0057359b
push 0x638780
lea eax, [ebp - 0x53d]
push eax
call fcn.0057359b
call fcn.0057da80
int3