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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d65ed
mov eax, dword fs:[0]
push eax
sub esp, 0x564
mov eax, dword [0x634254]
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 0x4d27e4
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 0x4d1e9b
movups xmm0, xmmword [eax]
lea eax, [edi + 7]
movups xmmword [esi], xmm0
jmp 0x4d1f30
mov eax, ecx
or eax, 7
cmp eax, 0x7ffffffe
cmova eax, edx
mov dword [ebp - 0x560], eax
inc eax
cmp eax, 0x7fffffff
ja 0x4d2df0
add eax, eax
cmp eax, 0x1000
jb 0x4d1eea
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d2df0
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d2dab
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d1f05
test eax, eax
je 0x4d1f03
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d2dbc
jmp 0x4d1f05
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.00570780
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.004d6570
test eax, eax
jne 0x4d1f4c
xor esi, esi
jmp 0x4d2d04
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 0x4d2dcd
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 2
cmovae eax, dword [ebp + 8]
push 0x614200
push ecx
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x550]
lea ecx, [ebp - 0x40]
call fcn.004448b5
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.004cf680
mov byte [ebp - 4], 2
mov esi, eax
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x4d200d
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d2003
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2dd2
push edx
push ecx
call fcn.0056d0c8
add esp, 8
test esi, esi
je 0x4d2753
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 0x4d2065
mov eax, dword [ebp - 0x53c]
shr eax, 4
and eax, 1
je 0x4d2065
cmp word [ebp - 0x510], 0x2e
jne 0x4d2065
mov ax, word [ebp - 0x50e]
test ax, ax
je 0x4d2060
cmp ax, 0x2e
jne 0x4d2065
cmp word [ebp - 0x50c], dx
jne 0x4d2065
mov edx, 1
test edx, edx
jne 0x4d272b
mov byte [ebp - 4], 4
call fcn.0040b05c
mov ecx, eax
test ecx, ecx
je 0x4d2de6
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 0x4d21fb
lea edi, [ebp - 0x510]
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4d20b5
sub edi, ecx
sar edi, 1
jne 0x4d2124
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x4d21f5
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4d20f9
cmp dword [esi - 8], 0
jl 0x4d2dd7
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x4d21f5
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4d210d
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 0x4d21f5
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 0x4d2dd7
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x4d216e
push edi
lea ecx, [ebp - 0x564]
call fcn.0040b85d
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 0x4d21a7
lea edx, [esi + edx*2]
test ecx, ecx
je 0x4d21e3
test edx, edx
jne 0x4d2194
call fcn.0058f2ca
mov dword [eax], 0x16
jmp 0x4d21db
add eax, eax
cmp eax, ecx
jb 0x4d21d0
push ecx
push edx
push esi
call fcn.00570d00
add esp, 0xc
jmp 0x4d21e0
add eax, eax
test ecx, ecx
je 0x4d21e3
cmp eax, ecx
jb 0x4d21c4
push ecx
lea eax, [ebp - 0x510]
push eax
push esi
call fcn.00570780
add esp, 0xc
jmp 0x4d21e0
push eax
push 0
push esi
call fcn.005713c0
add esp, 0xc
call fcn.0058f2ca
mov dword [eax], 0x22
call fcn.0057b1f1
lea ecx, [edi + edi]
cmp edi, dword [esi - 8]
jg 0x4d2dd7
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 0x4d2dcd
cmp dword [ebp + 0x34], 8
lea eax, [ebp + 0x20]
push 1
cmovae eax, dword [ebp + 0x20]
push 0x6058cc
push ecx
push eax
lea eax, [ebp + 0x20]
push eax
push dword [ebp - 0x544]
lea ecx, [ebp - 0x58]
call fcn.004448b5
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 0x4d2246
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x58]
call fcn.004092f8
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 0x4d22c4
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d22ba
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2dd2
push edx
push ecx
call fcn.0056d0c8
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 0x4d22fd
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 0x4d235b
movups xmm0, xmmword [eax]
mov eax, 7
movups xmmword [esi], xmm0
jmp 0x4d23f5
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 0x4d2df0
add eax, eax
cmp eax, 0x1000
jb 0x4d23af
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d2df0
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d2dbc
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d23ca
test eax, eax
je 0x4d23c8
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d2dab
jmp 0x4d23ca
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.00570780
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.0040b05c
mov ecx, eax
test ecx, ecx
je 0x4d2de6
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 0x4d2589
lea edi, [ebp - 0x510]
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4d2443
sub edi, ecx
sar edi, 1
jne 0x4d24b2
cmp dword [esi - 0xc], 0
lea edx, [esi - 0x10]
mov edi, dword [edx]
je 0x4d2583
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x4d2487
cmp dword [esi - 8], 0
jl 0x4d2dd7
xor eax, eax
mov dword [esi - 0xc], 0
mov word [esi], ax
jmp 0x4d2583
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4d249b
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 0x4d2583
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 0x4d2dd7
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
jge 0x4d24fc
push edi
lea ecx, [ebp - 0x55c]
call fcn.0040b85d
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 0x4d2535
lea edx, [esi + edx*2]
test ecx, ecx
je 0x4d2571
test edx, edx
jne 0x4d2522
call fcn.0058f2ca
mov dword [eax], 0x16
jmp 0x4d2569
add eax, eax
cmp eax, ecx
jb 0x4d255e
push ecx
push edx
push esi
call fcn.00570d00
add esp, 0xc
jmp 0x4d256e
add eax, eax
test ecx, ecx
je 0x4d2571
cmp eax, ecx
jb 0x4d2552
push ecx
lea eax, [ebp - 0x510]
push eax
push esi
call fcn.00570780
add esp, 0xc
jmp 0x4d256e
push eax
push 0
push esi
call fcn.005713c0
add esp, 0xc
call fcn.0058f2ca
mov dword [eax], 0x22
call fcn.0057b1f1
lea ecx, [edi + edi]
cmp edi, dword [esi - 8]
jg 0x4d2dd7
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 0x4d2dcd
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 1
cmovae eax, dword [ebp + 8]
push 0x6058cc
push ecx
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x54c]
lea ecx, [ebp - 0x40]
call fcn.004448b5
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 0x4d25e0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x40]
call fcn.004092f8
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.004d1e00
test eax, eax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x2c]
sete byte [ebp - 0x53d]
cmp edx, 8
jb 0x4d2695
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d268b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2dd2
push edx
push ecx
call fcn.0056d0c8
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 0x4d26ce
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0x53d], 0
jne 0x4d277d
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x560]
cmp ecx, 8
jb 0x4d271f
mov edx, dword [ebp - 0x544]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4d2715
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2de1
push ecx
push edx
call fcn.0056d0c8
add esp, 8
mov esi, dword [ebp - 0x570]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x4d2773
test ecx, ecx
je 0x4d2759
lea ecx, [ebp - 0x53c]
push ecx
push eax
call esi
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x4d2027
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], 0
test eax, eax
je 0x4d2773
cmp eax, 0xffffffff
je 0x4d2773
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
mov esi, 1
jmp 0x4d2d04
mov ecx, dword [ebp - 0x560]
cmp ecx, 8
jb 0x4d27bd
mov edx, dword [ebp - 0x544]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4d27b3
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2de1
push ecx
push edx
call fcn.0056d0c8
add esp, 8
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xdc], 0
test eax, eax
je 0x4d27dd
cmp eax, 0xffffffff
je 0x4d27dd
push eax
call dword [sym.imp.KERNEL32.DLL_FindClose]
xor esi, esi
jmp 0x4d2d04
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 0x4d2aca
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 0x4d2848
movups xmm0, xmmword [eax]
mov esi, 7
movups xmmword [edi], xmm0
jmp 0x4d28d0
mov esi, ecx
or esi, 7
cmp esi, edx
cmova esi, edx
lea eax, [esi + 1]
cmp eax, 0x7fffffff
ja 0x4d2df0
add eax, eax
cmp eax, 0x1000
jb 0x4d2890
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d2df0
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d2df5
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d28ab
test eax, eax
je 0x4d28a9
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d2e06
jmp 0x4d28ab
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.00570780
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.004d1cb0
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 0x4d2b1b
mov eax, dword [ebp - 0x558]
add eax, 0x2c
mov dword [ebp - 0x54c], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
je 0x4d2a14
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 0x4d2971
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 0x4d2a20
mov edi, ecx
mov eax, SysReAllocString
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, eax
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4d2df0
add eax, eax
cmp eax, 0x1000
jb 0x4d29c2
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d2df0
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d2e17
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d29dd
test eax, eax
je 0x4d29db
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d2e28
jmp 0x4d29dd
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.00570780
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 0x4d2a20
lea ecx, [ebp - 0x28]
push ecx
push esi
mov ecx, eax
call fcn.0044c8ea
mov esi, dword [ebp - 0x558]
cmp dword [esi], 0
je 0x4d2a87
lea ecx, [ebp - 0xa4]
call fcn.004d2e70
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa4], 1
call fcn.00405d53
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.00407684
lea eax, [ebp - 0xa4]
push eax
lea ecx, [esi + 0x20]
call fcn.004d78c0
lea ecx, [ebp - 0xa4]
call fcn.004d2ea0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x4d2ac5
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d2abb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2e39
push edx
push ecx
call fcn.0056d0c8
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 0x4d2b8a
movups xmm0, xmmword [eax]
mov edi, 7
movups xmmword [esi], xmm0
jmp 0x4d2c16
mov esi, dword [ebp - 0x558]
lea eax, [ebp + 0x20]
lea ecx, [esi + 8]
cmp ecx, eax
je 0x4d2b3c
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407684
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edx, dword [ebp - 0x14]
mov dword [esi + 4], eax
cmp edx, 8
jb 0x4d2c5f
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d2b79
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2e3e
push edx
push ecx
call fcn.0056d0c8
add esp, 8
xor esi, esi
jmp 0x4d2d04
mov edi, ecx
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, edx
lea eax, [edi + 1]
cmp eax, 0x7fffffff
ja 0x4d2df0
add eax, eax
cmp eax, 0x1000
jb 0x4d2bd6
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4d2df0
push ecx
call fcn.005a1c68
add esp, 4
test eax, eax
je 0x4d2e43
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4d2bf1
test eax, eax
je 0x4d2bef
push eax
call fcn.005a1c68
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x4d2e54
jmp 0x4d2bf1
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.00570780
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.004d0150
mov edi, dword [ebp - 0x558]
add esp, 0x18
mov ecx, edi
call fcn.004d6570
test eax, eax
jne 0x4d2c66
lea ecx, [edi + 8]
lea eax, [ebp + 0x20]
cmp ecx, eax
je 0x4d2c56
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407684
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [edi + 4], eax
xor esi, esi
jmp 0x4d2d04
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 0x4d2cb2
lea ecx, [edi + 8]
lea eax, [ebp + 0x20]
cmp ecx, eax
je 0x4d2ca7
cmp dword [ebp + 0x34], 8
push dword [ebp + 0x30]
cmovae eax, dword [ebp + 0x20]
push eax
call fcn.00407684
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [edi + 4], eax
jmp 0x4d2d04
cmp dword [edi], 0
je 0x4d2d04
lea ecx, [ebp - 0xd8]
call fcn.004d2e70
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.00407684
lea eax, [ebp - 0xd8]
push eax
lea ecx, [edi + 0x20]
call fcn.004d78c0
lea ecx, [ebp - 0xd8]
call fcn.004d2ea0
mov edx, dword [ebp + 0x1c]
cmp edx, 8
jb 0x4d2d3e
mov ecx, dword [ebp + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d2d34
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2e65
push edx
push ecx
call fcn.0056d0c8
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 0x4d2d8c
mov ecx, dword [ebp + 0x20]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4d2d82
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4d2e65
push edx
push ecx
call fcn.0056d0c8
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.0056d855
mov esp, ebp
pop ebp
ret 0x30
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
call fcn.004072dc
call fcn.0057b201
push 0x80070057
call fcn.0040b92b
call fcn.0057b201
push 0x80004005
call fcn.0040b92b
call fcn.00407541
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
call fcn.0057b201
call fcn.0057b201
push 0x630328
lea eax, [ebp - 0x53e]
push eax
call fcn.0057134b
push 0x630328
lea eax, [ebp - 0x53d]
push eax
call fcn.0057134b
call fcn.0057b201
int3