Function at 0x40ab88
Capabilities:
Write file on windows

Disassembly:
mov edi, 0x40dcf0
mov ecx, 0x4102e0
sub ecx, edi
sub ecx, 4
shr ecx, 2
sub eax, eax
rep stosd dword es:[edi], eax
push 0x20000
push 0
call sub.KERNEL32.dll_GlobalAlloc
mov dword [0x40d710], eax
test eax, eax
jne 0x40abd2
call sub.KERNEL32.dll_GetLastError
mov dword [0x40dc70], eax
push str.INITSTRINGS:_failed_to_allocate_memory_
call fcn.004018d4
push dword [0x40dc70]
call sub.KERNEL32.dll_ExitProcess
mov ebx, eax
mov byte [ebx], 0
push 0x10000
push 0
call sub.KERNEL32.dll_GlobalAlloc
mov dword [0x40db50], eax
test eax, eax
jne 0x40ac0b
call sub.KERNEL32.dll_GetLastError
mov dword [0x40dc70], eax
push str.INITSTRINGS:_failed_to_allocate_memory_
call fcn.004018d4
push dword [0x40dc70]
call sub.KERNEL32.dll_ExitProcess
mov ebx, eax
mov byte [ebx], 0
mov eax, 0xffffffff
sub eax, eax
mov al, 0
mov byte [0x40d714], al
mov byte [0x40d820], al
mov byte [0x40d930], al
mov byte [0x40da40], al
mov byte [0x40db54], al
mov eax, 0xffffffff
mov dword [0x40dc74], eax
mov dword [0x40dc78], eax
mov dword [0x40dc7c], eax
mov dword [0x4102c2], 0
sub eax, eax
mov edi, 0x40e2c2
mov ecx, 0x200
rep stosd dword es:[edi], eax
push 0x81c18
push 0x40
call sub.KERNEL32.dll_GlobalAlloc
mov dword [0x40dcd2], eax
mov dword [0x4102c6], eax
add dword [0x4102c6], 0x81818
mov dword [0x40e0e4], eax
add eax, 4
mov dword [0x40e0e8], eax
add eax, 4
mov dword [0x40e0ec], eax
add eax, 0x404
mov dword [0x40e0f0], eax
add eax, 0x404
mov dword [0x40e0f4], eax
add eax, 0x404
mov dword [0x40e0f8], eax
add eax, 0x404
mov dword [0x40e0fc], eax
add eax, 0x404
mov dword [0x40e100], eax
add eax, 0x404
mov dword [0x40e2b2], eax
mov dword [0x40e2b6], eax
mov esi, 0x40dcf0
mov dword [0x40dcda], 0
call fcn.00402941
call fcn.004031d6
call fcn.00401df7
mov dword [esi], 0
push dword [esi]
call sub.KERNEL32.dll_GetModuleHandleA
call fcn.00401ea4
mov dword [0x40e05c], eax
mov dword [esi], 0
add esi, 4
mov eax, 0x40574b
mov dword [esi], eax
add esi, 4
push dword [0x40e01c]
push dword [esi - 4]
push dword [esi - 8]
call sub.USER32.dll_EnumDesktopWindows
sub esi, 8
mov eax, 0xffffffff
mov dword [0x40e074], eax
mov eax, 0
mov dword [0x40e078], eax
mov eax, 0x3e7
mov dword [0x40e07c], eax
mov eax, 0x3e7
mov dword [0x40e080], eax
mov eax, 0
mov dword [0x40e0a4], eax
mov eax, 0
mov dword [0x40e0b0], eax
mov eax, 0
mov dword [0x40e0b4], eax
mov eax, 1
mov dword [0x40e094], eax
sub eax, eax
mov dword [0x40e09c], eax
sub eax, eax
mov dword [0x40e0a0], eax
mov eax, 0
mov dword [0x40e0b8], eax
mov eax, 0
mov dword [0x40e0bc], eax
mov eax, 0
mov dword [0x40e0c0], eax
call fcn.00404af8
mov eax, 0x320
mov dword [0x40e0c8], eax
mov eax, 0x285
mov dword [0x40e0cc], eax
mov eax, 0xe
mov dword [0x40e0d0], eax
mov eax, 3
mov dword [0x40e0d4], eax
mov eax, 0x40e0c8
mov dword [0x40e0d8], eax
push 0
push sym._Top01AA
push 0
push 0x66
push dword [0x40dcce]
call sub.USER32.dll_DialogBoxParamA
sub eax, eax
push eax
push esi
push dword [0x40dcd2]
call sub.KERNEL32.dll_GlobalFree
pop eax
sub eax, 0x40dcf0
je 0x40ae83
mov dword [0x40dc60], eax
push ecx
push pe_overlay
push 0x40d3d9
call fcn.00401000
push 0
push 0x40dc68
push eax
push 0x40d3d9
push dword [0x40dc78]
call sub.KERNEL32.dll_WriteFile
pop ecx
mov eax, dword [0x40dc68]
push esi
mov esi, dword [0x40dc60]
call fcn.004010fc
pop esi
push ecx
push pe_overlay
push 0x40dc80
call fcn.00401000
push 0
push 0x40dc68
push eax
push 0x40dc80
push dword [0x40dc78]
call sub.KERNEL32.dll_WriteFile
pop ecx
mov eax, dword [0x40dc68]
call fcn.004023fa
push dword [0x40db50]
call sub.KERNEL32.dll_GlobalFree
push dword [0x40d710]
call sub.KERNEL32.dll_GlobalFree
pop eax
push eax
call sub.KERNEL32.dll_ExitProcess