Function at 0x4590c0
Capabilities:
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cdf73
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
mov eax, dword [0x505034]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x5c], eax
mov edx, eax
mov dword [ebp - 0x7c], 0
lea ecx, [ebp - 0x78]
call fcn.00467480
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x68]
mov esi, dword [ebp - 0x78]
cmp eax, 4
jb 0x459821
lea ecx, [eax - 4]
cmp eax, ecx
jb 0x45986f
sub eax, ecx
mov edx, 4
cmp eax, edx
mov edi, edx
cmovb edi, eax
cmp dword [ebp - 0x64], 8
lea eax, [ebp - 0x78]
cmovae eax, esi
cmp edi, edx
lea ecx, [eax + ecx*2]
mov eax, edi
cmova eax, edx
mov edx, str..log
push eax
call fcn.00417090
add esp, 4
test eax, eax
jne 0x459821
cmp edi, 4
jae 0x459166
or eax, 0xffffffff
jmp 0x459171
mov eax, 4
cmp eax, edi
sbb eax, eax
neg eax
test eax, eax
jne 0x459821
lea eax, [ebp - 0xc0]
push eax
call fcn.0046aa60
movups xmm1, xmmword [eax]
movaps xmm0, xmm1
psrldq xmm0, 0xc
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movd ecx, xmm0
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
push eax
movd eax, xmm1
push eax
lea eax, [ebp - 0x98]
push str._08lx__04hx__04hx__02hhx_02hhx__02hhx_02hhx_02hhx_02hhx_02hhx_02hhx
push eax
call fcn.0041fa00
add esp, 0x38
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x68]
add eax, 0xb
mov dword [ebp - 0x14], 7
push eax
mov dword [ebp - 0x7c], 6
call fcn.00414c10
cmp dword [ebp - 0x64], 8
lea eax, [ebp - 0x78]
push dword [ebp - 0x68]
cmovae eax, dword [ebp - 0x78]
lea ecx, [ebp - 0x28]
push eax
call fcn.00414dc0
push 0xb
push str..to_rotate.
lea ecx, [ebp - 0x28]
call fcn.00414dc0
mov edi, dword [ebp - 0x14]
mov eax, edi
mov ecx, dword [ebp - 0x18]
sub eax, ecx
mov edx, dword [ebp - 0x88]
cmp edx, eax
mov esi, dword [ebp - 0x84]
jbe 0x459297
mov eax, esi
sub eax, edx
cmp eax, ecx
jb 0x459297
cmp edi, 8
lea eax, [ebp - 0x28]
push ecx
cmovae eax, dword [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x98]
call fcn.0042d4e0
jmp 0x4592b1
cmp esi, 8
lea eax, [ebp - 0x98]
push edx
cmovae eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x28]
push eax
call fcn.00414dc0
mov dword [ebp - 0x48], 0
xor ecx, ecx
mov dword [ebp - 0x44], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x48], xmm0
mov word [eax], cx
mov dword [eax + 0x14], 7
mov dword [eax + 0x10], ecx
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x45931d
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x459313
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x459874
push edx
push ecx
call fcn.00479e95
add esp, 8
xor eax, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x84]
cmp edx, 8
jb 0x459375
mov ecx, dword [ebp - 0x98]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45936b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x459874
push edx
push ecx
call fcn.00479e95
add esp, 8
mov edi, dword [ebp - 0x5c]
lea edx, [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x88], 0
cmp dword [ebp - 0x44], 8
mov ecx, edi
mov word [ebp - 0x98], ax
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x48]
push 1
mov dword [ebp - 0x84], 7
mov dword [ebp - 0x7c], eax
call fcn.00458f70
add esp, 4
test al, al
je 0x459879
push str..old
lea edx, [ebp - 0x78]
lea ecx, [ebp - 0x40]
call fcn.00414ad0
mov byte [ebp - 4], 6
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
lea edx, [ebp - 0x60]
push 1
cmovae eax, dword [ebp - 0x40]
mov ecx, edi
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x5c], eax
call fcn.00458f70
add esp, 8
test al, al
jne 0x459751
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
push 0
cmovae eax, dword [ebp - 0x40]
push 0
push 3
push 0
push 7
push 0x10000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x5c], esi
mov byte [ebp - 4], 7
cmp esi, 0xffffffff
je 0x459751
lea eax, [ebp - 0xc0]
push eax
call fcn.0046aa60
movups xmm1, xmmword [eax]
movaps xmm0, xmm1
psrldq xmm0, 0xc
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 4
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movd ecx, xmm0
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
push eax
movd eax, xmm1
push eax
lea eax, [ebp - 0x98]
push str._08lx__04hx__04hx__02hhx_02hhx__02hhx_02hhx_02hhx_02hhx_02hhx_02hhx
push eax
call fcn.0041fa00
add esp, 0x38
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xb0]
xor eax, eax
mov dword [ebp - 0xa0], 0
mov word [ebp - 0xb0], ax
mov eax, dword [ebp - 0x30]
add eax, 0xb
mov dword [ebp - 0x9c], 7
push eax
mov dword [ebp - 0x7c], 0x6a
call fcn.00414c10
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
lea ecx, [ebp - 0xb0]
push eax
call fcn.00414dc0
push 0xb
push str..to_delete.
lea ecx, [ebp - 0xb0]
call fcn.00414dc0
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
sub eax, ecx
mov edx, dword [ebp - 0x88]
cmp edx, eax
jbe 0x45956e
mov eax, dword [ebp - 0x84]
sub eax, edx
cmp eax, ecx
jb 0x45956e
cmp dword [ebp - 0x9c], 8
lea eax, [ebp - 0xb0]
push ecx
cmovae eax, dword [ebp - 0xb0]
push eax
push ecx
lea ecx, [ebp - 0x98]
call fcn.0042d4e0
jmp 0x45958f
cmp dword [ebp - 0x84], 8
lea eax, [ebp - 0x98]
push edx
cmovae eax, dword [ebp - 0x98]
lea ecx, [ebp - 0xb0]
push eax
call fcn.00414dc0
mov dword [ebp - 0x18], 0
xor ecx, ecx
mov dword [ebp - 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18], xmm0
mov word [eax], cx
mov dword [eax + 0x14], 7
mov dword [eax + 0x10], ecx
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x9c]
cmp edx, 8
jb 0x459601
mov ecx, dword [ebp - 0xb0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4595f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4598a1
push edx
push ecx
call fcn.00479e95
add esp, 8
xor eax, eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 7
mov word [ebp - 0xb0], ax
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x84]
cmp edx, 8
jb 0x459662
mov ecx, dword [ebp - 0x98]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x459658
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4598a1
push edx
push ecx
call fcn.00479e95
add esp, 8
xor eax, eax
mov dword [ebp - 0x88], 0
cmp dword [ebp - 0x14], 8
lea edx, [ebp - 0x80]
mov word [ebp - 0x98], ax
mov ecx, esi
lea eax, [ebp - 0x28]
mov dword [ebp - 0x84], 7
cmovae eax, dword [ebp - 0x28]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x18]
push 0
mov dword [ebp - 0x7c], eax
call fcn.00458f70
add esp, 4
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
jb 0x4596b2
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4596c3
cmp word [eax], 0
je 0x4596c3
push 4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
push 1
cmovae eax, dword [ebp - 0x40]
lea edx, [ebp - 0x80]
mov dword [ebp - 0x80], eax
mov ecx, edi
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7c], eax
call fcn.00458f70
add esp, 4
test al, al
jne 0x459710
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
jb 0x4596fa
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x459710
cmp word [eax], 0
je 0x459710
push 4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
nop dword [eax + eax]
mov edx, dword [ebp - 0x14]
cmp edx, 8
jb 0x45974a
mov ecx, dword [ebp - 0x28]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x459740
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4598a6
push edx
push ecx
call fcn.00479e95
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x2c]
cmp edx, 8
jb 0x45978b
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x459781
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4598ab
push edx
push ecx
call fcn.00479e95
add esp, 8
mov edx, dword [ebp - 0x44]
xor eax, eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
cmp edx, 8
jb 0x4597d9
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4597cf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4598ab
push edx
push ecx
call fcn.00479e95
add esp, 8
mov edx, dword [ebp - 0x64]
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
cmp edx, 8
jb 0x459854
mov ecx, dword [ebp - 0x78]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45981d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4598ab
push edx
push ecx
jmp 0x45984c
mov eax, dword [ebp - 0x64]
cmp eax, 8
jb 0x459854
lea ecx, [eax*2 + 2]
mov eax, esi
cmp ecx, 0x1000
jb 0x45984a
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4598ab
push ecx
push esi
call fcn.00479e95
add esp, 8
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.00479e61
mov esp, ebp
pop ebp
ret
call fcn.00417770
call fcn.0049b19a
push str.Unable_to_move_log_file_to_a_temporary_name_
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [ebp - 0xac]
call fcn.0046c650
push 0x50271c
lea eax, [ebp - 0xac]
push eax
call fcn.00491d27
call fcn.0049b19a
call fcn.0049b19a
call fcn.0049b19a
int3