Function at 0x407dab
Capabilities:
Delete file
Encode data using xor

Disassembly:
push 0xa4
mov eax, 0x43d9f0
call fcn.0042b376
mov ebx, ecx
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x20], ebx
test eax, eax
jne 0x407dd3
mov eax, 0x80004005
jmp 0x408017
lea eax, [ebp - 0x3c]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x1c], esp
push 2
push 0x445914
call fcn.0040801d
lea edi, [ebp - 0xb0]
call fcn.00426ea5
and dword [ebp - 4], 0
mov ecx, eax
call fcn.004270be
mov edi, eax
push 2
add ebx, 0x70
push 0
push ebx
lea esi, [ebp - 0x58]
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], ebx
call fcn.00408161
mov byte [ebp - 4], 2
cmp dword [edi + 0x18], 0x10
jb 0x407e29
mov edi, dword [edi + 4]
jmp 0x407e2c
add edi, 4
push edi
call fcn.00408e23
pop ecx
push 0
push 1
lea ecx, [ebp - 0x58]
mov bl, al
call fcn.0040329c
push 0
push 1
lea ecx, [ebp - 0x3c]
call fcn.0040329c
or dword [ebp - 4], 0xffffffff
lea esi, [ebp - 0xb0]
call fcn.00417161
test bl, bl
jne 0x408015
call fcn.00428e21
cdq
push 0x14
pop ecx
idiv ecx
mov esi, edx
inc esi
call fcn.00428e21
cdq
idiv esi
cmp edx, esi
jg 0x407e87
mov eax, esi
cdq
idiv esi
test edx, edx
je 0x407e8c
call fcn.00401d8f
lea eax, [ebp - 0x58]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x1c], esp
push 3
pop ebx
push ebx
push 0x445918
call fcn.0040801d
lea edi, [ebp - 0xb0]
call fcn.00426ea5
mov ecx, eax
mov dword [ebp - 4], ebx
call fcn.00427269
mov edi, eax
push ebx
push 0
push dword [ebp - 0x18]
lea esi, [ebp - 0x3c]
mov byte [ebp - 4], 4
call fcn.00408161
mov byte [ebp - 4], 5
cmp dword [edi + 0x18], 0x10
jb 0x407ede
mov edi, dword [edi + 4]
jmp 0x407ee1
add edi, 4
push edi
call fcn.00408e23
mov bl, al
neg bl
pop ecx
sbb bl, bl
xor edi, edi
push edi
push 1
lea ecx, [ebp - 0x3c]
inc bl
call fcn.0040329c
push edi
push 1
lea ecx, [ebp - 0x58]
call fcn.0040329c
or dword [ebp - 4], 0xffffffff
lea esi, [ebp - 0xb0]
call fcn.00417161
test bl, bl
jne 0x407dc9
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x84]
cmp eax, 0x20
jbe 0x407dc9
push 0xffffffffffffffff
push 0x20
push dword [ebp - 0x18]
lea esi, [ebp - 0x3c]
call fcn.00408161
mov ecx, dword [ebp - 0x18]
push 0xffffffffffffffff
push edi
push eax
mov dword [ebp - 4], 6
call fcn.004031c2
or dword [ebp - 4], 0xffffffff
push edi
push 1
mov ecx, esi
call fcn.0040329c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push edi
shr esi, 0x18
call fcn.0042a13f
imul eax, eax, 0x63
pop ecx
cmp esi, eax
jbe 0x407f86
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.004017c3
mov ebx, dword [ebx + 0x84]
push edi
mov dword [ebp - 0x1c], ebx
call fcn.0042a13f
lea esi, [ebx - 1]
pop ecx
cmp esi, edi
jbe 0x407fd1
mov eax, dword [ebp - 0x18]
lea edi, [esi - 1]
mov dword [ebp - 0x20], edi
call fcn.00408141
mov ebx, eax
mov eax, dword [ebp - 0x18]
mov edi, esi
call fcn.00408141
mov bl, byte [ebx]
xor bl, byte [eax]
mov eax, dword [ebp - 0x18]
call fcn.00408141
mov esi, dword [ebp - 0x20]
mov byte [eax], bl
test esi, esi
ja 0x407f9d
mov ebx, dword [ebp - 0x1c]
xor edi, edi
cmp ebx, edi
jbe 0x408015
mov eax, dword [ebp - 0x18]
mov edi, esi
call fcn.00408141
mov bl, byte [eax]
mov eax, dword [ebp - 0x18]
xor bl, 0x12
call fcn.00408141
mov byte [eax], bl
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push 0
shr esi, 0x18
call fcn.0042a13f
imul eax, eax, 0x63
pop ecx
cmp esi, eax
jbe 0x408015
push 0
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.004055dd
xor eax, eax
call fcn.0042b3f9
ret