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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10042042
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1bc
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 4], 0
push 1
mov byte [ebp - 4], 1
call fcn.10024bba
add esp, 4
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xa4], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
add ecx, 4
push ecx
lea ecx, [ebp - 0x4c]
call fcn.10003140
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0xf
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x3c]
seta byte [ebp - 0x11]
cmova ecx, edx
cmp esi, 2
jne 0x100049ea
mov edi, esi
mov edx, 0x1004e0f0
sub edi, 4
jb 0x10004932
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004937
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004921
cmp edi, 0xfffffffc
je 0x1000496b
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10004964
cmp edi, 0xfffffffd
je 0x1000496b
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10004964
cmp edi, 0xfffffffe
je 0x1000496b
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10004964
cmp edi, 0xffffffff
je 0x1000496b
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000496b
sbb eax, eax
or eax, 1
jmp 0x1000496d
xor eax, eax
test eax, eax
jne 0x100049e7
push 4
call fcn.10024bba
add esp, 4
mov dword [ebp - 0x9c], eax
mov dword [eax], 0x1001ba30
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
push ecx
push 0
push eax
push 0x1000a970
push 0
push 0
call fcn.1002ba83
add esp, 0x18
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x10005b3f
mov byte [ebp - 4], 5
cmp dword [ebp - 0x18], 0
je 0x10005b2a
call sub.KERNEL32.dll_GetCurrentThreadId
mov ecx, dword [ebp - 0x18]
cmp ecx, eax
je 0x10005b31
push 0
push ecx
push dword [ebp - 0x1c]
call fcn.10023484
add esp, 0xc
test eax, eax
jne 0x10005b38
jmp 0x10005994
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
lea ecx, [ebp - 0x4c]
test al, al
cmovne ecx, edx
cmp esi, 2
jne 0x10004a66
mov edi, esi
mov edx, 0x1004e0f4
sub edi, 4
jb 0x10004a17
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004a1c
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004a06
cmp edi, 0xfffffffc
je 0x10004a50
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10004a49
cmp edi, 0xfffffffd
je 0x10004a50
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10004a49
cmp edi, 0xfffffffe
je 0x10004a50
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10004a49
cmp edi, 0xffffffff
je 0x10004a50
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10004a50
sbb eax, eax
or eax, 1
jmp 0x10004a52
xor eax, eax
test eax, eax
jne 0x10004a60
call fcn.10005b70
jmp 0x10005994
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 2
jne 0x10004aec
mov edi, esi
mov edx, 0x1004e0f8
sub edi, 4
jb 0x10004a91
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004a96
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004a80
cmp edi, 0xfffffffc
je 0x10004aca
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10004ac3
cmp edi, 0xfffffffd
je 0x10004aca
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10004ac3
cmp edi, 0xfffffffe
je 0x10004aca
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10004ac3
cmp edi, 0xffffffff
je 0x10004aca
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10004aca
sbb eax, eax
or eax, 1
jmp 0x10004acc
xor eax, eax
test eax, eax
jne 0x10004ae6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0xac
push eax
call fcn.10005f20
jmp 0x10005994
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x10005147
mov edi, esi
mov edx, 0x1004e0fc
sub edi, 4
jb 0x10004b21
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004b26
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004b10
cmp edi, 0xfffffffc
je 0x10004b5a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10004b53
cmp edi, 0xfffffffd
je 0x10004b5a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10004b53
cmp edi, 0xfffffffe
je 0x10004b5a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10004b53
cmp edi, 0xffffffff
je 0x10004b5a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x10004b5a
sbb eax, eax
or eax, 1
jmp 0x10004b5c
xor eax, eax
test eax, eax
jne 0x10005141
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x98]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x1c
push eax
call fcn.10003140
mov byte [ebp - 4], 7
lea eax, [ebp - 0x98]
cmp dword [ebp - 0x84], 0xf
push 0x1004e5e4
cmova eax, dword [ebp - 0x98]
push eax
call fcn.1002c826
add esp, 8
test eax, eax
je 0x10004cd7
push eax
call fcn.1002ccc5
add esp, 4
lea eax, [ebp - 0x98]
cmp dword [ebp - 0x84], 0xf
cmova eax, dword [ebp - 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x10004cc1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], 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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x10004be5
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 8
push eax
mov edx, str.Up_Err_:
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
push eax
mov byte [ebp - 4], 9
call fcn.10007a60
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x10004c77
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004c6d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b4d
push ecx
push edx
call fcn.10024bea
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp ecx, 0xf
jbe 0x10004cc1
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004cb7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b4d
push ecx
push edx
call fcn.10024bea
add esp, 8
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x1f4
mov dword [ebp - 0x18], 0
call fcn.10009c00
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0xdc
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.1000fa80
test al, al
jne 0x10004ddc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], 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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x10004d05
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0xa
push eax
mov edx, str.Up_Err_:
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
push eax
mov byte [ebp - 4], 0xb
call fcn.10007a60
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x10004d93
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004d89
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b52
push ecx
push edx
call fcn.10024bea
add esp, 8
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp ecx, 0xf
jbe 0x10004f44
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004f3a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b52
jmp 0x10004f3a
push 0x104
lea eax, [ebp - 0x1c8]
push 0
push eax
call fcn.100268f0
add esp, 0xc
lea ecx, [ebp - 0x1c8]
cmp dword [ebp - 0x84], 0xf
lea eax, [ebp - 0x98]
cmova eax, dword [ebp - 0x98]
push 0
push ecx
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10004e40
sub ecx, edx
lea eax, [ebp - 0x1c8]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.10003350
mov eax, dword [str.Success]
xorps xmm0, xmm0
mov ecx, dword [0x1004e110]
movlpd qword [ebp - 0x78], xmm0
mov dword [ebp - 0x70], 8
mov dword [ebp - 0x6c], 0xf
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], ecx
mov byte [ebp - 0x78], 0
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp + 0xc]
lea ecx, [ebp - 0x64]
call fcn.1000a1b0
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0xe
push eax
call fcn.10007a60
mov ecx, dword [ebp - 0x50]
cmp ecx, 0xf
jbe 0x10004edc
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004ed2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b57
push ecx
push edx
call fcn.10024bea
add esp, 8
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x10004f10
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004f06
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b57
push ecx
push edx
call fcn.10024bea
add esp, 8
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x10004f44
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10004f3a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b57
push ecx
push edx
call fcn.10024bea
add esp, 8
mov ecx, dword [ebp - 0x84]
cmp ecx, 0xf
jbe 0x10005994
mov edx, dword [ebp - 0x98]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000598a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b57
jmp 0x1000598a
call fcn.10024bea
add esp, 8
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x10005128
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x10005128
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x10005128
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xa0]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x100051ca
mov edi, esi
mov edx, 0x1004e124
sub edi, 4
jb 0x10005171
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005176
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10005160
cmp edi, 0xfffffffc
je 0x100051aa
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100051a3
cmp edi, 0xfffffffd
je 0x100051aa
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100051a3
cmp edi, 0xfffffffe
je 0x100051aa
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100051a3
cmp edi, 0xffffffff
je 0x100051aa
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100051aa
sbb eax, eax
or eax, 1
jmp 0x100051ac
xor eax, eax
test eax, eax
jne 0x100051c4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x64
push eax
call fcn.10007890
jmp 0x10005994
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x10005251
mov edi, esi
mov edx, 0x1004e128
sub edi, 4
jb 0x100051f4
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100051f9
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100051e3
cmp edi, 0xfffffffc
je 0x1000522d
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005226
cmp edi, 0xfffffffd
je 0x1000522d
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005226
cmp edi, 0xfffffffe
je 0x1000522d
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005226
cmp edi, 0xffffffff
je 0x1000522d
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000522d
sbb eax, eax
or eax, 1
jmp 0x1000522f
xor eax, eax
test eax, eax
jne 0x1000524b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
lea eax, [ecx + 0x64]
push eax
lea eax, [ecx + 0x34]
push eax
call fcn.10006fa0
jmp 0x10005994
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x100053cf
mov edi, esi
mov edx, 0x1004e12c
sub edi, 4
jb 0x10005281
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005286
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10005270
cmp edi, 0xfffffffc
je 0x100052ba
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100052b3
cmp edi, 0xfffffffd
je 0x100052ba
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100052b3
cmp edi, 0xfffffffe
je 0x100052ba
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100052b3
cmp edi, 0xffffffff
je 0x100052ba
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100052ba
sbb eax, eax
or eax, 1
jmp 0x100052bc
xor eax, eax
test eax, eax
jne 0x100053c9
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x34
cmp dword [eax + 0x14], 0xf
jbe 0x100052d5
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x10005994
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], 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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x100052f2
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x14
push eax
mov edx, str.DEL:
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
push eax
mov byte [ebp - 4], 0x15
call fcn.10007a60
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x10005380
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005376
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b5c
push ecx
push edx
call fcn.10024bea
add esp, 8
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp ecx, 0xf
jbe 0x10005994
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000598a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b5c
jmp 0x1000598a
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 2
jne 0x10005507
mov edi, esi
mov edx, 0x1004e138
sub edi, 4
jb 0x10005401
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005406
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100053f0
cmp edi, 0xfffffffc
je 0x1000543a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005433
cmp edi, 0xfffffffd
je 0x1000543a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005433
cmp edi, 0xfffffffe
je 0x1000543a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005433
cmp edi, 0xffffffff
je 0x1000543a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000543a
sbb eax, eax
or eax, 1
jmp 0x1000543c
xor eax, eax
test eax, eax
jne 0x10005501
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x34
push eax
call fcn.1000e4b0
test al, al
jne 0x10005994
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], ecx
nop dword [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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x10005470
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x16
push eax
mov edx, 0x1004e13c
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
mov byte [ebp - 4], 0x17
push eax
call fcn.10007a60
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x10005380
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005376
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b5c
jmp 0x10005376
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x10005607
mov edi, esi
mov edx, 0x1004e140
sub edi, 4
jb 0x10005535
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000553a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10005524
cmp edi, 0xfffffffc
je 0x1000556e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005567
cmp edi, 0xfffffffd
je 0x1000556e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005567
cmp edi, 0xfffffffe
je 0x1000556e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005567
cmp edi, 0xffffffff
je 0x1000556e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000556e
sbb eax, eax
or eax, 1
jmp 0x10005570
xor eax, eax
test eax, eax
jne 0x10005601
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x7c
cmp dword [eax + 0x14], 0xf
jbe 0x10005589
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x10005994
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], 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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x100055a8
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x18
push eax
mov edx, str.fder:
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
mov byte [ebp - 4], 0x19
jmp 0x100054c4
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x10005705
mov edi, esi
mov edx, 0x1004e14c
sub edi, 4
jb 0x10005635
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000563a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10005624
cmp edi, 0xfffffffc
je 0x1000566e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005667
cmp edi, 0xfffffffd
je 0x1000566e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005667
cmp edi, 0xfffffffe
je 0x1000566e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005667
cmp edi, 0xffffffff
je 0x1000566e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000566e
sbb eax, eax
or eax, 1
jmp 0x10005670
xor eax, eax
test eax, eax
jne 0x100056ff
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
add eax, 0x7c
cmp dword [eax + 0x14], 0xf
jbe 0x10005689
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x10005994
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], 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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x100056a6
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x1a
push eax
mov edx, str.d_fder
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
mov byte [ebp - 4], 0x1b
jmp 0x100054c4
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x10005811
mov edi, esi
mov edx, 0x1004e158
sub edi, 4
jb 0x10005733
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005738
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10005722
cmp edi, 0xfffffffc
je 0x1000576c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005765
cmp edi, 0xfffffffd
je 0x1000576c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005765
cmp edi, 0xfffffffe
je 0x1000576c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005765
cmp edi, 0xffffffff
je 0x1000576c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000576c
sbb eax, eax
or eax, 1
jmp 0x1000576e
xor eax, eax
test eax, eax
jne 0x1000580b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp dword [eax + 0x48], 0xf
lea ecx, [eax + 0x34]
jbe 0x10005787
mov ecx, dword [ecx]
add eax, 0x94
cmp dword [eax + 0x14], 0xf
jbe 0x10005794
mov eax, dword [eax]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x10005994
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], 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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x100057b2
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x1c
push eax
mov edx, 0x1004e15c
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
mov byte [ebp - 4], 0x1d
jmp 0x100054c4
mov edx, dword [ebp - 0x4c]
mov al, byte [ebp - 0x11]
test al, al
lea ecx, [ebp - 0x4c]
cmovne ecx, edx
cmp esi, 3
jne 0x10005997
mov edx, 0x1004e160
sub esi, 4
jb 0x10005841
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005846
add ecx, 4
add edx, 4
sub esi, 4
jae 0x10005830
cmp esi, 0xfffffffc
je 0x1000587a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x10005873
cmp esi, 0xfffffffd
je 0x1000587a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x10005873
cmp esi, 0xfffffffe
je 0x1000587a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x10005873
cmp esi, 0xffffffff
je 0x1000587a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x1000587a
sbb eax, eax
or eax, 1
jmp 0x1000587c
xor eax, eax
test eax, eax
jne 0x10005994
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp dword [eax + 0x48], 0xf
lea ecx, [eax + 0x34]
jbe 0x10005895
mov ecx, dword [ecx]
add eax, 0x94
cmp dword [eax + 0x14], 0xf
jbe 0x100058a2
mov eax, dword [eax]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x10005994
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea esi, [ebp - 0x6b]
mov dword [ebp - 0x18], 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 - 0x18]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [esi], al
mov eax, edx
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x100058c0
push ecx
lea eax, [ebp - 0x6b]
push eax
push esi
lea ecx, [ebp - 0x64]
call fcn.10001670
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x1e
push eax
mov edx, str.ren_dir
lea ecx, [ebp - 0x34]
call fcn.10002010
add esp, 4
push eax
mov byte [ebp - 4], 0x1f
call fcn.10007a60
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x1000594e
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10005944
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b5c
push ecx
push edx
call fcn.10024bea
add esp, 8
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp ecx, 0xf
jbe 0x10005994
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000598a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b5c
push ecx
push edx
call fcn.10024bea
add esp, 8
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x38]
cmp eax, 0xf
jbe 0x100059ca
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100059c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10005b5c
push ecx
push edx
call fcn.10024bea
add esp, 8
push 1
push dword [ebp - 0x68]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
jmp 0x100050f8
push 1
call fcn.10022cc8
push 5
call fcn.10022cc8
push 2
call fcn.10022cc8
push 6
mov dword [ebp - 0x18], 0
call fcn.10022cc8
call fcn.1002b8d6
call fcn.1002b8d6
call fcn.1002b8d6
call fcn.1002b8d6
int3