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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov ebp, ecx
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x28], edx
mov dword [edi], 0
mov dword [esp + 4], 0x718c90
mov dword [esp], eax
call sub.msvcrt.dll_fopen
test eax, eax
je 0x4b4c61
mov esi, eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0x4e]
mov dword [esp + 8], 0x31
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_fread
mov dword [esp], esi
mov ebx, eax
call sub.msvcrt.dll_fclose
test ebx, ebx
je 0x4b4c66
mov byte [esp + ebx + 0x4e], 0
mov edi, str.__socket__
mov ecx, 0xa
lea esi, [esp + 0x4e]
repe cmpsb byte [esi], byte es:[edi]
seta dl
setb al
sub edx, eax
movsx edx, dl
test edx, edx
mov dword [esp + 0x2c], edx
jne 0x4b4bf6
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x48]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x44]
lea eax, [esp + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
lea ecx, [esp + 0x40]
lea eax, [esp + 0x58]
mov dword [esp + 0x10], ecx
mov dword [esp + 4], str._u_s__08x__08x__08x__08x
mov dword [esp], eax
call sub.msvcrt.dll_sscanf
cmp eax, 5
jne 0x4b4c21
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
lea ecx, [eax - 1]
cmp ecx, 0xfffe
ja 0x4b4c21
mov edi, dword [esp + 0x28]
mov word [edi], ax
mov eax, dword [esp + 0x3c]
mov dword [ebp], eax
mov eax, dword [esp + 0x40]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0xa0]
mov dword [eax], 1
add esp, 0x8c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x4e]
mov dword [esp], eax
call sub.msvcrt.dll_atoi
lea edx, [eax - 1]
cmp edx, 0xfffe
ja 0x4b4c21
mov edi, dword [esp + 0x28]
mov word [edi], ax
lea eax, [esp + 0x4e]
cmp byte [eax], 0xa
je 0x4b4c32
inc eax
dec ebx
jne 0x4b4c18
mov dword [esp], 0x16
call fcn.004b7200
or edx, 0xffffffff
jmp 0x4b4be9
cmp ebx, 0x11
jne 0x4b4c21
lea edx, [eax + 1]
mov eax, dword [eax + 1]
mov dword [ebp], eax
mov eax, dword [edx + 4]
mov dword [ebp + 4], eax
mov eax, dword [edx + 8]
mov dword [ebp + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ebp + 0xc], eax
add esp, 0x8c
xor edx, edx
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
or edx, 0xffffffff
jmp 0x4b4be9
mov dword [esp], 2
call fcn.004b7200
or edx, 0xffffffff
jmp 0x4b4be9

Function at 0x4b8a00
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebx
sub esp, 0x18
mov eax, dword [0x6cf0a0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
push ecx
je 0x4b8a20
add esp, 0x18
mov eax, ebx
pop ebx
ret
mov dword [esp + 4], 4
mov dword [esp], 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
test eax, eax
push edx
push edx
je 0x4b8a5e
mov dword [eax], 0
mov dword [esp + 4], eax
mov eax, dword [0x6cf0a0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push eax
push eax
add esp, 0x18
mov eax, ebx
pop ebx
ret
call sub.msvcrt.dll_abort
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
Function at 0x4c26e0
Capabilities:
Get file size
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 4], 0
jmp fcn.004c11f0

Function at 0x4c4390
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov ebx, dword [esp + 0x30]
call fcn.004c53f0
mov edi, eax
call fcn.004c4180
mov esi, eax
jmp 0x4c4436
mov dword [esp + 4], 0x200
mov dword [esp], esi
call fcn.006a83f0
test eax, eax
je 0x4c4450
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x200
mov dword [esp + 4], 1
mov dword [esp], eax
call sub.msvcrt.dll_fread
test eax, eax
mov ebp, eax
jne 0x4c441e
mov dword [esp], ebx
call sub.msvcrt.dll_feof
test eax, eax
jne 0x4c4446
mov dword [esp], ebx
call sub.msvcrt.dll_ferror
test eax, eax
jne 0x4c4450
mov dword [esp + 8], 0xa9
mov dword [esp + 4], str.libexpat_metalink_parser.c
mov dword [esp], 0x71cf7b
call fcn.006b89c0
mov dword [esp + 8], 0
mov dword [esp + 4], ebp
mov dword [esp], esi
call fcn.006a8270
test eax, eax
je 0x4c4450
mov dword [esp], ebx
call sub.msvcrt.dll_feof
test eax, eax
je 0x4c43b0
xor ebx, ebx
jmp 0x4c4455
mov ebx, 0xc9
mov dword [esp], esi
call fcn.006a7050
mov eax, dword [esp + 0x34]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.004c5330
mov dword [esp], edi
mov ebx, eax
call fcn.004c5390
add esp, 0x1c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x51ff30
Capabilities:
Resolve dns

Disassembly:
push edi
push esi
push ebx
sub esp, 0x50
mov ebx, dword [esp + 0x6c]
cmp ebx, 2
je 0x51ff80
cmp ebx, 0x17
je 0x51ff80
test ebx, ebx
je 0x51ff80
mov dword [esp + 0x10], 0x289
mov dword [esp + 0xc], str.crypto_bio_b_addr.c
mov dword [esp + 8], 0x83
mov dword [esp + 4], 0x87
mov dword [esp], 0x20
xor esi, esi
call fcn.0055ae30
add esp, 0x50
mov eax, esi
pop ebx
pop esi
pop edi
ret
call fcn.005237f0
mov esi, eax
cmp eax, 1
je 0x51ff97
add esp, 0x50
xor esi, esi
mov eax, esi
pop ebx
pop esi
pop edi
ret
lea edx, [esp + 0x30]
xor eax, eax
mov ecx, 8
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], eax
cmp dword [esp + 0x68], 1
jne 0x51ffc1
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x74]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_getaddrinfo]
sub esp, 0x10
test eax, eax
je 0x51ff76
mov dword [esp + 0x10], 0x2b5
mov dword [esp + 0xc], str.crypto_bio_b_addr.c
mov dword [esp + 8], 2
mov dword [esp + 4], 0x87
mov dword [esp], 0x20
mov dword [esp + 0x2c], eax
call fcn.0055ae30
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
xor esi, esi
call fcn.00488620
mov dword [esp], 1
mov dword [esp + 4], eax
call fcn.00560d00
jmp 0x51ff76
Function at 0x5237f0
Capabilities:
Initialize winsock library

Disassembly:
mov ecx, dword [0x7baf10]
test ecx, ecx
je 0x523800
mov eax, 1
ret
mov edx, 0x7bad80
push edi
xor eax, eax
mov edi, edx
mov ecx, 0x64
sub esp, 0x28
rep stosd dword es:[edi], eax
mov dword [esp + 4], edx
mov dword [esp], 0x202
mov dword [0x7baf10], 1
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
push edx
push edx
jne 0x52383f
mov eax, 1
add esp, 0x28
pop edi
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp + 0x10], 0x90
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.crypto_bio_b_sock.c
mov dword [esp + 4], 9
mov dword [esp], 2
call fcn.0055ae30
mov dword [esp + 0x10], 0x91
mov dword [esp + 0xc], str.crypto_bio_b_sock.c
mov dword [esp + 8], 0x7a
mov dword [esp + 4], 0x70
mov dword [esp], 0x20
call fcn.0055ae30
or eax, 0xffffffff
jmp 0x52383a

Function at 0x523d70
Capabilities:
Set socket configuration

Disassembly:
push ebx
sub esp, 0x38
mov eax, dword [esp + 0x44]
mov dword [esp + 4], 0x8004667e
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ioctlsocket]
sub esp, 0xc
mov ebx, eax
test eax, eax
js 0x523db0
xor eax, eax
test ebx, ebx
sete al
add esp, 0x38
pop ebx
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp + 0x10], 0xcc
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.crypto_bio_b_sock.c
mov dword [esp + 4], 5
mov dword [esp], 2
call fcn.0055ae30
xor eax, eax
test ebx, ebx
sete al
add esp, 0x38
pop ebx
ret
Function at 0x527820
Capabilities:
Check if file exists

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.00588a90
mov dword [esp + 4], 0x62
mov dword [esp], esi
mov edi, eax
call sub.msvcrt.dll_strchr
cmp eax, 1
sbb ebx, ebx
and ebx, 0x10
inc ebx
test edi, edi
je 0x5278a2
mov dword [esp], 0x7506c0
call fcn.00525480
mov esi, eax
test eax, eax
je 0x527980
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00525860
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x6a
mov dword [esp], esi
call fcn.00526150
add esp, 0x2c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], 0x4a
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.crypto_bio_bss_file.c
mov dword [esp + 4], 1
mov dword [esp], 2
call fcn.0055ae30
mov dword [esp + 0x14], 0x750682
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0x750685
mov dword [esp + 8], ebp
mov dword [esp + 4], str.fopen_
mov dword [esp], 5
call fcn.00560d00
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
cmp dword [eax], 2
je 0x527910
call ebx
cmp dword [eax], 6
jne 0x527948
mov dword [esp + 0x10], 0x51
mov dword [esp + 0xc], str.crypto_bio_bss_file.c
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0x6d
mov dword [esp], 0x20
xor esi, esi
call fcn.0055ae30
add esp, 0x2c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x53
mov dword [esp + 0xc], str.crypto_bio_bss_file.c
mov dword [esp + 8], 2
mov dword [esp + 4], 0x6d
mov dword [esp], 0x20
xor esi, esi
call fcn.0055ae30
add esp, 0x2c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], edi
call sub.msvcrt.dll_fclose
jmp 0x527898
Function at 0x532500
Capabilities:
Query environment variable

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
mov dword [esp], 0
mov esi, dword [esp + 0x30]
call fcn.005318a0
mov ebx, eax
test eax, eax
je 0x5325d3
mov edi, esi
test esi, esi
je 0x532580
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00531940
test eax, eax
jg 0x532562
xor ebp, ebp
test byte [esp + 0x38], 0x10
jne 0x532650
test esi, esi
je 0x5325b6
mov dword [esp], ebx
call fcn.00531900
add esp, 0x1c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x38]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
call fcn.00531f00
mov ebp, eax
jmp 0x53254c
mov dword [esp], str.OPENSSL_CONF
call sub.msvcrt.dll_getenv
test eax, eax
je 0x5325e0
mov dword [esp + 8], 0x1e3
mov dword [esp + 4], str.crypto_conf_conf_mod.c
mov dword [esp], eax
call fcn.00588c70
mov edi, eax
test eax, eax
jne 0x532527
xor ebp, ebp
xor edi, edi
mov dword [esp + 8], 0x8e
mov dword [esp + 4], str.crypto_conf_conf_mod.c
mov dword [esp], edi
call fcn.0057d150
jmp 0x532550
xor ebp, ebp
xor edi, edi
jmp 0x53254c
call fcn.005b1680
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 8], 0x1eb
mov dword [esp + 4], str.crypto_conf_conf_mod.c
lea ebp, [eax + 0xd]
mov dword [esp], ebp
call fcn.0057d170
mov edi, eax
test eax, eax
je 0x5325b2
call fcn.005b1680
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00588e10
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x75197b
mov dword [esp], edi
call fcn.00588e70
mov dword [esp + 8], ebp
mov dword [esp + 4], str.openssl.cnf
mov dword [esp], edi
call fcn.00588e70
jmp 0x532527
call fcn.0055e360
and eax, 0xfff
cmp eax, 0x72
jne 0x53254c
call fcn.0055b460
mov ebp, 1
jmp 0x53254c
Function at 0x532df0
Capabilities:
Query environment variable

Disassembly:
mov ecx, dword [0x7baf68]
test ecx, ecx
je 0x532e00
ret
push edi
push esi
push ebx
sub esp, 0x20
mov dword [0x7baf68], 1
mov dword [esp], str.OPENSSL_ia32cap
call sub.msvcrt.dll_getenv
mov esi, eax
test eax, eax
je 0x532f04
mov bl, byte [eax]
xor eax, eax
cmp bl, 0x7e
mov dword [esp + 4], str._I64i
sete al
lea edi, [esi + eax]
lea eax, [esp + 0x18]
mov dword [esp + 8], eax
mov dword [esp], edi
call sub.msvcrt.dll_sscanf
test eax, eax
je 0x532ec7
cmp bl, 0x7e
je 0x532f12
cmp byte [esi], 0x3a
je 0x532f50
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call sub.msvcrt.dll_strchr
test eax, eax
je 0x532ef0
mov bl, byte [eax + 1]
xor edx, edx
cmp bl, 0x7e
mov dword [esp + 8], 0
sete dl
mov dword [esp + 4], 0
lea eax, [eax + edx + 1]
mov dword [esp], eax
call sub.msvcrt.dll_strtoul
cmp bl, 0x7e
je 0x532f70
mov dword [0x7bdf90], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
or ah, 4
mov dword [0x7bdf8c], edx
mov dword [0x7bdf88], eax
add esp, 0x20
pop ebx
pop esi
pop edi
ret
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call sub.msvcrt.dll_strtoul
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], eax
jmp 0x532e4f
mov dword [0x7bdf90], 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x532eb2
mov dword [esp], 0x7bdf88
call fcn.005d8220
jmp 0x532eb2
mov dword [esp], 0x7bdf88
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
call fcn.005d8220
mov ecx, edi
xor ebx, 0xffffffff
xor ecx, 0xffffffff
and edx, ebx
and eax, ecx
and edi, 0x1000000
mov dword [esp + 0x18], eax
je 0x532f60
and edx, 0xedfff7fd
mov dword [esp + 0x1c], edx
jmp 0x532e61
mov dword [esp], 0x7bdf88
call fcn.005d8220
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x532e61
xor eax, 0xffffffff
mov edx, dword [0x7bdf90]
and edx, eax
mov eax, dword [esp + 0x18]
mov dword [0x7bdf90], edx
mov edx, dword [esp + 0x1c]
jmp 0x532eb2
Function at 0x5330e0
Capabilities:
Access the windows event log
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x24c
mov edi, dword [ebp + 8]
mov dword [esp], 0xfffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
test eax, eax
push ebx
je 0x533115
mov dword [esp], eax
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetFileType]
test eax, eax
push ecx
jne 0x5332b0
mov dword [esp], edi
call sub.msvcrt.dll_strlen
lea esi, [eax + 1]
lea eax, [esi + esi + 0x1e]
shr eax, 4
shl eax, 4
call fcn.006b7700
sub esp, eax
lea ebx, [esp + 0x33]
mov dword [esp + 0x14], esi
and ebx, 0xfffffff0
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
sub esp, 0x18
test eax, eax
je 0x533193
xor edx, edx
jmp 0x53316c
cmp esi, edx
jbe 0x5331b1
lea eax, [edx + edx]
inc edx
cmp word [ebx + eax], 0x25
jne case.0x53318c.0
lea ecx, [ebx + eax + 2]
mov ax, word [ecx]
sub eax, 0x2a
cmp ax, 0x49
ja case.0x53318c.0
and eax, 0xffff
jmp dword [eax*4 + 0x7519fc]
movsx dx, byte [edi + eax]
mov word [ebx + eax*2], dx
inc eax
cmp esi, eax
je 0x533164
movsx dx, byte [edi + eax]
mov word [ebx + eax*2], dx
inc eax
cmp esi, eax
jne 0x533193
jmp 0x533164
lea eax, [ebp + 0xc]
lea esi, [ebp - 0x218]
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xff
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__vsnwprintf]
mov word [ebp - 0x1a], 0
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x533280
call fcn.00532f90
test eax, eax
jle 0x533280
mov dword [esp + 4], str.OpenSSL
mov dword [esp], 0
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceW]
mov ebx, eax
test eax, eax
push edx
push edx
je 0x5332a4
lea eax, [ebp - 0x21c]
mov dword [esp], ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [ebp - 0x21c], esi
call dword [sym.imp.ADVAPI32.dll_ReportEventW]
sub esp, 0x24
mov dword [esp], ebx
call dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
push eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.OpenSSL:_FATAL
mov dword [esp + 4], esi
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxW]
sub esp, 0x10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp + 0xc]
lea esi, [ebp - 0x218]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0x200
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__vsnprintf]
test eax, eax
js 0x533350
lea edx, [ebp - 0x21c]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
sub esp, 0x14
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
add ecx, 2
inc edx
jmp 0x53317b
mov word [ecx], 0x63
jmp case.0x53318c.0
mov word [ecx], 0x73
jmp case.0x53318c.0
mov word [ecx], 0x43
jmp case.0x53318c.0
mov word [ecx], 0x53
jmp case.0x53318c.0
mov eax, 0x200
jmp 0x5332d6
Function at 0x57c100
Capabilities:
Hash data with md5

Disassembly:
push edi
push ebx
mov edx, dword [esp + 0xc]
mov ebx, 0x4c
lea edi, [edx + 0x10]
test edi, 1
jne 0x57c160
test edi, 2
jne 0x57c174
mov ecx, ebx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
test bl, 2
je 0x57c134
mov word [edi], 0
add edi, 2
and ebx, 1
je 0x57c13c
mov byte [edi], 0
mov dword [edx], 0x67452301
mov dword [edx + 4], 0xefcdab89
mov dword [edx + 8], 0x98badcfe
mov dword [edx + 0xc], 0x10325476
mov eax, 1
pop ebx
pop edi
ret
lea edi, [edx + 0x11]
mov byte [edx + 0x10], 0
mov ebx, 0x4b
test edi, 2
je 0x57c11e
mov word [edi], 0
sub ebx, 2
add edi, 2
jmp 0x57c11e
Function at 0x597bf0
Capabilities:
Generate random numbers via winapi
Get memory capacity

Disassembly:
push edi
push esi
push ebx
sub esp, 0x90
mov ebx, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
lea esi, [esp + 0x28]
mov dword [esp + 0x10], 0xf0000040
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call ebx
sub esp, 0x14
test eax, eax
jne 0x597d56
mov dword [esp + 0x10], 0xf0000040
mov dword [esp + 0xc], 0x16
mov dword [esp + 8], 0x76e7a8
mov dword [esp + 4], 0
mov dword [esp], esi
call ebx
sub esp, 0x14
test eax, eax
jne 0x597ce8
mov esi, dword [0x6d2a18]
lea ebx, [esp + 0x30]
test esi, esi
jne 0x597d39
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea esi, [esp + 0x2c]
fldz
mov dword [esp + 4], 4
mov dword [esp], esi
fstp qword [esp + 8]
mov dword [esp + 0x2c], eax
call fcn.005978c0
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
fld1
push eax
mov dword [esp], ebx
mov dword [esp + 4], 0x20
fstp qword [esp + 8]
call fcn.005978c0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [esp], esi
fld1
mov dword [esp + 4], 4
mov dword [esp + 0x2c], eax
fstp qword [esp + 8]
call fcn.005978c0
add esp, 0x90
mov eax, 1
pop ebx
pop esi
pop edi
ret
lea ebx, [esp + 0x50]
mov eax, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x40
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
sub esp, 0xc
test eax, eax
jne 0x597d96
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov esi, dword [0x6d2a18]
test esi, esi
push edi
push edi
lea ebx, [esp + 0x30]
je 0x597c75
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
push ecx
jne 0x597db5
mov dword [0x6d2a18], 0
jmp 0x597c75
lea edi, [esp + 0x50]
mov eax, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x40
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
sub esp, 0xc
test eax, eax
jne 0x597de2
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push eax
push eax
jmp 0x597c33
fld dword [0x76e804]
mov dword [esp + 4], 0x40
mov dword [esp], ebx
fstp qword [esp + 8]
call fcn.005978c0
jmp 0x597d10
fldz
mov dword [esp + 4], 8
mov dword [esp], ebx
fstp qword [esp + 8]
call fcn.005978c0
mov edx, dword [0x6d2a18]
test edx, edx
je 0x597c75
lea esi, [esp + 0x2c]
jmp 0x597c99
fld dword [0x76e804]
mov dword [esp + 4], 0x40
mov dword [esp], edi
fstp qword [esp + 8]
call fcn.005978c0
jmp 0x597d7a
Function at 0x597e20
Capabilities:
Generate random numbers via winapi
Get memory capacity

Disassembly:
push edi
push esi
push ebx
sub esp, 0x90
mov ebx, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
lea esi, [esp + 0x28]
mov dword [esp + 0x10], 0xf0000040
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], esi
call ebx
sub esp, 0x14
test eax, eax
jne 0x597f81
mov dword [esp + 0x10], 0xf0000040
mov dword [esp + 0xc], 0x16
mov dword [esp + 8], 0x76e7a8
mov dword [esp + 4], 0
mov dword [esp], esi
call ebx
sub esp, 0x14
test eax, eax
jne 0x597f13
mov esi, dword [0x6d2a18]
lea ebx, [esp + 0x30]
test esi, esi
jne 0x597f64
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea esi, [esp + 0x2c]
fldz
mov dword [esp + 4], 4
mov dword [esp], esi
fstp qword [esp + 8]
mov dword [esp + 0x2c], eax
call fcn.005978c0
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
fld1
push eax
mov dword [esp], ebx
mov dword [esp + 4], 0x20
fstp qword [esp + 8]
call fcn.005978c0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [esp], esi
fld1
mov dword [esp + 4], 4
mov dword [esp + 0x2c], eax
fstp qword [esp + 8]
call fcn.005978c0
add esp, 0x90
pop ebx
pop esi
pop edi
ret
lea ebx, [esp + 0x50]
mov eax, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x40
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
sub esp, 0xc
test eax, eax
jne 0x597fc1
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov esi, dword [0x6d2a18]
test esi, esi
push edi
push edi
lea ebx, [esp + 0x30]
je 0x597ea5
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
push ecx
jne 0x597fe0
mov dword [0x6d2a18], 0
jmp 0x597ea5
lea edi, [esp + 0x50]
mov eax, dword [esp + 0x28]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x40
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
sub esp, 0xc
test eax, eax
jne 0x598010
mov eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push eax
push eax
jmp 0x597e63
fld dword [0x76e804]
mov dword [esp + 4], 0x40
mov dword [esp], ebx
fstp qword [esp + 8]
call fcn.005978c0
jmp 0x597f3b
fldz
mov dword [esp + 4], 8
mov dword [esp], ebx
fstp qword [esp + 8]
call fcn.005978c0
mov edx, dword [0x6d2a18]
test edx, edx
je 0x597ea5
lea esi, [esp + 0x2c]
jmp 0x597ec9
fld dword [0x76e804]
mov dword [esp + 4], 0x40
mov dword [esp], edi
fstp qword [esp + 8]
call fcn.005978c0
jmp 0x597fa5
Function at 0x598030
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x45c
mov ebx, dword [esp + 0x474]
test ebx, ebx
je 0x598050
mov eax, dword [esp + 0x470]
test eax, eax
jne 0x598060
add esp, 0x45c
xor edi, edi
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x470]
mov dword [esp + 4], 0x76e808
mov dword [esp], eax
call fcn.00588a90
mov esi, eax
test eax, eax
je 0x598050
lea ebp, [esp + 0x2c]
xor eax, eax
mov ecx, 9
mov edi, ebp
rep stosd dword es:[edi], eax
mov dword [esp], esi
xor edi, edi
call dword [sym.imp.msvcrt.dll__fileno]
mov dword [esp + 4], ebp
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll__fstat]
test eax, eax
jns 0x5980c0
mov dword [esp], esi
call sub.msvcrt.dll_fclose
add esp, 0x45c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
fldz
mov dword [esp + 4], 0x24
mov dword [esp], ebp
fstp qword [esp + 8]
call fcn.005978c0
mov ax, word [esp + 0x32]
and eax, 0xffffe000
cmp ax, 0x2000
je 0x5981e0
xor edi, edi
lea ebp, [esp + 0x50]
mov dword [esp + 0xc], esi
test ebx, ebx
jle 0x598150
cmp ebx, 0x3ff
jg 0x598190
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
mov dword [esp], ebp
call sub.msvcrt.dll_fread
mov ebx, eax
test eax, eax
jle 0x598138
mov dword [esp + 0x1c], eax
mov dword [esp + 4], eax
fild dword [esp + 0x1c]
mov dword [esp], ebp
add edi, ebx
fstp qword [esp + 8]
call fcn.005978c0
mov dword [esp + 4], 0x400
mov dword [esp], ebp
call fcn.005d8510
jmp 0x5980a8
mov dword [esp + 8], 0x400
mov dword [esp + 4], 1
mov dword [esp], ebp
call sub.msvcrt.dll_fread
test eax, eax
jle 0x598138
mov dword [esp + 0x1c], eax
mov dword [esp + 4], eax
fild dword [esp + 0x1c]
mov dword [esp], ebp
fstp qword [esp + 8]
call fcn.005978c0
mov eax, dword [esp + 0x1c]
add edi, eax
jmp 0x5980f0
mov dword [esp + 8], 0x400
mov dword [esp + 4], 1
mov dword [esp], ebp
call sub.msvcrt.dll_fread
test eax, eax
jle 0x598138
mov dword [esp + 0x1c], eax
mov dword [esp + 4], eax
fild dword [esp + 0x1c]
mov dword [esp], ebp
fstp qword [esp + 8]
call fcn.005978c0
mov eax, dword [esp + 0x1c]
add edi, eax
sub ebx, 0x400
jne 0x5980f0
jmp 0x598138
cmp ebx, 0xffffffff
jne 0x5981ea
mov ebx, 0x800
mov dword [esp + 4], 0
mov dword [esp], esi
call sub.msvcrt.dll_setbuf
jmp 0x5980ea