Function at 0x1007c990
Capabilities:
Delete file
Write file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x408
push esi
push edi
lea edi, [ebp - 0x408]
mov ecx, 0x102
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov esi, esp
mov eax, dword [ebx + 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp esi, esp
call fcn.10118e91
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov word [ebp - 8], cx
xor edx, edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x78], 0
xor eax, eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x98], 0xffffffff
mov dword [ebp - 0xa4], 0
xor ecx, ecx
mov byte [ebp - 0x341], cl
xor edx, edx
mov byte [ebp - 0x342], dl
movzx eax, byte [ebp - 0x341]
push eax
movzx ecx, byte [ebp - 0x342]
push ecx
movzx edx, byte [ebp - 0x343]
push edx
lea ecx, [ebp - 0xc0]
call fcn.100a71e0
mov ecx, eax
call fcn.10099340
mov esi, esp
push eax
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
jne 0x1007cb7e
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3c0], eax
xor eax, eax
mov byte [ebp - 0x344], al
xor ecx, ecx
mov byte [ebp - 0x345], cl
movzx edx, byte [ebp - 0x344]
push edx
movzx eax, byte [ebp - 0x345]
push eax
movzx ecx, byte [ebp - 0x346]
push ecx
lea ecx, [ebp - 0x100]
call fcn.100a8d10
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x3c4], eax
xor edx, edx
mov byte [ebp - 0x34d], dl
xor eax, eax
mov byte [ebp - 0x34e], al
mov ecx, dword [ebp - 0x3c0]
push ecx
mov edx, dword [ebp - 0x3c4]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x34c], esp
movzx eax, byte [ebp - 0x34d]
push eax
movzx ecx, byte [ebp - 0x34e]
push ecx
movzx edx, byte [ebp - 0x34f]
push edx
lea ecx, [ebp - 0xd0]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
jmp 0x1007d5ca
mov esi, esp
push 0
call dword [sym.imp.USER32.dll_GetDC]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x1007cc5f
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3c8], eax
xor eax, eax
mov byte [ebp - 0x350], al
xor ecx, ecx
mov byte [ebp - 0x351], cl
movzx edx, byte [ebp - 0x350]
push edx
movzx eax, byte [ebp - 0x351]
push eax
movzx ecx, byte [ebp - 0x352]
push ecx
lea ecx, [ebp - 0x140]
call fcn.100a8de0
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x3cc], eax
xor edx, edx
mov byte [ebp - 0x359], dl
xor eax, eax
mov byte [ebp - 0x35a], al
mov ecx, dword [ebp - 0x3c8]
push ecx
mov edx, dword [ebp - 0x3cc]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x358], esp
movzx eax, byte [ebp - 0x359]
push eax
movzx ecx, byte [ebp - 0x35a]
push ecx
movzx edx, byte [ebp - 0x35b]
push edx
lea ecx, [ebp - 0x110]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
jmp 0x1007d5ca
mov eax, 4
imul ecx, eax, 0
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ecx + 0x101c72c8]
sub ecx, dword [eax + 0x101c72c0]
mov dword [ebp - 0x144], ecx
mov edx, 4
shl edx, 0
mov eax, 4
shl eax, 0
mov ecx, dword [edx + 0x101c72c0]
sub ecx, dword [eax + 0x101c72b8]
mov dword [ebp - 0x148], ecx
xor edx, edx
mov byte [ebp - 0x35c], dl
xor eax, eax
mov byte [ebp - 0x35d], al
movzx ecx, byte [ebp - 0x35c]
push ecx
movzx edx, byte [ebp - 0x35d]
push edx
movzx eax, byte [ebp - 0x35e]
push eax
lea ecx, [ebp - 0x170]
call fcn.100a8eb0
mov ecx, eax
call fcn.10099340
mov dword [ebp - 0x3d0], eax
xor ecx, ecx
mov byte [ebp - 0x365], cl
xor edx, edx
mov byte [ebp - 0x366], dl
mov eax, dword [ebp - 0x148]
push eax
mov ecx, dword [ebp - 0x144]
push ecx
mov edx, dword [ebp - 0x3d0]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x364], esp
movzx eax, byte [ebp - 0x365]
push eax
movzx ecx, byte [ebp - 0x366]
push ecx
movzx edx, byte [ebp - 0x367]
push edx
lea ecx, [ebp - 0x160]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x24
mov eax, 0x4d42
mov word [ebp - 0x14], ax
mov dword [ebp - 0xa], 0x36
mov dword [ebp - 0x44], 0x28
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x148]
mov dword [ebp - 0x3c], edx
mov eax, 1
mov word [ebp - 0x38], ax
mov ecx, 0x18
mov word [ebp - 0x36], cx
mov dword [ebp - 0x34], 0
mov ecx, 0xa
lea esi, [ebp - 0x44]
lea edi, [ebp - 0x78]
rep movsd dword es:[edi], dword [esi]
imul eax, dword [ebp - 0x144], 0x18
add eax, 0x1f
and eax, 0xffffffe0
cdq
and edx, 7
add eax, edx
sar eax, 3
imul eax, dword [ebp - 0x148]
mov dword [ebp - 0x9c], eax
mov esi, esp
push 4
push 0x3000
mov edx, dword [ebp - 0x9c]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
jne 0x1007cecc
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3d4], eax
xor eax, eax
mov byte [ebp - 0x368], al
xor ecx, ecx
mov byte [ebp - 0x369], cl
movzx edx, byte [ebp - 0x368]
push edx
movzx eax, byte [ebp - 0x369]
push eax
movzx ecx, byte [ebp - 0x36a]
push ecx
lea ecx, [ebp - 0x1b0]
call fcn.100a8f10
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x3d8], eax
xor edx, edx
mov byte [ebp - 0x371], dl
xor eax, eax
mov byte [ebp - 0x372], al
mov ecx, dword [ebp - 0x3d4]
push ecx
mov edx, dword [ebp - 0x3d8]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x370], esp
movzx eax, byte [ebp - 0x371]
push eax
movzx ecx, byte [ebp - 0x372]
push ecx
movzx edx, byte [ebp - 0x373]
push edx
lea ecx, [ebp - 0x180]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
mov esi, esp
mov eax, dword [ebp - 0x84]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp esi, esp
call fcn.10118e91
nop
jmp 0x1007d5ca
mov esi, esp
mov edx, dword [ebp - 0x84]
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
jne 0x1007cfed
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3dc], eax
xor eax, eax
mov byte [ebp - 0x374], al
xor ecx, ecx
mov byte [ebp - 0x375], cl
movzx edx, byte [ebp - 0x374]
push edx
movzx eax, byte [ebp - 0x375]
push eax
movzx ecx, byte [ebp - 0x376]
push ecx
lea ecx, [ebp - 0x1f0]
call fcn.100a8fe0
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x3e0], eax
xor edx, edx
mov byte [ebp - 0x37d], dl
xor eax, eax
mov byte [ebp - 0x37e], al
mov ecx, dword [ebp - 0x3dc]
push ecx
mov edx, dword [ebp - 0x3e0]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x37c], esp
movzx eax, byte [ebp - 0x37d]
push eax
movzx ecx, byte [ebp - 0x37e]
push ecx
movzx edx, byte [ebp - 0x37f]
push edx
lea ecx, [ebp - 0x1c0]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
mov esi, esp
push 0x8000
push 0
mov eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
cmp esi, esp
call fcn.10118e91
mov esi, esp
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0xac]
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp esi, esp
call fcn.10118e91
nop
jmp 0x1007d5ca
mov esi, esp
push 0
push 0
lea eax, [ebp - 0x90]
push eax
push 0
lea ecx, [ebp - 0x78]
push ecx
mov edx, dword [ebp - 0x84]
push edx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jne 0x1007d12f
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3e4], eax
xor eax, eax
mov byte [ebp - 0x380], al
xor ecx, ecx
mov byte [ebp - 0x381], cl
movzx edx, byte [ebp - 0x380]
push edx
movzx eax, byte [ebp - 0x381]
push eax
movzx ecx, byte [ebp - 0x382]
push ecx
lea ecx, [ebp - 0x230]
call fcn.100a90b0
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x3e8], eax
xor edx, edx
mov byte [ebp - 0x389], dl
xor eax, eax
mov byte [ebp - 0x38a], al
mov ecx, dword [ebp - 0x3e4]
push ecx
mov edx, dword [ebp - 0x3e8]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x388], esp
movzx eax, byte [ebp - 0x389]
push eax
movzx ecx, byte [ebp - 0x38a]
push ecx
movzx edx, byte [ebp - 0x38b]
push edx
lea ecx, [ebp - 0x200]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
mov esi, esp
push 0x8000
push 0
mov eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
cmp esi, esp
call fcn.10118e91
mov esi, esp
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0xac]
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp esi, esp
call fcn.10118e91
mov esi, esp
mov eax, dword [ebp - 0x88]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp esi, esp
call fcn.10118e91
nop
jmp 0x1007d5ca
mov esi, esp
mov ecx, dword [ebp - 0x80]
push ecx
mov edx, dword [ebp - 0x88]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.10118e91
test eax, eax
jne 0x1007d209
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3ec], eax
xor eax, eax
mov byte [ebp - 0x38c], al
xor ecx, ecx
mov byte [ebp - 0x38d], cl
movzx edx, byte [ebp - 0x38c]
push edx
movzx eax, byte [ebp - 0x38d]
push eax
movzx ecx, byte [ebp - 0x38e]
push ecx
lea ecx, [ebp - 0x280]
call fcn.100a9180
mov ecx, eax
call fcn.10098df0
mov dword [ebp - 0x3f0], eax
xor edx, edx
mov byte [ebp - 0x395], dl
xor eax, eax
mov byte [ebp - 0x396], al
mov ecx, dword [ebp - 0x3ec]
push ecx
mov edx, dword [ebp - 0x3f0]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x394], esp
movzx eax, byte [ebp - 0x395]
push eax
movzx ecx, byte [ebp - 0x396]
push ecx
movzx edx, byte [ebp - 0x397]
push edx
lea ecx, [ebp - 0x240]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
mov esi, esp
push 0x40cc0020
mov eax, 4
shl eax, 0
mov ecx, dword [eax + 0x101c72b8]
push ecx
mov edx, 4
imul eax, edx, 0
mov ecx, dword [eax + 0x101c72b8]
push ecx
mov edx, dword [ebp - 0x84]
push edx
mov eax, dword [ebp - 0x148]
push eax
mov ecx, dword [ebp - 0x144]
push ecx
push 0
push 0
mov edx, dword [ebp - 0x88]
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
cmp esi, esp
call fcn.10118e91
test eax, eax
jne 0x1007d31b
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3f4], eax
xor eax, eax
mov byte [ebp - 0x398], al
xor ecx, ecx
mov byte [ebp - 0x399], cl
movzx edx, byte [ebp - 0x398]
push edx
movzx eax, byte [ebp - 0x399]
push eax
movzx ecx, byte [ebp - 0x39a]
push ecx
lea ecx, [ebp - 0x2c0]
call fcn.100a9280
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x3f8], eax
xor edx, edx
mov byte [ebp - 0x3a1], dl
xor eax, eax
mov byte [ebp - 0x3a2], al
mov ecx, dword [ebp - 0x3f4]
push ecx
mov edx, dword [ebp - 0x3f8]
push edx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x3a0], esp
movzx eax, byte [ebp - 0x3a1]
push eax
movzx ecx, byte [ebp - 0x3a2]
push ecx
movzx edx, byte [ebp - 0x3a3]
push edx
lea ecx, [ebp - 0x290]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
mov esi, esp
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
mov eax, dword [ebx + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0xffffffff
jne 0x1007d410
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x3fc], eax
xor ecx, ecx
mov byte [ebp - 0x3a4], cl
xor edx, edx
mov byte [ebp - 0x3a5], dl
movzx eax, byte [ebp - 0x3a4]
push eax
movzx ecx, byte [ebp - 0x3a5]
push ecx
movzx edx, byte [ebp - 0x3a6]
push edx
lea ecx, [ebp - 0x300]
call fcn.100a9350
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x400], eax
xor eax, eax
mov byte [ebp - 0x3ad], al
xor ecx, ecx
mov byte [ebp - 0x3ae], cl
mov edx, dword [ebp - 0x3fc]
push edx
mov eax, dword [ebp - 0x400]
push eax
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x3ac], esp
movzx ecx, byte [ebp - 0x3ad]
push ecx
movzx edx, byte [ebp - 0x3ae]
push edx
movzx eax, byte [ebp - 0x3af]
push eax
lea ecx, [ebp - 0x2d0]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
jmp 0x1007d566
mov esi, esp
push 0
lea ecx, [ebp - 0xa4]
push ecx
push 0xe
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp esi, esp
call fcn.10118e91
test eax, eax
je 0x1007d497
mov esi, esp
push 0
lea ecx, [ebp - 0xa4]
push ecx
push 0x28
lea edx, [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp esi, esp
call fcn.10118e91
test eax, eax
je 0x1007d497
mov esi, esp
push 0
lea ecx, [ebp - 0xa4]
push ecx
mov edx, dword [ebp - 0x9c]
push edx
mov eax, dword [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp esi, esp
call fcn.10118e91
test eax, eax
jne 0x1007d54f
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call fcn.10118e91
mov dword [ebp - 0x404], eax
xor edx, edx
mov byte [ebp - 0x3b0], dl
xor eax, eax
mov byte [ebp - 0x3b1], al
movzx ecx, byte [ebp - 0x3b0]
push ecx
movzx edx, byte [ebp - 0x3b1]
push edx
movzx eax, byte [ebp - 0x3b2]
push eax
lea ecx, [ebp - 0x340]
call fcn.100a9420
mov ecx, eax
call fcn.10097fa0
mov dword [ebp - 0x408], eax
xor ecx, ecx
mov byte [ebp - 0x3b9], cl
xor edx, edx
mov byte [ebp - 0x3ba], dl
mov eax, dword [ebp - 0x404]
push eax
mov ecx, dword [ebp - 0x408]
push ecx
sub esp, 0x18
mov esi, esp
mov dword [ebp - 0x3b8], esp
movzx edx, byte [ebp - 0x3b9]
push edx
movzx eax, byte [ebp - 0x3ba]
push eax
movzx ecx, byte [ebp - 0x3bb]
push ecx
lea ecx, [ebp - 0x310]
call fcn.100a7b70
mov ecx, eax
call fcn.10099340
push eax
mov ecx, esi
call fcn.10069b60
call fcn.10078260
add esp, 0x20
mov esi, esp
mov edx, dword [ebp - 0x98]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call fcn.10118e91
nop
mov esi, esp
push 0x8000
push 0
mov eax, dword [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualFree]
cmp esi, esp
call fcn.10118e91
mov esi, esp
mov ecx, dword [ebp - 0x80]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp esi, esp
call fcn.10118e91
mov esi, esp
mov edx, dword [ebp - 0x84]
push edx
mov eax, dword [ebp - 0xac]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp esi, esp
call fcn.10118e91
mov esi, esp
mov ecx, dword [ebp - 0x88]
push ecx
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp esi, esp
call fcn.10118e91
nop
push edx
mov ecx, ebp
push eax
lea edx, [0x1007d5e4]
call fcn.10118e3d
pop eax
pop edx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret