joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4c8ab0
Capabilities:
Enumerate processes
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x144
push 0
push 2
call sub.kernel32.dll_CreateToolhelp32Snapshot
mov esi, eax
pop edi
cmp esi, 0xffffffff
pop eax
je 0x4c8b16
lea edi, [ebp - 0x148]
mov dword [ebp - 0x148], 0x128
push ebx
push ebx
push edi
push esi
call sub.kernel32.dll_Process32First
jmp 0x4c8b04
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x130], eax
je 0x4c8b30
push ecx
push ecx
push edi
push esi
call sub.kernel32.dll_Process32Next
pop edx
test eax, eax
pop ecx
jne 0x4c8af0
sub esp, 0xc
push esi
call sub.kernel32.dll_CloseHandle
add esp, 0xc
mov eax, dword [ebp + 8]
push edx
push edx
push 0xffffffffffffffff
push eax
call sub.kernel32.dll_TerminateProcess
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push eax
mov eax, dword [ebp - 0x140]
push eax
push 0
push 0x1f0fff
call sub.kernel32.dll_OpenProcess
mov ebx, eax
pop eax
test ebx, ebx
je 0x4c8afb
push eax
push eax
push 0xffffffffffffffff
push ebx
call sub.kernel32.dll_TerminateProcess
push eax
push ebx
call sub.kernel32.dll_CloseHandle
add esp, 0xc
jmp 0x4c8afb

Function at 0x4c8b90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
lea eax, [ebp - 4]
push 0
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call sub.kernel32.dll_ReadFile
xor edx, edx
add esp, 0xc
test eax, eax
je 0x4c8bb9
mov edx, dword [ebp - 4]
mov eax, edx
leave
ret

Function at 0x4c8bc0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
lea eax, [ebp - 4]
push 0
mov edx, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push ecx
push edx
push eax
call sub.kernel32.dll_WriteFile
xor edx, edx
add esp, 0xc
test eax, eax
je 0x4c8be9
mov edx, dword [ebp - 4]
mov eax, edx
leave
ret
Function at 0x4e6440
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x4e64f4
mov edx, dword [ebp + 8]
xor ebx, ebx
xor ecx, ecx
mov eax, dword [edx]
mov byte [eax + 0x16], 0
mov eax, dword [edx]
mov byte [eax + 0x17], 0
mov eax, dword [edx]
mov byte [eax + 0x18], 0
mov eax, dword [edx]
mov byte [eax + 0x19], 0
mov esi, dword [edx + 4]
cmp esi, 0
jle 0x4e64fa
mov edi, dword [edx]
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x10]
xor eax, eax
mov edx, ebx
shr ebx, 0x18
mov al, byte [ecx + edi]
xor eax, ebx
inc ecx
shl edx, 8
mov ebx, edx
mov edi, dword [eax*4 + 0x768734]
xor ebx, edi
cmp esi, ecx
jg 0x4e6482
mov edx, dword [ebp + 8]
xor ecx, ecx
mov edi, dword [edx + 0xc]
cmp edi, 0
jle 0x4e64d3
mov esi, dword [edx + 8]
xor eax, eax
mov edx, ebx
shr ebx, 0x18
mov al, byte [ecx + esi]
xor eax, ebx
inc ecx
shl edx, 8
mov ebx, edx
mov edx, dword [eax*4 + 0x768734]
xor ebx, edx
cmp edi, ecx
jg 0x4e64b4
mov edi, dword [ebp - 0x10]
mov byte [edi + 0x16], bl
shr ebx, 8
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov byte [eax + 0x17], bl
shr ebx, 8
mov eax, dword [edx]
mov byte [eax + 0x18], bl
shr ebx, 8
mov eax, dword [edx]
mov byte [eax + 0x19], bl
pop ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
jmp 0x4e64a4
Function at 0x500c10
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x234
lea edi, [ebp - 0x228]
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x230], edx
mov ebx, dword [ebp + 8]
push edi
push eax
mov esi, 0x200
call fcn.004f89d0
add esp, 0x10
sub esp, 0xc
push edi
call fcn.004f8db0
add esp, 0x10
cmp esi, ebx
jbe 0x500c52
mov esi, ebx
mov ecx, dword [ebp - 0x230]
push ecx
push esi
push 1
push eax
call sub.msvcrt.dll_fread
mov edx, dword [ebp - 0x228]
add edx, eax
add esp, 0x10
sub ebx, eax
mov dword [ebp - 0x228], edx
setne dl
cmp eax, esi
sete al
and eax, 0xff
test edx, eax
jne 0x500c40
sub esp, 0xc
xor esi, esi
push edi
call fcn.004f8cd0
add esp, 0x10
test ebx, ebx
jne 0x500ca7
mov esi, 1
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
push eax
push eax
push 0xffffffffffffffff
mov edi, dword [ebp - 0x22c]
push edi
call fcn.004f9e10
add esp, 0x10
test eax, eax
jne 0x500c98
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x5029f0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x128
mov ebx, eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, edx
push eax
call sub.msvcrt.dll_getenv
add esp, 0x10
test eax, eax
je 0x502ae1
push 0x76a706
push 0x76a70a
push eax
push ebx
call fcn.004f8e80
push esi
push 0x76a70d
push eax
push ebx
call fcn.004f8e80
add esp, 0x18
push 0xfffffffffffffffe
push ebx
call fcn.004f9920
add esp, 0xc
lea esi, [ebp - 0x128]
push 0x105
push esi
push 0
call sub.kernel32.dll_GetModuleFileNameA
test eax, eax
pop edx
sete dl
cmp eax, 0x105
sete al
or eax, edx
test al, 1
jne 0x502ac0
push eax
push eax
push 0x5c
push esi
call sub.msvcrt.dll_strrchr
add esp, 0x10
test eax, eax
je 0x502ac0
mov byte [eax], 0
push esi
push 0x76a70f
sub esp, 0xc
push 0
push 0xffffffffffffffff
push ebx
call fcn.004f9d90
add esp, 0x18
push eax
push ebx
call fcn.004f8e80
pop esi
pop eax
push 0xfffffffffffffffe
push ebx
call fcn.004f9920
add esp, 0xc
push edi
push 0xfffffffffffffffe
push ebx
call fcn.004fa4d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push eax
push eax
push str.unable_to_get_ModuleFileName
push ebx
call fcn.004f82c0
add esp, 0xc
push edi
push 0xfffffffffffffffe
push ebx
call fcn.004fa4d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push ecx
push ecx
push esi
push ebx
call fcn.004fa030
jmp 0x502a40
Function at 0x5117d0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ebx
push eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x14]
cmp eax, 0xca
je 0x5118ad
cmp eax, 0xcb
je 0x511830
cmp eax, 0xcc
jne 0x5117ff
mov eax, ebx
mov ebx, dword [ebp - 4]
leave
jmp fcn.005116a0
mov eax, dword [ebx]
sub esp, 0xc
mov dword [eax + 0x14], 0x14
mov edx, dword [ebx + 0x14]
mov dword [eax + 0x18], edx
mov eax, dword [ebx]
push ebx
call dword [eax]
mov eax, ebx
add esp, 0x10
mov ebx, dword [ebp - 4]
leave
jmp fcn.005116a0
mov dword [ebx + 0x14], 0xcb
nop
lea esi, [esi]
mov eax, dword [ebx + 0x1ec]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x511896
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x5118d5
sub esp, 0xc
mov eax, dword [ebx + 0x1ec]
push ebx
call dword [eax]
add esp, 0x10
test eax, eax
je 0x5118e3
cmp eax, 2
je 0x511896
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x511848
cmp eax, 3
sete dl
dec eax
sete al
or eax, edx
test al, 1
je 0x511840
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
inc eax
mov dword [ecx + 4], eax
cmp eax, edx
jl 0x511840
mov eax, dword [ebx + 0x178]
add edx, eax
mov dword [ecx + 8], edx
jmp 0x511840
mov eax, dword [ebx + 0x90]
mov dword [ebx + 0x98], eax
mov eax, ebx
mov ebx, dword [ebp - 4]
leave
jmp fcn.005116a0
sub esp, 0xc
push ebx
call fcn.00516790
mov eax, dword [ebx + 0x40]
add esp, 0x10
test eax, eax
je 0x511824
mov dword [ebx + 0x14], 0xcf
mov eax, 1
mov ebx, dword [ebp - 4]
leave
ret
sub esp, 0xc
push ebx
call dword [ecx]
add esp, 0x10
jmp 0x511848
xor eax, eax
mov ebx, dword [ebp - 4]
leave
ret
Function at 0x513580
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x1c
mov esi, dword [ebp + 8]
mov dword [esi + 4], 0
push esi
call fcn.00516c50
pop ebx
mov dword [ebp - 0x10], eax
pop eax
push 0x54
push esi
call fcn.00516be0
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x5136b4
sub esp, 0xc
mov eax, dword [ebp - 0x10]
mov dword [ebx], fcn.005127c0
mov dword [ebx + 4], fcn.00512960
mov dword [ebx + 8], fcn.00512a10
mov dword [ebx + 0xc], fcn.00512ac0
mov dword [ebx + 0x10], 0x512b90
mov dword [ebx + 0x14], 0x512c10
mov dword [ebx + 0x18], 0x512c90
mov dword [ebx + 0x1c], 0x513040
mov dword [ebx + 0x20], 0x513210
mov dword [ebx + 0x24], fcn.005133e0
mov dword [ebx + 0x28], 0x513530
mov dword [ebx + 0x30], 0x3b9aca00
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x4c], 0x54
mov dword [esi + 4], ebx
push str.JPEGMEM
call sub.msvcrt.dll_getenv
add esp, 0x10
mov edx, eax
test eax, eax
je 0x513698
lea eax, [ebp - 9]
mov byte [ebp - 9], 0x78
push eax
lea eax, [ebp - 0x10]
push eax
push str._ld_c
push edx
call sub.msvcrt.dll_sscanf
add esp, 0x10
test eax, eax
jle 0x513698
mov al, byte [ebp - 9]
cmp al, 0x6d
sete dl
cmp al, 0x4d
sete al
or eax, edx
test al, 1
jne 0x5136a0
mov eax, dword [ebp - 0x10]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ebx + 0x2c], eax
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret
mov eax, dword [ebp - 0x10]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ebp - 0x10], eax
jmp 0x513689
sub esp, 0xc
push esi
call fcn.00516c60
mov eax, dword [esi]
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0x36
mov eax, dword [esi]
mov dword [esp], esi
call dword [eax]
add esp, 0x10
jmp 0x5135b2
Function at 0x5296d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov word [eax + 4], 0xffff
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov word [eax + 0x10], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x50], 0
mov dword [eax + 0x54], 0
mov dword [eax + 0x58], 0
mov dword [eax + 0x5c], 0x20
mov dword [eax + 0x60], 0x20
mov dword [eax + 0x64], 0
mov dword [eax + 0x68], 0
mov dword [eax + 0x6c], 2
mov dword [eax + 0x70], 2
mov dword [eax + 0x74], 0x1388
mov dword [eax + 0x78], 0x1f4
mov dword [eax + 0x7c], 0x1f4
mov dword [eax + 0x80], 0
mov dword [eax + 0x84], 0
mov dword [eax + 0x88], 0x1f4
mov dword [eax + 0x8c], 0
mov edx, dword [eax]
mov edx, dword [edx + 0x18]
mov dword [eax + 0x98], 0
mov word [eax + 0x90], dx
mov dword [eax + 0x9c], 0
mov dword [eax + 0x94], 0x8000
pop ebp
jmp fcn.00529600

Function at 0x529f00
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x30
cmp dword [ebp + 8], 2
sete al
and eax, 0xff
push 0
inc eax
push eax
push 2
call sub.ws2_32.dll_socket
mov dword [ebp - 0x2c], 1
mov ebx, eax
mov dword [ebp - 0x30], 0x40000
pop eax
or eax, 0xffffffff
cmp ebx, 0xffffffff
je 0x529fab
cmp dword [ebp + 8], 2
je 0x529fe2
lea esi, [ebp - 0x28]
xor eax, eax
cld
mov ecx, 4
mov edi, esi
rep stosd dword es:[edi], eax
mov edi, dword [ebp + 0xc]
mov word [ebp - 0x28], 2
test edi, edi
je 0x529fd3
mov edx, dword [ebp + 0xc]
sub esp, 0xc
mov ax, word [edx + 4]
and eax, 0xffff
push eax
call sub.ws2_32.dll_htons
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov word [ebp - 0x26], ax
mov eax, dword [edx]
mov dword [ebp - 0x24], eax
push ecx
push 0x10
push esi
push ebx
call sub.ws2_32.dll_bind
pop edx
inc eax
je 0x529fc5
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 8], 1
sete dl
test eax, eax
setne al
and eax, 0xff
test edx, eax
jne 0x529fb3
mov eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push edi
push edi
push 0x7fffffff
push ebx
call sub.ws2_32.dll_listen
pop ecx
inc eax
pop esi
jne 0x529fa9
sub esp, 0xc
push ebx
call sub.ws2_32.dll_closesocket
or eax, 0xffffffff
jmp 0x529fab
mov word [ebp - 0x26], 0
mov dword [ebp - 0x24], 0
jmp 0x529f83
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x8004667e
push ebx
call sub.ws2_32.dll_ioctlsocket
push eax
push eax
lea eax, [ebp - 0x30]
push 4
push eax
push 0x1002
push 0xffff
push ebx
call sub.ws2_32.dll_setsockopt
add esp, 0xc
jmp 0x529f43
Function at 0x52a100
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x24
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x52a132
mov word [ebp - 0x18], 2
sub esp, 0xc
mov ax, word [ebx + 4]
and eax, 0xffff
push eax
call sub.ws2_32.dll_htons
add esp, 0xc
mov word [ebp - 0x16], ax
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
sub esp, 0xc
cmp ebx, 1
sbb eax, eax
xor eax, 0xffffffff
push 0
and eax, 0x10
push 0
push eax
xor eax, eax
test ebx, ebx
je 0x52a14e
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push 0
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 8]
push eax
call sub.ws2_32.dll_WSASendTo
add esp, 0xc
inc eax
je 0x52a174
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 4]
leave
ret
call fcn.00586608
mov ebx, dword [ebp - 4]
cmp eax, 0x2733
leave
sete al
and eax, 0xff
dec eax
ret

Function at 0x52a190
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x30
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x1c], 0x10
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x1c]
push 0
test ebx, ebx
push 0
je 0x52a211
push eax
xor eax, eax
test ebx, ebx
je 0x52a1bd
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 8]
push eax
call sub.ws2_32.dll_WSARecvFrom
add esp, 0xc
inc eax
je 0x52a215
or eax, 0xffffffff
cmp word [ebp - 0x20], 0
js 0x52a20c
test ebx, ebx
je 0x52a209
mov eax, dword [ebp - 0x14]
sub esp, 0xc
mov dword [ebx], eax
mov ax, word [ebp - 0x16]
and eax, 0xffff
push eax
call sub.ws2_32.dll_htons
add esp, 0xc
mov word [ebx + 4], ax
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 4]
leave
ret
xor eax, eax
jmp 0x52a1b3
call fcn.00586608
mov edx, eax
cmp eax, 0x2733
je 0x52a22e
or eax, 0xffffffff
cmp edx, 0x2746
jne 0x52a20c
xor eax, eax
mov ebx, dword [ebp - 4]
leave
ret
Function at 0x52a240
Capabilities:
Get socket status

Disassembly:
push ebp
mov edx, 0x10624dd3
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x23c
mov dword [ebp - 0x128], 0
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x238], 0
mov eax, ecx
mov ebx, dword [ebp + 8]
mul edx
shr edx, 6
mov dword [ebp - 0x240], edx
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
shl edx, 3
sub ecx, edx
mov edx, dword [ebp + 0xc]
lea eax, [ecx + ecx*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ebp - 0x23c], eax
mov eax, dword [edx]
test al, 1
je 0x52a2b1
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x238], 1
test al, 2
je 0x52a2d4
mov edx, dword [ebp - 0x128]
xor eax, eax
cmp edx, 0
jbe 0x52a2d0
cmp dword [ebp + eax*4 - 0x124], ebx
je 0x52a2d0
inc eax
cmp edx, eax
ja 0x52a2c2
cmp edx, eax
je 0x52a34e
sub esp, 0xc
lea eax, [ebp - 0x240]
lea esi, [ebp - 0x238]
lea edi, [ebp - 0x128]
push eax
lea eax, [ebx + 1]
push 0
push esi
push edi
push eax
call sub.ws2_32.dll_select
or edx, 0xffffffff
add esp, 0xc
test eax, eax
jl 0x52a30e
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
jne 0x52a318
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
push eax
push eax
push esi
push ebx
call sub.ws2_32.dll___WSAFDIsSet
pop edx
test eax, eax
pop ecx
jne 0x52a342
push eax
push eax
push edi
push ebx
call sub.ws2_32.dll___WSAFDIsSet
pop ebx
test eax, eax
pop esi
je 0x52a30c
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
or ecx, 2
mov dword [eax], ecx
jmp 0x52a30c
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
or eax, 1
mov dword [edx], eax
jmp 0x52a327
cmp eax, 0x3f
ja 0x52a2d4
mov dword [ebp + eax*4 - 0x124], ebx
inc eax
mov dword [ebp - 0x128], eax
jmp 0x52a2d4
Function at 0x536560
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
lea ecx, [edx + edx*2]
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x1c
shl ebx, 5
mov esi, dword [ebp + 8]
add ecx, ebx
mov ebx, dword [eax + 0x70]
shl ecx, 2
mov eax, dword [eax + 0x6c]
add ecx, ebx
mov dword [ebp - 0x10], 0
add ecx, 0x28
dec edx
sete dl
and edx, 0xff
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], edx
test al, 4
je 0x536610
test esi, esi
js 0x5366a1
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x536698
test byte [ebp - 0x28], 2
jne 0x536620
mov edi, dword [ecx + 8]
test edi, edi
je 0x5365e0
mov edx, dword [ecx + 0x10]
mov eax, esi
sub eax, edx
js 0x536721
cmp eax, 0x27
jg 0x5365e0
mov esi, edx
cmp edx, 0x2f
jg 0x536600
mov esi, 0x30
jmp 0x536600
cmp esi, 0x35
jg 0x5366cd
mov eax, 0x36
sub eax, esi
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
add esi, eax
nop
lea esi, [esi]
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x536610
neg esi
lea esi, [esi]
add esp, 0x1c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ecx + 8]
xor edi, edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], 0x62
mov dword [ebp - 0x24], esi
cmp edi, eax
jge 0x536663
add ecx, 0x10
lea esi, [esi]
mov edx, dword [ecx]
mov ebx, esi
sub ebx, edx
mov eax, ebx
sar eax, 0x1f
xor ebx, eax
sub ebx, eax
cmp ebx, dword [ebp - 0x20]
jge 0x53665a
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], edx
inc edi
add ecx, 0xc
cmp edi, dword [ebp - 0x18]
jl 0x536640
mov eax, dword [ebp - 0x24]
add eax, 0x20
and eax, 0xffffffc0
cmp esi, dword [ebp - 0x24]
jl 0x5366af
add eax, 0x30
cmp eax, esi
jle 0x53667e
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
test ebx, ebx
je 0x5366b8
cmp esi, 0x3f
jle 0x5366c3
add esi, 0x10
and esi, 0xffffffc0
jmp 0x536600
test byte [ebp - 0x28], 1
jmp 0x5365b6
neg esi
mov dword [ebp - 0x10], 1
jmp 0x5365a7
sub eax, 0x30
cmp eax, esi
jge 0x53667e
jmp 0x536678
test byte [ebp - 0x28], 8
je 0x5366f7
cmp esi, 0x3f
jg 0x53670c
mov esi, 0x40
jmp 0x536600
cmp esi, 0xbf
jg 0x536600
mov eax, esi
and esi, 0xffffffc0
and eax, 0x3f
cmp eax, 9
jle 0x5365f9
cmp eax, 0x15
jg 0x53672a
add esi, 0xa
jmp 0x536600
cmp esi, 0x2f
jle 0x536717
cmp esi, 0x7f
jg 0x53670c
add esi, 0x16
and esi, 0xffffffc0
jmp 0x536600
add esi, 0x20
and esi, 0xffffffc0
jmp 0x536600
add esi, 0x40
sar esi, 1
jmp 0x536600
mov eax, edx
sub eax, esi
jmp 0x5365cc
cmp eax, 0x29
jle 0x5365f9
cmp eax, 0x35
jg 0x5365f9
add esi, 0x36
jmp 0x536600
Function at 0x557da0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xc
mov dword [ebp - 0x10], edx
mov edx, dword [eax + 0x11c]
mov eax, dword [eax + 0x118]
xor edi, edi
xor esi, esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
test eax, eax
jle 0x557e16
xor ebx, ebx
push eax
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebx + eax]
push eax
call sub.msvcrt.dll_strcmp
add esp, 0x10
test eax, eax
jne 0x557de6
mov edi, 1
inc esi
mov eax, edi
add ebx, 0xc
cmp dword [ebp - 0x18], esi
setg dl
xor eax, 1
and eax, 0xff
test edx, eax
jne 0x557dc8
mov edx, dword [ebp - 0x14]
lea eax, [esi + esi*2]
lea eax, [edx + eax*4 - 0xc]
mov edx, edi
test dl, dl
je 0x557e16
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x572f00
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, eax
push ecx
or eax, 0xffffffff
mov edx, dword [ebx + 0x3c]
test edx, edx
jne 0x572f29
mov eax, dword [ebx + 4]
test eax, eax
je 0x572f30
mov ecx, dword [ebx]
dec eax
xor edx, edx
mov dword [ebx + 4], eax
lea eax, [ecx + 1]
mov dl, byte [ecx]
mov dword [ebx], eax
mov eax, edx
mov ebx, dword [ebp - 4]
leave
ret
call sub.msvcrt.dll__errno
mov dword [eax], 0
mov eax, dword [ebx + 0x40]
push eax
push 0x4000
push 1
mov eax, dword [ebx + 0x44]
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
test eax, eax
je 0x572f5d
mov ecx, dword [ebx + 0x44]
mov dword [ebx], ecx
jmp 0x572f1a
mov eax, dword [ebx + 0x40]
mov dword [ebx + 4], 0
mov dword [ebx + 0x3c], 1
test byte [eax + 0xc], 0x20
je 0x572f7b
mov dword [ebx + 0x38], 0xffffffff
or eax, 0xffffffff
mov ebx, dword [ebp - 4]
leave
ret
Function at 0x572f90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xc
mov esi, eax
mov ebx, dword [eax + 4]
mov eax, ebx
cmp ebx, 1
ja 0x573000
test ebx, ebx
jne 0x573016
call sub.msvcrt.dll__errno
mov cl, bl
mov dword [eax], 0
mov eax, dword [esi + 0x40]
push eax
mov eax, 0x4000
sar eax, cl
push eax
push 1
mov edi, dword [esi + 0x44]
add ebx, edi
push ebx
call sub.msvcrt.dll_fread
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x572fe1
mov eax, dword [esi + 0x40]
test byte [eax + 0xc], 0x20
jne 0x573052
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x44]
add eax, ebx
mov dword [esi], edx
mov dword [esi + 4], eax
cmp eax, 1
ja 0x573002
mov dword [esi + 0x58], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esi]
cmp byte [edx], 0x1f
je 0x573021
mov dword [esi + 0x58], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esi]
mov eax, dword [esi + 0x44]
mov dl, byte [edx]
mov byte [eax], dl
jmp 0x572fa9
cmp byte [edx + 1], 0x8b
jne 0x573007
sub eax, 2
mov dword [esi + 4], eax
lea eax, [edx + 2]
mov dword [esi], eax
mov eax, esi
call fcn.00572f00
mov ebx, eax
mov eax, esi
call fcn.00572f00
cmp ebx, 8
mov edi, eax
je 0x57305b
mov dword [esi + 0x38], 0xfffffffd
jmp 0x57300e
mov dword [esi + 0x38], 0xffffffff
jmp 0x572fe1
mov bl, 5
test al, 0xe0
jne 0x573049
mov eax, esi
call fcn.00572f00
dec ebx
jns 0x573061
test edi, 4
jne 0x5730be
test edi, 8
jne 0x57309e
test edi, 0x10
jne 0x5730ae
and edi, 2
jne 0x5730e5
mov eax, dword [esi + 0x3c]
cmp eax, 1
sbb eax, eax
xor eax, 0xffffffff
and eax, 0xfffffffd
mov dword [esi + 0x38], eax
jmp 0x57300e
mov eax, esi
call fcn.00572f00
test eax, eax
je 0x57307b
inc eax
jne 0x57309e
jmp 0x57307b
mov eax, esi
call fcn.00572f00
test eax, eax
je 0x573083
inc eax
jne 0x5730ae
jmp 0x573083
mov eax, esi
call fcn.00572f00
mov ebx, eax
mov eax, esi
call fcn.00572f00
shl eax, 8
add ebx, eax
dec ebx
cmp ebx, 0xffffffff
je 0x573073
mov eax, esi
call fcn.00572f00
inc eax
jne 0x5730d3
jmp 0x573073
mov eax, esi
call fcn.00572f00
mov eax, esi
call fcn.00572f00
jmp 0x573088