joyce8/EMBER2024-capa huggingface dataset:
Function at 0x500782b8
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
je 0x500782e9
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sCannotListenOnOpen]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRec
call sym.rtl120.bpl__System__RaiseExcept_qqrv
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 4], ebx
inc ebx
jne 0x50078316
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sCannotCreateSocket]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRec
call sym.rtl120.bpl__System__RaiseExcept_qqrv
xor eax, eax
push ebp
push 0x50078397
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xffff
call sym.rtl120.bpl__System__CallDynaInst_qqrv
cmp byte [ebp + 8], 0
je 0x50078371
mov eax, dword [ebp + 0x14]
push eax
movzx eax, word [ebp + 0x10]
push eax
push 0
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 8]
mov edx, edi
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_InitSocket_qqrx20System_UnicodeStringt1t1uso
mov eax, dword [ebp - 4]
lea esi, [ebp - 0x18]
lea edi, [eax + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_DoListen_qqri
jmp 0x5007838d
mov eax, dword [ebp + 0x14]
push eax
movzx eax, word [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0
mov ecx, dword [ebp - 8]
mov edx, edi
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_AsyncInitSocket_qqrx20System_UnicodeStringt1t1usio
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x500783b4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x500783c0
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
je 0x500783f1
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sSocketAlreadyOpen]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRec
call sym.rtl120.bpl__System__RaiseExcept_qqrv
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 4], ebx
inc ebx
jne 0x5007841e
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sCannotCreateSocket]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRec
call sym.rtl120.bpl__System__RaiseExcept_qqrv
xor eax, eax
push ebp
push 0x5007849a
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xffff
call sym.rtl120.bpl__System__CallDynaInst_qqrv
cmp byte [ebp + 8], 0
je 0x50078476
mov eax, dword [ebp + 0x10]
push eax
movzx eax, word [ebp + 0xc]
push eax
push 1
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 8]
mov edx, edi
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_InitSocket_qqrx20System_UnicodeStringt1t1uso
mov eax, dword [ebp - 4]
lea esi, [ebp - 0x18]
lea edi, [eax + 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_DoOpen_qqrv
jmp 0x50078490
mov eax, dword [ebp + 0x10]
push eax
movzx eax, word [ebp + 0xc]
push eax
push 0
push 1
mov ecx, dword [ebp - 8]
mov edx, edi
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_AsyncInitSocket_qqrx20System_UnicodeStringt1t1usio
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x500784b7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x5007872c
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Lock_qqrv
xor eax, eax
push ebp
push 0x5007889f
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
je 0x50078889
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0xffffffff
je 0x50078778
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
jne 0x50078782
call sym.rtl120.bpl__System__TryFinallyExit_qqrv
jmp 0x500788a6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call sym.rtl120.bpl__Classes_TStream_GetPosition_qqrv
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x1010]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov ecx, 0x1000
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, eax
test ebx, ebx
jle 0x5007887e
push 0
push ebx
lea eax, [ebp - 0x1010]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_send
mov edi, eax
cmp edi, 0xffffffff
jne 0x50078831
call sub.wsock32.dll_WSAGetLastError
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x2733
je 0x5007881e
lea eax, [ebp - 0x10]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffe
call sym.rtl120.bpl__System__CallDynaInst_qqrv
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 8]
push ebp
call fcn.500786e4
pop ecx
mov eax, dword [ebp - 4]
movzx edx, byte [0x500788b4]
cmp dl, byte [eax + 0x28]
je 0x50078885
call sym.rtl120.bpl__Sysutils_Abort_qqrv
jmp 0x50078885
mov eax, dword [ebp - 0xc]
cdq
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call sym.rtl120.bpl__Classes_TStream_SetPosition_qqrxj
jmp 0x50078885
cmp edi, ebx
jge 0x5007884d
mov eax, dword [ebp - 0xc]
add eax, edi
cdq
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call sym.rtl120.bpl__Classes_TStream_SetPosition_qqrxj
jmp 0x50078782
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, dword [eax]
call dword [edx]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call sym.rtl120.bpl__Classes_TStream_GetPosition_qqrv
cmp edx, dword [esp + 4]
jne 0x5007886d
cmp eax, dword [esp]
pop edx
pop eax
jne 0x50078782
push ebp
call fcn.500786e4
pop ecx
jmp 0x50078885
push ebp
call fcn.500786e4
pop ecx
mov byte [ebp - 5], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x500788a6
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Unlock_qqrv
ret
movzx eax, byte [ebp - 5]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x500788e8
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x50078a0a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Lock_qqrv
xor eax, eax
push ebp
push 0x500789ed
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
jne 0x50078938
call sym.rtl120.bpl__System__TryFinallyExit_qqrv
jmp 0x500789f4
push 0
push esi
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_send
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x500789d7
call sub.wsock32.dll_WSAGetLastError
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x2733
je 0x500789d7
lea eax, [ebp - 0xc]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffe
call sym.rtl120.bpl__System__CallDynaInst_qqrv
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp - 0xc], 0
je 0x500789d7
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0xc]
call sym.rtl120.bpl__Sysutils_SysErrorMessage_qqrui
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0x11
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x18], 0
mov eax, 0x50078a28
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x10], 0x11
lea eax, [ebp - 0x24]
push eax
push 2
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sWindowsSocketError]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRecpx14System_TVarRecxi
call sym.rtl120.bpl__System__RaiseExcept_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x500789f4
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Unlock_qqrv
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50078a11
lea eax, [ebp - 0x28]
call sym.rtl120.bpl__System__UStrClr_qqrpv
ret
Function at 0x50078a78
Capabilities:
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov ebx, ecx
mov esi, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x50078be9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Lock_qqrv
xor eax, eax
push ebp
push 0x50078bcc
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
cmp ebx, 0xffffffff
jne 0x50078add
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
je 0x50078add
lea eax, [ebp - 8]
push eax
push 0x4004667f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_ioctlsocket
jmp 0x50078bb6
mov eax, dword [ebp - 4]
cmp byte [eax + 8], 0
jne 0x50078af0
call sym.rtl120.bpl__System__TryFinallyExit_qqrv
jmp 0x50078bd3
lea eax, [ebp - 0x10]
push eax
push 0x4004667f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_ioctlsocket
test eax, eax
jne 0x50078b17
cmp dword [ebp - 0x10], 0
jle 0x50078b17
cmp ebx, dword [ebp - 0x10]
jle 0x50078b17
mov ebx, dword [ebp - 0x10]
push 0
push ebx
push esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_recv
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x50078bb6
call sub.wsock32.dll_WSAGetLastError
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x2733
je 0x50078bb6
lea eax, [ebp - 0xc]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffe
call sym.rtl120.bpl__System__CallDynaInst_qqrv
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebp - 0xc], 0
je 0x50078bb6
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call sym.rtl120.bpl__Sysutils_SysErrorMessage_qqrui
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x24], 0x11
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0
mov eax, 0x50078c08
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0x11
lea eax, [ebp - 0x28]
push eax
push 2
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sWindowsSocketError]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRecpx14System_TVarRecxi
call sym.rtl120.bpl__System__RaiseExcept_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50078bd3
mov eax, dword [ebp - 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Unlock_qqrv
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50078bf0
lea eax, [ebp - 0x2c]
call sym.rtl120.bpl__System__UStrClr_qqrpv
ret
Function at 0x50079368
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
mov dword [ebp - 4], 4
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
push 0x7008
push 0xffff
push 0xffffffffffffffff
call sub.wsock32.dll_getsockopt
test eax, eax
jne 0x500794ad
xor edx, edx
push ebp
push 0x500794a6
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [ebx + 0x58], 1
jne 0x500793d1
mov dword [ebp - 0xc], 0x20
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
push 0x7008
push 0xffff
push 0xffffffffffffffff
call sub.wsock32.dll_setsockopt
mov dword [ebp - 4], 0x10
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
call sub.wsock32.dll_accept
cmp eax, 0xffffffff
je 0x50079478
mov edx, eax
mov eax, ebx
mov si, 0xfffb
call sym.rtl120.bpl__System__CallDynaInst_qqrv
mov esi, eax
cmp word [ebx + 0x32], 0
je 0x50079411
push 5
mov ecx, esi
mov edx, ebx
mov eax, dword [ebx + 0x34]
call dword [ebx + 0x30]
cmp byte [ebx + 0x58], 1
jne 0x50079478
movzx edx, byte [0x500794b4]
mov eax, esi
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_SetAsyncStyles_qqr48System__Set_t20Scktcomp_TAsyncStyle_iuc_0_iuc_5_
xor eax, eax
push ebp
push 0x5007944a
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, esi
mov eax, ebx
mov si, 0xfffa
call sym.rtl120.bpl__System__CallDynaInst_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x50079478
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x500794ad
mov dword [ebp - 4], 4
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
push 0x7008
push 0xffff
push 0xffffffffffffffff
call sub.wsock32.dll_setsockopt
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x50079cfc
Capabilities:
Get socket status

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffef4
mov ebx, eax
lea esi, [esp + 8]
mov edi, esp
jmp 0x50079d87
mov eax, esi
call fcn.50075f28
mov edx, esi
mov eax, dword [ebx + 0x40]
mov eax, dword [eax + 4]
call fcn.50075f18
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], 0x1f4
push edi
push 0
push 0
push esi
push 0
call sub.wsock32.dll_select
test eax, eax
jle 0x50079d63
cmp byte [ebx + 0xd], 0
jne 0x50079d63
mov edx, esi
or ecx, 0xffffffff
mov eax, dword [ebx + 0x40]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_ReceiveBuf_qqrpvi
test eax, eax
je 0x50079d9a
push ebx
push sym.rtl120.bpl__Scktcomp_TServerClientThread_DoRead_qqrv
mov eax, ebx
call sym.rtl120.bpl__Classes_TThread_Synchronize_qqrynpqqrv_v
push edi
push 0
push esi
push 0
push 0
call sub.wsock32.dll_select
test eax, eax
jle 0x50079d87
cmp byte [ebx + 0xd], 0
jne 0x50079d87
push ebx
push sym.rtl120.bpl__Scktcomp_TServerClientThread_DoWrite_qqrv
mov eax, ebx
call sym.rtl120.bpl__Classes_TThread_Synchronize_qqrynpqqrv_v
cmp byte [ebx + 0xd], 0
jne 0x50079d9a
mov eax, dword [ebx + 0x40]
cmp byte [eax + 8], 0
jne 0x50079d0f
add esp, 0x10c
pop edi
pop esi
pop ebx
ret
Function at 0x5007a200
Capabilities:
Get socket status

Disassembly:
push ebx
push esi
add esp, 0xfffffef4
mov ecx, edx
mov ebx, eax
mov eax, ecx
mov esi, 0x3e8
cdq
idiv esi
mov dword [esp], eax
mov eax, ecx
mov ecx, 0x3e8
cdq
idiv ecx
imul eax, edx, 0x3e8
mov dword [esp + 4], eax
lea eax, [esp + 8]
call fcn.50075f28
lea edx, [esp + 8]
mov eax, dword [ebx + 4]
mov eax, dword [eax + 4]
call fcn.50075f18
push esp
push 0
push 0
lea eax, [esp + 0x14]
push eax
push 0
call sub.wsock32.dll_select
test eax, eax
setg al
add esp, 0x10c
pop esi
pop ebx
ret

Function at 0x5007a264
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], ebx
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5007a3b7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Lock_qqrv
xor eax, eax
push ebp
push 0x5007a395
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1c]
xor ecx, ecx
mov edx, 0x14
call sym.rtl120.bpl__System__FillChar_qqrpvib
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 8]
push eax
push esi
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_ReadFile_1
test eax, eax
jne 0x5007a33c
call sub.kernel32.dll_GetLastError_1
cmp eax, 0x3e5
je 0x5007a33c
call sub.kernel32.dll_GetLastError_1
mov ebx, eax
lea edx, [ebp - 0x38]
mov eax, dword [sym.rtl120.bpl__Rtlconsts__sSocketRead]
call sym.rtl120.bpl__System_LoadResString_qqrp20System_TResStringRec
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0x11
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x28], 0
lea edx, [ebp - 0x3c]
mov eax, ebx
call sym.rtl120.bpl__Sysutils_SysErrorMessage_qqrui
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0x11
lea eax, [ebp - 0x34]
push eax
push 2
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sSocketIOError]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRecpx14System_TVarRecxi
call sym.rtl120.bpl__System__RaiseExcept_qqrv
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
je 0x5007a358
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x5007a37c
push 0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_GetOverlappedResult
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call sym.rtl120.bpl__Syncobjs_TEvent_ResetEvent_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5007a39c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Unlock_qqrv
ret
Function at 0x5007a3c8
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], ebx
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5007a510
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Lock_qqrv
xor eax, eax
push ebp
push 0x5007a4ee
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1c]
xor ecx, ecx
mov edx, 0x14
call sym.rtl120.bpl__System__FillChar_qqrpvib
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 8]
push eax
push esi
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_WriteFile_1
test eax, eax
jne 0x5007a4a0
call sub.kernel32.dll_GetLastError_1
cmp eax, 0x3e5
je 0x5007a4a0
call sub.kernel32.dll_GetLastError_1
mov ebx, eax
lea edx, [ebp - 0x38]
mov eax, dword [sym.rtl120.bpl__Rtlconsts__sSocketWrite]
call sym.rtl120.bpl__System_LoadResString_qqrp20System_TResStringRec
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0x11
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x28], 0
lea edx, [ebp - 0x3c]
mov eax, ebx
call sym.rtl120.bpl__Sysutils_SysErrorMessage_qqrui
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0x11
lea eax, [ebp - 0x34]
push eax
push 2
mov ecx, dword [sym.rtl120.bpl__Rtlconsts__sSocketIOError]
mov dl, 1
mov eax, dword [sym.rtl120.bpl__Scktcomp_ESocketError_]
call sym.rtl120.bpl__Sysutils_Exception__bctr_qqrp20System_TResStringRecpx14System_TVarRecxi
call sym.rtl120.bpl__System__RaiseExcept_qqrv
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
test al, al
je 0x5007a4bc
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x5007a4d5
push 0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
push eax
call sub.kernel32.dll_GetOverlappedResult
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5007a4f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call sym.rtl120.bpl__Scktcomp_TCustomWinSocket_Unlock_qqrv
ret

Function at 0x5007a994
Capabilities:
Check os version

Disassembly:
unpckhps xmm1, xmmword [ecx + 0x47]
je 0x5007a9de
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5007aa04
js 0x5007aa15
push eax
jb 0x5007aa13
jo 0x5007aa0b
jb 0x5007aa1c
imul esp, dword [ebp + 0x73], 0x50001360
add esp, esi
sub dh, byte [edi]
push ecx
out 0xca, eax
iretd
jb 0x5007aa82
mov esi, 0xaa0081
mov byte [0x4d0325fa], al
je sym.rtl120.bpl___xp_19ITransactionContext
add eax, 0x30ffff00
stosb byte es:[edi], al
pop es
push eax
Function at 0x5007a9fc
Capabilities:
Check os version

Disassembly:
movups xmmword [ecx + 0x53], xmm1
arpl word gs:[ebp + 0x72], si
imul esi, dword [ecx + edi*2 + 0x50], 0x65706f72
jb 0x5007aa82
jns 0x5007aa70
adc eax, dword [eax]
push eax
add edx, ebp
sub dh, byte [edi]
push ecx
out 0xca, eax
iretd

Function at 0x5007aa64
Capabilities:
Check os version

Disassembly:
movhps xmm1, qword [ecx + 0x4f]
bound ebp, qword [edx + 0x65]
arpl word [ebx + eax*2 + 0x6f], si
outsb dx, byte [esi]
je 0x5007aad7
js 0x5007aae8
inc ecx
arpl word [ecx + ebp*2 + 0x76], si
imul esi, dword [ecx + edi*2 + 0x60], 0x1500013
cld
sub dh, byte [edi]
push ecx

Function at 0x5007aaa0
Capabilities:
Check os version

Disassembly:
out 0xca, eax
iretd
movlps qword [ecx + 0x54], xmm1
jb 0x5007ab07
outsb dx, byte [esi]
jae 0x5007ab0a
arpl word [ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5007ab18
js 0x5007ab29
pop esp
adc al, 0
push eax
add dword [ecx], esp
cld
cdq
jns 0x5007aa85
invalid
sub bl, dh
movsd dword es:[edi], dword [esi]
iretd

Function at 0x5007aad8
Capabilities:
Check os version

Disassembly:
ror edi, cl
adc dword [ebx + ebp*4 - 0x5adb6000], ebp
pop edx
out dx, eax
add ecx, dword [ebp + 0x74]
js 0x5007aad2
add bh, bh
dec dword [ebx + 0x7aad8c0]
mov eax, eax
fsubr dword [edx + 0x150f5007]
unpckhps xmm1, xmmword [ecx + 0x54]
push eax
unpckhps xmm1, xmmword [ecx + 0x54]
jb 0x5007ab3f
outsb dx, byte [esi]
jae 0x5007ab42
arpl word [ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
inc ebx
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x5007ab50
js 0x5007ab61
inc ebp
js 0x5007ab50
adc eax, dword [eax]
push eax
add dword [edx], esp
cld
cdq
jns 0x5007aabf
ror edi, cl
adc dword [ebx + ebp*4 - 0x5adb6000], ebp
pop edx
out dx, eax
add ecx, dword [ebp + 0x74]
js 0x5007ab0c
add bh, bh
call dword [eax]
stosd dword es:[edi], eax
pop es
push eax
adc byte [ebx + 0xf0f5007], ch
dec ecx
push ebx
push 0x64657261
push eax
rol byte [ebx + ebp*4 + 7], 0x50
pop es

Function at 0x5007ab44
Capabilities:
Check os version

Disassembly:
unpcklps xmm1, xmmword [ecx + 0x53]
push 0x64657261
push eax
jb 0x5007abbf
jo 0x5007abb7
jb 0x5007abc8
jns 0x5007ab9d
jb 0x5007abc7
jne 0x5007abca
pop esp
adc al, 0
push eax
add dword [edi], eax
pop esp
add byte [edx], ch
fisub word [ebp + 0x669e11cf]
add byte [edx + 0x64f4a300], ch
add ecx, dword [ebp + 0x74]
js 0x5007ab7a
add bh, bh
call dword [eax + sym.rtl120.bpl___xp_27ISharedPropertyGroupManager]
pop es
push eax
rol byte [ecx - 0x1133c], 0xff
mov dword [esp], 0x114
add al, 0x24
adc al, 1
add byte [eax], al
push esp
call sub.kernel32.dll_GetVersionExW
cmp dword [esp + 0x10], 2
pop ebp
cmp eax, 0x7c83fff9
and al, 0x10
add dh, byte [ebp + 0xb]
inc dword [ebx + 0x210247c]
jne 0x5007abdd
cmp dword [esp + 4], 5