joyce8/EMBER2024-capa huggingface dataset:
Function at 0x420c60
Capabilities:
Check mutex on windows
Read file via mapping

Disassembly:
sub esp, 0x10c
push ebx
lea eax, [esp + 0x90]
push 0x80
push eax
lea ecx, [esp + 0x18]
push 0x80
push ecx
mov dword [esp + 0x14], 0
call fcn.00420d90
add esp, 0x10
lea edx, [esp + 0x10]
push edx
push 0
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
mov ebx, eax
test ebx, ebx
mov dword [esp + 8], ebx
jne 0x420cb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop ebx
add esp, 0x10c
ret
push edi
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [esp + 0x94]
push eax
push 0
push 6
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x420d6c
push esi
push 0x400
push 0
push 0
push 6
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
test esi, esi
jne 0x420d07
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0xc], eax
jmp 0x420d59
mov edi, dword [esi]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.ClosePrivateNamespace
push edi
call ebp
push str.DeleteBoundaryDescriptor
push edi
mov ebx, eax
call ebp
test ebx, ebx
mov edi, eax
pop ebp
je 0x420d51
test edi, edi
je 0x420d51
mov eax, dword [esi + 8]
test eax, eax
je 0x420d40
push 0
push eax
call ebx
mov dword [esi + 8], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x420d51
push eax
call edi
mov dword [esi + 4], 0
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
test esi, esi
je 0x420d64
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop ebx
mov eax, dword [esp]
add esp, 0x10c
ret
Function at 0x420de0
Capabilities:
Check mutex on windows
Read file via mapping

Disassembly:
sub esp, 0x10c
push ebx
push ebp
push edi
lea eax, [esp + 0x98]
push 0x80
push eax
lea ecx, [esp + 0x20]
xor ebp, ebp
push 0x80
push ecx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
xor edi, edi
call fcn.00420d90
add esp, 0x10
lea edx, [esp + 0x18]
push edx
push ebp
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
mov ebx, eax
cmp ebx, ebp
jne 0x420e4a
lea eax, [esp + 0x18]
push eax
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, eax
cmp ebx, ebp
je 0x420f0c
mov dword [esp + 0x14], 1
push esi
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea ecx, [esp + 0x9c]
push ecx
push ebp
push 6
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov esi, eax
cmp esi, ebp
jne 0x420e99
lea edx, [esp + 0x9c]
push edx
push 0x400
push ebp
push 4
push ebp
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov esi, eax
xor eax, eax
cmp esi, ebp
setne al
cmp esi, ebp
mov dword [esp + 0x14], eax
je 0x420f1e
push 0x400
push ebp
push ebp
push 6
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
cmp edi, ebp
je 0x420f1e
cmp dword [edi + 8], ebp
jne 0x420eea
push str.BOUNDARY_D1F14A9F_D7A0_4a22_9EE9_19DC2078C280
lea ecx, [edi + 0xc]
push 0x104
push ecx
call fcn.0041a480
push str.NAMESPACE_D1F14A9F_D7A0_4a22_9EE9_19DC2078C280
lea edx, [edi + 0x110]
push 0x104
push edx
call fcn.0041a480
push edi
call fcn.00420f70
add esp, 0x1c
test eax, eax
je 0x420f1e
mov eax, dword [esp + 0x120]
cmp eax, ebp
je 0x420f06
push 0x214
push edi
push 0x214
push eax
call fcn.00419d50
mov dword [esp + 0x10], ebp
jmp 0x420f28
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop ebp
pop ebx
add esp, 0x10c
ret 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [esp + 0x18]
cmp eax, ebp
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
jne 0x420f40
push ebx
call ebp
test edi, edi
je 0x420f4b
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test esi, esi
je 0x420f5a
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x420f5a
push esi
call ebp
mov eax, dword [esp + 0x10]
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x10c
ret 4
Function at 0x421e20
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov eax, dword [esp + 4]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
cmp esi, 0x80
mov byte [eax], 0
jle 0x421e3c
mov esi, 0x80
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x421e4c
cmp ecx, 0x400
jle 0x421e51
mov ecx, 0x400
test esi, esi
jle 0x421e68
mov edi, dword [esp + 0x1c]
mov edx, eax
sub edi, eax
mov ebp, esi
mov bl, byte [edi + edx]
mov byte [edx], bl
inc edx
dec ebp
jne 0x421e5f
xor edx, edx
cmp esi, 0x80
mov dl, byte [eax + esi - 1]
jge 0x421e9a
mov edi, eax
sub edi, esi
mov bl, byte [edi + esi]
add ebx, edx
xor edx, edx
and ebx, 0xff
inc esi
cmp esi, 0x80
mov dl, byte [ebx + 0x4a0e54]
mov byte [esi + eax - 1], dl
jl 0x421e7a
lea esi, [ecx + 7]
mov edx, 0x80
neg ecx
sar esi, 3
and ecx, 7
mov edi, 0xff
sub edx, esi
sar edi, cl
xor ecx, ecx
mov cl, byte [edx + eax]
and edi, ecx
xor ecx, ecx
mov cl, byte [edi + 0x4a0e54]
mov edi, edx
mov byte [edx + eax], cl
dec edx
test edi, edi
je 0x421eea
lea edi, [edx + eax]
lea ebp, [edx + 1]
xor edx, edx
mov dl, byte [edi + esi]
xor edx, ecx
xor ecx, ecx
dec ebp
dec edi
mov cl, byte [edx + 0x4a0e54]
mov byte [edi + 1], cl
test ebp, ebp
ja 0x421ed2
lea esi, [eax + 0xfc]
mov ecx, 0x7f
xor edx, edx
xor ebx, ebx
mov dl, byte [ecx + eax - 1]
mov bh, byte [ecx + eax]
and edx, 0xffff
sub esi, 4
or edx, ebx
sub ecx, 2
mov dword [esi + 4], edx
jns 0x421ef5
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x4230c0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x90
mov eax, dword [esp + 0x94]
xor ecx, ecx
xor edx, edx
push esi
mov ch, byte [eax]
mov dl, byte [eax + 2]
mov cl, byte [eax + 1]
push edi
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
mov edi, dword [esp + 0xa4]
shl ecx, 8
or ecx, edx
mov edx, dword [0x489714]
xor ecx, edx
xor edx, edx
mov dl, byte [eax + 6]
mov dword [esp + 8], ecx
xor ecx, ecx
mov ch, byte [eax + 4]
mov cl, byte [eax + 5]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 7]
shl ecx, 8
or ecx, edx
mov edx, dword [0x489718]
xor ecx, edx
xor edx, edx
mov dl, byte [eax + 0xa]
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov ch, byte [eax + 8]
mov cl, byte [eax + 9]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0xb]
shl ecx, 8
or ecx, edx
mov edx, dword [0x48971c]
xor ecx, edx
xor edx, edx
mov dl, byte [eax + 0xe]
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov ch, byte [eax + 0xc]
mov cl, byte [eax + 0xd]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0xf]
mov eax, dword [0x489720]
shl ecx, 8
or ecx, edx
xor ecx, eax
xor esi, esi
mov dword [esp + 0x14], ecx
mov eax, dword [esi + 0x489724]
mov ecx, dword [esp + esi + 0x14]
mov edx, dword [esp + esi + 0x10]
xor eax, ecx
mov ecx, dword [esp + esi + 0xc]
xor eax, edx
xor eax, ecx
push eax
call fcn.004231e0
mov edx, dword [esp + esi + 0xc]
add esi, 4
xor eax, edx
add esp, 4
mov dword [esp + esi + 0x14], eax
mov dword [esi + edi - 4], eax
cmp esi, 0x80
jl 0x423176
cmp dword [esp + 0xa0], 1
jne 0x4231d5
mov eax, edi
lea ecx, [edi + 0x7c]
mov esi, 0x10
mov edi, dword [ecx]
mov edx, dword [eax]
mov dword [eax], edi
mov dword [ecx], edx
add eax, 4
sub ecx, 4
dec esi
jne 0x4231c4
pop edi
pop esi
add esp, 0x90
ret
Function at 0x4252f0
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0xa0
mov ecx, dword [esp + 0xa4]
mov eax, 1
push ebx
push ebp
mov word [esp + 0x10], ax
mov word [esp + 0x12], ax
mov word [esp + 0x20], ax
mov word [esp + 0x2e], ax
push esi
lea eax, [esp + 0x6c]
push edi
push eax
mov ebp, 2
push 8
push ecx
mov word [esp + 0x28], bp
mov word [esp + 0x2a], bp
mov word [esp + 0x2c], bp
mov word [esp + 0x2e], bp
mov word [esp + 0x30], bp
mov word [esp + 0x32], bp
mov word [esp + 0x36], bp
mov word [esp + 0x38], bp
mov word [esp + 0x3a], bp
mov word [esp + 0x3c], bp
mov word [esp + 0x3e], bp
mov word [esp + 0x40], bp
call fcn.004252a0
add esp, 0xc
xor eax, eax
mov ecx, 0x38
xor edx, edx
mov dl, byte [eax + 0x48bfcc]
inc eax
dec ecx
mov dl, byte [esp + edx + 0x6f]
mov byte [esp + eax + 0x37], dl
jne 0x425372
mov esi, dword [esp + 0xb8]
lea eax, [esp + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0x10
mov ecx, dword [esp + 0x10]
mov ax, word [ecx]
test ax, ax
jbe 0x425406
and eax, 0xffff
mov edi, eax
mov dl, byte [esp + 0x38]
xor ecx, ecx
cmp cx, 0x1b
jne 0x4253c2
mov byte [esp + 0x53], dl
jmp 0x4253d1
mov eax, ecx
and eax, 0xffff
mov bl, byte [esp + eax + 0x39]
mov byte [esp + eax + 0x38], bl
inc ecx
cmp cx, 0x1c
jb 0x4253b6
mov dl, byte [esp + 0x54]
mov ecx, 0x1c
cmp cx, 0x37
jne 0x4253ed
mov byte [esp + 0x6f], dl
jmp 0x4253fc
mov eax, ecx
and eax, 0xffff
mov bl, byte [esp + eax + 0x39]
mov byte [esp + eax + 0x38], bl
inc ecx
cmp cx, 0x38
jb 0x4253e1
dec edi
jne 0x4253b0
mov eax, esi
mov ecx, 0x48c004
mov esi, 0x30
xor edx, edx
mov dl, byte [ecx]
inc ecx
inc eax
dec esi
mov dl, byte [esp + edx + 0x37]
mov byte [eax - 1], dl
jne 0x425412
mov ecx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x14]
add ecx, ebp
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jne 0x42539d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret
Function at 0x425960
Capabilities:
Create thread

Disassembly:
push ebx
mov ebx, dword [esp + 0x10]
push esi
push edi
test ebx, ebx
je 0x4259f3
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4259f3
push 0xc
call dword [sym.imp.MSVCRT.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
jne 0x425993
pop edi
pop esi
mov eax, 0xe0600002
pop ebx
ret 0xc
push 0xc
push 0
push esi
call fcn.00419d10
push 0
push 0
mov eax, dword [esp + 0x1c]
push eax
push edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
mov dword [esi], eax
jne 0x4259e9
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.EsThreadBegin_call_CreateThread_error_0x_08x_
push 0x22
push str.E:SVNSoftwareProductsEsCommonTrunkModulesEsCommonSourceEsThread_Win.c
push 3
call fcn.0041ade0
add esp, 0x14
mov eax, 0xe0ffffff
pop edi
pop esi
pop ebx
ret 0xc
mov dword [ebx], esi
pop edi
pop esi
xor eax, eax
pop ebx
ret 0xc
pop edi
pop esi
mov eax, 0xe0600007
pop ebx
ret 0xc

Function at 0x425a20
Capabilities:
Terminate thread

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
push edi
xor edi, edi
cmp esi, edi
mov dword [esp + 8], edi
je 0x425adb
cmp dword [esi], edi
je 0x425adb
push ebx
push ebp
lea ebx, [esi + 8]
push 2
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov ebp, dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov ecx, dword [esi]
lea eax, [esp + 0x10]
push eax
push ecx
call ebp
cmp dword [esp + 0x10], 0x103
jne 0x425aa9
inc edi
mov eax, dword [ebx]
cmp eax, 3
jne 0x425a72
cmp edi, 0xa
jae 0x425a81
cmp edi, 0x28
je 0x425a81
push 0x1e
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x425a51
mov edx, dword [esi]
push 0x16
push edx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push edi
mov eax, dword [ebx]
mov ecx, dword [esi]
push eax
push ecx
push str.EsThreadEnd__TerminateThread__pblkThread__m_hThread_08x__state_d__retryCount_d
push 0x5b
push str.E:SVNSoftwareProductsEsCommonTrunkModulesEsCommonSourceEsThread_Win.c
push 1
call fcn.0041ade0
add esp, 0x1c
push 3
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov edx, dword [esi]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, esi
xor eax, eax
push esi
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
xor eax, eax
pop ebp
pop ebx
pop edi
pop esi
pop ecx
ret 4
pop edi
mov eax, 0xe0600007
pop esi
pop ecx
ret 4
Function at 0x425c10
Capabilities:
Read file via mapping

Disassembly:
sub esp, 0x20c
push ebp
push esi
mov esi, dword [esp + 0x21c]
mov dword [esp + 8], 0
test esi, esi
je 0x425d5a
mov eax, dword [esp + 0x220]
test eax, eax
je 0x425d5a
mov ebp, dword [esp + 0x218]
lea eax, [esp + 0x110]
push 0x104
push eax
push esi
push ebp
call fcn.00421220
push str.ShareMemoryMutext_
lea ecx, [esp + 0x10]
push 0x104
push ecx
call fcn.0041a480
push esi
lea edx, [esp + 0x1c]
push 0x104
push edx
call fcn.0041a280
add esp, 0x18
lea eax, [esp + 0x110]
push eax
push 0
push 6
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov esi, eax
test esi, esi
jne 0x425ca9
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
pop ebp
add esp, 0x20c
ret 0xc
push ebx
push edi
push 0
push 0
push 0
push 6
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
test edi, edi
jne 0x425cce
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
test ebp, ebp
je 0x425d1b
jmp 0x425d06
mov ebx, dword [edi]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
push ecx
push edx
push ebp
call fcn.0041ac00
mov ebp, eax
test ebp, ebp
jne 0x425cff
push 0x120
call dword [sym.imp.MSVCRT.dll_malloc]
xor ecx, ecx
add esp, 4
cmp eax, ecx
jne 0x425d2a
mov ebp, 0xe0600002
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x425d1b
push eax
call fcn.0041ad10
pop edi
pop ebx
mov eax, ebp
pop esi
pop ebp
add esp, 0x20c
ret 0xc
mov dword [eax + 8], edi
mov dword [eax], esi
mov edx, dword [esp + 0x10]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x228]
add ebx, 0xfffffffc
mov dword [eax + 4], edx
mov dword [eax + 0xc], ebx
pop edi
mov dword [ecx], eax
pop ebx
mov eax, ebp
pop esi
pop ebp
add esp, 0x20c
ret 0xc
pop esi
mov eax, 0xe0600007
pop ebp
add esp, 0x20c
ret 0xc
Function at 0x426230
Capabilities:
Enumerate pe sections

Disassembly:
dec esp
and al, 8
push esi
push edi
xor edi, edi
movzx eax, word [ecx + 0x14]
movzx esi, word [ecx + 6]
test esi, esi
lea eax, [eax + ecx + 0x18]
jbe 0x42626a

Function at 0x4267c0
Capabilities:
Inspect section memory permissions

Disassembly:
cmp dword [edi + 4], ebx
jne 0x4267ae
cmp dword [edi + 0xc], ebx
je 0x426858
mov esi, dword [edi + 0xc]
add esi, dword [ebp + 0xc]
push esi
call dword [ebp - 0xb8]
cmp eax, ebx
mov dword [ebp - 8], eax
jne 0x4267d4
push esi
call dword [ebp - 0xc8]
cmp eax, ebx
mov dword [ebp - 8], eax
je 0x4269fa
call fcn.004261ef
xor dword [ebx + 9], 0x10478b2c
mov ecx, dword [ebp + 0xc]
lea esi, [eax + ecx]
mov eax, dword [edi]
cmp eax, ebx
jne 0x4267f1
mov dword [ebp + 0x10], esi
jmp 0x4267f6
add eax, ecx
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cmp eax, ebx
je 0x42684a
add byte [ebx], bh
ret
jmp 0x426804
add ecx, eax
test eax, 0x80000000
je 0x426815
and eax, 0xffff
push eax
jmp 0x426819
add ecx, 2
push ecx
push dword [ebp - 8]
push dword [ebp + 8]
invalid

Function at 0x4280a0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
lea eax, [ebp + eax - 0x230]
push eax
call fcn.00426160
add esp, 0xc
jmp 0x428161

Function at 0x4293d0
Capabilities:
Get session user name

Disassembly:
sub esp, 0x414
push esi
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x215]
mov byte [esp + 0x214], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xd]
mov byte [esp + 0xc], 0
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x420]
mov ecx, 0x14
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
call sub.KERNEL32.dll_GetCurrentProcessId
mov dword [esi], eax
lea eax, [esp + 0x214]
push 0x208
push eax
push 0
mov dword [esi + 0x24], 0x20
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x214]
push 0x5c
push ecx
call dword [sym.imp.MSVCRT.dll_strrchr]
add esp, 8
test eax, eax
je 0x429464
lea edx, [esi + 4]
push 0x20
inc eax
push edx
push eax
call fcn.00429390
add esp, 0xc
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0xc]
mov dword [esp + 8], 0x208
rep stosd dword es:[edi], eax
lea eax, [esp + 8]
lea ecx, [esp + 0xc]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
lea edx, [esi + 0x3c]
push 0x14
lea eax, [esp + 0x10]
push edx
push eax
call fcn.00429390
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x18]
add esp, 0xc
rep stosd dword es:[edi], eax
lea ecx, [esp + 8]
lea edx, [esp + 0xc]
push ecx
lea eax, [esp + 0x218]
push edx
push eax
mov dword [esp + 0x14], 0x208
call fcn.0041b8c0
add esi, 0x28
push 0x14
lea ecx, [esp + 0x10]
push esi
push ecx
call fcn.00429390
add esp, 0xc
pop edi
pop esi
add esp, 0x414
ret
Function at 0x429530
Capabilities:
Get file size
Read file via mapping

Disassembly:
sub esp, 0x24
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x11], ecx
push ebx
mov dword [esp + 0x19], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x1d], ecx
push ebp
push esi
mov dword [esp + 0x18], eax
mov byte [esp + 0x1c], al
mov dword [esp + 0x29], ecx
lea edx, [esp + 0xc]
push edi
lea eax, [esp + 0x20]
xor ebx, ebx
mov word [esp + 0x31], cx
push edx
push eax
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x3b], cl
mov dword [esp + 0x18], ebx
or edi, 0xffffffff
xor esi, esi
call fcn.00420af0
add esp, 8
test eax, eax
je 0x4295a1
lea ecx, [esp + 0x20]
mov dword [esp + 0x14], 0xc
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], ecx
lea esi, [esp + 0x14]
mov edx, dword [esp + 0x38]
push ebx
push 0x80
push 4
push esi
push 3
push 0xc0000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4295ca
mov ebp, 0xe0600014
jmp 0x429645
push esi
call fcn.00420a20
add esp, 4
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, dword [esp + 0x3c]
cmp eax, ebx
jae 0x4295f3
push ebx
push esi
call fcn.004294f0
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x429645
push 0
push ebx
push 0
push 4
push 0
push esi
call fcn.00425b30
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x429612
mov ebp, 0xe0600014
jmp 0x429645
push 0
push 0
push 0
push 6
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
jne 0x42962c
mov ebp, 0xe0600014
jmp 0x429645
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [ecx], edi
mov ecx, dword [esp + 0x40]
mov dword [edx], esi
xor edi, edi
or esi, 0xffffffff
mov dword [ecx], eax
xor ebp, ebp
mov eax, dword [esp + 0x10]
test eax, eax
je 0x42965d
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, 0xffffffff
je 0x42966b
push esi
call ebx
test edi, edi
je 0x429672
push edi
call ebx
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x24
ret

Function at 0x4296e0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
lea edx, [esp]
mov dword [esp + 4], eax
push esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push edx
mov edx, dword [esp + 0x20]
push eax
push esi
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x429736
cmp dword [esp + 0x24], esi
jne 0x429736
xor eax, eax
pop esi
add esp, 0x14
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
add esp, 0x14
ret
Function at 0x429750
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x14
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
lea edx, [esp]
mov dword [esp + 4], eax
push esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push edx
mov edx, dword [esp + 0x20]
push eax
push esi
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4297a6
cmp dword [esp + 0x24], esi
jne 0x4297a6
xor eax, eax
pop esi
add esp, 0x14
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
add esp, 0x14
ret

Function at 0x42a160
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push edi
mov edi, dword [esp + 0x20]
mov ebp, ebx
shr ebp, 3
cmp edi, ebx
mov dword [esp + 0x10], ebp
jb 0x42a2ff
push esi
mov esi, dword [esp + 0x20]
test ebp, ebp
jbe 0x42a2da
mov edi, dword [esp + 0x1c]
xor eax, eax
mov ecx, 8
mov al, byte [esi + 7]
cdq
call fcn.004760a0
mov ebx, eax
xor eax, eax
mov al, byte [esi + 6]
mov dword [esp + 0x20], ebx
mov ebx, edx
mov ecx, 8
cdq
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
or eax, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
mov edx, ebx
call fcn.004760a0
mov ebx, eax
xor eax, eax
mov al, byte [esi + 5]
mov dword [esp + 0x20], ebx
mov ebx, edx
mov ecx, 8
cdq
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
or eax, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
mov edx, ebx
call fcn.004760a0
mov ebx, eax
xor eax, eax
mov al, byte [esi + 4]
mov dword [esp + 0x20], ebx
mov ebx, edx
mov ecx, 8
cdq
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
or eax, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
mov edx, ebx
call fcn.004760a0
mov ebx, eax
xor eax, eax
mov al, byte [esi + 3]
mov dword [esp + 0x20], ebx
mov ebx, edx
mov ecx, 8
cdq
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
or eax, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
mov edx, ebx
call fcn.004760a0
mov ebx, eax
xor eax, eax
mov al, byte [esi + 2]
mov dword [esp + 0x20], ebx
mov ebx, edx
mov ecx, 8
cdq
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
or eax, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
mov edx, ebx
call fcn.004760a0
mov ebx, eax
xor eax, eax
mov al, byte [esi + 1]
mov dword [esp + 0x20], ebx
mov ebx, edx
cdq
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
or eax, ebx
mov ebx, dword [esp + 0x10]
or ebx, edx
mov ecx, 8
mov edx, ebx
call fcn.004760a0
mov ecx, eax
xor eax, eax
mov al, byte [esi]
mov ebx, edx
cdq
or ebx, edx
or ecx, eax
push ebx
push ecx
add esi, 8
call fcn.0042b000
mov ecx, dword [edi]
add esp, 8
xor ecx, eax
mov dword [edi], ecx
mov ebx, dword [edi + 4]
xor ebx, edx
mov dword [edi + 4], ebx
add edi, 8
dec ebp
jne 0x42a190
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push eax
call fcn.0042a310
sub edi, ebx
add esp, 4
cmp edi, ebx
mov dword [esp + 0x24], edi
jae 0x42a184
mov eax, edi
pop esi
pop edi
pop ebp
pop ebx
add esp, 8
ret
mov eax, edi
pop edi
pop ebp
pop ebx
add esp, 8
ret
Function at 0x42fd30
Capabilities:
Hash data using sha224

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [eax], 0xc1059ed8
mov dword [eax + 8], 0x367cd507
mov dword [eax + 0x10], 0x3070dd17
mov dword [eax + 0x18], 0xf70e5939
mov dword [eax + 0x20], 0xffc00b31
mov dword [eax + 0x28], 0x68581511
mov dword [eax + 0x30], 0x64f98fa7
mov dword [eax + 0x38], 0xbefa4fa4
mov dword [eax + 0x40], ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 4], 0xcbbb9d5d
mov dword [eax + 0xc], 0x629a292a
mov dword [eax + 0x14], 0x9159015a
mov dword [eax + 0x1c], 0x152fecd8
mov dword [eax + 0x24], 0x67332667
mov dword [eax + 0x2c], 0x8eb44a87
mov dword [eax + 0x34], 0xdb0c2e0d
mov dword [eax + 0x3c], 0x47b5481d
mov dword [eax + 0x44], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0xd0], ecx
mov dword [eax + 0xd4], 0x30
mov eax, 1
ret

Function at 0x42fdd0
Capabilities:
Hash data using sha256

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [eax], 0xf3bcc908
mov dword [eax + 8], 0x84caa73b
mov dword [eax + 0x10], 0xfe94f82b
mov dword [eax + 0x18], 0x5f1d36f1
mov dword [eax + 0x20], 0xade682d1
mov dword [eax + 0x28], 0x2b3e6c1f
mov dword [eax + 0x30], 0xfb41bd6b
mov dword [eax + 0x38], 0x137e2179
mov dword [eax + 0x40], ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 4], 0x6a09e667
mov dword [eax + 0xc], 0xbb67ae85
mov dword [eax + 0x14], 0x3c6ef372
mov dword [eax + 0x1c], 0xa54ff53a
mov dword [eax + 0x24], 0x510e527f
mov dword [eax + 0x2c], 0x9b05688c
mov dword [eax + 0x34], 0x1f83d9ab
mov dword [eax + 0x3c], 0x5be0cd19
mov dword [eax + 0x44], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0xd0], ecx
mov dword [eax + 0xd4], 0x40
mov eax, 1
ret