Function at 0x4793a0
Capabilities:
Create directory
Delete file
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f2bb2
mov eax, dword fs:[0]
push eax
sub esp, 0x4d8
mov eax, dword [0x52b360]
xor eax, esp
mov dword [esp + 0x4d0], eax
push ebx
push esi
push edi
mov eax, dword [0x52b360]
xor eax, esp
push eax
lea eax, [esp + 0x4e8]
mov dword fs:[0], eax
lea esi, [esp + 0x78]
call fcn.0047e6f0
xor eax, eax
mov dword [esp + 0x4f0], eax
mov esi, 8
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
cmp dword [esp + 0x90], esi
jae 0x479410
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x30]
push edx
push eax
call fcn.00493300
add esp, 0xc
cmp eax, 0x9600000
jbe 0x4799bb
push 0x50ad14
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [esp + 0x14]
push eax
call fcn.00403c40
lea ecx, [esp + 0x14]
mov byte [esp + 0x4f0], 1
call fcn.00479ce0
mov eax, dword [esp + 0x7c]
cmp dword [esp + 0x90], esi
jae 0x479465
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.00479040
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
add esp, 8
mov ebx, eax
cmp edi, eax
jbe 0x47948e
call fcn.004c96d9
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
cmp edi, eax
jbe 0x47949b
call fcn.004c96d9
mov edx, dword [esp + 0x14]
push ebx
push esi
push edi
push edx
call fcn.0047b2c0
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ecx, ebx
sub ecx, edi
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
shr eax, 1
add esp, 0x10
mov dword [esp + 0x30], eax
mov esi, edi
cmp edi, ebx
jbe 0x4794dd
call fcn.004c96d9
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x479507
call fcn.004c96d9
mov edi, dword [esp + 0x20]
xor eax, eax
mov ecx, dword [esp + 0x30]
lea ecx, [ecx + ecx*8]
lea esi, [esi + ecx*4]
cmp esi, dword [eax + 0x10]
ja 0x479512
test ebx, ebx
je 0x47950b
mov eax, dword [ebx]
jmp 0x47950d
mov eax, dword [ebx]
jmp 0x4794f0
xor eax, eax
cmp esi, dword [eax + 0xc]
jae 0x479520
call fcn.004c96d9
mov edi, dword [esp + 0x20]
jmp 0x479520
cmp edi, dword [esp + 0x24]
jbe 0x47952b
call fcn.004c96d9
test ebx, ebx
je 0x479535
cmp ebx, dword [esp + 0x14]
je 0x47953a
call fcn.004c96d9
cmp esi, edi
je 0x4795a9
cmp dword [esp + 0x30], 0
jle 0x4795a9
test ebx, ebx
jne 0x479565
call fcn.004c96d9
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x47955a
call fcn.004c96d9
cmp dword [esi + 0x18], 8
jb 0x479569
mov eax, dword [esi + 4]
jmp 0x47956c
mov eax, dword [ebx]
jmp 0x479550
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
push ebx
lea edx, [esp + 0x40]
push edx
lea esi, [esp + 0x20]
call fcn.00479ea0
mov ebx, dword [eax]
mov esi, dword [eax + 4]
test ebx, ebx
jne 0x4795a5
call fcn.004c96d9
xor eax, eax
cmp esi, dword [eax + 0xc]
ja 0x47959d
call fcn.004c96d9
sub esi, 0x24
jmp 0x479517
mov eax, dword [ebx]
jmp 0x479593
lea eax, [esp + 0x78]
push eax
mov ecx, 3
xor edx, edx
lea esi, [esp + 0x44]
call fcn.00408160
lea edi, [esp + 0x94]
mov byte [esp + 0x4f0], 2
call fcn.00493120
mov byte [esp + 0x4f0], 3
mov eax, dword [esp + 0x98]
mov ecx, 8
cmp dword [esp + 0xac], ecx
jae 0x4795f6
lea eax, [esp + 0x98]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0xa8]
mov edx, esi
cmp esi, edi
jb 0x479609
mov edx, edi
cmp dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x44]
jae 0x479617
lea ecx, [esp + 0x44]
xor ebx, ebx
cmp edx, ebx
jbe 0x479649
lea ecx, [ecx]
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x479637
add ecx, 2
add eax, 2
sub edx, 1
jne 0x479620
xor ebx, ebx
jmp 0x479649
mov cx, word [ecx]
cmp cx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
inc eax
xor ebx, ebx
cmp eax, ebx
jne 0x47965c
cmp esi, edi
jb 0x47965c
xor eax, eax
cmp esi, edi
setne al
cmp eax, ebx
je 0x479707
call fcn.00478d70
mov edi, 8
cmp dword [esp + 0xac], edi
jb 0x47967f
mov edx, dword [esp + 0x98]
push edx
call fcn.004c8f17
add esp, 4
xor eax, eax
mov esi, 7
mov dword [esp + 0xac], esi
mov dword [esp + 0xa8], ebx
mov word [esp + 0x98], ax
cmp dword [esp + 0x58], edi
jb 0x4796af
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004c8f17
add esp, 4
mov eax, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], dx
cmp eax, ebx
je 0x4796e9
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
push ecx
call fcn.0047b580
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.004c8f17
add esp, 4
mov edi, 8
mov eax, dword [esp + 0x14]
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.004c8f17
add esp, 4
jmp 0x4799c8
lea edx, [esp + 0x5c]
push edx
call fcn.00493540
add esp, 4
mov byte [esp + 0x4f0], 4
cmp dword [esp + 0x58], 8
mov eax, dword [esp + 0x44]
jae 0x47972b
lea eax, [esp + 0x44]
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x54]
mov edx, esi
cmp esi, edi
jb 0x47973b
mov edx, edi
cmp dword [esp + 0x74], 8
mov ecx, dword [esp + 0x60]
jae 0x47974a
lea ecx, [esp + 0x60]
cmp edx, ebx
jbe 0x479779
mov edi, edi
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x479767
add ecx, 2
add eax, 2
sub edx, 1
jne 0x479750
xor ebx, ebx
jmp 0x479779
mov cx, word [ecx]
cmp cx, word [eax]
sbb eax, eax
and eax, 0xfffffffe
inc eax
xor ebx, ebx
cmp eax, ebx
jne 0x479784
cmp esi, edi
jb 0x479791
xor eax, eax
cmp esi, edi
setne al
mov edi, 8
cmp eax, ebx
je 0x4798fb
push 0x50ad20
lea ecx, [esp + 0x60]
lea esi, [esp + 0xb4]
call fcn.0041e3f0
add esp, 4
push 0x1e
push str.DtlWallPaperWallPaperBigIcon
lea eax, [esp + 0x64]
mov byte [esp + 0x4f8], 5
call fcn.004088a0
mov eax, dword [esp + 0x60]
mov edi, 8
cmp dword [esp + 0x74], edi
jae 0x4797d4
lea eax, [esp + 0x60]
push ebx
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
push 0x206
lea eax, [esp + 0x2da]
xor edx, edx
push ebx
push eax
mov word [esp + 0x2e0], dx
call fcn.004d1df0
add esp, 0xc
push 0x206
lea edx, [esp + 0xd2]
xor ecx, ecx
push ebx
push edx
mov word [esp + 0xd8], cx
call fcn.004d1df0
mov eax, dword [esp + 0xc0]
add esp, 0xc
cmp dword [esp + 0xc8], edi
jae 0x479834
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x2d8]
push 0x104
push eax
call fcn.004ca220
mov eax, dword [esp + 0x88]
add esp, 0xc
cmp dword [esp + 0x90], edi
jae 0x47985e
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0xd0]
push 0x104
push ecx
call fcn.004ca220
lea eax, [esp + 0x2e0]
add esp, 0xc
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x479880
sub eax, edx
sar eax, 1
xor edx, edx
mov word [esp + eax*2 + 0x2d6], dx
lea eax, [esp + 0xcc]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4798a3
sub eax, edx
xor ecx, ecx
sar eax, 1
mov word [esp + eax*2 + 0xce], cx
lea ecx, [esp + 0xcc]
lea edx, [esp + 0x2d4]
call fcn.004932a0
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x74], edi
jae 0x4798dd
lea ecx, [esp + 0x60]
call fcn.0047e850
cmp dword [esp + 0xc8], edi
jb 0x4798fb
mov edx, dword [esp + 0xb4]
push edx
call fcn.004c8f17
add esp, 4
cmp dword [esp + 0x74], edi
jb 0x47990e
mov eax, dword [esp + 0x60]
push eax
call fcn.004c8f17
add esp, 4
xor ecx, ecx
mov esi, 7
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebx
mov word [esp + 0x60], cx
cmp dword [esp + 0xac], edi
jb 0x47993b
mov edx, dword [esp + 0x98]
push edx
call fcn.004c8f17
add esp, 4
xor eax, eax
mov dword [esp + 0xac], esi
mov dword [esp + 0xa8], ebx
mov word [esp + 0x98], ax
cmp dword [esp + 0x58], edi
jb 0x479966
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004c8f17
add esp, 4
mov eax, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], ebx
mov word [esp + 0x44], dx
cmp eax, ebx
je 0x4799a0
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
push ecx
call fcn.0047b580
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.004c8f17
add esp, 4
mov edi, 8
mov eax, dword [esp + 0x14]
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.004c8f17
add esp, 4
jmp 0x4799c8
push 0x50ad90
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edi, esi
cmp dword [esp + 0x90], edi
jb 0x4799de
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.004c8f17
add esp, 4
mov ecx, dword [esp + 0x4e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4d0]
xor ecx, esp
call fcn.004c8f08
mov esp, ebp
pop ebp
ret