joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4f0270
Capabilities:
Get file size

Disassembly:
sub esp, 0x204
lea eax, [esp]
push ebx
push ebp
push esi
mov esi, ecx
push edi
push eax
mov ecx, dword [esi + 0x1118]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4f02bc
push 0x619640
push str.junction
call fcn.004f1490
mov edx, dword [esi]
add esp, 8
mov ecx, esi
call dword [edx + 0xd0]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x204
ret
mov eax, dword [esi + 0x1118]
push eax
call fcn.004f1d40
mov ecx, dword [esi + 0x13e8]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 4
push edi
push 0
push 0x406
push ecx
call ebp
mov eax, dword [esi + 0x64]
xor ebx, ebx
cmp eax, 0x3e8
jge 0x4f0383
mov eax, dword [esi + 0x1118]
lea edx, [esp + 0x14]
push 0x200
push edx
push eax
call fcn.004f1a80
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4f036b
push edi
lea ecx, [esp + 0x18]
push 0xc
push ecx
call dword [sym.imp.MSVCRT.dll_memchr]
add esp, 0xc
test eax, eax
jne 0x4f0338
mov edx, dword [esi + 0x13e8]
push eax
push ebx
push 0x402
push edx
call ebp
jmp 0x4f0354
lea ecx, [esp + 0x14]
sub eax, ecx
cmp edi, 0x200
lea edx, [eax + ebx + 1]
mov eax, dword [esi + 0x64]
mov dword [esi + eax*4 + 0x78], edx
jb 0x4f0383
inc dword [esi + 0x64]
mov eax, dword [esi + 0x64]
add ebx, edi
cmp eax, 0x3e8
jl 0x4f02f2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x204
ret
mov ecx, dword [esi + 0x64]
push 0
push ebx
push 0x402
mov dword [esi + ecx*4 + 0x78], ebx
mov edx, dword [esi + 0x13e8]
push edx
call ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x204
ret
Function at 0x4f1760
Capabilities:
Clear file content

Disassembly:
sub esp, 0x40
mov ecx, 0x10
xor eax, eax
push esi
mov esi, dword [esp + 0x48]
push edi
lea edi, [esp + 8]
rep stosd dword es:[edi], eax
push esi
call fcn.004f1d40
lea eax, [esp + 0xc]
push 0x40
push eax
push esi
call fcn.004f1b70
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
pop edi
pop esi
add esp, 0x40
ret

Function at 0x4f17e0
Capabilities:
Check if file exists

Disassembly:
push ebx
push ebp
push esi
push edi
call fcn.004f1470
mov edi, dword [esp + 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateFileA]
push 0
push 0x10000000
mov esi, eax
push 3
push 0
push esi
push 0xc0000000
push edi
call ebx
cmp eax, 0xffffffff
jne 0x4f1867
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebp
cmp eax, 2
je 0x4f183e
cmp eax, 5
jne 0x4f1856
push 0
push 0x10000000
push 3
push 0
push esi
push bind
push edi
call ebx
cmp eax, 0xffffffff
je 0x4f1814
pop edi
pop esi
pop ebp
pop ebx
ret
push edi
call fcn.004f17a0
mov esi, eax
push esi
call fcn.004f1760
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
ret
push edi
push str.bopen
call fcn.004f1490
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x4f1a40
Capabilities:
Read file on windows

Disassembly:
push ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
lea eax, [esp]
push 0
push eax
mov eax, dword [esp + 0x10]
push ecx
push edx
push eax
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4f1a7b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x21
jne 0x4f1a7b
mov eax, 1
pop ecx
ret
xor eax, eax
pop ecx
ret

Function at 0x4f1a80
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58cfc8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x14]
push ebx
push eax
push esi
push ecx
push edi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
je 0x4f1ade
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jne 0x4f1acd
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x10]
mov ebx, eax
call sub.MFC42.DLL_CString::CString_3
push ebx
push esi
push edi
lea edx, [ebp + 0x10]
push str.Reading_Error_Message_n_nHandle_No:_i_nLength_of_request:__i_nRead_error_no:__ld
push edx
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::Format
add esp, 0x14
cmp ebx, 0x21
jne 0x4f1b18
push str._nFile_is_locked
lea ecx, [ebp + 0x10]
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [ebp + 0x10]
push 0x795
push eax
call fcn.004c31a0
add esp, 8
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4f1b70
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58cfe8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x14]
push ebx
push eax
push esi
push ecx
push edi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, ebx
jne 0x4f1c4c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, 5
jne 0x4f1bd8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp + 0x10]
call sub.MFC42.DLL_CString::CString_3
mov edx, dword [ebp - 0x14]
push ebx
push edx
push esi
push edi
lea eax, [ebp + 0x10]
push str.Write_Error_Message_n_nHandle_No:_i_nLength_of_request:__i_NumberOfBytesWritten:__i_nerror_no:__ld
push eax
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::Format
mov ecx, dword [ebp + 0x10]
add esp, 0x18
push 0x796
push ecx
call fcn.004c31a0
add esp, 8
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4f47f0
Capabilities:
Check for peb ntglobalflag flag

Disassembly:
push 0xffffffffffffffff
push 0x58d5f2
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x14]
push ebx
push ebp
push esi
push edi
mov esi, ecx
push eax
push 0xd13
mov dword [esp + 0x18], esi
call fcn.0055239c
lea edi, [esi + 0x6c]
mov dword [esp + 0x1c], 0
mov ecx, edi
call sub.MFC42.DLL_CString::CString_3
lea ebp, [esi + 0x70]
mov byte [esp + 0x1c], 1
mov ecx, ebp
call sub.MFC42.DLL_CString::CString_3
lea ecx, [esi + 0x74]
mov byte [esp + 0x1c], 2
call fcn.00554bb0
lea ebx, [esi + 0x2a0]
mov byte [esp + 0x1c], 3
mov ecx, ebx
call sub.MFC42.DLL_CWnd::CWnd
mov dword [ebx], 0x5b79a4
push fcn.00554d00
push fcn.00554bb0
push 0xf
lea ecx, [esi + 0x2e0]
push 0x22c
push ecx
mov byte [esp + 0x30], 4
call fcn.00552fad
push 0x619640
mov ecx, ebp
mov byte [esp + 0x20], 5
mov dword [esi], 0x5be048
call sub.MFC42.DLL_CString::operator_3
push 0x619640
mov ecx, edi
call sub.MFC42.DLL_CString::operator_3
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x60], 1
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 8
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 4
Function at 0x4f72e0
Capabilities:
Set current directory

Disassembly:
push 0xffffffffffffffff
push 0x58db35
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
mov dword [esp + 4], esi
mov dword [esi], 0x5be728
lea eax, [esi + 0xdb8]
mov dword [esp + 0x10], 0x16
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov ecx, dword [esi + 0x4b18]
push str.Crselection
mov dword [0x63e530], ecx
call fcn.00454e50
add esp, 4
lea ecx, [esi + 0x5440]
mov byte [esp + 0x10], 0x15
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x543c]
mov byte [esp + 0x10], 0x14
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x542c]
mov byte [esp + 0x10], 0x13
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x5428]
mov byte [esp + 0x10], 0x12
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x5424]
mov byte [esp + 0x10], 0x11
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x5420]
mov byte [esp + 0x10], 0x10
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x52e0]
mov byte [esp + 0x10], 0xf
call fcn.00568de0
lea ecx, [esi + 0x50b4]
mov byte [esp + 0x10], 0xe
call fcn.00554d00
lea ecx, [esi + 0x4e88]
mov byte [esp + 0x10], 0xd
call fcn.00554d00
lea ecx, [esi + 0x4c5c]
mov byte [esp + 0x10], 0xc
call fcn.00554d00
lea ecx, [esi + 0x4b8c]
mov byte [esp + 0x10], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b88]
mov byte [esp + 0x10], 0xa
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b84]
mov byte [esp + 0x10], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b80]
mov byte [esp + 0x10], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b74]
mov byte [esp + 0x10], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b70]
mov byte [esp + 0x10], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b6c]
mov byte [esp + 0x10], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b38]
mov byte [esp + 0x10], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b34]
mov byte [esp + 0x10], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b30]
mov byte [esp + 0x10], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b2c]
mov byte [esp + 0x10], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x4b28]
mov byte [esp + 0x10], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x8e8]
mov dword [esp + 0x10], 0x18
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x8e4]
mov byte [esp + 0x10], 0x17
call sub.MFC42.DLL_CString::CString
lea ecx, [esi + 0x88]
mov dword [esp + 0x10], 0x1a
call fcn.005523ea
mov eax, dword [esi + 0x64]
mov dword [esi + 0x60], 0x59ff64
test eax, eax
je 0x4f74de
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, esi
mov dword [esi + 0x60], 0x59d9fc
mov dword [esp + 0x10], 0xffffffff
call sub.MFC42.DLL_CDialog::CDialog
mov ecx, dword [esp + 8]
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret
Function at 0x5101e0
Capabilities:
Get file size

Disassembly:
mov eax, dword [0x64b2e0]
sub esp, 0xc
mov eax, dword [eax + 0x76c]
push esi
push eax
call fcn.004f1720
add esp, 4
mov esi, eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0x38
jb 0x510224
push 5
push 0x30
push esi
call fcn.004f1c60
lea ecx, [esp + 0x10]
push 8
push ecx
push esi
call fcn.004f1a80
add esp, 0x18
jmp 0x510235
push 0x20
lea edx, [esp + 8]
push 8
push edx
call fcn.0044e2c0
add esp, 0xc
push edi
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [esp + 8]
mov byte [esp + 0x10], 0
test al, al
je 0x510276
cmp al, 0x20
je 0x510276
mov ecx, dword [0x64b2e0]
lea eax, [esp + 8]
push eax
add ecx, 0x358
xor edi, edi
call sub.MFC42.DLL_CString::operator_3
mov edx, dword [0x64b2e0]
mov eax, dword [edx + 0x940]
test eax, eax
je 0x510281
mov eax, 1
pop edi
pop esi
add esp, 0xc
ret
mov eax, dword [0x6658d4]
push ebx
lea esi, [esp + 0xc]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x5102b3
test cl, cl
je 0x5102af
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x5102b3
add eax, 2
add esi, 2
test cl, cl
jne 0x51028b
xor eax, eax
jmp 0x5102b8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
pop ebx
jg 0x5102c2
mov edi, 1
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5102d7
lea eax, [esp + 8]
push eax
call fcn.00510130
add esp, 4
test edi, edi
jne 0x5102dd
jmp 0x5102db
mov eax, edi
pop edi
pop esi
add esp, 0xc
ret

Function at 0x512e10
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [0x67f260]
sub esp, 0x64
cmp eax, 1
push esi
jne 0x512e25
xor eax, eax
pop esi
add esp, 0x64
ret
mov edx, dword [0x67f178]
xor esi, esi
cmp edx, esi
mov dword [0x67f170], esi
jne 0x512e3e
xor eax, eax
pop esi
add esp, 0x64
ret
push edi
mov ecx, 0x14
xor eax, eax
mov edi, 0x67f1ec
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x74]
pop edi
cmp eax, esi
je 0x512e99
lea eax, [esp + 0x70]
push esi
push eax
lea ecx, [esp + 0xc]
push 1
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x512e74
mov dword [esp + 0x70], esi
jmp 0x512e7a
cmp dword [esp + 0x70], esi
jne 0x512e99
push 0x51f
push 0x2719
call fcn.004c3050
add esp, 8
mov dword [0x67f260], esi
xor eax, eax
pop esi
add esp, 0x64
ret
mov dword [0x67f170], 1
call fcn.00511c20
push esi
push esi
test eax, eax
push esi
push 2
jne 0x512ebd
mov edx, dword [esp + 0x7c]
push edx
push 0x512910
jmp 0x512ec7
mov eax, dword [esp + 0x7c]
push eax
push 0x5127b0
call sub.MFC42.DLL_AfxBeginThread
cmp eax, esi
jne 0x512edd
mov dword [0x67f170], esi
xor eax, eax
pop esi
add esp, 0x64
ret
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 1
pop esi
add esp, 0x64
ret
Function at 0x513040
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0x404
xor eax, eax
push ebx
push ebp
mov ebx, ecx
push edi
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xa
jge 0x51306e
pop edi
pop ebp
pop ebx
add esp, 0x404
ret 0xc
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
lea esi, [esp + 0x14]
push 0
not ecx
sub edi, ecx
mov edx, esi
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x18]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0044df40
add esp, 8
mov dword [ebx + 0x64], 0
test ebp, ebp
jle 0x5130d4
lea esi, [esp + 0x14]
mov ecx, 1
dec esi
movsx eax, byte [esi + ecx]
cdq
xor eax, edx
mov edi, dword [ebx + 0x64]
sub eax, edx
imul eax, ecx
add edi, eax
inc ecx
mov dword [ebx + 0x64], edi
lea edx, [ecx - 1]
cmp edx, ebp
jl 0x5130b8
mov eax, dword [esp + 0x420]
mov edx, dword [ebx + 0x64]
mov ecx, eax
imul ecx, eax
lea eax, [ecx + edx + 0x9da]
mov ecx, dword [esp + 0x41c]
and eax, 0xfffff
push ecx
mov dword [ebx + 0x64], eax
call dword [sym.imp.MSVCRT.dll_atol]
mov ecx, dword [ebx + 0x64]
add esp, 4
xor edx, edx
cmp ecx, eax
pop esi
pop edi
sete dl
pop ebp
mov eax, edx
pop ebx
add esp, 0x404
ret 0xc
Function at 0x517060
Capabilities:
Check internet connectivity via wininet

Disassembly:
push ecx
push esi
mov esi, dword [sym.imp.WININET.dll_InternetGetConnectedState]
lea eax, [esp + 4]
push 0
push eax
mov dword [esp + 0xc], 2
call esi
test eax, eax
jne 0x5170d5
lea ecx, [esp + 4]
push eax
push ecx
mov dword [esp + 0xc], 1
call esi
test eax, eax
jne 0x5170d5
push eax
push 1
mov dword [esp + 0xc], 1
call dword [sym.imp.WININET.dll_InternetAutodial]
lea edx, [esp + 4]
push 0
push edx
mov dword [esp + 0xc], 1
call esi
mov esi, eax
test esi, esi
jne 0x5170d3
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5170d3
push 0x6cd
push str.Unable_connected_to_internet_server._n_nPlease_check_connection.
call fcn.004c31a0
add esp, 8
mov eax, esi
pop esi
pop ecx
ret

Function at 0x51a210
Capabilities:
Connect socket
Connect udp socket
Create raw socket
Create udp socket
Initialize winsock library
Resolve dns
Send data
Send data on socket
Set socket configuration

Disassembly:
sub esp, 0x1a4
lea eax, [esp + 0x14]
push esi
push eax
push 0x202
call sub.WSOCK32.dll_WSAStartup
cmp eax, 0xffffffff
jne 0x51a235
or eax, eax
pop esi
add esp, 0x1a4
ret
mov esi, dword [esp + 0x1ac]
movsx ecx, byte [esi]
push ecx
call dword [sym.imp.MSVCRT.dll_isalpha]
add esp, 4
test eax, eax
push esi
je 0x51a255
call sub.WSOCK32.dll_gethostbyname
jmp 0x51a26c
call sub.WSOCK32.dll_inet_addr
push 2
lea edx, [esp + 0x18]
push 4
push edx
mov dword [esp + 0x20], eax
call sub.WSOCK32.dll_gethostbyaddr
mov esi, eax
test esi, esi
jne 0x51a27d
or eax, 0xffffffff
pop esi
add esp, 0x1a4
ret
mov ecx, dword [esp + 0x1b8]
xor eax, eax
mov dword [esp + 4], eax
push edi
mov dword [esp + 0xc], eax
push ecx
mov dword [esp + 0x14], eax
mov word [esp + 0xc], 2
mov dword [esp + 0x18], eax
call sub.WSOCK32.dll_htons
mov word [esp + 0xa], ax
mov edx, dword [esi + 0xc]
movsx ecx, word [esi + 0xa]
mov esi, dword [edx]
mov eax, ecx
lea edi, [esp + 0xc]
push 0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 2
and ecx, 3
push 2
rep movsb byte es:[edi], byte [esi]
call sub.WSOCK32.dll_socket
lea ecx, [esp + 8]
mov esi, eax
push 0x10
push ecx
push esi
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
pop edi
jne 0x51a2ee
or eax, eax
pop esi
add esp, 0x1a4
ret
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b0]
lea edx, [esp + 4]
push 0x10
push edx
push 0
push eax
push ecx
push esi
call sub.WSOCK32.dll_sendto
pop esi
add esp, 0x1a4
ret
Function at 0x51ae40
Capabilities:
Get file size

Disassembly:
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0xc]
test eax, eax
je 0x51ae54
pop edi
pop esi
xor eax, eax
pop ebp
ret 4
mov ebp, dword [esp + 0x10]
push ebp
call fcn.004924b0
add esp, 4
test eax, eax
jne 0x51ae6b
pop edi
pop esi
pop ebp
ret 4
push ebp
call fcn.004f1720
mov edi, eax
add esp, 4
cmp edi, 0xffffffff
jne 0x51ae83
pop edi
pop esi
xor eax, eax
pop ebp
ret 4
push ebx
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
mov ecx, esi
push ebx
call fcn.0051aa20
mov eax, dword [esi + 0x10]
push ebx
push eax
push edi
call fcn.004f1a80
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
push ecx
push edx
lea ecx, [esi + 0x14]
call fcn.0055f360
push ebp
lea ecx, [esi + 0x1c]
call sub.MFC42.DLL_CString::operator_3
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
ret 4

Function at 0x51b570
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x59113f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, dword [esp + 0x2c]
push edi
xor ebx, ebx
push esi
mov dword [esp + 0x1c], ebx
call fcn.004924b0
add esp, 4
cmp eax, ebx
jne 0x51b5b8
mov esi, dword [esp + 0x2c]
push 0x619640
mov ecx, esi
call sub.MFC42.DLL_CString::CString_2
jmp 0x51b6b9
push esi
call fcn.004f1720
add esp, 4
mov esi, eax
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, eax
mov eax, dword [esp + 0x34]
cmp ebp, eax
jbe 0x51b5de
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x51b618
inc eax
mov byte [esp + 0x30], bl
push eax
mov word [esp + 0x35], bx
call sub.MFC42.DLL_operatornew
add esp, 4
mov edi, eax
lea eax, [esp + 0x14]
push ebx
push eax
push ebp
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebp, ebx
jne 0x51b62d
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov esi, dword [esp + 0x2c]
push 0x619640
mov ecx, esi
call sub.MFC42.DLL_CString::CString_2
jmp 0x51b6b9
push 0x615938
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [esp + 0x14]
mov ebp, 1
xor esi, esi
cmp eax, ebx
mov dword [esp + 0x24], ebp
jbe 0x51b68f
mov cl, byte [esi + edi]
mov al, cl
and cl, 0xf
shr al, 4
cmp al, 9
jbe 0x51b661
add al, 0x37
jmp 0x51b663
add al, 0x30
cmp cl, 9
mov byte [esp + 0x30], al
jbe 0x51b671
add cl, 0x37
jmp 0x51b674
add cl, 0x30
mov byte [esp + 0x31], cl
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x14]
inc esi
cmp esi, eax
jb 0x51b64e
push edi
call sub.MFC42.DLL_operatordelete
mov esi, dword [esp + 0x30]
add esp, 4
lea edx, [esp + 0x10]
mov ecx, esi
push edx
call sub.MFC42.DLL_CString::CString_4
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x24], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x1c]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret 0xc
Function at 0x51b6d0
Capabilities:
Reference sql statements

Disassembly:
push 0xffffffffffffffff
push 0x591158
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
lea ecx, [esp + 4]
call sub.MFC42.DLL_CString::CString_3
mov eax, dword [0x64b2e4]
mov dword [esp + 0x10], 0
cmp eax, 5
jne 0x51b726
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
mov ecx, esi
call fcn.0051b7d0
jmp 0x51b782
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
lea edx, [esp + 0x10]
push str.SELECT___s__FROM___s__WHERE_PKKEY___i
push edx
call sub.MFC42.DLL_CString::Format
mov al, byte [esp + 0x3c]
add esp, 0x14
cmp al, 0x49
jne 0x51b76d
mov eax, dword [esp + 0x24]
mov ecx, esi
push eax
call fcn.0051ae40
test eax, eax
je 0x51b7a9
mov ecx, dword [esp + 4]
push ecx
mov ecx, esi
call fcn.0051af30
jmp 0x51b782
cmp al, 0x4f
jne 0x51b7a9
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 4]
push edx
push eax
mov ecx, esi
call fcn.0051aa50
lea ecx, [esp + 4]
mov esi, eax
mov dword [esp + 0x10], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, esi
pop esi
mov ecx, dword [esp + 4]
mov dword fs:[0], ecx
add esp, 0x10
ret 0x14
lea ecx, [esp + 4]
mov dword [esp + 0x10], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 8]
xor eax, eax
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 0x14
Function at 0x5288d0
Capabilities:
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x5921c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
push 0x11
mov ebx, eax
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test eax, eax
jl 0x528917
cmp dword [esp + 0x20], 1
jne 0x528ab2
mov eax, dword [ebx + 0x234c]
test eax, eax
je 0x528ab2
mov ecx, dword [esi + 0xa8]
call fcn.00554130
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0x78], eax
call fcn.00554050
cmp eax, 2
jne 0x528956
cmp dword [esi + 0x78], 1
jne 0x528956
mov ecx, dword [esi + 0xa8]
push 3
call fcn.00554070
mov ecx, dword [esi + 0xa8]
call fcn.00554090
mov ecx, dword [esi + 0x78]
dec eax
push eax
lea edx, [esp + 0x24]
push ecx
mov ecx, dword [esi + 0xa8]
push edx
call fcn.005545c0
push 0x619640
push 0x5ffc78
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], 0
call sub.MFC42.DLL_CString::Replace_1
push 0x619640
push 0x5ffc78
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::Replace_1
push 0x619640
push 0x5ffc78
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::Replace_1
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov edi, eax
add esp, 4
test edi, edi
jle 0x528a1d
mov eax, dword [esi + 0x88]
mov ecx, dword [eax + 0x3b0]
test ecx, ecx
je 0x528a1d
mov ecx, dword [eax + 0xcc]
mov edx, dword [eax + 0x3b0]
mov eax, dword [eax + 0x128]
push 1
push edx
lea edx, [esp + 0x14]
mov ecx, dword [eax + ecx*4]
push ecx
push edx
call fcn.0048b350
add esp, 0x10
test eax, eax
je 0x528a1d
push 0x6d7
push str.Can_not_delete
call fcn.004c31a0
add esp, 8
jmp 0x528aa1
mov eax, dword [ebx]
push edi
mov ecx, ebx
call dword [eax + 0x700]
mov ecx, dword [esi + 0x78]
push ecx
mov ecx, dword [esi + 0xa8]
call fcn.005546c0
mov ecx, dword [esi + 0xa8]
call fcn.00554050
cmp eax, 1
jne 0x528a50
mov ecx, esi
call fcn.00527c50
jmp 0x528aa1
mov ecx, dword [esi + 0x78]
cmp ecx, eax
jl 0x528a9a
lea eax, [ecx - 1]
test eax, eax
mov dword [esi + 0x78], eax
jg 0x528a68
mov dword [esi + 0x78], 1
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0xa8]
push edx
call fcn.00554150
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x78]
mov eax, dword [ebx]
push ecx
push edx
mov ecx, ebx
call dword [eax + 0x718]
mov ecx, esi
call fcn.00527a90
mov ecx, ebx
call fcn.004a19a0
mov ecx, esi
call fcn.00527a90
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 4