Function at 0x100047e0
Capabilities:
Create directory
Create thread
Delete directory
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10041527
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x88], ecx
mov dword [ebp - 4], 0
push 1
mov byte [ebp - 4], 1
call fcn.100240ca
add esp, 4
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x8c], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
add ecx, 4
push ecx
lea ecx, [ebp - 0x34]
call fcn.10003110
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x24]
cmova ecx, edi
push 2
push 0x1004d08c
mov edx, esi
seta byte [ebp - 0x19]
call fcn.1000a6c0
add esp, 8
test al, al
je 0x100048e7
push 4
call fcn.100240ca
add esp, 4
mov dword [ebp - 0x84], eax
mov dword [eax], 0x1001a9f0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
push ecx
push 0
push eax
push 0x1000a750
push 0
push 0
call fcn.1002af93
add esp, 0x18
mov dword [ebp - 0x18], eax
test eax, eax
je 0x10005963
mov byte [ebp - 4], 5
cmp dword [ebp - 0x14], 0
je 0x1000594e
call sub.KERNEL32.dll_GetCurrentThreadId
mov ecx, dword [ebp - 0x14]
cmp ecx, eax
je 0x10005955
push 0
push ecx
push dword [ebp - 0x18]
call fcn.10022987
add esp, 0xc
test eax, eax
jne 0x1000595c
jmp 0x100057a3
mov al, byte [ebp - 0x19]
lea ecx, [ebp - 0x34]
test al, al
cmovne ecx, edi
cmp esi, 2
jne 0x1000496c
mov eax, esi
mov edx, 0x1004d090
sub eax, 4
mov dword [ebp - 0x14], eax
jb 0x1000491d
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004922
mov eax, dword [ebp - 0x14]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x14], eax
jae 0x10004906
cmp eax, 0xfffffffc
je 0x10004959
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10004952
cmp dword [ebp - 0x14], 0xfffffffd
je 0x10004959
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10004952
cmp dword [ebp - 0x14], 0xfffffffe
je 0x10004959
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10004952
cmp dword [ebp - 0x14], 0xffffffff
je 0x10004959
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10004959
sbb eax, eax
or eax, 1
jmp 0x1000495b
xor eax, eax
test eax, eax
jne 0x10004969
call fcn.10005990
jmp 0x100057a3
mov al, byte [ebp - 0x19]
test al, al
lea ecx, [ebp - 0x34]
cmovne ecx, edi
cmp esi, 2
jne 0x10004a02
mov eax, esi
mov edx, 0x1004d094
sub eax, 4
mov dword [ebp - 0x14], eax
jb 0x100049a7
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100049ac
mov eax, dword [ebp - 0x14]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x14], eax
jae 0x10004990
cmp eax, 0xfffffffc
je 0x100049e3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100049dc
cmp dword [ebp - 0x14], 0xfffffffd
je 0x100049e3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100049dc
cmp dword [ebp - 0x14], 0xfffffffe
je 0x100049e3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100049dc
cmp dword [ebp - 0x14], 0xffffffff
je 0x100049e3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100049e3
sbb eax, eax
or eax, 1
jmp 0x100049e5
xor eax, eax
test eax, eax
jne 0x100049ff
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0xac
push eax
call fcn.10005d40
jmp 0x100057a3
mov al, byte [ebp - 0x19]
test al, al
lea ecx, [ebp - 0x34]
cmovne ecx, edi
cmp esi, 3
jne 0x10004f29
mov edi, esi
mov edx, 0x1004d098
sub edi, 4
jb 0x10004a31
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004a36
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004a20
cmp edi, 0xfffffffc
je 0x10004a6a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10004a63
cmp edi, 0xfffffffd
je 0x10004a6a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10004a63
cmp edi, 0xfffffffe
je 0x10004a6a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10004a63
cmp edi, 0xffffffff
je 0x10004a6a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10004a6a
sbb eax, eax
or eax, 1
jmp 0x10004a6c
xor eax, eax
test eax, eax
jne 0x10004f26
mov byte [ebp - 4], 6
mov eax, dword [ebp + 8]
mov esi, dword [eax + 4]
add esi, 0x1c
mov eax, esi
cmp dword [esi + 0x14], 0xf
jbe 0x10004a8b
mov eax, dword [esi]
push 0x1004d5dc
push eax
call fcn.1002bd36
add esp, 8
test eax, eax
je 0x10004bc7
push eax
call fcn.1002c1d5
add esp, 4
mov eax, esi
cmp dword [esi + 0x14], 0xf
jbe 0x10004ab4
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x10004bbc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea edi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
mov eax, 0xcccccccd
dec edi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [edi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10004ad1
push ecx
lea eax, [ebp - 0x6b]
push eax
push edi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0xa
push str.Invalid_F:
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 7
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 8
push eax
call fcn.100078a0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x38]
cmp ecx, 0xf
jbe 0x10004b84
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004b7a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005971
push ecx
push edx
call fcn.100240fa
add esp, 8
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x10004bbc
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004bb2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005971
push ecx
push edx
call fcn.100240fa
add esp, 8
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0xdc
push eax
push esi
call fcn.1000f560
test al, al
jne 0x10004cd6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
nop
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10004bf0
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0xa
push str.UP_Error_:
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 9
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0xa
push eax
call fcn.100078a0
mov ecx, dword [ebp - 0x38]
cmp ecx, 0xf
jbe 0x10004c9f
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004c95
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005976
push ecx
push edx
call fcn.100240fa
add esp, 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x100057a3
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005799
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005976
jmp 0x10005799
mov eax, dword [str.Success]
xorps xmm0, xmm0
movups xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0x80], eax
mov ax, word [0x1004d158]
mov word [ebp - 0x7c], ax
mov al, byte [0x1004d15a]
mov dword [ebp - 0x70], 7
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x7a], al
mov byte [ebp - 0x79], 0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0xb
push eax
call fcn.100078a0
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x100057a3
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005799
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000597b
jmp 0x10005799
call fcn.100240fa
add esp, 8
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x10004f0d
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x10004f0d
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x10004f0d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x88]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 3
jne 0x10004fab
mov edi, esi
mov edx, 0x1004d0d0
sub edi, 4
jb 0x10004f55
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004f5a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004f44
cmp edi, 0xfffffffc
je 0x10004f8e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10004f87
cmp edi, 0xfffffffd
je 0x10004f8e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10004f87
cmp edi, 0xfffffffe
je 0x10004f8e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10004f87
cmp edi, 0xffffffff
je 0x10004f8e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10004f8e
sbb eax, eax
or eax, 1
jmp 0x10004f90
xor eax, eax
test eax, eax
jne 0x10004fa8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x64
push eax
call fcn.10007650
jmp 0x100057a3
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 3
jne 0x10005031
mov edi, esi
mov edx, 0x1004d0d4
sub edi, 4
jb 0x10004fd7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004fdc
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004fc6
cmp edi, 0xfffffffc
je 0x10005010
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005009
cmp edi, 0xfffffffd
je 0x10005010
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005009
cmp edi, 0xfffffffe
je 0x10005010
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005009
cmp edi, 0xffffffff
je 0x10005010
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10005010
sbb eax, eax
or eax, 1
jmp 0x10005012
xor eax, eax
test eax, eax
jne 0x1000502e
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
lea eax, [ecx + 0x64]
push eax
lea eax, [ecx + 0x34]
push eax
call fcn.10006ec0
jmp 0x100057a3
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 3
jne 0x10005187
mov edi, esi
mov edx, 0x1004d0d8
sub edi, 4
jb 0x10005061
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005066
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10005050
cmp edi, 0xfffffffc
je 0x1000509a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005093
cmp edi, 0xfffffffd
je 0x1000509a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005093
cmp edi, 0xfffffffe
je 0x1000509a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005093
cmp edi, 0xffffffff
je 0x1000509a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000509a
sbb eax, eax
or eax, 1
jmp 0x1000509c
xor eax, eax
test eax, eax
jne 0x10005184
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x34
cmp dword [eax + 0x14], 0xf
jbe 0x100050b5
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x100057a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x100050d2
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0x11
push str.Invalid_Erroraaa:
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x11
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x4c]
push eax
call fcn.100078a0
mov ecx, dword [ebp - 0x38]
cmp ecx, 0xf
jbe 0x10004c9f
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004c95
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005976
jmp 0x10004c95
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 2
jne 0x1000529a
mov edi, esi
mov edx, 0x1004d0dc
sub edi, 4
jb 0x100051b7
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100051bc
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100051a6
cmp edi, 0xfffffffc
je 0x100051f0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100051e9
cmp edi, 0xfffffffd
je 0x100051f0
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100051e9
cmp edi, 0xfffffffe
je 0x100051f0
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100051e9
cmp edi, 0xffffffff
je 0x100051f0
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100051f0
sbb eax, eax
or eax, 1
jmp 0x100051f2
xor eax, eax
test eax, eax
jne 0x10005297
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x34
push eax
call fcn.1000e0e0
test al, al
jne 0x100057a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
nop
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10005220
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0xe
push str.Execute_File_:
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x13
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x14
jmp 0x10005144
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 3
jne 0x100053be
mov edi, esi
mov edx, 0x1004d0f0
sub edi, 4
jb 0x100052d1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100052d6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100052c0
cmp edi, 0xfffffffc
je 0x1000530a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005303
cmp edi, 0xfffffffd
je 0x1000530a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005303
cmp edi, 0xfffffffe
je 0x1000530a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005303
cmp edi, 0xffffffff
je 0x1000530a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000530a
sbb eax, eax
or eax, 1
jmp 0x1000530c
xor eax, eax
test eax, eax
jne 0x100053bb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x7c
cmp dword [eax + 0x14], 0xf
jbe 0x10005325
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x100057a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10005344
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0xd
push str.Invalid_Dir_:
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x15
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x16
jmp 0x10005144
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 3
jne 0x100054dc
mov edi, esi
mov edx, 0x1004d104
sub edi, 4
jb 0x100053f1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100053f6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100053e0
cmp edi, 0xfffffffc
je 0x1000542a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005423
cmp edi, 0xfffffffd
je 0x1000542a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005423
cmp edi, 0xfffffffe
je 0x1000542a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005423
cmp edi, 0xffffffff
je 0x1000542a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000542a
sbb eax, eax
or eax, 1
jmp 0x1000542c
xor eax, eax
test eax, eax
jne 0x100054d9
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x7c
cmp dword [eax + 0x14], 0xf
jbe 0x10005445
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x100057a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10005462
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0xb
push str.Invalid_Dir
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x17
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x18
jmp 0x10005144
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 3
jne 0x1000560a
mov edi, esi
mov edx, 0x1004d114
sub edi, 4
jb 0x10005511
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005516
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10005500
cmp edi, 0xfffffffc
je 0x1000554a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005543
cmp edi, 0xfffffffd
je 0x1000554a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005543
cmp edi, 0xfffffffe
je 0x1000554a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005543
cmp edi, 0xffffffff
je 0x1000554a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000554a
sbb eax, eax
or eax, 1
jmp 0x1000554c
xor eax, eax
test eax, eax
jne 0x10005607
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp dword [eax + 0x48], 0xf
lea ecx, [eax + 0x34]
jbe 0x10005565
mov ecx, dword [ecx]
add eax, 0x94
cmp dword [eax + 0x14], 0xf
jbe 0x10005572
mov eax, dword [eax]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x100057a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10005590
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0xc
push str.Invalid_File
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x19
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x1a
jmp 0x10005144
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
lea ecx, [ebp - 0x34]
cmova ecx, edi
cmp esi, 3
jne 0x100057a6
mov edx, 0x1004d128
sub esi, 4
jb 0x10005638
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000563d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10005627
cmp esi, 0xfffffffc
je 0x10005671
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x1000566a
cmp esi, 0xfffffffd
je 0x10005671
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1000566a
cmp esi, 0xfffffffe
je 0x10005671
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1000566a
cmp esi, 0xffffffff
je 0x10005671
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10005671
sbb eax, eax
or eax, 1
jmp 0x10005673
xor eax, eax
test eax, eax
jne 0x100057a6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp dword [eax + 0xa8], 0xf
lea ecx, [eax + 0x94]
jbe 0x10005692
mov ecx, dword [ecx]
add eax, 0x34
cmp dword [eax + 0x14], 0xf
jbe 0x1000569d
mov eax, dword [eax]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x100057a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x14], ecx
nop dword [eax + eax]
mov eax, 0xcccccccd
dec esi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x14]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x100056c0
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x68]
call fcn.10001620
push 0xb
push str.Invalid_Dir
push ecx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x1b
call fcn.10002060
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0x1c
push eax
call fcn.100078a0
mov ecx, dword [ebp - 0x38]
cmp ecx, 0xf
jbe 0x1000576f
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005765
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005976
push ecx
push edx
call fcn.100240fa
add esp, 8
mov ecx, dword [ebp - 0x54]
cmp ecx, 0xf
jbe 0x100057a3
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005799
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005976
push ecx
push edx
call fcn.100240fa
add esp, 8
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
cmp eax, 0xf
jbe 0x100057d9
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100057cf
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005976
push ecx
push edi
call fcn.100240fa
add esp, 8
push 1
push dword [ebp - 0x50]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
jmp 0x10004edd
push 1
call fcn.100221cb
push 5
call fcn.100221cb
push 2
call fcn.100221cb
push 6
mov dword [ebp - 0x14], 0
call fcn.100221cb
call fcn.1002ade6
call fcn.1002ade6
call fcn.1002ade6
int3