joyce8/EMBER2024-capa huggingface dataset:
Function at 0x498890
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [ebp + 0x10], 0
je 0x4988a4
mov eax, dword [ebp + 0x10]
mov dword [0x58ca78], eax
jmp 0x4988ae
mov dword [0x58ca78], 0xffffffff
mov ecx, dword [ebp + 0x14]
mov dword [0x58ca6c], ecx
cmp dword [0x545c80], 0
je 0x4988cf
mov edx, dword [0x58ca68]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x498942
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [0x58ca68], eax
cmp dword [0x58ca68], 0
jne 0x4988ef
xor eax, eax
jmp 0x498947
push 4
push 1
call dword [sym.imp.MSVCR80.dll_calloc]
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x498909
xor eax, eax
jmp 0x498947
mov eax, dword [ebp - 4]
mov ecx, dword [0x58ca68]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
push edx
push 0
push 0x498800
call dword [sym.imp.MSVCR80.dll__beginthread]
add esp, 0xc
mov dword [0x545c80], eax
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x545c80], 0
jne 0x498942
xor eax, eax
jmp 0x498947
mov eax, dword [0x545c80]
mov esp, ebp
pop ebp
ret

Function at 0x498980
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.MSVCR80.dll_getenv]
add esp, 4
mov dword [0x545870], eax
cmp dword [0x545870], 0
je 0x4989a8
mov eax, dword [0x545870]
jmp 0x498a23
lea ecx, [ebp - 4]
push ecx
push 1
push 0
push 0x52c484
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x498a21
mov dword [ebp - 0xc], 0x400
lea edx, [ebp - 0xc]
push edx
push 0x545878
lea eax, [ebp - 0x10]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x498a13
mov dword [0x545870], 0x545878
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x545870]
jmp 0x498a23
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x498a23
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x49c890
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 8], 0
mov eax, dword [ebp + 0x18]
push eax
call fcn.0049df00
add esp, 4
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0049dd60
add esp, 8
mov dword [ebp - 0x10], eax
lea eax, [ebp - 8]
push eax
push 0x20006
push 0
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x49c98a
push 0
call fcn.0049ca20
add esp, 4
push 1
call fcn.0049ca20
add esp, 4
lea eax, [ebp - 8]
push eax
push 0x20006
push 0
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x49c98a
mov eax, dword [ebp - 0x10]
push eax
call fcn.00496150
add esp, 4
cmp dword [ebp + 8], 0
je 0x49c980
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x80], 0
je 0x49c94f
xor edx, edx
je 0x49c94f
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x14], ecx
jmp 0x49c956
mov dword [ebp - 0x14], 0xffffffc1
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x80], eax
push 0
push 0xff
push 0
push 0
push 0x1de
push 0xffffffffffffffc1
mov ecx, dword [ebp + 8]
push ecx
call fcn.0048a930
add esp, 0x1c
mov eax, 1
jmp 0x49ca14
mov edx, dword [ebp - 0x10]
push edx
call fcn.00496150
add esp, 4
cmp dword [ebp + 0x10], 0
je 0x49c9b2
cmp dword [ebp + 0x14], 0
jne 0x49c9c2
mov eax, dword [ebp + 0x10]
push eax
call sub.MSVCR80.dll_strlen
add esp, 4
test eax, eax
jne 0x49c9c2
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
jmp 0x49ca08
cmp dword [ebp + 0x14], 0
je 0x49c9d0
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x18], eax
jmp 0x49c9e2
mov ecx, dword [ebp + 0x10]
push ecx
call sub.MSVCR80.dll_strlen
add esp, 4
add eax, 1
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp + 0x10]
push eax
xor ecx, ecx
cmp dword [ebp + 0x14], 0
setne cl
lea ecx, [ecx + ecx + 1]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.004d8460
add esp, 0x14
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x49dec0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
push 0
call fcn.0049bf40
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x49dee7
mov eax, dword [ebp - 4]
jmp 0x49def4
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.MSVCR80.dll_getenv]
add esp, 4
mov esp, ebp
pop ebp
ret

Function at 0x49df00
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
je 0x49df20
mov eax, connect
jmp 0x49df6c
push 0x94
push 0
lea eax, [ebp - 0xa0]
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
mov dword [ebp - 0xa0], 0x94
lea ecx, [ebp - 0xa0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x49df67
cmp dword [ebp + 8], 0
jne 0x49df67
cmp dword [ebp - 0x9c], 6
jb 0x49df67
mov eax, connect
jmp 0x49df6c
mov eax, connect
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret

Function at 0x4a0e60
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40c
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x40c], 0
push 0x400
lea eax, [ebp - 0x408]
push eax
call dword [sym.imp.WSOCK32.dll_gethostname]
test eax, eax
jne 0x4a0ea8
lea ecx, [ebp - 0x408]
push ecx
call fcn.004a12c0
add esp, 4
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x40c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret
Function at 0x4a2240
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x546cd0], 0
je 0x4a2263
mov eax, 1
jmp 0x4a22a4
mov word [ebp - 0x19c], 2
lea eax, [ebp - 0x198]
push eax
mov cx, word [ebp - 0x19c]
push ecx
call dword [sym.imp.WSOCK32.dll_WSAStartup]
test eax, eax
je 0x4a2295
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call dword [sym.imp.WSOCK32.dll_WSACleanup]
xor eax, eax
jmp 0x4a22a4
mov dword [0x546cd0], 1
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret
Function at 0x4a2ae0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
jmp 0x4a2b0c
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movsx eax, byte [edx]
test eax, eax
je 0x4a2b2c
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx]
cmp edx, 0x2e
jne 0x4a2b2a
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
jmp 0x4a2b03
cmp dword [ebp - 0xc], 3
je 0x4a2b36
xor eax, eax
jmp 0x4a2b5a
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
jne 0x4a2b4d
xor eax, eax
jmp 0x4a2b5a
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
mov dword [edx], eax
mov eax, 1
mov esp, ebp
pop ebp
ret 8

Function at 0x4a2dc0
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx], 0
mov edx, dword [ebp + 0x18]
mov byte [edx], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.WSOCK32.dll_gethostbyname]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4a2e89
mov ecx, dword [ebp - 8]
movsx edx, word [ecx + 8]
cmp edx, 2
jne 0x4a2e68
mov eax, dword [ebp - 8]
movsx ecx, word [eax + 0xa]
cmp ecx, 4
jne 0x4a2e68
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 4], eax
jmp 0x4a2e25
mov ecx, dword [ebp - 4]
add ecx, 4
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
cmp dword [edx], 0
je 0x4a2e68
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
mov ax, word [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.004a2b60
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc]
cmp dword [edx], 0
jne 0x4a2e5b
mov eax, 8
jmp 0x4a2ecf
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
add ecx, 0x1c
mov dword [ebp - 0xc], ecx
jmp 0x4a2e1c
push 0x400
mov edx, dword [ebp - 8]
mov eax, dword [edx]
push eax
push 0x401
mov ecx, dword [ebp + 0x18]
push ecx
call dword [sym.imp.MSVCR80.dll_strncpy_s]
add esp, 0x10
xor eax, eax
jmp 0x4a2ecf
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sub edx, 0x2af9
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 3
ja case.default.0x4a2ea7
mov eax, dword [ebp - 0x10]
jmp dword [eax*4 + 0x4a2ed8]
mov eax, 0x2af9
jmp 0x4a2ecf
mov eax, 0x2afa
jmp 0x4a2ecf
mov eax, 0x2afb
jmp 0x4a2ecf
mov eax, 0x2af9
jmp 0x4a2ecf
mov eax, 0x2af9
mov esp, ebp
pop ebp
ret 0x18
Function at 0x4a5590
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 0x14], eax
push 0x52dcf0
lea eax, [ebp - 0x28]
push eax
call sub.MSVCR80.dll_strcpy
add esp, 8
mov dword [ebp - 0x10], 0
jmp 0x4a55c3
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 3
jge 0x4a55e4
lea edx, [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x4a55da
jmp 0x4a55e4
mov al, byte [ebp - 0x28]
add al, 1
mov byte [ebp - 0x28], al
jmp 0x4a55ba
push 0
push 0
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 4]
push edx
lea eax, [ebp - 8]
push eax
push 0
push 0
lea ecx, [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret

Function at 0x4a6130
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 8], 0x58cc14
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ddf10
add esp, 0xc
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.004de120
add esp, 8
push 0x40
push 0x1000
mov edx, dword [ebp - 0xc]
add edx, 0xa
push edx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4a6184
xor eax, eax
jmp 0x4a61b9
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 4]
push edx
call sub.MSVCR80.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0xc]
push eax
push 0
mov ecx, dword [ebp - 8]
push ecx
call sub.MSVCR80.dll_memset
add esp, 0xc
mov edx, dword [ebp - 8]
push edx
call fcn.00496150
add esp, 4
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
Function at 0x4a6f60
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 8], eax
mov byte [ebp - 0x40], 0x71
mov byte [ebp - 0x3f], 0xd5
mov byte [ebp - 0x3e], 0xac
mov byte [ebp - 0x3d], 0xe3
mov byte [ebp - 0x3c], 0xb3
mov byte [ebp - 0x3b], 0x2b
mov byte [ebp - 0x3a], 0x77
mov byte [ebp - 0x39], 0x6f
mov byte [ebp - 0x38], 0xcc
mov byte [ebp - 0x37], 0x37
mov byte [ebp - 0x36], 0x9f
mov byte [ebp - 0x35], 0x94
mov byte [ebp - 0x34], 0x8f
mov byte [ebp - 0x33], 0x7f
mov byte [ebp - 0x32], 0xa9
mov byte [ebp - 0x31], 0xd6
mov byte [ebp - 0x30], 0xec
mov byte [ebp - 0x2f], 0x9a
mov byte [ebp - 0x2e], 0x82
mov byte [ebp - 0x2d], 0xcc
mov byte [ebp - 0x2c], 0xa6
mov byte [ebp - 0x2b], 0xef
mov byte [ebp - 0x2a], 0x6e
mov byte [ebp - 0x29], 0x61
mov byte [ebp - 0x28], 0x77
mov byte [ebp - 0x27], 0xb8
mov byte [ebp - 0x26], 0x41
mov byte [ebp - 0x25], 0x25
mov byte [ebp - 0x24], 0x94
mov byte [ebp - 0x23], 0xd7
mov byte [ebp - 0x22], 0xe2
mov byte [ebp - 0x21], 0xca
mov byte [ebp - 0x20], 0x48
mov byte [ebp - 0x1f], 0x2a
mov byte [ebp - 0x1e], 0x73
mov byte [ebp - 0x1d], 0x35
mov byte [ebp - 0x1c], 0x33
mov byte [ebp - 0x1b], 0x1e
mov byte [ebp - 0x1a], 0x6a
mov byte [ebp - 0x19], 0xb8
mov byte [ebp - 0x18], 0x2d
mov byte [ebp - 0x17], 0x67
mov byte [ebp - 0x16], 0xb5
mov byte [ebp - 0x15], 0x8f
mov byte [ebp - 0x14], 0xce
mov byte [ebp - 0x13], 0x43
mov byte [ebp - 0x12], 0xff
mov byte [ebp - 0x11], 0x2b
mov byte [ebp - 0x10], 0xf9
mov byte [ebp - 0xf], 0x97
mov byte [ebp - 0xe], 6
mov byte [ebp - 0xd], 0xfe
mov byte [ebp - 0xc], 0xd2
mov byte [ebp - 0xb], 0x11
mov byte [ebp - 0xa], 0xec
mov byte [ebp - 9], 0x47
mov dword [ebp - 4], 0
cmp dword [ebp + 8], 0
je 0x4a70a2
cmp dword [ebp + 0xc], 0
je 0x4a70a2
cmp dword [ebp + 0x10], 0
je 0x4a70a2
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0x38
jbe 0x4a707a
mov dword [ebp - 0x44], 0x38
jmp 0x4a7082
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0x44], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
push eax
lea ecx, [ebp - 0x40]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call sub.MSVCR80.dll_memcpy
add esp, 0xc
jmp 0x4a70b8
cmp dword [ebp + 0x10], 0
je 0x4a70b1
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov dword [ebp - 4], 0xffffffd6
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret
Function at 0x4a7680
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
cmp dword [ebp + 8], 0
je 0x4a773c
mov eax, dword [ebp + 8]
cmp dword [eax + 0x19c], 0
je 0x4a773c
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x19c]
cmp dword [edx + 0x1d1c], 0
je 0x4a773c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x19c]
mov edx, dword [ecx + 0x1d1c]
cmp dword [edx + 4], 0
je 0x4a773c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x19c]
mov edx, dword [ecx + 0x1d1c]
mov dword [ebp - 4], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x7d0
mov dword [ebp - 8], eax
push 0
mov ax, word [ebp + 0x10]
push eax
mov cx, word [ebp + 0xc]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4a7723
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4a772b
cmp dword [ebp - 0xc], 0
jge 0x4a772b
jmp 0x4a773c
cmp dword [ebp - 0xc], 0
jne 0x4a773c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, dword [ebp - 8]
jb 0x4a76fc
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
Function at 0x4c2180
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d4
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd4]
mov edx, dword [ecx + 0x10a4]
and edx, 0x40
jne 0x4c21b5
xor eax, eax
jmp 0x4c2396
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x138]
and ecx, 0x80
jne 0x4c2229
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x138]
or eax, 0x80
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x138], eax
push str.BUG_B
push 0x45
push 0x44
push str.FLEXLM__c_c_sADDATE
lea edx, [ebp - 0x2d0]
push edx
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x14
lea eax, [ebp - 0x2d0]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0049d0e0
add esp, 8
test eax, eax
je 0x4c2229
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x138]
or eax, 0x100
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x138], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x138]
and eax, 0x100
je 0x4c229b
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x80], 0
je 0x4c225a
xor edx, edx
je 0x4c225a
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x2d4], ecx
jmp 0x4c2264
mov dword [ebp - 0x2d4], 0xffffffa8
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x2d4]
mov dword [edx + 0x80], eax
push 0
push 0xff
push 0
push 0
push 0x138
push 0xffffffffffffffa8
mov ecx, dword [ebp + 8]
push ecx
call fcn.0048a930
add esp, 0x1c
mov eax, 0xffffffa8
jmp 0x4c2396
mov byte [ebp - 0x208], 0x5c
mov byte [ebp - 0x207], 0
push 0
lea edx, [ebp - 0x208]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c23b0
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4c22cf
mov eax, dword [ebp - 4]
jmp 0x4c2396
push 0x200
lea ecx, [ebp - 0x208]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0
lea edx, [ebp - 0x208]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c23b0
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4c2307
mov eax, dword [ebp - 4]
jmp 0x4c2396
mov byte [ebp - 0x208], 0x2f
mov byte [ebp - 0x206], 0x61
mov byte [ebp - 0x205], 0x72
mov byte [ebp - 0x207], 0x76
mov byte [ebp - 0x204], 0
push 0
lea ecx, [ebp - 0x208]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004c23b0
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4c234d
mov eax, dword [ebp - 4]
jmp 0x4c2396
mov byte [ebp - 0x208], 0x2f
mov byte [ebp - 0x204], 0
mov byte [ebp - 0x206], 0x6d
mov byte [ebp - 0x207], 0x74
mov byte [ebp - 0x205], 0x70
push 0
lea eax, [ebp - 0x208]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c23b0
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4c2393
mov eax, dword [ebp - 4]
jmp 0x4c2396
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret
Function at 0x4c8e30
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0xffffffff
cmp dword [ebp + 0xc], 0
je 0x4c8e5e
cmp dword [ebp + 0x10], 0
jne 0x4c8e60
jmp 0x4c8eb9
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004d7540
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4c8eb9
cmp dword [ebp - 0xc], 0
je 0x4c8eb9
mov dword [ebp - 0xc], 0
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.004d7540
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4c8eb9
cmp dword [ebp - 0xc], 0
je 0x4c8eb9
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.MSVCR80.dll_rename]
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 8], 0
je 0x4c8ed2
mov eax, dword [ebp - 8]
push eax
call fcn.00496150
add esp, 4
mov dword [ebp - 8], 0
cmp dword [ebp - 4], 0
je 0x4c8eeb
mov ecx, dword [ebp - 4]
push ecx
call fcn.00496150
add esp, 4
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret

Function at 0x4c8f00
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0xffffffff
cmp dword [ebp + 0xc], 0
je 0x4c8f2e
cmp dword [ebp + 0x10], 0
jne 0x4c8f30
jmp 0x4c8f89
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004d7830
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4c8f89
cmp dword [ebp - 0xc], 0
je 0x4c8f89
mov dword [ebp - 0xc], 0
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.004d7830
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4c8f89
cmp dword [ebp - 0xc], 0
je 0x4c8f89
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.MSVCR80.dll__wrename]
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 4], 0
je 0x4c8fa2
mov eax, dword [ebp - 4]
push eax
call fcn.00496150
add esp, 4
mov dword [ebp - 4], 0
cmp dword [ebp - 8], 0
je 0x4c8fbb
mov ecx, dword [ebp - 8]
push ecx
call fcn.00496150
add esp, 4
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret

Function at 0x4c9170
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0xffffffff
cmp dword [ebp + 0xc], 0
jne 0x4c9193
jmp 0x4c91c2
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004d7540
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4c91c2
cmp dword [ebp - 4], 0
je 0x4c91c2
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.MSVCR80.dll_remove]
add esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 8], 0
je 0x4c91db
mov eax, dword [ebp - 8]
push eax
call fcn.00496150
add esp, 4
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
Function at 0x4c91f0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 0xc], 0
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0xffffffff
cmp dword [ebp + 0xc], 0
jne 0x4c9213
jmp 0x4c9242
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004d7830
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4c9242
cmp dword [ebp - 4], 0
je 0x4c9242
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.MSVCR80.dll__wremove]
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 0xc], 0
je 0x4c925b
mov eax, dword [ebp - 0xc]
push eax
call fcn.00496150
add esp, 4
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
Function at 0x4cbc90
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [eax + 8], 0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xc], 0
je 0x4cbccf
push 1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.004cbc00
add esp, 8
cmp eax, 0xffffffff
jne 0x4cbccf
call fcn.004cb9e0
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
call fcn.004cbd00
test eax, eax
je 0x4cbcef
push 4
lea edx, [ebp - 4]
push edx
push 0x1b
push 0x29
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.WSOCK32.dll_setsockopt]
mov esp, ebp
pop ebp
ret

Function at 0x4cbd00
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
and eax, 0xffff
movzx ecx, ax
and ecx, 0xff
movzx edx, cl
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 4]
and eax, 0xffff
movzx ecx, ax
shr ecx, 8
movzx edx, cl
mov dword [ebp - 8], edx
cmp dword [ebp - 0x10], 6
jb 0x4cbd4e
mov dword [ebp - 0xc], 1
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret

Function at 0x4d7480
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x546eb8], 0
jne 0x4d7521
push 0x94
push 0
lea eax, [ebp - 0xa0]
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
mov dword [ebp - 0xa0], 0x94
lea ecx, [ebp - 0xa0]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x4d7517
cmp dword [ebp - 0x90], 1
jne 0x4d74e6
mov dword [0x546eb4], 2
jmp 0x4d7517
cmp dword [ebp - 0x90], 2
je 0x4d74f8
cmp dword [ebp - 0x9c], 6
jb 0x4d7504
mov dword [0x546eb4], 1
jmp 0x4d7517
cmp dword [ebp - 0x90], 0
jne 0x4d7517
mov dword [0x546eb4], 3
mov dword [0x546eb8], 1
mov eax, dword [0x546eb4]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret