Function at 0x45f0c0
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdd4
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x220], ecx
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x214], ecx
mov dword [ebp - 0x218], ecx
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x210], ecx
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x208], ecx
test dl, dl
je 0x45f115
add esp, 0xfffffff0
call sub.rtl170.bpl__System__ClassCreate_qqrpvzc
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x45f2eb
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, esi
call sub.rtl170.bpl__System_TObject__bctr_qqrv
lea edx, [ebp - 0x208]
mov eax, esi
call fcn.0045f354
mov edx, dword [ebp - 0x208]
lea eax, [esi + 4]
call sub.rtl170.bpl__System__LStrAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
lea edx, [ebp - 0x20c]
mov eax, esi
call fcn.0045f3e8
mov edx, dword [ebp - 0x20c]
lea eax, [esi + 8]
call sub.rtl170.bpl__System__LStrAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
mov dword [ebp - 4], 0x200
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x204]
push eax
call sub.advapi32.dll_GetUserNameW
lea eax, [ebp - 0x210]
lea edx, [ebp - 0x204]
mov ecx, pe_nt_image_headers32
call sub.rtl170.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
mov edx, dword [ebp - 0x210]
lea eax, [esi + 0xc]
mov ecx, 0
call sub.rtl170.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
call sub.kernel32.dll_GetCurrentProcessId
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x218]
call sub.rtl170.bpl__System_Sysutils_IntToStr_qqrj
push dword [ebp - 0x218]
push 0x45f31c
call sub.kernel32.dll_GetCurrentThreadId
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x21c]
call sub.rtl170.bpl__System_Sysutils_IntToStr_qqrj
push dword [ebp - 0x21c]
lea eax, [ebp - 0x214]
mov edx, 3
call sub.rtl170.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x214]
lea eax, [esi + 0x10]
mov ecx, 0
call sub.rtl170.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
push 0x200
lea eax, [ebp - 0x204]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameW
lea eax, [ebp - 0x224]
lea edx, [ebp - 0x204]
mov ecx, pe_nt_image_headers32
call sub.rtl170.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
mov eax, dword [ebp - 0x224]
lea edx, [ebp - 0x220]
call sub.rtl170.bpl__System_Sysutils_ExtractFileName_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x220]
lea eax, [esi + 0x14]
mov ecx, 0
call sub.rtl170.bpl__System__LStrFromUStr_qqrr27System__AnsiStringT_us_i0__x20System_UnicodeStringus
movzx eax, byte [0x45f320]
push eax
lea eax, [ebp - 0x228]
push eax
mov eax, dword [esi + 0x14]
mov ecx, 0x45f330
mov edx, 0x45f340
call sub.rtl170.bpl__System_Ansistrings_StringReplace_qqrx27System__AnsiStringT_us_i0__t1t163System__Set_t35System_Sysutils_System_
mov edx, dword [ebp - 0x228]
lea eax, [esi + 0x14]
call sub.rtl170.bpl__System__LStrAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
movzx eax, byte [0x45f320]
push eax
lea eax, [ebp - 0x22c]
push eax
mov eax, dword [esi + 0x14]
mov ecx, 0x45f330
mov edx, 0x45f350
call sub.rtl170.bpl__System_Ansistrings_StringReplace_qqrx27System__AnsiStringT_us_i0__t1t163System__Set_t35System_Sysutils_System_
mov edx, dword [ebp - 0x22c]
lea eax, [esi + 0x14]
call sub.rtl170.bpl__System__LStrAsg_qqrr27System__AnsiStringT_us_i0__x27System__AnsiStringT_us_i0__
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45f2f2
lea eax, [ebp - 0x22c]
mov edx, 2
call sub.rtl170.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x224]
mov edx, 6
call sub.rtl170.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x20c]
mov edx, 2
call sub.rtl170.bpl__System__LStrArrayClr_qqrpvi
ret