joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4080f0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x188
mov eax, dword [0x3b77014]
xor eax, esp
mov dword [esp + 0x184], eax
push esi
push edi
push 0x104
lea eax, [esp + 0x84]
mov esi, ecx
push eax
push 0
call dword [0x3b640c0]
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x4082d9
mov edi, dword [esi + 0x3c]
add edi, esi
cmp dword [edi], 0x4550
jne 0x4082d9
push 0x44
lea eax, [esp + 0x3c]
push 0
push eax
call fcn.00437ff0
add esp, 0xc
lea eax, [esp + 0x20]
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 4
push 0
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call dword [0x3b64068]
test eax, eax
je 0x4082d9
push 4
push 0x1000
push 4
push 0
call dword [0x3b640b0]
push eax
mov dword [esp + 0x1c], eax
mov dword [eax], 0x10007
push dword [esp + 0x28]
call dword [0x3b64054]
test eax, eax
je 0x4082d9
push 0
push 4
lea eax, [esp + 0x24]
push eax
push 0x3b6cd9c
push dword [esp + 0x30]
call dword [0x3b640c4]
mov eax, dword [edi + 0x34]
cmp dword [esp + 0x1c], eax
jne 0x4081fc
push 0x3b6cda0
push 0x3b6cdb8
call dword [0x3b64098]
push eax
call dword [0x3b64058]
push dword [esp + 0x1c]
push dword [esp + 0x24]
call eax
mov eax, dword [edi + 0x34]
push 0x40
push 0x3000
push dword [edi + 0x50]
push eax
push dword [esp + 0x30]
call dword [0x3b6405c]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4082d9
push 0
push dword [edi + 0x54]
push esi
push eax
push dword [esp + 0x30]
call dword [0x3b640bc]
xor eax, eax
mov dword [esp + 0x10], 0
cmp ax, word [edi + 6]
jae 0x408293
mov dword [esp + 0xc], eax
call fcn.00407f40
push eax
call dword [0x3b64094]
mov ecx, dword [esp + 0xc]
add ecx, esi
add ecx, dword [esi + 0x3c]
push 0
push dword [ecx + 0x108]
mov eax, dword [ecx + 0x10c]
add eax, esi
push eax
mov eax, dword [ecx + 0x104]
add eax, dword [esp + 0x20]
push eax
push dword [esp + 0x30]
call dword [0x3b640bc]
mov ecx, dword [esp + 0x10]
movzx eax, word [edi + 6]
inc ecx
add dword [esp + 0xc], 0x28
mov dword [esp + 0x10], ecx
cmp ecx, eax
jl 0x408242
push 0
push 4
lea eax, [edi + 0x34]
push eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xa4]
add eax, 8
push eax
push dword [esp + 0x30]
call dword [0x3b640bc]
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x28]
add eax, dword [esp + 0x14]
push ecx
mov dword [ecx + 0xb0], eax
push dword [esp + 0x28]
call dword [0x3b64070]
push dword [esp + 0x24]
call dword [0x3b640a0]
push 0x8000
push 0
push esi
call dword [0x3b640b8]
mov ecx, dword [esp + 0x18c]
mov al, 1
pop edi
pop esi
xor ecx, esp
call fcn.00420ef1
mov esp, ebp
pop ebp
ret
Function at 0x4014c0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov dword [esp + 0x10], 0x40
mov eax, dword fs:[0x30]
mov edx, dword [eax + 0xc]
add edx, 0xc
jmp 0x4014f4
mov edx, dword [esp + 8]
mov edx, dword [edx]
mov eax, dword [edx + 0x18]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [eax + ecx + 0x78]
test ecx, ecx
je 0x4014f4
mov edi, dword [eax + ecx + 0x18]
test edi, edi
je 0x4014f4
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov ebx, dword [eax + ecx + 0x20]
add ebx, eax
lea ecx, [eax + 1]
mov dword [esp + 0xc], ecx
jmp 0x401534
test edi, edi
je 0x4014f0
mov ecx, dword [ebx + edi*4 - 4]
dec edi
movzx edx, byte [eax + ecx]
test dl, dl
je 0x401530
add ecx, dword [esp + 0xc]
mov esi, 0x13ff0049
nop word [eax + eax]
movsx edx, dl
xor edx, esi
imul esi, edx, 0x1000193
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x401550
cmp esi, 0x4f46296a
jne 0x401530
mov edx, dword [esp + 4]
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov edx, dword [eax + edx + 0x24]
add edx, eax
movzx edx, word [edx + edi*2]
add eax, dword [ecx + edx*4]
lea ecx, [esp + 0x10]
push ecx
call eax
movupd xmm0, xmmword [esp + 0x18]
unpcklps xmm0, xmmword [0x4104f0]
subpd xmm0, xmmword [0x410500]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
mulsd xmm1, qword [0x410510]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebp + 8]
ucomisd xmm0, xmm1
seta byte [esp + 3]
cmp dword [0x42f248], 0xa
jl 0x4015e2
mov eax, dword [0x42f24c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4015e2
nop dword [eax]
jmp 0x4015e0
mov edx, 0x29
mov ecx, 0x4823
nop dword [eax]
cmp edx, 0x4822
jle 0x401610
cmp edx, 0x4823
je 0x401626
cmp edx, 0x6784
jne 0x4015f0
jmp 0x401641
cmp edx, 0x29
je 0x401632
cmp edx, 0x18be
jne 0x4015f0
xor eax, eax
mov edx, 0x6784
jmp 0x4015f0
mov eax, 1
mov edx, 0x6784
jmp 0x4015f0
cmp byte [esp + 3], 0
mov edx, 0x18be
cmovne edx, ecx
jmp 0x4015f0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x404410
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebx
push esi
sub esp, 8
mov eax, dword [0x42f0c0]
xor eax, esp
mov dword [esp + 4], eax
mov byte [esp + 3], 1
rdtsc
xchg ebx, eax
rdtsc
sub eax, ebx
cmp eax, dword [esp + 0x14]
jg 0x404437
mov byte [esp + 3], 0
movzx esi, byte [esp + 3]
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.0040ecdd
mov eax, esi
add esp, 8
pop esi
pop ebx
ret
Function at 0x40f5db
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x40f61a
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x40f61a
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x40f61a
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x40f61a
cmp dword [ecx + 0x74], 0xe
jbe 0x40f61a
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret
Function at 0x4acced
Capabilities:
Get graphical window text

Disassembly:
push esi
mov esi, ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x4acd25
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [esp + 0xc]
push eax
call fcn.004aad91
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 8]
push 0xffffffffffffffff
call fcn.004aad69
jmp 0x4acd31
mov eax, dword [ecx]
push dword [esp + 8]
call dword [eax + 0x88]
pop esi
ret 4

Function at 0x4ae3df
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
push esi
push edi
xor edi, edi
cmp dword [esp + 0x10], edi
mov ebx, ecx
je 0x4ae421
call fcn.004b401e
mov esi, dword [eax + 0xc]
push 0xf0
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.DLL_FindResourceA]
cmp eax, edi
je 0x4ae421
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_LoadResource]
cmp eax, edi
jne 0x4ae418
xor eax, eax
jmp 0x4ae429
push eax
call dword [sym.imp.KERNEL32.DLL_LockResource]
mov edi, eax
push edi
mov ecx, ebx
call fcn.004ae42f
pop edi
pop esi
pop ebx
ret 4

Function at 0x4b454e
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x4b457c
push dword [esi]
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
test eax, eax
je 0x4b459a
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.004b44b4
jmp 0x4b459a
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4b459a
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
mov ecx, esi
push eax
call fcn.004b44b4
test edi, edi
mov eax, edi
jne 0x4b4584
pop edi
push ebx
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
pop esi
pop ebx
ret 8

Function at 0xf5a000
Capabilities:
Decompress data using aplib

Disassembly:
jmp 0xf5a00a
jmp 0xf5c00f
jmp fcn.00ad2210
Function at 0x417c10
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x414
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push str.shell32
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
lea eax, [esp + 8]
push eax
push edi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
test esi, esi
jne 0x417c4f
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
xor eax, eax
pop esi
add esp, 0x414
ret
test eax, eax
je 0x417c65
mov ecx, dword [0x4c6a8c]
push 0x4c677c
push ecx
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
lea edx, [esp + 0xc]
push 0x104
push edx
push 0xc801
push esi
call edi
test eax, eax
jne 0x417c93
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
xor eax, eax
pop esi
add esp, 0x414
ret
lea eax, [esp + 0x214]
push 0x104
push eax
push 0xc8c2
push esi
call edi
pop edi
pop esi
add esp, 0x414
ret
Function at 0x417e07
Capabilities:
Encode data using xor

Disassembly:
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esp, ebp
pop ebp
ret
not byte [ebx - 0xf]
das
ja 0x417dcd
mov edx, 0x3546932e
jecxz 0x417da7
add byte [esi + 0x6f1c9238], bh
xchg esp, eax
inc ebx
sub byte [ebp + 0x5a8b9af5], bh
lodsd eax, dword [esi]
fisub word [ebp - 0x32]
dec esi
or ebx, eax
in al, 0x7c
mov cl, byte [ebp - 0x628a3bf4]
dec esi
xor ah, byte [ecx - 0x36]
push 0x8ace9dfd
lcall 0x634d, 0xb75a64db
fidiv word [eax - 0x5b081adb]
outsd dx, dword [esi]
ja 0x417e51
neg byte [ecx]
jge 0x417ec8
fisttp qword [esp + ebp*2 + 0x6dce8c9b]
insb byte es:[edi], dx
wait
mov esi, cs
insd dword es:[edi], dx
shl byte [edi - 0x6d18dea0], 1
xchg ecx, eax
mov eax, 0x61688cd9
sub eax, 0x53865d46
std
jmp 0x417ec6
out dx, eax
sal dword [ebx], 1
invalid
enter 0x7927, 0xffffffffffffffc1
and esp, dword [0xc730423e]
pop ecx
out 0x68, eax
adc ecx, dword [edx - 7]
int1
jg 0x417e68
stosb byte es:[edi], al
xor dword [edi + 0x7a2e86f9], 0x727a40d1
xchg esp, eax
cmp al, 0x65
jno 0x417ea0
arpl word [ebp + 0x28b107bb], cx
mov ebx, 0xfc28b107
mov cl, 0x28
cld
mov bl, 0x35
arpl word [eax + ebp*2], si
imul edx, dword [edx - 0x58], 0x76
sahf
jne 0x417e8d
mov dword [0xe56e3d78], eax
lea eax, [esi + 0xd]
adc esi, dword [esp]
cmp dword [edx + 0x790208f4], eax
mov ebx, ebx
push esp
pop esi
cmpsb byte [esi], byte es:[edi]
in al, 0x80
inc edx
jge 0x417f63
imul esp, dword [edx], 0xe250ed91
xchg byte [ebp - 0x54], ah
stosb byte es:[edi], al
loope 0x417f69
cmpsb byte [esi], byte es:[edi]
jge 0x417f74
sbb esp, ecx
loope 0x417ed4
jo 0x417ea5
adc eax, 0x3629d4c4
fnstsw ax
ljmp 0x7bfa
xchg esp, eax
test bl, cl
cmp eax, 0xa691a095
std
add ecx, ebx
jno 0x417f26
retf
adc ebx, ecx
nop
movsb byte es:[edi], byte [esi]
daa
cmc
cmp ah, byte [esi - 0x4af75a79]
jnp 0x417f5c
test dword [edx - 0x31], edx
clc
bound edx, qword [0xcd52c07b]
sub eax, 0x232f4edf
movsb byte es:[edi], byte [esi]
jecxz 0x417f99
mov bl, 0x39
pop edi
mov al, byte [0xa1e5b41]
movsd dword es:[edi], dword [esi]
xchg byte [esp + edx - 0x7d], dh
mov ebx, 0x8843986f
pop esp
leave
and al, 0xda
ja 0x417f96
outsb dx, byte [esi]
aam 0x79
int 0x7d
add al, 0x81
push es
wait
sahf
cmp eax, 0x6ba6d3c3
test byte [0xcda2ba2d], bh
xor al, 0x74
add dword [esi], 0xc33d9e9b
shl dword [esi + 0x2d3d846b], cl
mov edx, 0x7434cda2
sub eax, 0x34cda2ba
je 0x417f1c
mov eax, dword [0x9c9a747c]
mov bh, 0xc7
dec eax
aas
aam 0x48
jl 0x417ff1
lcall 0xd43f, 0x48c7b79c
dec eax
push 0xf709f581
and ecx, dword [ecx - 0xbaded08]
sbb al, 0xa9
into
clc
and byte [edx + 8], dl
das
or byte [edi], ch
nop
and al, 0x3a
add dword [ebp - 0x47], esi
cmp eax, 0x71
pop edi
jge 0x417fce
js 0x417fa7
shl byte fs:[ecx + 2], 0x89
shl byte [ecx + 2], 0x89
ror byte [ecx - 0x76097613], 0xf6
mov eax, eax
mov edi, edi
mov ebx, ebx
mov ebp, ebp
mov edi, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
int3
xchg edx, eax
sbb dword [esi - 2], eax
mov ah, 0xcf
inc edx
scasb al, byte es:[edi]
inc ecx
adc esp, dword [0xa33f4ad3]
xor ah, byte [ebp - 3]
inc edi
ret
Function at 0x44f53e
Capabilities:
Encode data using xor

Disassembly:
pop ecx
or dl, dh
cmp byte [edi + esi + 0x56c85150], al
xor dword [ebp - 0x17], esi
test dword [ebx + 0x5f77dc05], esp
pop edi
ja fcn.0044f59e
imul ebx, dword [edx + 0x55354768], 0x2ae19513
test ecx, ebp
rol al, 1
sub byte [ebp + 0x69], 6
jo 0x44f52c
wait
add al, 0x2a
jp 0x44f5cb
xchg ebp, eax
in eax, dx
mov al, byte [0xa9af0412]
sub cl, ch
xor bh, dh
cdq
imul ebx, dword [ecx], 0x4c43a329
js 0x44f53d
mov eax, 0xed52f5d3
not dword [ebp + 0x31]
mov word [edi], fs
or ebp, edx
aas
or eax, 0x6444c11d
out dx, eax
jmp 0xd338cb9c
sar byte [edi + edx], cl
jne 0x44f564
sbb al, 0x42
in al, dx
jb 0x44f5a3
push es
push edx
les edx, [0xe07c25f0]
out 0x3b, al
sub bh, bl
adc ch, byte [edi]
scasd eax, dword es:[edi]
fiadd dword [0x2c4890ed]
add eax, 0x2c4890ed
shl byte [eax], 1
push sp
ja 0x44f646
outsd dx, dword [esi]

Function at 0x464ce5
Capabilities:
Encode data using xor

Disassembly:
xchg esi, eax
pop ebx
outsd dx, dword [esi]
jmp 0x464d40
push ebx
bound edi, qword [ecx - 0x5f67b63a]
jp 0x464dc4
inc ecx
aaa
or edx, dword [ebp + 0x2b857530]
sbb dword [eax], edi
in al, dx
sub edi, dword [edx + edi*4 + 0x54]
xor dword [ebx], 0x13
into
xlatb
invalid
mov edi, ebp
wait
mov edx, 0x4e7b1f53
adc esp, dword [edx]
movq mm3, mm4
pop ebp
and dword [edx + 0x40], esi
add eax, 0x59950a3
mov edx, 0x8c2acef8
cmpsd dword [esi], dword es:[edi]
pop esp
or ecx, dword [edi + 0x4f]
not dword [ebx - 0x55061496]
mov edi, 0x2ac53d4a
scasb al, byte es:[edi]
xor eax, 0x910fc138
sahf
cmpsb byte [esi], byte es:[edi]
mov ebx, dword [esi]
pop edi
invalid

Function at 0x46670e
Capabilities:
Encode data using xor

Disassembly:
adc dword [edx], esp
bound eax, qword [ecx - 0x24]
and eax, 0x2af3c041
sbb al, 0x11
xchg dword [ebx], ecx
add ecx, dword [ecx + 0x1128240]
adc byte [edx], 1
out dx, eax
adc dword [ebx + 0x3227aa3c], ecx
aam 0xc2
pop esp
xchg edx, eax
lea esi, es:[ebp - 0x44]
dec ecx
adc dword [ecx], ebp
or al, byte [edi]
add edx, dword [eax + 0x3d2f22fd]
lahf
xchg esi, eax
sbb al, 0x95
cdq
mov dh, 0x2d
add ebx, edi
inc ebp
add ch, byte [ecx + 0x4b]
test ecx, eax
bound edi, qword [ecx - 0x59]
adc dword [ebp + 0xe], esi
cmpsb byte [esi], byte es:[edi]
add dword [edi - 0x5c], esi
xor al, byte [eax + 0x2b]
adc dword [ecx], 0x6b
mov esp, 0xa6021185
jno 0x466720
xor eax, dword [ebx]
push ss
mov byte [0x30197cde], al
invalid
Function at 0x466b4b
Capabilities:
Encode data using xor

Disassembly:
adc ah, byte [ecx]
pop ecx
lodsb al, byte [esi]
lahf
xor eax, 0x936f3a9d
mov eax, 0xa6905808
nop
xor al, byte [ecx]
xor esp, dword [edx]
sal dword [esi], cl
jmp 0x466b54
xor ebp, dword [0x96e1f0e1]
loope 0x466ae3
je 0x466b47
in eax, 0xdd
in al, dx
xor al, 0x51
jne 0x466bb6
ljmp 0x19a7:0x49115f9
mov bl, 0xf2
inc esi
stc
push eax
mov dword [ecx + ecx], edi
jp 0x466b28
nop
adc dword [ecx], eax
lodsb al, byte [esi]
outsb dx, byte [esi]
aas
mov edx, 0x360510be
xchg ecx, eax
das
mov esp, 0x4c29b58e
mov ch, 0x29
dec esp
cld
fcom dword [esp + esi*2 + 0x58f9f67f]
idiv cl
pop eax
std
inc esp
jg 0x466bb8
cmp bl, bl
xchg esp, eax
cmp eax, 0xd2f97219
push eax
and al, 0x95
and eax, 0x8dd9ecce
xor cl, byte [esi + ebp*8 + 0xdbef15d]
leave
loope 0x466b94
adc ecx, ebp
jne 0x466bd7
add dword [ecx + eax*8 - 0x50], ebx
jle 0x466c4d
invalid
fidiv dword [edx + 0x39]
ret
Function at 0x47db09
Capabilities:
Encode data using xor

Disassembly:
fist dword [edx + 0x5a3d023]
sub eax, 0x30f7e3bb
or cl, byte [ecx - 0x21acbd4e]
aas
inc edx
push ebx
fidivr word [edi]
inc esi
ficomp word [ebx]
xchg ebx, eax
xor ebp, dword [edi - 0x5f]
test al, 0x33
mov bl, 0x46
xchg ebx, eax
test al, 0x65
dec edx
sal byte [ebx], 1
and byte [esi + 7], 0x36
sbb dl, byte [ecx + 0x358032d]
xchg ecx, eax
sub eax, 0x34035803
xor byte [esi], cl
xchg ecx, eax
sub eax, 0x34035803
xor byte [esi], cl
in eax, 0xaa
inc ecx
push edx
or cl, ch
mov esp, dword [ebx - 0x14]
and eax, 0x73073c43
mov byte [ebx - 0x72], 0x6e
jae 0x47daef
jae 0x47dba1
scasb al, byte es:[edi]
imul edx, dword [eax + 0x28f0a944], 0xb73c774e
test eax, 0x774e28f0
cmp al, 0xb7
or dword [eax], ecx
xchg ebx, eax
jge 0x47db5a
dec ebx
inc ebx
sub dword [edi - 0x2009e6ed], 0xffffffd4
dec esp
popfd
stosd dword es:[edi], eax
xchg esi, eax
mov bh, 0x1a
and bl, ch
out dx, al
shl ah, 0x4d
xor ch, 0xcd
sbb eax, 0xbc6010c8
xor cl, 0x60
sbb al, 0xb2
xchg ecx, eax
scasd eax, dword es:[edi]
jae 0x47dae1
xchg edx, eax
mov ch, 0x12
sub al, 0x8c
mov bl, 0xb1
mov dh, 0xd4
xor eax, 0xe0d5c100
sbb dh, byte cs:[ecx]
push ebx
fisttp qword [ecx - 0x3d]
or al, 0x82
or al, 0x1a
push ebp
pop ebp
punpckhwd mm6, qword [esi + 0x72afdcd0]
push edi
jb 0x47db50
lodsb al, byte [esi]
mov ch, 0x82
sub eax, dword [ebp + edx + 0x7b2ee307]
push cs
int3
xchg ebx, eax
and byte [edx], 0xa1
pop es
into
and esi, ebx
inc ebp
mov esp, dword [edi]
add dword [edx], 2
xor dh, byte [edx - 0x39]
lodsd eax, dword [esi]
mov dword [0x33821762], eax
ret 0xd244
Function at 0x47f082
Capabilities:
Encode data using xor

Disassembly:
inc eax
mov eax, dword ds:[0x33d3217e]
arpl word [eax - 0x4b359a4d], ax
invalid
mov byte [0x2aa30625], al
xor byte [esi + ecx], 0x84
mov eax, edi
sub al, byte [edx - 0xd7bf1cc]
mov eax, edi
ja 0x47f04f
aaa
loope 0x47f0bf
xlatb
push ebx
lds ebp, [ebp + 0x47]
pop ss
mov dh, 0xd
ja 0x47f086
popal
test al, 0xfc
sbb byte [edi], 0xea
or byte [ecx + 0x34251b6], dh
and dword [edi - 0x5a], 0x13
xchg edi, eax
jg 0x47f0fb
cmp dword [ebx - 0x5af898c0], 0xffffffe2
dec eax
and dh, byte [ebx - 0x4468b735]
jns 0x47f11e
pop esi
dec esi
mov ebx, 0xac4710fc
push 0x6d
adc ebp, edi
scasd eax, dword es:[edi]
inc eax
salc
lodsb al, byte [esi]
inc edx
dec ecx
cmpsb byte [esi], byte es:[edi]
xor edi, esp
mov ebp, 0x87891e99
xor bl, byte [esi + 0x7d]
dec edi
inc ebx
fild dword [eax - 0x5c4550b9]
arpl word [edi + 0x13ea83ac], si
dec edx
loopne 0x47f091
mov es, word [edx - 0x5e]
add ch, byte [edx - 7]
adc eax, 0xd752a396
movsb byte es:[edi], byte [esi]
inc ebx
push edx
dec edi
and eax, 0x43036798
or esi, esi
and dword [ecx + eax + 0x61], 0xffffffc9
pushfd
xchg ebx, eax
dec esi
test byte [edx - 0xe4d26a2], 0x8c
add dh, byte [edx + esi*8 - 0x4d]
xor bh, byte [edx + 9]
fcomp dword [esi + 0x16371263]
adc dh, byte [edi]
push ss
xchg ebx, eax
jge 0x47f127
sbb byte [eax + 0x520da79a], cl
sbb byte [ebp - 0x54aed73b], bl
cmpsd dword [esi], dword es:[edi]
or eax, 0xc59d1852
sub byte [ecx - 0x55], dl
lahf
mov cl, 0xc7
dec ecx
or esp, dword [edx + 0x22b37fd4]
or byte [eax + edx*8], bh
idiv edi
in eax, 0xde
adc edi, ecx
mov cl, 0xf0
or al, 9
sbb dword [eax - 0x7729df7], esp
or dword [edx - 0x15], esi
invalid

Function at 0x47fcbe
Capabilities:
Encode data using xor

Disassembly:
popal
mov ch, 0x1d
inc esp
dec ebx
adc eax, 0x811461f4
popal
adc al, 0x81
insb byte es:[edi], dx
lodsd eax, dword [esi]

Function at 0x494d6b
Capabilities:
Encode data using xor

Disassembly:
mov byte [0xcc76bb07], al
xchg esp, eax
mov bl, byte [edx - 0x22b0beb3]
imul ecx, dword [ecx], 0xe5e4d8b3
lodsb al, byte [esi]
pop ecx
out dx, al
imul ebp, dword [edi - 0x53], 0xe45182
mov ecx, 0x62411f6
dec ecx
jp 0x494dd9
sbb ebx, dword ds:[ecx]
sbb ebx, dword [ecx]
aaa
cwde
movsd dword es:[edi], dword [esi]
mov dword [0x51d63105], eax
xor eax, 0x5408acae
imul ecx, dword [ebp - 0x12d064e4], 0xad80ba57
mov dword [esp + ebp*4 - 0x3e7beacf], ecx
fisttp dword [edi - 0x61edb294]
adc eax, 0x6d8024c4
test dh, ah
mov eax, dword [0x80bdb03e]
sbb dword [eax + 0x34bd93f0], esi
sbb edx, dword [ebp - 0x253d5cae]
fcmovu st(0), st(3)
inc esi
invalid
jb 0x494d91
sub ebx, ecx
rcl cl, 0xa1
cmpsd dword [esi], dword es:[edi]
and byte [ecx + 0x1d400c48], ch
push ds
add eax, 0x457d40e8
outsb dx, byte [esi]
mov byte [ebp - 0x2b], bl
mov ebp, 0x8e519d5a
loope 0x494e04
or al, 0xa1
xchg ebx, eax
frstor dword [esi]
neg dword [ebx]
cdq
movsd dword es:[edi], dword [esi]
mov bh, 0xa6
jne 0x494dd6
mov al, byte es:[0x941b69a4]
xchg esp, eax
ret
Function at 0x4baa79
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x4c3348
cmp edx, dword [eax]
je 0x4baa9b
add eax, 8
inc ecx
cmp eax, 0x4c33d8
jl 0x4baa8c
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x4c3348]
jne 0x4babc9
mov eax, dword [0x4c7ccc]
cmp eax, 1
je 0x4baba3
test eax, eax
jne 0x4baacc
cmp dword [0x4c3274], 1
je 0x4baba3
cmp edx, 0xfc
je 0x4babc9
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4bab03
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.004bb460
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.004bb8f0
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4bab46
lea eax, [ebp - 0x1a4]
push eax
call fcn.004bb8f0
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4bfc3c
push edi
call fcn.004bd7c0
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.004bb460
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004bb470
lea eax, [ebp - 0xa0]
push 0x4bfc1c
push eax
call fcn.004bb470
push dword [esi + 0x4c334c]
lea eax, [ebp - 0xa0]
push eax
call fcn.004bb470
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.004bd734
add esp, 0x2c
pop edi
jmp 0x4babc9
lea eax, [ebp + 8]
lea esi, [esi + 0x4c334c]
push 0
push eax
push dword [esi]
call fcn.004bb8f0
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x100052b4
Capabilities:
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, ecx
push esi
push edi
test edx, edx
je 0x10005300
xor esi, esi
mov edi, edx
mov ecx, edi
lea eax, [ecx + 1]
mov dword [ebp - 4], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100052d2
sub ecx, dword [ebp - 4]
lea eax, [ecx + 1]
add edi, eax
add esi, eax
cmp eax, 1
jne 0x100052ca
push esi
push edx
push 7
push 0
push dword [ebp + 8]
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
pop edi
pop esi
pop ebx
leave
ret 8
mov ecx, 0x80004005
call fcn.10004f86
int3

Function at 0x1000530b
Capabilities:
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x124
mov eax, dword [0x1001e2c4]
xor eax, esp
mov dword [esp + 0x120], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [esp + 0x14]
push esi
push edi
push eax
mov edi, ecx
xor ecx, ecx
push 0x2001f
push ecx
push ebx
push dword [edi]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, eax
test esi, esi
jne 0x100053ef
cmp dword [esp + 0xc], esi
je 0x10005371
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
test esi, esi
jne 0x100053ef
lea ecx, [esp + 0x20]
push ecx
push esi
push esi
push esi
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x3c]
push ecx
push esi
push eax
jmp 0x100053be
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x10]
call fcn.1000530b
mov esi, eax
test esi, esi
jne 0x100053ef
lea eax, [esp + 0x20]
push eax
push esi
push esi
push esi
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
push esi
push dword [esp + 0x28]
mov dword [esp + 0x38], 0x100
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
je 0x10005393
cmp dword [esp + 0xc], 0
je 0x100053e5
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0xc], esi
push ebx
mov ecx, edi
call fcn.1000521f
mov esi, eax
cmp dword [esp + 0xc], 0
je 0x10005400
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x12c]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10018600
mov esp, ebp
pop ebp
ret 4