joyce8/EMBER2024-capa huggingface dataset:
Function at 0xd56250
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xd6a808
push 0xd5a288
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], ebx
xor esi, esi
mov dword [ebp - 0x20], esi
mov byte [ebp - 0x24], bl
mov dword [ebp - 4], ebx
mov byte [ebp - 0x34], bl
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x32], bl
mov byte [ebp - 0x31], bl
mov byte [ebp - 0x30], bl
mov byte [ebp - 0x2f], 5
lea eax, [ebp - 0x1c]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x12
push 1
lea ecx, [ebp - 0x34]
push ecx
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0xd56329
lea edx, [ebp - 0x28]
push edx
push 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0xd56329
mov dword [ebp - 0x2c], ebx
lea eax, [ebp - 0x2c]
push eax
push ebx
push ebx
push 1
mov ecx, dword [ebp - 0x28]
push ecx
mov edi, dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
call edi
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00d591d3
add esp, 4
mov esi, eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x20], esi
cmp esi, ebx
je 0xd56329
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
push esi
push 1
mov edx, dword [ebp - 0x28]
push edx
call edi
test eax, eax
je 0xd56329
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [esi]
push ecx
call dword [sym.imp.ADVAPI32.dll_EqualSid]
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x24], al
jmp 0xd5632c
mov al, byte [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.00d56351
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0xd56d20
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
mov edx, dword [esp + 8]
push esi
mov esi, dword [esp + 0x10]
lea eax, [esp + 4]
push eax
mov eax, dword [ecx + 4]
push esi
push 0
push 0
push edx
push eax
mov dword [esp + 0x1c], 8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0xd56d58
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esi], ecx
mov dword [esi + 4], edx
pop esi
pop ecx
ret 0x10

Function at 0xd56d60
Capabilities:
Query or enumerate registry value

Disassembly:
mov edx, dword [esp + 4]
push esi
mov esi, dword [esp + 0xc]
lea eax, [esp + 0x10]
push eax
mov eax, dword [ecx + 4]
push esi
push 0
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0xd56d94
mov eax, dword [esp + 0x14]
test eax, eax
je 0xd56d94
push eax
push esi
call fcn.00d5920b
add esp, 8
pop esi
ret 0x10

Function at 0xd56da0
Capabilities:
Query or enumerate registry value

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0x24
lea eax, [esp + 0x28]
push eax
mov eax, dword [ecx + 4]
push 0x20019
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0xd56e22
push ebx
mov ebx, dword [esp + 0x30]
push esi
xor esi, esi
test ebx, ebx
jbe 0xd56e15
push ebp
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push edi
mov edi, dword [esp + 0x40]
push esi
lea ecx, [esp + 0x18]
push 0xd6f320
push ecx
mov dword [esp + 0x1c], 4
call fcn.00d58dff
mov ecx, dword [esp + 0x44]
add esp, 0xc
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
push edi
push 0
push 0
push eax
push ecx
call ebp
inc esi
add edi, 4
cmp esi, ebx
jb 0xd56dda
pop edi
pop ebp
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebx
add esp, 0x24
ret 0xc

Function at 0xd56e30
Capabilities:
Query or enumerate registry value

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0x28
lea eax, [esp + 0x2c]
push eax
mov eax, dword [ecx + 4]
push 0x20019
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0xd56ec2
push ebp
mov ebp, dword [esp + 0x34]
push esi
xor esi, esi
test ebp, ebp
jbe 0xd56eb5
push ebx
mov ebx, dword [esp + 0x40]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push esi
lea ecx, [esp + 0x1c]
push 0xd6f320
push ecx
mov dword [esp + 0x1c], 4
call fcn.00d58dff
add esp, 0xc
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x40]
push eax
push 0
push 0
push ecx
push edx
call edi
test eax, eax
jne 0xd56eab
mov ax, word [esp + 0x14]
mov word [ebx], ax
inc esi
add ebx, 2
cmp esi, ebp
jb 0xd56e6a
pop edi
pop ebx
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebp
add esp, 0x28
ret 0xc
Function at 0xd57000
Capabilities:
Get file version info

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0xc]
push ebp
push esi
lea eax, [esp + 0xc]
push edi
push eax
push ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov esi, eax
test esi, esi
je 0xd57131
push esi
call fcn.00d5a145
add esp, 4
mov edi, eax
push edi
push esi
push 0
push ebx
call sub.VERSION.dll_GetFileVersionInfoW
push 0
push 0x80
push 3
push 0
push 0
push 0xc0000000
push ebx
call fcn.00d49080
mov ebp, eax
add esp, 0x1c
cmp ebp, 0xffffffff
je 0xd57131
push 0
push ebp
call fcn.00d493a0
push 0
push 0
push 0
push 4
push 0
push ebp
mov ebx, eax
call fcn.00d49260
add esp, 0x20
mov dword [esp + 0x18], eax
test eax, eax
jne 0xd5708b
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
push 0
push 0
push 0
push 6
push eax
call fcn.00d492f0
mov esi, eax
add esp, 0x14
test esi, esi
je 0xd57121
push 0xd6f918
push edi
call fcn.00d583f0
push eax
push ebx
push esi
call fcn.00d56f60
push 0xd6f8f8
push edi
call fcn.00d583f0
push eax
push ebx
push esi
call fcn.00d56f60
push 0xd6f8d8
push edi
call fcn.00d583f0
push eax
push ebx
push esi
call fcn.00d56f60
push 0xd6f8c0
push edi
call fcn.00d583f0
add esp, 0x44
push eax
push ebx
push esi
call fcn.00d56f60
push 0xd6f8a0
push edi
call fcn.00d583f0
push eax
push ebx
push esi
call fcn.00d56f60
push 0xd6f888
push edi
call fcn.00d583f0
push eax
push ebx
push esi
call fcn.00d56f60
add esp, 0x34
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ecx, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
push ebp
call esi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0xd581b0
Capabilities:
Acquire debug privileges

Disassembly:
push ecx
lea eax, [esp]
mov dword [esp], 0
push eax
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp]
push 1
push str.SeBackupPrivilege
push ecx
call fcn.00d58140
mov edx, dword [esp + 0xc]
push 1
push str.SeDebugPrivilege
push edx
call fcn.00d58140
mov eax, dword [esp + 0x18]
push 1
push str.SeRestorePrivilege
push eax
call fcn.00d58140
mov ecx, dword [esp + 0x24]
push 1
push str.SeSecurityPrivilege
push ecx
call fcn.00d58140
mov edx, dword [esp + 0x30]
add esp, 0x30
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
pop ecx
ret

Function at 0xd58bfa
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
lea eax, [ebp - 4]
push eax
push 0x20019
xor esi, esi
push esi
push str.CLSIDADB880A6_D8FF_11CF_9377_00AA003B7A11InprocServer32
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0xd58c50
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
mov dword [ebp - 8], 0x104
push esi
push esi
push 0xd6a87c
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0xd58c43
inc esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0xd58c52
xor eax, eax
pop esi
leave
ret 4
Function at 0x802e04
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebx
xor ebx, ebx
imul edx, dword [ebx + 0x844008], 0x8088405
inc edx
mov dword [ebx + 0x844008], edx
mul edx
mov eax, edx
pop ebx
ret

Function at 0x80c1dc
Capabilities:
Hash data with crc32

Disassembly:
push ebx
xor ebx, ebx
mov ecx, 0x8a87b4
mov eax, ebx
mov edx, 8
test al, 1
je 0x80c1f8
shr eax, 1
xor eax, 0xedb88320
jmp 0x80c1fa
shr eax, 1
dec edx
jne 0x80c1eb
mov dword [ecx], eax
inc ebx
add ecx, 4
cmp ebx, 0x100
jne 0x80c1e4
pop ebx
ret

Function at 0x80d3e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff0
mov dword [esp], ecx
mov esi, edx
mov edi, eax
mov eax, dword [esp]
inc eax
cmp eax, 5
jge 0x80d3fd
xor eax, eax
jmp 0x80d485
mov cl, byte [esi]
and cl, 0xff
and ecx, 0xff
mov eax, ecx
mov ebx, 9
cdq
idiv ebx
mov dword [esp + 4], edx
mov eax, ecx
mov ecx, 9
cdq
idiv ecx
mov ecx, eax
mov eax, ecx
mov ebx, 5
cdq
idiv ebx
mov dword [esp + 8], edx
mov eax, ecx
mov ecx, 5
cdq
idiv ecx
mov dword [esp + 0xc], eax
xor ebx, ebx
xor eax, eax
mov ecx, eax
shl ecx, 3
lea edx, [eax + 1]
mov dl, byte [esi + edx]
and dl, 0xff
and edx, 0xff
shl edx, cl
add ebx, edx
inc eax
cmp eax, 4
jne 0x80d442
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov eax, edi
call fcn.0080cfa4
test al, al
jne 0x80d47c
xor eax, eax
jmp 0x80d485
mov edx, ebx
mov eax, edi
call fcn.0080cf54
add esp, 0x10
pop edi
pop esi
pop ebx
ret
Function at 0x812e90
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov ebx, eax
mov edi, dword [ebx + 0x24]
mov esi, dword [ebx + 0x34]
sub esi, dword [ebx + 0x6c]
sub esi, dword [ebx + 0x64]
test esi, esi
jne 0x812eba
cmp dword [ebx + 0x64], 0
jne 0x812eba
cmp dword [ebx + 0x6c], 0
jne 0x812eba
mov esi, edi
jmp 0x812f52
cmp esi, 0xffffffff
jne 0x812ec5
dec esi
jmp 0x812f52
mov eax, dword [ebx + 0x64]
lea edx, [edi + edi]
sub edx, 0x106
cmp eax, edx
jb 0x812f52
mov eax, dword [ebx + 0x30]
lea edx, [eax + edi]
mov ebp, edi
mov ecx, ebp
call fcn.0080e71c
sub dword [ebx + 0x68], edi
sub dword [ebx + 0x64], edi
sub dword [ebx + 0x54], ebp
mov eax, dword [ebx + 0x44]
mov edx, dword [ebx + 0x3c]
lea edx, [edx + eax*2]
mov dword [esp], edx
sub dword [esp], 2
mov edx, dword [esp]
movzx edx, word [edx]
cmp edi, edx
ja 0x812f12
sub dx, di
mov ecx, dword [esp]
mov word [ecx], dx
jmp 0x812f1a
mov edx, dword [esp]
mov word [edx], 0
dec eax
test eax, eax
jne 0x812ef9
mov eax, edi
mov edx, dword [ebx + 0x38]
lea edx, [edx + eax*2]
mov dword [esp], edx
sub dword [esp], 2
mov edx, dword [esp]
movzx edx, word [edx]
cmp edi, edx
ja 0x812f43
sub dx, di
mov ecx, dword [esp]
mov word [ecx], dx
jmp 0x812f4b
mov edx, dword [esp]
mov word [edx], 0
dec eax
test eax, eax
jne 0x812f2a
add esi, edi
mov eax, dword [ebx]
cmp dword [eax + 4], 0
je 0x812fb0
mov edx, dword [ebx + 0x64]
add edx, dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x30]
lea edx, [ecx + edx]
mov ecx, esi
call fcn.00812bc0
add dword [ebx + 0x6c], eax
cmp dword [ebx + 0x6c], 3
jb 0x812f9b
mov eax, dword [ebx + 0x64]
mov edx, dword [ebx + 0x30]
movzx eax, byte [edx + eax]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx + 0x50]
shl eax, cl
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x30]
movzx edx, byte [ecx + edx + 1]
xor eax, edx
and eax, dword [ebx + 0x4c]
mov dword [ebx + 0x40], eax
cmp dword [ebx + 0x6c], 0x106
jae 0x812fb0
mov eax, dword [ebx]
cmp dword [eax + 4], 0
jne 0x812e9a
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x8138b8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
lea edi, [ebp - 0xc]
mov dword [edi], eax
test edx, edx
je 0x813973
mov al, byte [ebp - 4]
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 4]
shr eax, 8
mov byte [ebp - 0xe], al
mov eax, dword [ebp - 4]
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, dword [ebp - 4]
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, dword [ebp + 8]
dec eax
cmp eax, 0
jl 0x813973
mov dword [ebp - 8], eax
mov eax, dword [edi]
mov al, byte [eax]
mov cl, byte [ebp - 0xf]
add al, cl
mov ecx, dword [edi]
mov byte [ecx], al
mov esi, edx
dec esi
test esi, esi
jle 0x813932
mov eax, 1
mov ecx, dword [edi]
mov cl, byte [ecx + eax - 1]
mov ebx, dword [edi]
mov bl, byte [ebx + eax]
add cl, bl
mov bl, byte [ebp - 0xd]
xor cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
inc eax
dec esi
jne 0x813917
mov eax, dword [edi]
mov al, byte [eax + edx - 1]
mov cl, byte [ebp - 0x10]
add al, cl
mov ecx, dword [edi]
mov byte [ecx + edx - 1], al
mov eax, edx
sub eax, 2
cmp eax, 0
jl 0x81396a
mov ecx, dword [edi]
mov cl, byte [ecx + eax + 1]
mov ebx, dword [edi]
mov bl, byte [ebx + eax]
add cl, bl
mov bl, byte [ebp - 0xe]
xor cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
dec eax
cmp eax, 0xffffffff
jne 0x81394d
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x8138fe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x81397c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
lea edi, [ebp - 0xc]
mov dword [edi], eax
test edx, edx
je 0x813a30
mov al, byte [ebp - 4]
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 4]
shr eax, 8
mov byte [ebp - 0xe], al
mov eax, dword [ebp - 4]
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, dword [ebp - 4]
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, dword [ebp + 8]
dec eax
cmp eax, 0
jl 0x813a30
mov dword [ebp - 8], eax
mov esi, edx
sub esi, 2
test esi, esi
jl 0x8139e7
inc esi
xor eax, eax
mov ecx, dword [edi]
mov cl, byte [ecx + eax]
xor cl, byte [ebp - 0xe]
mov ebx, dword [edi]
mov bl, byte [ebx + eax + 1]
sub cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
inc eax
dec esi
jne 0x8139ce
mov eax, dword [edi]
mov al, byte [eax + edx - 1]
mov cl, byte [ebp - 0x10]
sub al, cl
mov ecx, dword [edi]
mov byte [ecx + edx - 1], al
mov eax, edx
dec eax
cmp eax, 1
jl 0x813a1a
mov ecx, dword [edi]
mov cl, byte [ecx + eax]
xor cl, byte [ebp - 0xd]
mov ebx, dword [edi]
mov bl, byte [ebx + eax - 1]
sub cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
dec eax
test eax, eax
jne 0x813a00
mov eax, dword [edi]
mov al, byte [eax]
mov cl, byte [ebp - 0xf]
sub al, cl
mov ecx, dword [edi]
mov byte [ecx], al
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x8139c2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x81de70
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov edi, ecx
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x81e093
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x81de9d
cmp dword [ebp - 4], 0
jg 0x81dea4
mov bl, 3
jmp 0x81e07d
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
test edx, edx
jne 0x81dec2
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov ebx, eax
jmp 0x81ded0
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov ebx, eax
inc ebx
mov edx, ebx
shl edx, 2
mov eax, edi
call fcn.00804970
dec ebx
test ebx, ebx
jl 0x81e067
inc ebx
mov dword [ebp - 0xc], ebx
xor ebx, ebx
lea eax, [ebx + ebx*2]
add eax, 3
cmp eax, dword [ebp - 4]
jg 0x81df7a
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x845098]
mov byte [ebp - 5], al
lea eax, [ebx + ebx*2]
mov al, byte [esi + eax]
shl eax, 4
and al, 0x30
lea edx, [ebx + ebx*2]
inc edx
movzx edx, byte [esi + edx]
shr edx, 4
or al, dl
and eax, 0xff
mov al, byte [eax + 0x845098]
mov byte [ebp - 6], al
lea eax, [ebx + ebx*2]
inc eax
mov al, byte [esi + eax]
shl eax, 2
and al, 0x3c
lea edx, [ebx + ebx*2]
add edx, 2
movzx edx, byte [esi + edx]
shr edx, 6
or al, dl
and eax, 0xff
mov al, byte [eax + 0x845098]
mov byte [ebp - 7], al
lea eax, [ebx + ebx*2]
add eax, 2
mov al, byte [esi + eax]
and al, 0x3f
and eax, 0xff
mov al, byte [eax + 0x845098]
mov byte [ebp - 8], al
jmp 0x81e012
lea eax, [ebx + ebx*2]
add eax, 2
cmp eax, dword [ebp - 4]
jg 0x81dfde
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x845098]
mov byte [ebp - 5], al
lea eax, [ebx + ebx*2]
mov al, byte [esi + eax]
shl eax, 4
and al, 0x30
lea edx, [ebx + ebx*2]
inc edx
movzx edx, byte [esi + edx]
shr edx, 4
or al, dl
and eax, 0xff
mov al, byte [eax + 0x845098]
mov byte [ebp - 6], al
lea eax, [ebx + ebx*2]
inc eax
mov al, byte [esi + eax]
shl eax, 2
and al, 0x3c
and eax, 0xff
mov al, byte [eax + 0x845098]
mov byte [ebp - 7], al
mov byte [ebp - 8], 0x3d
jmp 0x81e012
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x845098]
mov byte [ebp - 5], al
lea eax, [ebx + ebx*2]
mov al, byte [esi + eax]
shl eax, 4
and al, 0x30
and eax, 0xff
mov al, byte [eax + 0x845098]
mov byte [ebp - 6], al
mov byte [ebp - 7], 0x3d
mov byte [ebp - 8], 0x3d
mov eax, edi
call fcn.00804898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 5]
mov byte [eax + edx], cl
mov eax, edi
call fcn.00804898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 6]
mov byte [eax + edx + 1], cl
mov eax, edi
call fcn.00804898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 7]
mov byte [eax + edx + 2], cl
mov eax, edi
call fcn.00804898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 8]
mov byte [eax + edx + 3], cl
inc ebx
dec dword [ebp - 0xc]
jne 0x81deeb
lea edx, [ebp - 0x10]
mov eax, dword [edi]
call fcn.00807808
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.008043e8
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x81e09a
lea eax, [ebp - 0x10]
call fcn.00804394
ret
Function at 0x81e4a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ecx
mov edi, edx
mov ebx, eax
mov esi, dword [ebp + 8]
xor eax, eax
push ebp
push 0x81e5d0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, ebx
call fcn.008043e8
mov eax, dword [esi]
call fcn.00804640
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x81e5ba
mov eax, edi
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, edi
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, edi
shr eax, 8
mov byte [ebp - 0xe], al
mov eax, edi
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 4]
dec eax
cmp eax, 0
jl 0x81e5a6
mov dword [ebp - 8], eax
mov eax, esi
call fcn.00804898
mov edx, dword [esi]
mov dl, byte [edx]
mov cl, byte [ebp - 0xf]
add dl, cl
mov byte [eax], dl
mov edi, dword [ebp - 0xc]
sub edi, 2
jl 0x81e552
inc edi
mov ebx, 2
mov eax, esi
call fcn.00804898
mov edx, dword [esi]
mov dl, byte [edx + ebx - 2]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx - 1]
add dl, cl
mov cl, byte [ebp - 0xd]
xor dl, cl
mov byte [eax + ebx - 1], dl
inc ebx
dec edi
jne 0x81e530
mov eax, esi
call fcn.00804898
mov edx, dword [ebp - 0xc]
mov ecx, dword [esi]
mov ebx, dword [ebp - 0xc]
mov cl, byte [ecx + ebx - 1]
mov bl, byte [ebp - 0x10]
add cl, bl
mov byte [eax + edx - 1], cl
mov ebx, dword [ebp - 0xc]
dec ebx
cmp ebx, 1
jl 0x81e599
mov eax, esi
call fcn.00804898
mov edx, dword [esi]
mov dl, byte [edx + ebx]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx - 1]
add dl, cl
mov cl, byte [ebp - 0xe]
xor dl, cl
mov byte [eax + ebx - 1], dl
dec ebx
test ebx, ebx
jne 0x81e577
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x81e510
lea edx, [ebp - 0x14]
mov eax, dword [esi]
call fcn.0081e38c
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.008043e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x81e5d7
lea eax, [ebp - 0x14]
call fcn.00804394
ret
Function at 0x81e5e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ebx, edx
mov edi, eax
mov esi, dword [ebp + 8]
mov edx, esi
mov eax, edi
call fcn.0081e394
mov eax, dword [esi]
call fcn.00804640
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x81e6cc
mov eax, ebx
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, ebx
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, ebx
shr eax, 8
mov byte [ebp - 0xe], al
mov byte [ebp - 0xd], bl
mov eax, dword [ebp - 4]
dec eax
cmp eax, 0
jl 0x81e6cc
mov dword [ebp - 8], eax
mov edi, dword [ebp - 0xc]
dec edi
test edi, edi
jle 0x81e667
mov ebx, 1
mov eax, esi
call fcn.00804898
mov edx, dword [esi]
mov dl, byte [edx + ebx - 1]
xor dl, byte [ebp - 0xe]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx]
sub dl, cl
mov byte [eax + ebx - 1], dl
inc ebx
dec edi
jne 0x81e648
mov eax, esi
call fcn.00804898
mov edx, dword [ebp - 0xc]
mov ecx, dword [esi]
mov ebx, dword [ebp - 0xc]
mov cl, byte [ecx + ebx - 1]
mov bl, byte [ebp - 0x10]
sub cl, bl
mov byte [eax + edx - 1], cl
mov ebx, dword [ebp - 0xc]
cmp ebx, 2
jl 0x81e6ad
mov eax, esi
call fcn.00804898
mov edx, dword [esi]
mov dl, byte [edx + ebx - 1]
xor dl, byte [ebp - 0xd]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx - 2]
sub dl, cl
mov byte [eax + ebx - 1], dl
dec ebx
cmp ebx, 1
jne 0x81e68b
mov eax, esi
call fcn.00804898
mov edx, dword [esi]
mov dl, byte [edx]
mov cl, byte [ebp - 0xf]
sub dl, cl
mov byte [eax], dl
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x81e63b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x8250f4
Capabilities:
Hash data with md5

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x58
call fcn.00802de4
mov dword [ebx], 0x67452301
mov dword [ebx + 4], 0xefcdab89
mov dword [ebx + 8], 0x98badcfe
mov dword [ebx + 0xc], 0x10325476
pop ebx
ret
Function at 0x825be0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe7c
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp dword [ebp - 8], 0x40
jle 0x825c39
lea eax, [ebp - 0x114]
call fcn.008250f4
mov eax, dword [ebp - 4]
lea edx, [eax + 1]
lea eax, [ebp - 0x114]
mov ecx, dword [ebp - 8]
call fcn.00825928
lea edx, [ebp - 0x114]
lea eax, [ebp - 0x144]
call fcn.00825b28
lea eax, [ebp - 0x144]
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0x10
lea eax, [ebp - 0x64]
call fcn.008250f4
mov edx, dword [ebp - 8]
dec edx
test edx, edx
jl 0x825c62
inc edx
xor eax, eax
lea ecx, [ebp - 0x184]
mov ebx, dword [ebp - 4]
mov bl, byte [ebx + eax]
xor bl, 0x36
mov byte [ecx], bl
inc eax
inc ecx
dec edx
jne 0x825c52
mov eax, dword [ebp - 8]
cmp eax, 0x3f
jg 0x825c7b
lea edx, [ebp + eax - 0x184]
mov byte [edx], 0x36
inc eax
inc edx
cmp eax, 0x40
jne 0x825c71
lea edx, [ebp - 0x184]
lea eax, [ebp - 0x64]
mov ecx, 0x40
call fcn.008259f4
lea eax, [ebp - 0x64]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
call fcn.008259f4
lea edx, [ebp - 0x64]
lea eax, [ebp - 0x124]
call fcn.00825b28
lea eax, [ebp - 0xbc]
call fcn.008250f4
mov edx, dword [ebp - 8]
dec edx
test edx, edx
jl 0x825cd6
inc edx
xor eax, eax
lea ecx, [ebp - 0x184]
mov ebx, dword [ebp - 4]
mov bl, byte [ebx + eax]
xor bl, 0x5c
mov byte [ecx], bl
inc eax
inc ecx
dec edx
jne 0x825cc6
mov eax, dword [ebp - 8]
cmp eax, 0x3f
jg 0x825cef
lea edx, [ebp + eax - 0x184]
mov byte [edx], 0x5c
inc eax
inc edx
cmp eax, 0x40
jne 0x825ce5
lea edx, [ebp - 0x184]
lea eax, [ebp - 0xbc]
mov ecx, 0x40
call fcn.00825928
lea edx, [ebp - 0x124]
lea eax, [ebp - 0xbc]
mov ecx, 0x10
call fcn.00825928
lea edx, [ebp - 0xbc]
lea eax, [ebp - 0x134]
call fcn.00825b28
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x134]
mov edx, 0x10
call fcn.00807990
pop ebx
mov esp, ebp
pop ebp
ret 8