Function at 0x59823734
Capabilities:
Create process on windows
Delete file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x5982373d
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call sub.rtl120.bpl__System__IntfAddRef_qqrx45System__DelphiInterface_t17System_IInterface_
mov eax, dword [ebp - 8]
call sub.rtl120.bpl__System__IntfAddRef_qqrx45System__DelphiInterface_t17System_IInterface_
mov eax, dword [ebp + 8]
call sub.rtl120.bpl__System__IntfAddRef_qqrx45System__DelphiInterface_t17System_IInterface_
xor eax, eax
push ebp
push 0x59823b40
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp + 8], 0
je 0x59823ad7
sub bl, 1
jb 0x59823798
dec bl
je 0x59823a35
dec bl
je 0x598237fb
jmp 0x59823ad7
lea ecx, [ebp - 0x14]
mov edx, 0x59823b5c
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x64]
cmp dword [ebp - 0x14], 0
je 0x598237c7
lea edx, [ebp - 0x5c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call dword [ecx + 0x3c8]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x30]
lea ecx, [ebp - 0x18]
mov edx, 0x59823b80
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x60]
cmp dword [ebp - 0x18], 0
je 0x59823ad7
mov eax, dword [ebp + 8]
mov edx, dword [eax]
call dword [edx + 0x404]
mov edx, eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x34]
jmp 0x59823ad7
lea eax, [ebp - 0xc]
call fcn.598236a4
test al, al
je 0x59823ad7
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x78]
mov ebx, eax
cmp dword [ebp - 8], 0
jne 0x59823898
test ebx, ebx
je 0x59823ad7
mov eax, dword [ebp - 0xc]
call fcn.598235dc
cmp eax, dword [ebx]
je 0x59823ad7
lea ecx, [ebp - 0x14]
mov edx, 0x59823b5c
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x64]
cmp dword [ebp - 0x14], 0
je 0x59823ad7
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call sym.madExcept_.bpl__Madnvbitmap_LoadBitmap_qqrx20System_UnicodeString
cmp dword [ebp - 0x1c], 0
je 0x59823ad7
mov eax, dword [ebp - 0xc]
call fcn.598235dc
mov dword [ebx], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call dword [ecx + 0x3cc]
lea edx, [ebp - 0x60]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call dword [ecx + 0x3c8]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x30]
jmp 0x59823ad7
lea eax, [ebp - 0x14]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
push eax
push 0x59823b98
mov eax, dword [ebp - 8]
push eax
mov eax, dword [eax]
call dword [eax]
test eax, eax
jne 0x59823ad7
lea edx, [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
cmp dword [ebp - 0x64], 0
je 0x59823ad7
test ebx, ebx
jne 0x59823925
lea edx, [ebp - 0x68]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call dword [ecx + 0x3c8]
cmp dword [ebp - 0x68], 0
je 0x59823925
lea edx, [ebp - 0x6c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call dword [ecx + 0x3c8]
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x20]
test al, al
je 0x59823925
mov eax, 8
call sub.rtl120.bpl__System__GetMem_qqri
mov ebx, eax
xor eax, eax
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0xc]
call fcn.598235dc
mov dword [ebx], eax
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x7c]
test ebx, ebx
je 0x59823ad7
mov esi, dword [ebx + 4]
test esi, esi
je 0x5982394e
push 0
push esi
call sub.kernel32.dll_WaitForSingleObject
test eax, eax
jne 0x5982394e
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_CloseHandle
xor eax, eax
mov dword [ebx + 4], eax
cmp dword [ebx + 4], 0
jne 0x59823ad7
lea eax, [ebp - 0x58]
mov edx, 0x3c
call fcn.59802018
mov dword [ebp - 0x58], 0x3c
mov dword [ebp - 0x54], 0x40
mov dword [ebp - 0x3c], 3
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x598239ec
mov eax, 0x59823ba8
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xc]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
mov dword [ebp - 0x48], eax
cmp dword [0x59857a44], 0
jne 0x598239bc
push 0x59823bb4
push 0x59823bd4
call sub.kernel32.dll_GetModuleHandleW
push eax
call fcn.59801964
mov dword [0x59857a44], eax
cmp dword [0x59857a44], 0
je 0x598239de
lea eax, [ebp - 0x58]
push eax
call dword [0x59857a44]
test eax, eax
je 0x598239de
mov eax, dword [ebp - 0x20]
mov dword [ebx + 4], eax
jmp 0x59823ad7
push 0x3c
push 0x3c
call sub.kernel32.dll_Beep
jmp 0x59823ad7
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, 0x59823bec
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x58]
push eax
call sub.shell32.dll_ShellExecuteExA
test eax, eax
je 0x59823a27
mov eax, dword [ebp - 0x20]
mov dword [ebx + 4], eax
jmp 0x59823ad7
push 0x3c
push 0x3c
call sub.kernel32.dll_Beep
jmp 0x59823ad7
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x78]
mov ebx, eax
test ebx, ebx
je 0x59823aac
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x7c]
mov eax, dword [ebx + 4]
test eax, eax
je 0x59823a5a
push eax
call sub.kernel32.dll_CloseHandle
mov edx, 8
mov eax, ebx
call sub.rtl120.bpl__System__FreeMem_qqrpv
lea eax, [ebp - 0xc]
call fcn.598236a4
test al, al
je 0x59823aac
call sub.kernel32.dll_GetVersion
test eax, 0x80000000
jne 0x59823a8e
mov eax, dword [ebp - 0xc]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_DeleteFileW
jmp 0x59823aac
lea eax, [ebp - 0x70]
mov edx, dword [ebp - 0xc]
mov ecx, 0
call sub.rtl120.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
mov eax, dword [ebp - 0x70]
call sub.rtl120.bpl__System__LStrToPChar_qqrx27System__AnsiStringT_us_i0__
push eax
call sub.kernel32.dll_DeleteFileA
lea ecx, [ebp - 0x18]
mov edx, 0x59823b80
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x60]
cmp dword [ebp - 0x18], 0
je 0x59823ad7
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call dword [ecx + 0x408]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x59823b47
lea eax, [ebp - 0x70]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x6c]
mov edx, dword [sym.madExcept_.bpl___xp_21Madnvbitmap_INVBitmap]
mov ecx, 5
call sub.rtl120.bpl__System__FinalizeArray_qqrpvt1ui
lea eax, [ebp - 0x1c]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x18]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x14]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 0x10]
call sub.rtl120.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0xc]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 8]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp - 4]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
lea eax, [ebp + 8]
call sub.rtl120.bpl__System__IntfClear_qqrr45System__DelphiInterface_t17System_IInterface_
ret