Function at 0x4505a0
Capabilities:
Create directory
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x868
mov eax, dword [0x4e32e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov byte [ebp - 0x1f8], 0
push esi
push edi
mov dword [ebp - 0x860], ebx
cmp dword [ebx + 0x18], 0
je 0x450655
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x4505ff
cmp dword [ebx + 0x18], eax
jne 0x4505e5
mov ecx, 0x491578
jmp 0x4505eb
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x10]
lea edx, [ecx + 1]
mov edi, edi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4505f0
sub ecx, edx
je 0x450930
cmp dword [ebx + 0x18], 0
je 0x450655
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x2f
je 0x450621
cmp dword [ebx + 0x18], 0
je 0x450655
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x10]
cmp byte [eax], 0x5c
jne 0x45064f
cmp dword [ebx + 0x18], 0
jne 0x45062e
mov ecx, 0x491578
jmp 0x450634
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x10]
inc ecx
lea edx, [ebp - 0x1f8]
sub edx, ecx
lea ecx, [ecx]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x450640
jmp 0x45067d
cmp dword [ebx + 0x18], 0
jne 0x45065c
mov ecx, 0x491578
jmp 0x450662
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x10]
lea edx, [ebp - 0x1f8]
sub edx, ecx
lea ebx, [ebx]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x450670
mov dword [ebp - 0x85c], 0
lea esi, [ebp - 0x1f8]
lea ecx, [ecx]
push 0x2f
push esi
call fcn.004682d0
mov edi, eax
push 0x5c
push esi
mov dword [ebp - 0x864], edi
call fcn.004682d0
add esp, 0x10
mov ebx, eax
cmp edi, eax
cmovb ebx, edi
test ebx, ebx
jne 0x4506c5
cmp edi, eax
mov ebx, eax
cmova ebx, edi
test ebx, ebx
je 0x450816
mov byte [ebx], 0
lea ecx, [esi + 1]
jmp 0x4506d0
mov al, byte [esi]
inc esi
test al, al
jne 0x4506d0
sub esi, ecx
je 0x4507fd
cmp dword [ebp - 0x85c], 1
jne 0x4507e8
xor ecx, ecx
mov edi, edi
mov al, byte [ebp + ecx - 0x1f8]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x451], al
test al, al
jne 0x4506f0
lea edi, [ebp - 0x450]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x450710
mov ecx, 8
lea eax, [ebp - 0x858]
mov esi, str._04d__02d__02d__02d._02d._02d._03d
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x84a]
push eax
movzx eax, word [ebp - 0x84c]
push eax
movzx eax, word [ebp - 0x84e]
push eax
movzx eax, word [ebp - 0x850]
push eax
movzx eax, word [ebp - 0x852]
push eax
movzx eax, word [ebp - 0x856]
push eax
movzx eax, word [ebp - 0x858]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x838]
push eax
call fcn.00467033
add esp, 0x24
cmp byte [ebp + 8], 0
je 0x45079c
lea eax, [ebp - 0x838]
push eax
lea eax, [ebp - 0x1f8]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov esi, dword [ebp - 0x860]
lea ecx, [ebp - 0x1f8]
lea edx, [ecx + 1]
mov byte [esi + 0x24], 1
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4507b0
sub ecx, edx
lea eax, [ecx + 1]
push eax
lea ecx, [esi + 0x20]
call fcn.0041cf60
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 0x1f8]
mov edx, dword [eax + 0x10]
mov eax, ecx
sub edx, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4507d5
mov edi, dword [ebp - 0x864]
lea eax, [ebp - 0x1f8]
push eax
call fcn.0046bba3
add esp, 4
inc dword [ebp - 0x85c]
cmp ebx, edi
lea esi, [ebx + 1]
mov eax, 0x5c
mov ecx, 0x2f
cmove eax, ecx
mov byte [ebx], al
jmp 0x450690
lea ecx, [esi + 1]
lea esp, [esp]
mov al, byte [esi]
inc esi
test al, al
jne 0x450820
sub esi, ecx
je 0x450910
cmp dword [ebp - 0x85c], 1
jne 0x450901
xor ecx, ecx
mov edi, edi
mov al, byte [ebp + ecx - 0x1f8]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x325], al
test al, al
jne 0x450840
lea edi, [ebp - 0x324]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x450860
mov ecx, 8
lea eax, [ebp - 0x848]
mov esi, str._04d__02d__02d__02d._02d._02d._03d
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x83a]
push eax
movzx eax, word [ebp - 0x83c]
push eax
movzx eax, word [ebp - 0x83e]
push eax
movzx eax, word [ebp - 0x840]
push eax
movzx eax, word [ebp - 0x842]
push eax
movzx eax, word [ebp - 0x846]
push eax
movzx eax, word [ebp - 0x848]
push eax
lea eax, [ebp - 0x324]
push eax
lea eax, [ebp - 0x644]
push eax
call fcn.00467033
add esp, 0x24
cmp byte [ebp + 8], 0
je 0x4508ec
lea eax, [ebp - 0x644]
push eax
lea eax, [ebp - 0x1f8]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov ecx, dword [ebp - 0x860]
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ecx + 0x20]
call fcn.004220c0
lea eax, [ebp - 0x1f8]
push eax
call fcn.0046bba3
add esp, 4
lea edi, [ebp - 0x1f8]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x450917
mov ax, word [0x4b2694]
mov ebx, dword [ebp - 0x860]
mov word [edi], ax
cmp dword [ebx + 0x10], 0
jne 0x45093d
mov edx, 0x491578
jmp 0x450943
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0x10]
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x450945
lea edi, [ebp - 0x1f8]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x450955
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1f8]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x450972
cmp byte [ebp + 8], 0
mov eax, dword [str..log]
mov dword [ecx], eax
mov al, byte [0x4b43bc]
mov byte [ecx + 4], al
lea eax, [ebp - 0x1f8]
push 0x40
lea ecx, [ebx + 0x50]
je 0x4509a0
push 0xa
jmp 0x4509a2
push 2
push eax
call fcn.00451210
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004670fe
mov esp, ebp
pop ebp
ret 4