Function at 0x100a1840
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10162a2c
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x10438fc0]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x48]
xor edi, edi
cmp eax, edi
je 0x100a188b
cmp dword [eax + 4], 0xffffffff
setne al
test al, al
je 0x100a188b
push edi
mov ecx, esi
call fcn.100a28a0
push 0x10
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov ebx, eax
add esp, 4
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], edi
cmp ebx, edi
je 0x100a18c1
mov edi, dword [esi]
push 0
call fcn.100164f0
mov dword [ebx + 4], 0xffffffff
mov dword [ebx + 8], 0
mov byte [ebx + 0xc], 0
mov edi, ebx
mov dword [esp + 0x20], 0xffffffff
mov dword [esi + 0x48], edi
mov eax, dword [edi + 4]
cmp eax, 0xffffffff
je 0x100a18e2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 4], 0xffffffff
cmp byte [edi + 0xc], 0
je 0x100a18f1
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [edi]
push 0
push 0
push 2
push 0
push 1
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x100a194b
call fcn.10023ad0
mov dword [edi + 8], eax
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + 8]
mov dword [esi + 0x54], ecx
test eax, eax
je 0x100a192d
mov esi, eax
call fcn.1002e860
mov esi, dword [ebp + 8]
mov dword [esi + 0x48], 0
xor al, al
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0xc]
mov dword [edi + 4], eax
mov byte [edi + 0xc], 0
mov dword [edi + 8], 0
mov dword [esi + 4], edx
mov edx, dword [ebp + 0x10]
mov byte [esi + 0x4c], 0
lea ebx, [esi + 0x10]
xor eax, eax
mov ecx, 0x28
mov dword [esi + 0x38], ecx
mov dword [ebx], 3
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 5
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], eax
mov dword [esi + 0x28], ecx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x2c], eax
sub esp, 0x28
mov edi, esp
mov ecx, 0xa
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x48]
call fcn.100a2ef0
cmp dword [ebx], 1
jne 0x100a19c4
mov ebx, dword [ebx + 0xc]
jmp 0x100a19c6
xor ebx, ebx
mov edx, dword [ebp + 0x10]
add ebx, 4
lea eax, [edx - 4]
mov dword [edi + 0x3c], ebx
cmp eax, 3
ja case.default.0x100a19d7
jmp dword [eax*4 + 0x100a1a68]
xor eax, eax
lea ecx, [eax + 1]
jmp 0x100a1a04
xor eax, eax
mov ecx, 0x100
jmp 0x100a1a04
xor eax, eax
mov ecx, 0x10000
jmp 0x100a1a04
xor eax, eax
mov ecx, 0x1000000
jmp 0x100a1a04
xor eax, eax
xor ecx, ecx
mov ebx, dword [edi + 0x50]
mov dword [edi + 0x40], eax
mov eax, dword [edi + 4]
push edx
push eax
mov dword [edi + 0x44], ecx
call fcn.100a4090
test al, al
jne 0x100a1a4e
mov ecx, dword [edi + 0x50]
mov esi, dword [edi + 0x48]
mov edx, dword [ecx + 0x30]
mov dword [edi + 0x54], edx
test esi, esi
je 0x100a1a30
call fcn.1002e860
mov dword [edi + 0x48], 0
xor al, al
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov al, 1
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc