joyce8/EMBER2024-capa huggingface dataset:
Function at 0x7c025013
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
and dword [ebp - 8], 0
cmp dword [ebp + 0x10], 0
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edx, ebx
je 0x7c0251d9
mov eax, dword [ebp + 8]
mov ecx, eax
and eax, 0x1f
sar ecx, 5
lea esi, [eax + eax*8]
lea edi, [ecx*4 + sym.MSVCR70.dll___pioinfo]
mov eax, dword [edi]
shl esi, 2
add eax, esi
mov cl, byte [eax + 4]
test cl, 2
jne 0x7c0251d9
test cl, 0x48
je 0x7c025079
mov al, byte [eax + 5]
cmp al, 0xa
je 0x7c025079
dec dword [ebp + 0x10]
mov byte [ebx], al
mov eax, dword [edi]
lea edx, [ebx + 1]
mov dword [ebp - 8], 1
mov byte [eax + esi + 5], 0xa
push 0
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x10]
mov eax, dword [edi]
push edx
push dword [esi + eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x7c0250cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 5
pop esi
cmp eax, esi
jne 0x7c0250b3
call sym.MSVCR70.dll__errno
mov dword [eax], 9
call sym.MSVCR70.dll___doserrno
mov dword [eax], esi
jmp 0x7c0250c3
cmp eax, 0x6d
je 0x7c0251d9
push eax
call fcn.7c0102b7
pop ecx
or eax, 0xffffffff
jmp 0x7c0251db
mov eax, dword [edi]
mov edx, dword [ebp - 0xc]
add dword [ebp - 8], edx
lea ecx, [esi + eax + 4]
mov al, byte [ecx]
test al, al
jns 0x7c0251d4
test edx, edx
je 0x7c0250ee
cmp byte [ebx], 0xa
jne 0x7c0250ee
or al, 4
jmp 0x7c0250f0
and al, 0xfb
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
add ecx, eax
cmp eax, ecx
mov dword [ebp + 0x10], eax
mov dword [ebp - 8], ecx
jae 0x7c0251ce
mov eax, dword [ebp + 0x10]
mov al, byte [eax]
cmp al, 0x1a
je 0x7c0251be
cmp al, 0xd
je 0x7c025124
mov byte [ebx], al
inc ebx
inc dword [ebp + 0x10]
jmp 0x7c0251b0
dec ecx
cmp dword [ebp + 0x10], ecx
jae 0x7c02513e
mov eax, dword [ebp + 0x10]
inc eax
cmp byte [eax], 0xa
jne 0x7c025139
add dword [ebp + 0x10], 2
jmp 0x7c025192
mov dword [ebp + 0x10], eax
jmp 0x7c0251ac
inc dword [ebp + 0x10]
push 0
lea eax, [ebp - 0xc]
push eax
push 1
lea eax, [ebp - 1]
push eax
mov eax, dword [edi]
push dword [esi + eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x7c025166
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x7c0251ac
cmp dword [ebp - 0xc], 0
je 0x7c0251ac
mov eax, dword [edi]
test byte [eax + esi + 4], 0x48
je 0x7c025187
mov al, byte [ebp - 1]
cmp al, 0xa
je 0x7c025192
mov byte [ebx], 0xd
mov ecx, dword [edi]
mov byte [ecx + esi + 5], al
jmp 0x7c0251af
cmp ebx, dword [ebp + 0xc]
jne 0x7c025197
cmp byte [ebp - 1], 0xa
jne 0x7c025197
mov byte [ebx], 0xa
jmp 0x7c0251af
push 1
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.7c015c2e
add esp, 0xc
cmp byte [ebp - 1], 0xa
je 0x7c0251b0
mov byte [ebx], 0xd
inc ebx
mov ecx, dword [ebp - 8]
cmp dword [ebp + 0x10], ecx
jb 0x7c025108
jmp 0x7c0251ce
mov eax, dword [edi]
lea esi, [esi + eax + 4]
mov al, byte [esi]
test al, 0x40
jne 0x7c0251ce
or al, 2
mov byte [esi], al
sub ebx, dword [ebp + 0xc]
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 8]
jmp 0x7c0251db
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x7c0284d7
Capabilities:
Query environment variable

Disassembly:
push ecx
push ecx
mov eax, dword [0x7c04f564]
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
cmp eax, ebx
jne 0x7c028520
call ebp
mov esi, eax
cmp esi, ebx
je 0x7c028506
mov dword [0x7c04f564], 1
jmp 0x7c028525
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x7c02851b
push 2
pop eax
mov dword [0x7c04f564], eax
jmp 0x7c028520
mov eax, dword [0x7c04f564]
cmp eax, 1
jne 0x7c02857d
cmp esi, ebx
jne 0x7c028538
call ebp
mov esi, eax
cmp esi, ebx
jne 0x7c028538
xor eax, eax
jmp 0x7c028624
cmp word [esi], bx
mov eax, esi
je 0x7c02854d
inc eax
inc eax
cmp word [eax], bx
jne 0x7c02853f
inc eax
inc eax
cmp word [eax], bx
jne 0x7c02853f
sub eax, esi
inc eax
inc eax
mov ebp, eax
push ebp
call sym.MSVCR70.dll_malloc
mov edi, eax
cmp edi, ebx
pop ecx
jne 0x7c028570
xor edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, edi
jmp 0x7c028624
push ebp
push esi
push edi
call sym.MSVCR70.dll_memcpy
add esp, 0xc
jmp 0x7c028562
cmp eax, 2
je 0x7c028586
cmp eax, ebx
jne 0x7c028531
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
mov ebp, eax
cmp ebp, ebx
je 0x7c028531
cmp byte [ebp], bl
mov esi, ebp
je 0x7c0285bc
push ebx
push ebx
push 0xffffffffffffffff
push esi
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, ebx
je 0x7c028531
push esi
add edi, eax
call sym.MSVCR70.dll_strlen
lea esi, [esi + eax + 1]
cmp byte [esi], bl
pop ecx
jne 0x7c028599
inc edi
lea eax, [edi + edi]
push eax
mov dword [esp + 0x18], edi
call sym.MSVCR70.dll_malloc
cmp eax, ebx
pop ecx
mov dword [esp + 0x10], eax
je 0x7c028635
cmp byte [ebp], bl
mov edi, ebp
mov esi, eax
je 0x7c028616
mov ecx, dword [esp + 0x14]
mov eax, esi
sub eax, dword [esp + 0x10]
sar eax, 1
sub ecx, eax
push ecx
push esi
push 0xffffffffffffffff
push edi
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x7c02862b
push edi
call sym.MSVCR70.dll_strlen
push esi
lea edi, [edi + eax + 1]
call sym.MSVCR70.dll_wcslen
cmp byte [edi], bl
pop ecx
pop ecx
lea esi, [esi + eax*2 + 2]
jne 0x7c0285dc
push ebp
mov word [esi], bx
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret
push dword [esp + 0x10]
call sym.MSVCR70.dll_free
pop ecx
push ebp
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
jmp 0x7c028531
Function at 0x7c03070e
Capabilities:
Timestomp file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x7c03072f
lea eax, [ebp - 4]
push eax
call sym.MSVCR70.dll_time
mov eax, dword [ebp - 4]
pop ecx
mov dword [ebp - 8], eax
lea edi, [ebp - 8]
lea eax, [edi + 4]
push eax
call sym.MSVCR70.dll_localtime
test eax, eax
pop ecx
jne 0x7c030750
call sym.MSVCR70.dll__errno
mov dword [eax], 0x16
or eax, 0xffffffff
jmp 0x7c030851
mov cx, word [eax + 0x14]
add cx, 0x76c
mov word [ebp - 0x30], cx
mov cx, word [eax + 0x10]
inc cx
mov word [ebp - 0x2e], cx
mov cx, word [eax + 0xc]
mov word [ebp - 0x2a], cx
mov cx, word [eax + 8]
mov word [ebp - 0x28], cx
mov cx, word [eax + 4]
mov word [ebp - 0x26], cx
mov ax, word [eax]
and word [ebp - 0x22], 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov word [ebp - 0x24], ax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x30]
push eax
call esi
test eax, eax
je 0x7c030842
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
test eax, eax
je 0x7c030842
push edi
call sym.MSVCR70.dll_localtime
test eax, eax
pop ecx
je 0x7c030842
mov cx, word [eax + 0x14]
add cx, 0x76c
mov word [ebp - 0x30], cx
mov cx, word [eax + 0x10]
inc cx
mov word [ebp - 0x2e], cx
mov cx, word [eax + 0xc]
mov word [ebp - 0x2a], cx
mov cx, word [eax + 8]
mov word [ebp - 0x28], cx
mov cx, word [eax + 4]
mov word [ebp - 0x26], cx
mov ax, word [eax]
and word [ebp - 0x22], 0
mov word [ebp - 0x24], ax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x30]
push eax
call esi
test eax, eax
je 0x7c030842
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
test eax, eax
je 0x7c030842
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push dword [ebp + 8]
call sym.MSVCR70.dll__get_osfhandle
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
je 0x7c030842
xor eax, eax
jmp 0x7c030850
call sym.MSVCR70.dll__errno
mov dword [eax], 0x16
or eax, 0xffffffff
pop esi
pop edi
leave
ret
Function at 0x7c03088b
Capabilities:
Timestomp file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x7c0308b2
lea eax, [ebp - 0x30]
push eax
call sym.MSVCR70.dll__time64
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x2c]
pop ecx
mov dword [ebp - 0x34], eax
lea edi, [ebp - 0x38]
lea eax, [edi + 8]
push eax
call sym.MSVCR70.dll__localtime64
test eax, eax
pop ecx
jne 0x7c0308d3
call sym.MSVCR70.dll__errno
mov dword [eax], 0x16
or eax, 0xffffffff
jmp 0x7c0309d4
mov cx, word [eax + 0x14]
add cx, 0x76c
mov word [ebp - 0x28], cx
mov cx, word [eax + 0x10]
inc cx
mov word [ebp - 0x26], cx
mov cx, word [eax + 0xc]
mov word [ebp - 0x22], cx
mov cx, word [eax + 8]
mov word [ebp - 0x20], cx
mov cx, word [eax + 4]
mov word [ebp - 0x1e], cx
mov ax, word [eax]
and word [ebp - 0x1a], 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov word [ebp - 0x1c], ax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x28]
push eax
call esi
test eax, eax
je 0x7c0309c5
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
test eax, eax
je 0x7c0309c5
push edi
call sym.MSVCR70.dll__localtime64
test eax, eax
pop ecx
je 0x7c0309c5
mov cx, word [eax + 0x14]
add cx, 0x76c
mov word [ebp - 0x28], cx
mov cx, word [eax + 0x10]
inc cx
mov word [ebp - 0x26], cx
mov cx, word [eax + 0xc]
mov word [ebp - 0x22], cx
mov cx, word [eax + 8]
mov word [ebp - 0x20], cx
mov cx, word [eax + 4]
mov word [ebp - 0x1e], cx
mov ax, word [eax]
and word [ebp - 0x1a], 0
mov word [ebp - 0x1c], ax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x28]
push eax
call esi
test eax, eax
je 0x7c0309c5
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
test eax, eax
je 0x7c0309c5
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push dword [ebp + 8]
call sym.MSVCR70.dll__get_osfhandle
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
je 0x7c0309c5
xor eax, eax
jmp 0x7c0309d3
call sym.MSVCR70.dll__errno
mov dword [eax], 0x16
or eax, 0xffffffff
pop esi
pop edi
leave
ret
Function at 0x7c032e5e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push ebx
mov ebx, dword [ebp + 0xc]
test ebx, ebx
push esi
mov esi, dword [ebp + 8]
jle 0x7c032ef5
push edi
lea edi, [esi + 8]
mov dword [ebp + 8], ebx
mov eax, dword [esi + 4]
shr eax, 0xb
push 3
and eax, 7
push eax
push edi
call fcn.7c032cb1
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 0xfffff800
add ecx, 0x800
xor ecx, eax
and ecx, 0x3800
xor ecx, eax
add esp, 0xc
dec dword [ebp + 8]
mov dword [esi + 4], ecx
jne 0x7c032e7b
lea edi, [ebx + ebx*4]
shl edi, 1
lea eax, [esi + 0x1c]
push edi
push eax
lea eax, [ebp - 0x50]
push eax
call sym.MSVCR70.dll_memcpy
push 8
pop eax
sub eax, ebx
lea eax, [eax + eax*4]
shl eax, 1
push eax
lea eax, [edi + esi + 0x1c]
push eax
lea eax, [esi + 0x1c]
push eax
call sym.MSVCR70.dll_memmove
push edi
lea eax, [ebp - 0x50]
sub esi, edi
push eax
add esi, 0x6c
push esi
call sym.MSVCR70.dll_memcpy
add esp, 0x24
pop edi
jmp 0x7c032f33
jge 0x7c032f33
mov ecx, dword [esi + 4]
mov eax, ecx
shr eax, 0xb
dec eax
shl eax, 0xb
xor eax, ecx
and eax, 0x3800
xor eax, ecx
mov dword [esi + 4], eax
shr eax, 0xb
and eax, 7
push 0
push eax
lea eax, [esi + 8]
push eax
call fcn.7c032cb1
lea eax, [esi + 0x1c]
push 0x46
push eax
add esi, 0x26
push esi
call sym.MSVCR70.dll_memmove
add esp, 0x18
pop esi
pop ebx
leave
ret
Function at 0x409644
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdfc
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov esi, eax
xor ebx, ebx
push 0x200
lea eax, [ebp - 0x204]
push eax
push edi
push esi
call sub.advapi32.dll_RegEnumKeyW
test eax, eax
jne 0x409685
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x204]
mov ecx, pe_nt_image_headers32
call sub.RtlVcl160.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
mov bl, 1
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x409690
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdf8
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov esi, eax
xor ebx, ebx
mov dword [ebp - 8], 0x200
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x208]
push eax
mov eax, edi
call sub.RtlVcl160.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
push esi
call sub.advapi32.dll_RegQueryValueW
test eax, eax
jne 0x4096de
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x208]
mov ecx, pe_nt_image_headers32
call sub.RtlVcl160.bpl__System__UStrFromWArray_qqrr20System_UnicodeStringpbi
mov bl, 1
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41c900
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call sub.RtlVcl160.bpl__System__UStrAddRef_qqrpv
xor eax, eax
push ebp
push 0x41ca3a
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
call sub.RtlVcl160.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
mov edi, eax
push edi
call sub.version.dll_GetFileVersionInfoSizeW
mov ebx, eax
mov eax, ebx
call sub.RtlVcl160.bpl__System__GetMem_qqri
mov esi, eax
push esi
push ebx
push 0
push edi
call sub.version.dll_GetFileVersionInfoW
test ebx, ebx
jbe 0x41ca0a
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x41ca48
push esi
call sub.version.dll_VerQueryValueW
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
shr edx, 0x10
mov word [ebp - 0x16], dx
movzx edx, word [eax + 8]
and dx, 0xffff
mov word [ebp - 0x18], dx
mov edx, dword [eax + 0xc]
shr edx, 0x10
mov word [ebp - 0x1a], dx
movzx eax, word [eax + 0xc]
and ax, 0xffff
mov word [ebp - 0x1c], ax
mov edx, ebx
mov eax, esi
call sub.RtlVcl160.bpl__System__FreeMem_qqrpv
lea edx, [ebp - 0x20]
movzx eax, word [ebp - 0x16]
call sub.RtlVcl160.bpl__System_Sysutils_IntToStr_qqri
push dword [ebp - 0x20]
push 0x41ca58
lea edx, [ebp - 0x24]
movzx eax, word [ebp - 0x18]
call sub.RtlVcl160.bpl__System_Sysutils_IntToStr_qqri
push dword [ebp - 0x24]
push 0x41ca58
lea edx, [ebp - 0x28]
movzx eax, word [ebp - 0x1a]
call sub.RtlVcl160.bpl__System_Sysutils_IntToStr_qqri
push dword [ebp - 0x28]
push 0x41ca58
lea edx, [ebp - 0x2c]
movzx eax, word [ebp - 0x1c]
call sub.RtlVcl160.bpl__System_Sysutils_IntToStr_qqri
push dword [ebp - 0x2c]
mov eax, dword [ebp - 8]
mov edx, 7
call sub.RtlVcl160.bpl__System__UStrCatN_qqrv
jmp 0x41ca17
mov eax, dword [ebp - 8]
mov edx, 0x41ca68
call sub.RtlVcl160.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41ca41
lea eax, [ebp - 0x2c]
mov edx, 4
call sub.RtlVcl160.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 4]
call sub.RtlVcl160.bpl__System__UStrClr_qqrpv
ret
Function at 0x4cbda4
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
mov ecx, 6
push 0
push 0
dec ecx
jne 0x4cbdac
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x4cbf39
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 1
call fcn.00415204
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
call sub.PublicPkg160.bpl__Data_Db_TDataSet_Close_qqrv
push 0x4cbf54
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebx + 0x610]
mov eax, dword [eax + 0x310]
mov ecx, 5
mov edx, 1
call sub.RtlVcl160.bpl__System__UStrCopy_qqrx20System_UnicodeStringii
push dword [ebp - 0x18]
push 0x4cbfa4
lea eax, [ebp - 0x14]
mov edx, 3
call sub.RtlVcl160.bpl__System__UStrCatN_qqrv
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
call sub.RtlVcl160.bpl__System__WStrFromUStr_qqrr17System_WideStringx20System_UnicodeString
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x328]
mov eax, dword [ebp - 0xc]
call sub.PublicPkg160.bpl__Data_Db_TDataSet_Open_qqrv
mov eax, dword [ebp - 0xc]
call sub.PublicPkg160.bpl__Data_Db_TDataSet_GetFieldCount_qqrv
mov edi, eax
dec edi
test edi, edi
jle 0x4cbef9
mov esi, 1
mov ecx, esi
mov edx, dword [ebx + 0x418]
mov eax, ebx
call fcn.00460234
test al, al
je 0x4cbef1
lea edx, [ebp - 0x24]
lea eax, [esi + 1]
call sub.RtlVcl160.bpl__System_Sysutils_IntToStr_qqri
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x20]
mov edx, 0x4cbfb8
call sub.RtlVcl160.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call sub.PublicPkg160.bpl__Data_Db_TDataSet_FieldByName_qqrx20System_UnicodeString
lea edx, [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x80]
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 4]
call sub.RtlVcl160.bpl__System_Sysutils_Trim_qqrx20System_UnicodeString
lea ecx, [ebp - 8]
mov edx, esi
mov eax, ebx
call fcn.004604b8
cmp dword [ebp - 8], 0
je 0x4cbef1
cmp dword [ebp - 4], 0
je 0x4cbef1
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x610]
call sub.PublicPkg160.bpl__Data_Db_TDataSet_FindField_qqrx20System_UnicodeString
test eax, eax
je 0x4cbef1
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x610]
call sub.PublicPkg160.bpl__Data_Db_TDataSet_FieldByName_qqrx20System_UnicodeString
push eax
lea eax, [ebp - 0x34]
mov edx, dword [ebp - 8]
call sub.RtlVcl160.bpl__System_Variants__VarFromUStr_qqrr8TVarDatax20System_UnicodeString
lea edx, [ebp - 0x34]
pop eax
mov ecx, dword [eax]
call dword [ecx + pe_nt_image_headers32]
inc esi
dec edi
jne 0x4cbe4e
mov eax, dword [ebp - 0xc]
call sub.PublicPkg160.bpl__Data_Db_TDataSet_Close_qqrv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cbf40
lea eax, [ebp - 0x34]
call sub.RtlVcl160.bpl__System_Variants__VarClr_qqrr8TVarData
lea eax, [ebp - 0x24]
mov edx, 5
call sub.RtlVcl160.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0x10]
call sub.RtlVcl160.bpl__System__WStrClr_qqrpv
lea eax, [ebp - 8]
mov edx, 2
call sub.RtlVcl160.bpl__System__UStrArrayClr_qqrpvi
ret
Function at 0x418769
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x41c190
cmp edx, dword [eax]
je 0x41878b
add eax, 8
inc ecx
cmp eax, 0x41c220
jl 0x41877c
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x41c190]
jne 0x4188b9
mov eax, dword [0x41cbb0]
cmp eax, 1
je 0x418893
test eax, eax
jne 0x4187bc
cmp dword [0x41c0e4], 1
je 0x418893
cmp edx, 0xfc
je 0x4188b9
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4187f3
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.00419670
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00419490
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x418836
lea eax, [ebp - 0x1a4]
push eax
call fcn.00419490
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x41b45c
push edi
call fcn.00419f00
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.00419670
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.00419680
lea eax, [ebp - 0xa0]
push 0x41b43c
push eax
call fcn.00419680
push dword [esi + 0x41c194]
lea eax, [ebp - 0xa0]
push eax
call fcn.00419680
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.00419e75
add esp, 0x2c
pop edi
jmp 0x4188b9
lea eax, [ebp + 8]
lea esi, [esi + 0x41c194]
push 0
push eax
push dword [esi]
call fcn.00419490
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret

Function at 0x4153e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0xf1ecbdc4]
lodsd eax, dword [esi]
cmp dword [ebx - 0xc], ebp
dec esp
xor dl, bh
out 0xe, al
pop eax
inc eax
add ah, byte [ebp - 0x4df569fe]
or dl, al
jo 0x4153ea
cmpsb byte [esi], byte es:[edi]
aad 0x4d
dec ebp
push 0x5cf7f469
sbb dh, byte [edi - 0x7b951fb3]
or al, 0x58
ret 0xb2a4
Function at 0x1002aadf
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x1002aaee
pop dword [ebp - 0x4c]
mov eax, 0xa1417555
sub eax, 0x913eca67
sub dword [ebp - 0x4c], eax
mov dword [ebp - 0x5c], 0x9d6b1d07
add dword [ebp - 0x5c], 0xb0e72844
mov dword [ebp - 0x58], 0x74055e82
sub dword [ebp - 0x58], 0x41d2123d
mov dword [ebp - 0x54], 0x28451d0b
sub dword [ebp - 0x54], 0xdbf8d8dd
mov dword [ebp - 0x50], 0xa61506b0
add dword [ebp - 0x50], 0x59eaf950
lea eax, [ebp - 0x5c]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x4c]
call dword [eax]
mov dword [ebp - 0x5c], 0xfd0e5f33
add dword [ebp - 0x5c], 0x77640a23
mov dword [ebp - 0x58], 0x3de2fe04
add dword [ebp - 0x58], 0x3896371
mov dword [ebp - 0x54], 0x75db6386
add dword [ebp - 0x54], 0xed9408e6
mov dword [ebp - 0x50], 0x6c1bef5a
sub dword [ebp - 0x50], 0x6c1bef5a
lea ebx, [ebp - 0x5c]
push ebx
push eax
mov eax, 0xb5ff275
sub eax, 0xfb5d324d
add eax, dword [ebp - 0x4c]
call dword [eax]
push 0x40
push 0x1000
push 0x38458
push 0
call eax
mov ecx, 0xfe7db666
add ecx, 0x18298d1
xor edi, edi
add edi, eax
mov ebx, 0x10039600
add ebx, dword [ebp - 0x4c]
mov edx, 0x775d055
add edx, 0xa3e4fd0d
xor dword [ebp - 4], edi
mov esi, dword [ebx]
add dword [ebp - 0x2c], eax
sub esi, edx
sub dword [ebp - 8], 0x4a170d4a
mov dword [edi], esi
add dword [ebp - 0x34], 0xae47df72
add edi, 0xf3f0c0c7
add edi, 0xc0f3f3d
add ebx, 4
loop 0x1002ac07
add eax, 0xbb7ac79c
sub eax, 0xbb7997ed
mov ebx, eax
add eax, 5
mov ecx, 0x1b5f6126
add ecx, 0xf4a09eda
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret

Function at 0x414ddd
Capabilities:
Encode data using xor

Disassembly:
xor dword [ecx], edi
add eax, 0x3ec02d95
push 0xf831296e
pop eax
add ecx, 4
dec esi
or esi, eax
push esi
mov eax, dword [esp]
add esp, 4
cmp ecx, ebx
jne fcn.00414ddd
ret
Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx

Function at 0x51e5ba
Capabilities:
Encode data using xor

Disassembly:
imul eax, edi, 0x36722138
push ecx
dec edx
neg ah
cmp edi, 0x4fee
js 0x51e581
and al, 0xe6
test eax, 0x6e7b13a1
inc ecx
test edi, edx
xchg dh, cl
lea edi, [0xc07d55ca]
sub ebx, 0xfff131d2
xor al, 0xe7
sub ebx, 0xf49c4
and edi, 0xc1cb8a88
imul edx, eax, 0xfc128fe6
call 0x51e5ba
imul esi, ebx
lea edi, [0xa1f35729]
imul ecx, edi, 0x2a47ffe4
xor eax, eax
cmp edi, esi
mov ah, dh
mov ah, 9
cmp ecx, ebx
je 0x51e5c8
mov ebp, 0x7935e052
push edx
dec esi
pop esi
imul edx, ecx
sub ecx, esi
pop edi
movd mm1, edi
ja 0x51e5d8
inc edi
cmp eax, 0xb7dd
ja 0x51e5f1
cmp ecx, ebx
sbb al, 0x7b
imul ebp, ebp, 0xef44b3c9
not edi
mov edi, 0xc2f73e89
test cl, dh
cmp edx, 0xffd9
mov edi, 0x5c1e41a1
mov ah, 0x9c
test esi, esi
mov edi, 0x223
push edi
xchg ecx, eax
pop ebp
jb 0x51e611
inc bh
add al, 0x5b
add ebp, 0x434
add bh, dl
xchg ebp, edx
jae 0x51e61e
dec esi
sub edx, 0x657
xor al, 4
sbb al, dl
add edx, 0xa8d
sbb bl, al
sub edx, 0xa8c
test cl, 0xa3
bswap edi
cmp edx, 0xab4
jb 0x51e624
movd ecx, mm1
adc esi, ecx
mov bl, 0xf5
jmp 0x51e64e
push 0xa0f91
pop ebx
sub ebx, 0x99f1b
movzx eax, bp
lea edi, [ebx]
add edi, 0xab9
cmp dh, 0x1d
add ecx, edi
imul ebx, ebp
imul eax, esi, 0x59662b3d
mov esi, 0x8368fe93
xchg edi, edi
sub esi, eax
sub al, 0x46
sbb eax, 0x495b434a
xchg al, dl
lea ebx, [0x7dbbefc5]
mov dl, 0x85
push ecx
lea esi, [0xd07c612a]
imul edi, edi, 0x259f46ac
lea edi, [0x83295961]
cmp edx, 0x8bd3
jae 0x51e6ae
imul edi, eax
adc ebx, ecx
mov eax, 0xfff27ef9
ja 0x51e6b7
dec esi
xor eax, 0xfdc7
inc esi
cmp edi, 0xdae4
jne 0x51e6d1
mov esi, 0xc142a6e0
test ebx, 0x8cfdd7b
sub ebp, eax
dec edx
sub ebp, 0xde7b6
imul ebp, esi
ret