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

Disassembly:
sub esp, 0x14
push 0x1000
push 0
push dword [0x6720e4]
mov dword [esp + 0x14], 0x1000
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x54e9c4
mov cl, byte [esp + 3]
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
mov ebp, dword [esp + 0x28]
push esi
push edi
mov esi, edx
mov edi, edi
cmp ebp, 0xffffffff
je 0x54e88e
test ebp, ebp
je 0x54e930
dec ebp
cmp dword [ebx + 4], 0
je 0x54e8a7
push 1
lea eax, [esp + 0x17]
push eax
push ebx
call fcn.0054e5a0
mov dword [esp + 0x14], eax
jmp 0x54e8c1
push 0
lea eax, [esp + 0x18]
push eax
push 1
lea eax, [esp + 0x1f]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x13]
cmp eax, 1
jne 0x54e930
test cl, cl
je 0x54e8d5
mov byte [esi], cl
inc esi
mov cl, byte [esp + 0x13]
mov eax, dword [esp + 0x18]
mov edi, esi
mov edx, dword [esp + 0x20]
dec eax
sub edi, edx
cmp edi, eax
jle 0x54e910
mov eax, dword [esp + 0x18]
add eax, 0x1000
push eax
push edx
push 8
push dword [0x6720e4]
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov cl, byte [esp + 0x13]
mov edx, eax
mov dword [esp + 0x20], edx
lea esi, [edi + edx]
test cl, cl
je 0x54e930
cmp dword [esp + 0x2c], 0
jne 0x54e880
cmp cl, 0xd
je 0x54e937
cmp cl, 0xa
jne 0x54e880
dec esi
jmp 0x54e9a7
cmp dword [esp + 0x2c], 0
jne 0x54e9a7
cmp cl, 0xa
jne 0x54e93f
dec esi
jmp 0x54e9a7
cmp cl, 0xd
jne 0x54e9a7
dec esi
cmp dword [ebx + 4], 0
je 0x54e95e
push 1
lea eax, [esp + 0x17]
push eax
push ebx
call fcn.0054e5a0
mov dword [esp + 0x14], eax
jmp 0x54e974
push 0
lea eax, [esp + 0x18]
push eax
push 1
lea eax, [esp + 0x1f]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [esp + 0x13], 0xa
je 0x54e9a7
cmp dword [ebx + 4], 0
je 0x54e986
inc dword [ebx + 0xc]
jmp 0x54e9a7
push 1
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], 0xffffffff
push eax
push 0xffffffffffffffff
push dword [ebx]
mov dword [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x34]
mov ecx, esi
sub ecx, dword [esp + 0x20]
pop edi
mov dword [eax], ecx
mov eax, dword [esp + 0x1c]
mov byte [esi], 0
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10
xor eax, eax
add esp, 0x14
ret 0x10
Function at 0x54e9d0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x18
push 0x1000
push 0
push dword [0x6720e4]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, eax
mov dword [esp + 8], ecx
test ecx, ecx
je 0x54eb7d
mov ax, word [esp]
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x2c]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x20], 0x1000
mov dword [esp + 0x1c], 0x7ff
cmp ebp, 0xffffffff
je 0x54ea24
test ebp, ebp
je 0x54eadd
dec ebp
cmp dword [ebx + 4], 0
je 0x54ea3d
push 2
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.0054e5a0
mov dword [esp + 0x14], eax
jmp 0x54ea57
push 0
lea eax, [esp + 0x18]
push eax
push 2
lea eax, [esp + 0x1c]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
cmp eax, 2
mov ax, word [esp + 0x10]
jne 0x54eadd
test ax, ax
je 0x54ea71
mov word [edi], ax
add edi, 2
mov ax, word [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov esi, edi
mov edx, dword [esp + 0x1c]
sub esi, ecx
sar esi, 1
cmp esi, edx
jle 0x54eab8
mov eax, dword [esp + 0x20]
add edx, 0x800
add eax, 0x1000
mov dword [esp + 0x1c], edx
push eax
push ecx
push 8
push dword [0x6720e4]
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov ecx, eax
mov ax, word [esp + 0x10]
mov dword [esp + 0x18], ecx
lea edi, [ecx + esi*2]
test ax, ax
je 0x54eadd
cmp dword [esp + 0x30], 0
jne 0x54ea16
cmp ax, 0xd
je 0x54eae4
cmp ax, 0xa
jne 0x54ea16
sub edi, 2
jmp 0x54eb5c
cmp dword [esp + 0x30], 0
jne 0x54eb5c
cmp ax, 0xa
jne 0x54eaef
sub edi, 2
jmp 0x54eb5c
cmp ax, 0xd
jne 0x54eb5c
sub edi, 2
cmp dword [ebx + 4], 0
je 0x54eb11
push 2
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.0054e5a0
mov dword [esp + 0x14], eax
jmp 0x54eb27
push 0
lea eax, [esp + 0x18]
push eax
push 2
lea eax, [esp + 0x1c]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp word [esp + 0x10], 0xa
je 0x54eb5c
cmp dword [ebx + 4], 0
je 0x54eb3b
add dword [ebx + 0xc], 2
jmp 0x54eb5c
push 1
lea eax, [esp + 0x28]
mov dword [esp + 0x24], 0xfffffffe
push eax
push 0xfffffffffffffffe
push dword [ebx]
mov dword [esp + 0x34], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x38]
mov ecx, edi
sub ecx, dword [esp + 0x18]
sar ecx, 1
mov dword [eax], ecx
xor eax, eax
mov word [edi], ax
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x10
xor eax, eax
add esp, 0x18
ret 0x10
Function at 0x54eb90
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
push 0x1000
push 0
push dword [0x6720e4]
mov dword [esp + 0x10], 0x1000
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
je 0x54ece0
mov eax, dword [esp + 0x1c]
mov cl, byte [esp + 3]
push ebx
push ebp
mov ebp, dword [esp + 0x20]
push esi
push edi
mov edi, dword [esp + 0x30]
mov esi, edx
cmp edi, 0xffffffff
je 0x54ebdc
test edi, edi
je 0x54ec4d
dec edi
push esi
push ebp
call fcn.0054ecf0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x54ebef
xor cl, cl
jmp 0x54ebf1
mov cl, byte [esi]
mov edx, dword [esp + 0x1c]
add esi, eax
mov eax, dword [esp + 0x14]
mov ebx, esi
sub ebx, edx
mov byte [esp + 0x13], cl
add eax, 0xfffffffb
cmp ebx, eax
jle 0x54ec34
mov eax, dword [esp + 0x14]
add eax, 0x1000
push eax
push edx
push 8
push dword [0x6720e4]
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov cl, byte [esp + 0x13]
mov edx, eax
mov dword [esp + 0x1c], edx
lea esi, [ebx + edx]
mov eax, dword [esp + 0x2c]
test cl, cl
je 0x54ec4d
test eax, eax
jne 0x54ebd2
cmp cl, 0xd
je 0x54ec51
cmp cl, 0xa
jne 0x54ebd2
dec esi
jmp 0x54ecc3
test eax, eax
jne 0x54ecc3
cmp cl, 0xa
jne 0x54ec59
dec esi
jmp 0x54ecc3
cmp cl, 0xd
jne 0x54ecc3
dec esi
cmp dword [ebp + 4], 0
je 0x54ec78
push 1
lea eax, [esp + 0x17]
push eax
push ebp
call fcn.0054e5a0
mov dword [esp + 0x20], eax
jmp 0x54ec8f
push 0
lea eax, [esp + 0x24]
push eax
push 1
lea eax, [esp + 0x1f]
push eax
push dword [ebp]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [esp + 0x13], 0xa
je 0x54ecc3
cmp dword [ebp + 4], 0
je 0x54eca1
inc dword [ebp + 0xc]
jmp 0x54ecc3
push 1
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], 0xffffffff
push eax
push 0xffffffffffffffff
push dword [ebp]
mov dword [esp + 0x28], 0xffffffff
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x34]
mov ecx, esi
sub ecx, dword [esp + 0x1c]
pop edi
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov byte [esi], 0
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10
xor eax, eax
add esp, 0x14
ret 0x10
Function at 0x54ecf0
Capabilities:
Read file on windows

Disassembly:
push ecx
push edi
mov edi, dword [esp + 0xc]
mov dword [esp + 4], 0
cmp dword [edi + 4], 0
je 0x54ed17
push 1
lea eax, [esp + 0x10]
push eax
push edi
call fcn.0054e5a0
mov dword [esp + 4], eax
jmp 0x54ed31
push 0
lea eax, [esp + 8]
push eax
push 1
lea eax, [esp + 0x18]
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 4]
cmp eax, 1
je 0x54ed3d
xor eax, eax
pop edi
pop ecx
ret 8
mov cl, byte [esp + 0xc]
test cl, cl
js 0x54ed59
mov eax, dword [esp + 0x10]
pop edi
mov byte [eax], cl
mov byte [eax + 1], 0
mov eax, 1
pop ecx
ret 8
mov al, cl
and al, 0xe0
push esi
cmp al, 0xc0
jne 0x54ed69
mov esi, 2
jmp 0x54ed85
mov al, cl
and al, 0xf0
cmp al, 0xe0
jne 0x54ed78
mov esi, 3
jmp 0x54ed85
mov al, cl
and al, 0xf8
cmp al, 0xf0
jne 0x54ede2
mov esi, 4
mov edx, dword [esp + 0x14]
mov byte [edx], cl
cmp dword [edi + 4], 0
je 0x54edb4
lea eax, [esi - 1]
push eax
lea eax, [edx + 1]
push eax
push edi
call fcn.0054e5a0
mov edx, eax
lea ecx, [esi - 1]
xor eax, eax
cmp edx, ecx
setne al
dec eax
and eax, esi
pop esi
pop edi
pop ecx
ret 8
push 0
lea eax, [esp + 0xc]
push eax
lea eax, [esi - 1]
push eax
lea eax, [edx + 1]
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [esp + 8]
lea ecx, [esi - 1]
xor eax, eax
cmp edx, ecx
setne al
dec eax
and eax, esi
pop esi
pop edi
pop ecx
ret 8
mov eax, dword [esp + 0x14]
pop esi
pop edi
mov word [eax], 0x3f
mov eax, 1
pop ecx
ret 8

Function at 0x54fd67
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
xor edi, edi
cmp dword [ebp + 0x14], edi
je 0x54fdc5
add ebx, 2
lea eax, [ebx*2 + 2]
push eax
push edi
push dword [0x6720e4]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x54fdc5
cmp dword [ebp + 0xc], 0
je 0x54fdb4
push dword [ebp + 0xc]
push edi
call sub.MSVCRT.dll_wcscpy
push 0x60d95c
push edi
call sub.MSVCRT.dll_wcscat
add esp, 0x10
jmp 0x54fdc1
push 0x60d95c
push edi
call sub.MSVCRT.dll_wcscpy
pop ecx
pop ecx
mov esi, edi
jmp 0x54fdc8
mov esi, dword [ebp + 0xc]
push 0
lea eax, [ebp + 0x10]
push eax
push ebx
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WriteConsoleW]
test eax, eax
jne 0x54fe2f
mov eax, dword [0x66eea0]
dec eax
dec eax
je 0x54fe09
sub eax, 0x16
je 0x54fe01
push 0
lea eax, [ebp + 0x10]
push eax
lea eax, [ebx + ebx]
push eax
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x54fe2f
push esi
call fcn.005f6eb0
jmp 0x54fe0f
push esi
call fcn.005f6f50
mov esi, eax
lea eax, [ebp + 0x10]
push 0
push eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call fcn.005f6ea0
test edi, edi
je 0x54fe42
push edi
push 0
push dword [0x6720e4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
Function at 0x55006d
Capabilities:
Hash data using sha384

Disassembly:
mov eax, dword [esp + 4]
push 0x40
push 0x60dcf0
and dword [eax + 0x80], 0
and dword [eax + 0x84], 0
mov dword [eax + 0xc8], 0x30
add eax, 0x88
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
ret

Function at 0x550173
Capabilities:
Hash data using sha512

Disassembly:
mov eax, dword [esp + 4]
push 0x40
pop ecx
push ecx
and dword [eax + 0x80], 0
and dword [eax + 0x84], 0
mov dword [eax + 0xc8], ecx
add eax, 0x88
push 0x60dcb0
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
ret
Function at 0x55382f
Capabilities:
Hash data using sha256

Disassembly:
mov eax, dword [esp + 4]
push 0x20
pop ecx
push ecx
and dword [eax + 0x40], 0
and dword [eax + 0x44], 0
mov dword [eax + 0x68], ecx
add eax, 0x48
push 0x60de30
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
ret
Function at 0x55506f
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
push ebx
mov ebx, dword [esp + 8]
mov eax, ebx
push ebp
or eax, edx
push esi
mov esi, dword [esp + 0x18]
or eax, esi
push edi
mov edi, dword [esp + 0x20]
or eax, edi
test al, 3
jne 0x5550d6
lea ecx, [esi + edi]
mov eax, ecx
lea edi, [ebx + edx]
sub eax, esi
xor ebx, ebx
add eax, 3
shr eax, 2
cmp ecx, esi
sbb ebp, ebp
not ebp
and ebp, eax
jbe 0x5550ee
sub edi, esi
mov ecx, dword [esi]
mov edx, ecx
shr edx, 8
mov eax, ecx
shl eax, 8
xor edx, eax
shl ecx, 8
and edx, 0xff00ff
xor edx, ecx
rol edx, 0x10
inc ebx
mov dword [edi + esi], edx
lea esi, [esi + 4]
cmp ebx, ebp
jb 0x5550ad
jmp 0x5550ee
add edi, edx
cmp edx, edi
jae 0x5550ee
sub esi, edx
mov al, byte [esi + edx]
mov ecx, edx
xor ecx, 3
inc edx
mov byte [ecx + ebx], al
cmp edx, edi
jb 0x5550de
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x5550f3
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
push ebx
mov ebx, dword [esp + 8]
mov eax, ebx
push ebp
or eax, edx
push esi
mov esi, dword [esp + 0x18]
or eax, esi
push edi
mov edi, dword [esp + 0x20]
or eax, edi
test al, 7
jne 0x55514e
lea ecx, [esi + edi]
mov eax, ecx
lea edi, [ebx + edx]
sub eax, esi
xor ebx, ebx
add eax, 7
shr eax, 3
cmp ecx, esi
sbb ebp, ebp
not ebp
and ebp, eax
jbe 0x555166
sub edi, esi
push dword [esi + 4]
push dword [esi]
call fcn.0055502f
inc ebx
mov dword [edi + esi], eax
mov dword [edi + esi + 4], edx
lea esi, [esi + 8]
pop ecx
pop ecx
cmp ebx, ebp
jb 0x555131
jmp 0x555166
add edi, edx
cmp edx, edi
jae 0x555166
sub esi, edx
mov al, byte [esi + edx]
mov ecx, edx
xor ecx, 7
inc edx
mov byte [ecx + ebx], al
cmp edx, edi
jb 0x555156
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x5552e8
Capabilities:
Hash data using sha1

Disassembly:
mov ecx, dword [esp + 4]
mov eax, dword [esp + 8]
and dword [ecx + 0x18], 0
and dword [ecx + 0x14], 0
mov dword [ecx], 0x67452301
mov dword [ecx + 4], 0xefcdab89
mov dword [ecx + 8], 0x98badcfe
mov dword [ecx + 0xc], 0x10325476
mov dword [ecx + 0x10], 0xc3d2e1f0
mov dword [ecx + 0x5c], eax
ret
Function at 0x556847
Capabilities:
Hash data with md5

Disassembly:
mov eax, dword [esp + 4]
and dword [eax + 0x14], 0
and dword [eax + 0x10], 0
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
ret

Function at 0x5570e9
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov edx, dword [esp + 4]
test edx, edx
jne 0x5570fa
mov eax, dword [esp + 0xc]
jmp 0x5571d6
mov ecx, dword [esp + 0xc]
push ebx
push esi
mov esi, dword [esp + 0x10]
not ecx
mov ebx, 0xff
cmp esi, 8
jb 0x5571b7
push edi
mov edi, esi
shr edi, 3
movzx eax, byte [edx]
sub esi, 8
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
movzx eax, byte [edx + 1]
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
movzx eax, byte [edx + 2]
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
movzx eax, byte [edx + 3]
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
movzx eax, byte [edx + 4]
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
movzx eax, byte [edx + 5]
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
movzx eax, byte [edx + 6]
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
movzx eax, byte [edx + 7]
add edx, 8
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
dec edi
jne 0x55711a
pop edi
test esi, esi
je 0x5571d0
movzx eax, byte [edx]
xor eax, ecx
shr ecx, 8
and eax, ebx
xor ecx, dword [eax*4 + 0x60de78]
inc edx
dec esi
jne 0x5571bb
not ecx
pop esi
mov eax, ecx
pop ebx
ret 0xc
Function at 0x5572c0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
push dword [esp + 0x24]
xor edi, edi
mov esi, 0x100000
mov dword [esp + 0x14], edi
xor ebx, ebx
call fcn.005579e0
mov ebp, eax
mov dword [esp + 0x18], ebp
test ebp, ebp
je 0x5573fd
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5573fd
push ebx
push pe_nt_image_headers32
push 3
push ebx
push 1
push closesocket
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x5573fd
push esi
push ebx
push dword [0x6720e4]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esp + 0x24], eax
test eax, eax
je 0x5573f3
mov eax, dword [ebp + 4]
push ebx
push dword [esp + 0x2c]
call eax
mov ebx, eax
test ebx, ebx
je 0x5573e1
cmp dword [esp + 0x30], edi
jl 0x55736b
mov eax, dword [esp + 0x2c]
jg 0x557359
test eax, eax
je 0x55736b
push 0
lea ecx, [esp + 0x34]
push ecx
push eax
push dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
add edi, 0x100000
mov eax, ebp
adc ecx, 0
and eax, edx
mov dword [esp + 0x10], ecx
cmp eax, 0xffffffff
je 0x5573a1
cmp ecx, edx
jl 0x5573a1
jg 0x557397
cmp edi, ebp
jbe 0x5573a1
mov esi, ebp
sub esi, edi
add esi, 0x100000
push 0
lea eax, [esp + 0x18]
push eax
push esi
push dword [esp + 0x30]
push dword [esp + 0x30]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x28]
push ebx
mov eax, dword [eax + 8]
call eax
cmp dword [esp + 0x14], 0x100000
mov edx, dword [esp + 0x38]
je 0x557373
mov ebp, dword [esp + 0x18]
push ebx
mov eax, dword [ebp + 0xc]
call eax
push dword [esp + 0x24]
push 0
push dword [0x6720e4]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x3c]
push ebx
call fcn.00557a90
test ebx, ebx
je 0x557411
mov eax, dword [ebp + 0x10]
push ebx
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x20
Function at 0x5586f0
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push esi
call fcn.005588d0
mov ebp, eax
add esp, 0xc
xor ebx, ebx
lea edi, [ebp*4]
test edi, edi
jle 0x558769
mov ecx, dword [esp + 0x14]
lea esi, [esi + edi*4]
add esi, 8
add ecx, 8
mov edx, dword [ecx - 8]
lea ecx, [ecx + 0x10]
mov eax, dword [esi - 8]
lea esi, [esi - 0x10]
mov dword [ecx - 0x18], eax
add ebx, 4
mov eax, dword [esi + 0xc]
sub edi, 4
mov dword [esi + 8], edx
mov edx, dword [ecx - 0x14]
mov dword [ecx - 0x14], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc], edx
mov edx, dword [ecx - 0x10]
mov dword [ecx - 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x10], edx
mov edx, dword [ecx - 0xc]
mov dword [ecx - 0xc], eax
mov dword [esi + 0x14], edx
cmp ebx, edi
jl 0x558725
mov esi, dword [esp + 0x14]
cmp ebp, 1
jle 0x5588c9
add esi, 2
lea edi, [ebp - 1]
mov edx, dword [esi + 0xe]
lea esi, [esi + 0x10]
mov eax, edx
shr eax, 0x18
movzx ecx, byte [eax*4 + str.ccccwwww]
movzx eax, byte [esi - 1]
mov ecx, dword [ecx*4 + 0x60f698]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fe98]
movzx eax, byte [esi]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fa98]
movzx eax, dl
mov edx, dword [esi + 2]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x610298]
mov eax, edx
shr eax, 0x18
mov dword [esi - 2], ecx
movzx ecx, byte [eax*4 + str.ccccwwww]
movzx eax, byte [esi + 3]
mov ecx, dword [ecx*4 + 0x60f698]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fe98]
movzx eax, byte [esi + 4]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fa98]
movzx eax, dl
mov edx, dword [esi + 6]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x610298]
mov eax, edx
shr eax, 0x18
mov dword [esi + 2], ecx
movzx ecx, byte [eax*4 + str.ccccwwww]
movzx eax, byte [esi + 7]
mov ecx, dword [ecx*4 + 0x60f698]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fe98]
movzx eax, byte [esi + 8]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fa98]
movzx eax, dl
mov edx, dword [esi + 0xa]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x610298]
mov eax, edx
shr eax, 0x18
mov dword [esi + 6], ecx
movzx ecx, byte [eax*4 + str.ccccwwww]
movzx eax, byte [esi + 0xb]
mov ecx, dword [ecx*4 + 0x60f698]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fe98]
movzx eax, byte [esi + 0xc]
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x60fa98]
movzx eax, dl
movzx eax, byte [eax*4 + str.ccccwwww]
xor ecx, dword [eax*4 + 0x610298]
mov dword [esi + 0xa], ecx
dec edi
jne 0x558778
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
ret
Function at 0x558dc0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x34
cdq
and edx, 0xf
push ebx
mov ebx, dword [esp + 0x40]
push ebp
mov ebp, dword [esp + 0x4c]
push esi
push edi
lea edi, [edx + eax]
sar edi, 4
and ebp, reloc.WS2_32.dll_ntohs
jns 0x558dea
dec ebp
or ebp, 0xfffffff0
inc ebp
mov dword [esp + 0x1c], ebp
je 0x558dff
test edi, edi
jne 0x558dfe
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x34
ret
dec edi
mov eax, dword [esp + 0x58]
mov esi, dword [eax + 8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x4c], esi
mov esi, dword [eax + 0xc]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
test edi, edi
je 0x558e92
mov ebp, dword [esp + 0x48]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x50], eax
push esi
push ebx
push dword [ebp + 4]
lea eax, [ebp + 0xf8]
push eax
call fcn.00557b20
mov eax, dword [esp + 0x24]
add esp, 0x10
xor dword [esi], eax
mov eax, dword [esp + 0x18]
xor dword [esi + 4], eax
mov eax, dword [esp + 0x4c]
xor dword [esi + 8], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
xor dword [esi + 0xc], ecx
mov ecx, dword [ebx]
mov eax, dword [eax + esi + 8]
add esi, 0x10
mov edx, dword [ebx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xc]
add ebx, 0x10
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
dec edi
jne 0x558e32
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
test ebp, ebp
je 0x558f5a
mov edi, dword [ebx]
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], eax
mov dword [ebp], edi
mov edi, ebp
mov dword [esp + 0x2c], ecx
mov dword [edi + 4], edx
lea edx, [esp + 0x34]
push edx
mov dword [edi + 0xc], eax
lea edx, [esp + 0x28]
mov eax, dword [esp + 0x4c]
push edx
mov dword [edi + 8], ecx
push dword [eax + 4]
lea ecx, [eax + 0xf8]
push ecx
mov dword [esp + 0x30], ecx
call fcn.00557b20
mov ebp, dword [esp + 0x2c]
add esp, 0x10
test ebp, ebp
je 0x558f1a
mov eax, esi
lea edi, [ebx + 0x10]
sub eax, ebx
lea edx, [esp + 0x34]
mov dword [esp + 0x50], eax
mov ebx, eax
mov al, byte [edi]
lea edi, [edi + 1]
mov cl, byte [edx]
lea edx, [edx + 1]
xor cl, al
mov byte [edx - 1], al
mov byte [ebx + edi - 1], cl
dec ebp
jne 0x558f04
push esi
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x50]
push dword [eax + 4]
push dword [esp + 0x2c]
call fcn.00557b20
mov eax, dword [esp + 0x24]
add esp, 0x10
xor dword [esi], eax
mov eax, dword [esp + 0x18]
xor dword [esi + 4], eax
mov eax, dword [esp + 0x4c]
xor dword [esi + 8], eax
mov ecx, dword [esp + 0x10]
xor dword [esi + 0xc], ecx
mov eax, dword [esp + 0x54]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
pop edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
pop esi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 8]
pop ebp
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x48]
pop ebx
add esp, 0x34
ret