joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1013a590
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag
Get ntdll base address
Get process heap force flags

Disassembly:
push 0xffffffffffffffff
push 0x10173768
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x102933b0]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov esi, dword [esp + 0x34]
test esi, esi
jne 0x1013a5d5
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push 0x80008
call fcn.1014ed96
push 0x80008
mov edi, eax
push 0
push edi
mov dword [esp + 0x28], edi
call fcn.101527d0
mov eax, dword [esp + 0x40]
push esi
push eax
push edi
mov dword [esp + 0x44], 0
call fcn.10139f60
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x3c]
push edx
push edi
call fcn.1013a2b0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x60]
lea eax, [esp + 0x40]
push eax
push ecx
push edx
lea ebp, [esi + 0x14]
push edi
mov dword [esp + 0x50], ebp
call fcn.101395b0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
push eax
mov ebx, eax
mov eax, dword [esp + 0x50]
push eax
push ecx
push edx
push edi
sub ebx, ebp
call fcn.10139a70
mov ecx, dword [esp + 0x68]
mov byte [esi], cl
mov edx, ecx
shr edx, 8
mov byte [esi + 1], dl
mov edx, ecx
shr ecx, 0x18
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x60]
shr edx, 0x10
mov byte [esi + 2], dl
mov byte [esi + 4], cl
mov edx, ecx
shr edx, 8
mov byte [esi + 5], dl
mov edx, ecx
shr ecx, 0x18
mov byte [esi + 7], cl
shr edx, 0x10
mov byte [esi + 6], dl
mov ecx, ebx
shr ecx, 8
mov byte [esi + 9], cl
mov edx, ebx
shr edx, 0x10
mov byte [esi + 8], bl
mov byte [esi + 0xa], dl
shr ebx, 0x18
mov ecx, eax
shr ecx, 8
mov byte [esi + 0xb], bl
mov edx, eax
add esp, 0x4c
mov dword [esp + 0x34], eax
mov byte [esi + 0xc], al
mov byte [esi + 0xd], cl
shr edx, 0x10
mov byte [esi + 0xe], dl
shr eax, 0x18
mov byte [esi + 0xf], al
push edi
mov byte [esi + 0x10], 0
mov byte [esi + 0x11], 0
mov byte [esi + 0x12], 0
mov byte [esi + 0x13], 0
call fcn.101512a8
mov eax, dword [esp + 0x38]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
sub eax, esi
add esp, 4
add eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
Function at 0x101556a8
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x102933b0]
jne 0x101556b2
repz ret
jmp fcn.101658cf

Function at 0x10168a00
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.10159741
and dword [ebp - 4], 0
cmp dword [0x1029b400], 0
mov ebx, eax
jne 0x10168ab1
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x10168b62
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x10168b62
push eax
call fcn.101596cf
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x1029b400], eax
call esi
push eax
call fcn.101596cf
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x1029b404], eax
call esi
push eax
call fcn.101596cf
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x1029b408], eax
call esi
push eax
call fcn.101596cf
pop ecx
mov dword [0x1029b410], eax
test eax, eax
je 0x10168ab1
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.101596cf
pop ecx
mov dword [0x1029b40c], eax
mov eax, dword [0x1029b40c]
cmp eax, ebx
je 0x10168b09
cmp dword [0x1029b410], ebx
je 0x10168b09
push eax
call fcn.1015974a
push dword [0x1029b410]
mov esi, eax
call fcn.1015974a
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x10168b09
test edi, edi
je 0x10168b09
call esi
test eax, eax
je 0x10168b00
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x10168b00
test byte [ebp - 0xc], 1
jne 0x10168b09
or dword [ebp + 0x10], 0x200000
jmp 0x10168b42
mov eax, dword [0x1029b404]
cmp eax, ebx
je 0x10168b42
push eax
call fcn.1015974a
pop ecx
test eax, eax
je 0x10168b42
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x10168b42
mov eax, dword [0x1029b408]
cmp eax, ebx
je 0x10168b42
push eax
call fcn.1015974a
pop ecx
test eax, eax
je 0x10168b42
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x1029b400]
call fcn.1015974a
pop ecx
test eax, eax
je 0x10168b62
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x10168b64
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x41339e
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4133c9
test byte [esp + 8], 0x80
je 0x4133b8
and al, 0xfe
jmp 0x4133ba
or al, 1
push eax
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x4133da
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0040df75
pop ecx
or eax, 0xffffffff
ret
xor eax, eax
ret
Function at 0x40978a
Capabilities:
Encode data using xor

Disassembly:
aaa
xchg ebp, eax
out dx, al
cmpsd dword [esi], dword es:[edi]
scasb al, byte es:[edi]
jns 0x40973a
xchg edx, eax
xchg edi, eax
and dh, 0x21
sahf
push 0xbc601e05
inc esi
and al, 0x25
push ebp
xchg edi, eax
ljmp 0x4e17

Function at 0x417826
Capabilities:
Encode data using xor

Disassembly:
cmpsd dword [esi], dword es:[edi]
shr dword [ecx], cl
or dl, cl
xchg ecx, eax
sal byte ss:[esi + 0x6522b76d], cl
mov dh, 0x6d
mov bh, 0x22
xor eax, 0x33581a1a
sar byte [ecx - 0x5e], 0xb5
popfd
cmpsb byte [esi], byte es:[edi]

Function at 0x4384ae
Capabilities:
Encode data using xor

Disassembly:
inc ecx
out dx, eax
cmp al, byte [ebp + 0x42]
sbb byte [edx], dl
out dx, al
and byte [edi - 0x3b18c3e9], 0x27
mov bh, 0x5a
enter 0xfffffffffffffac7, 0xffffffffffffffc3
sal byte [ebx], cl
ror dword ss:[edx], cl
push ds
push ebp
leave
sar byte [ebx - 0x265ebb9e], cl
inc eax
mov fs, word [esp + ebp - 0x1e]
cld
iretd
enter 0x58a2, 0x77
out 0xfc, al
xchg ebp, eax
inc ebp
jns 0x438473
pushfd
in eax, 0x2a
invalid
invalid
sub cl, byte [edi + 0x3c3e03d3]
xchg edi, eax
cmpsb byte [esi], byte es:[edi]
dec edi
jle 0x43850d
xchg edx, eax
paddusw mm2, qword [eax]
out 0x3e, al
sar ch, cl
xor eax, 0x2e03cf53
je 0x4384a2
add bl, dh
lodsd eax, dword [esi]
add al, 0xc9
ret
inc eax
or ecx, ebp
fdivr dword [edi + 0x33a1ada2]
popfd
cmp al, 0x89
or eax, 0x6c84367e
daa
insb byte es:[edi], dx
xor ebx, dword [ebp + 0x7e0d893c]
test byte ss:[edi + 0x6c], ch
clc
xchg ecx, eax
js 0x438515
imul ecx, esi, 0x95dab98b
enter 0x3879, 0x5e
dec eax
imul esi, dword [esi - 0x53], 0xc9a99eab
mov cl, 0x93
dec eax
pop ds
xor al, 0x2c
or byte [esi + 0x6a], 0x6c
retf 0x15d9

Function at 0x4643e2
Capabilities:
Encode data using xor

Disassembly:
sbb byte es:[esi - 0x467fcba6], dl
pop ebp
movsd dword es:[edi], dword [esi]
leave
jbe 0x464414
lahf
cmp bh, byte [ecx - 0x19]
hlt
sbb esp, dword [ebp + ecx - 0x4c8742cf]
xor dword [ebp - 0x572b4c88], edi
aam 0xa8
adc eax, 0x11e664aa
xor eax, 0x9860134
scasb al, byte es:[edi]
cmpsd dword [esi], dword es:[edi]
dec ebx
lds ecx, [edx + 0x66]
add dword [eax + 0x69], edi
jl 0x4643e5
sal byte [ebx], 1
fadd qword [eax - 3]
adc dword [eax], edi
jnp 0x46438f
dec ecx
lcall 0x499e, 0x397e354f
mov dword [0x3876822e], eax
jbe 0x46444e
cdq
mov al, byte [0xd41a7548]
adc byte [edi], dh
jmp 0x5bb2cfd9
add byte [edi + 0x44], cl
loope 0x4644a7
invalid
xlatb
mov ecx, edx
in al, dx
push edx
mov ebp, 0xbd3bdb76
stosb byte es:[edi], al
push edi
retf

Function at 0x48a266
Capabilities:
Encode data using xor

Disassembly:
xor dword [ebp - 0x6a5e354f], eax
push ecx
sub eax, 0x798a3784
sub eax, 0x798a3784
push edi
invalid
invalid
Function at 0x4baa60
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x4c4480
cmp edx, dword [eax]
je 0x4baa82
add eax, 8
inc ecx
cmp eax, 0x4c4510
jl 0x4baa73
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x4c4480]
jne 0x4babb0
mov eax, dword [0x4c6d1c]
cmp eax, 1
je 0x4bab8a
test eax, eax
jne 0x4baab3
cmp dword [0x4c22c8], 1
je 0x4bab8a
cmp edx, 0xfc
je 0x4babb0
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4baaea
lea eax, [ebp - 0x1a4]
push 0x4beb58
push eax
call fcn.004bbbc0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.004bbcb0
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4bab2d
lea eax, [ebp - 0x1a4]
push eax
call fcn.004bbcb0
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4beb54
push edi
call fcn.004bc670
add esp, 0x10
lea eax, [ebp - 0xa0]
push 0x4beb38
push eax
call fcn.004bbbc0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004bbbd0
lea eax, [ebp - 0xa0]
push 0x4beb34
push eax
call fcn.004bbbd0
push dword [esi + 0x4c4484]
lea eax, [ebp - 0xa0]
push eax
call fcn.004bbbd0
push 0x12010
lea eax, [ebp - 0xa0]
push 0x4beb0c
push eax
call fcn.004bc5e2
add esp, 0x2c
pop edi
jmp 0x4babb0
lea eax, [ebp + 8]
lea esi, [esi + 0x4c4484]
push 0
push eax
push dword [esi]
call fcn.004bbcb0
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 0x600840
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x1a3000]
push edi
jmp 0x60085a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x600861
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x600850
mov eax, 1
add ebx, ebx
jne 0x600873
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x600884
jne 0x6008a3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6008a3
dec eax
add ebx, ebx
jne 0x600890
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x600868
add ebx, ebx
jne 0x60089f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x6008f5
xor ecx, ecx
sub eax, 3
jb 0x6008bb
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x60092a
sar eax, 1
mov ebp, eax
jmp 0x6008c6
add ebx, ebx
jne 0x6008c6
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x600894
inc ecx
add ebx, ebx
jne 0x6008d4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x600894
add ebx, ebx
jne 0x6008e1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x6008d6
jne 0x6008f2
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x6008d6
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x600914
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x600906
jmp 0x600856
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x600914
add edi, ecx
jmp 0x600856
pop esi
mov edi, esi
mov ecx, 0x40d6
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x600932
cmp byte [edi], 0x11
jne 0x600932
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x600937
lea edi, [esi + 0x1f9000]
mov eax, dword [edi]
or eax, eax
je 0x6009af
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x31babc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x31bc38]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x600964
mov ecx, edi
jns 0x600993
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x31bc3c]
or eax, eax
je 0x6009a9
mov dword [ebx], eax
add ebx, 4
jmp 0x600981
call dword [esi + 0x31bc4c]
add edi, 4
lea ebx, [esi - 4]
xor eax, eax
mov al, byte [edi]
inc edi
or eax, eax
je 0x6009e0
cmp al, 0xef
ja 0x6009d3
add ebx, eax
mov eax, dword [ebx]
xchg ah, al
rol eax, 0x10
xchg ah, al
add eax, esi
mov dword [ebx], eax
jmp 0x6009b5
and al, 0xf
shl eax, 0x10
mov ax, word [edi]
add edi, 2
jmp 0x6009c2
mov ebp, dword [esi + 0x31bc40]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x23f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x600a14
sub esp, 0xffffff80
jmp 0x4204f7
Function at 0xff6950
Capabilities:
Encode data using xor

Disassembly:
jmp 0xff695a
pushal
call 0xff6960
add byte [eax], al
add byte [eax], al
pop ebp
sub ebp, 0x10
sub ebp, 0xbf6950
jmp 0xff6976
mov eax, 0xbf6950
add eax, ebp
add eax, 0x4c
mov ecx, 0x5bc
mov edx, 0xb121b85d
xor byte [eax], dl
inc eax
dec ecx
jne 0xff698d
invalid
jmp 0xff69a0
salc
nop
salc
aam 0x61
pop ebp
pop ebp
pop ebp
fcomp qword [ebp + 0x5e5d5d5d]
nop
in eax, 0x59
pop ebp
pop ebp
pop ebp
out 0x75, eax
pop ebp
pop ebp
pop ebp
stosb byte es:[edi], al
mov edi, 0xdcd6955e
push ecx
pop ebp
pop ebp
pop ebp
pop esi
cwde
or eax, 0xa17939d0
aam 0x59
jns 0xff6a04
jne 0xff695c
jl 0xff6a30
xor eax, 0x5dc0ce78
pop esp
jno 0xff6a54
xor eax, 0x75445e50
mov ch, 0x58
push eax
pop esi
inc esp
jne 0xff6996
pop eax
pop ebp
pop ebp
pop ebp
mov ah, 0x73
pop ebp
pop ebp
pop ebp
or dh, dl
mov cl, 0xd6
fcom dword [ebp + 0x5d]
pop ebp
pop ebp
salc
enter 0x5d51, 0x5d
pop ebp
salc
ror byte [ebp + 0x5d], 1
pop ebp
pop ebp
pushfd
mov ah, 0x5f
insb byte es:[edi], dx
pop edi
ficomp word [edi - 0x27adeba7]
test eax, 0xd6a2a2a2
jno 0xff6a8a
sar byte [ecx], 1
jns 0xff6a6e
lahf
push ecx
pop ebp
salc
sar dword [ecx + 0x59], 1
pop ebp
pop ebp
pop ebp
xor eax, 0x5d7c8b75
xor eax, 0x5dc0ce78
pop esp
jno 0xff6aa5
or al, 0xb5
pop eax
pop ebp
pop ebp
pop ebp
mov ah, 0x18
pop edi
pop ebp
pop ebp
sar byte [ecx], 1
jns 0xff69dc
aam 0x71
jns 0xff6a15
mov cl, 0xa2
sub byte [ecx - 0x5e], dl
sub byte [ebp - 0x4b], dl
das
pop ebp
pop ebp
pop ebp
salc
loopne 0xff6aa3
pop ebp
pop ebp
pop ebp
outsb dx, byte [esi]
xchg esp, eax
fsubr qword [edi - 0x6fdec6f]
scasd eax, dword es:[edi]
xchg ecx, eax
adc eax, dword [edx]
stc
fsubr qword [edi - 0x6fdec6f]
outsb dx, byte [esi]
invalid
pop ebp
pop ebp
pop ebp
cmp edx, esi
inc ecx
frstor dword fs:[esi + 0x47d952b5]
pop ebp
pop ebp
pop ebp
frstor dword [esi + 0x4cd952b4]
pop ebp
pop ebp
pop ebp
cmp ebx, esp
cmpsb byte [esi], byte es:[edi]
mov byte [0x48d95278], al
pop ebp
pop ebp
pop ebp
sbb al, 0xb4
xchg ecx, eax
mov byte [0x1174a2a2], al
pop esp
ficomp word [eax + ebx*2 - 0x4ba64a22]
loopne 0xff6a47
mov byte [0x640974a2], al
pop edi
ficomp word [ebx + ebx*2 - 0x21a64822]
mov ch, 0x58
mov ah, 0xf6
mov byte [0x9f00a2a2], al
push ecx
pop ebp
or dh, dl
mov cl, 0xb
or cl, byte [eax]
salc
sub byte [ecx - 0x2a], dl
and byte [ebp - 0x5f], dl
out dx, eax
fst st(7)
pop ebx
fcomp qword [ebx + 0x5d5d5d5c]
aad 0x5a
fcomp qword [edx + 0x5d5d5d5c]
out 0x5f, al
pop ebp
pop ebp
pop ebp
pop edi
invalid
Function at 0x409978
Capabilities:
Create process on windows
Create process suspended

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x409a4b
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x409a64
push ebx
push 0x409a70
push esi
lea eax, [ebp - 4]
mov edx, 4
call fcn.00403388
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x44
call fcn.00402750
mov dword [ebp - 0x48], 0x44
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x48]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.004033e8
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
jne 0x4099f8
mov al, 0x69
call fcn.0040961c
mov eax, dword [ebp - 0x54]
push eax
call sub.kernel32.dll_CloseHandle_1
call fcn.0040994c
push 0xff
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x58]
push eax
push 1
call sub.user32.dll_MsgWaitForMultipleObjects
dec eax
je 0x409a01
call fcn.0040994c
push edi
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_GetExitCodeProcess
mov eax, dword [ebp - 0x58]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409a52
lea eax, [ebp - 4]
call fcn.0040316c
ret

Function at 0x409b04
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffbc
mov edi, eax
lea esi, [esp + 0x28]
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_GetSystemInfo
mov ebx, edi
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x409bb8
jmp 0x409bad
cmp dword [esi + 0x10], 0x1000
jne 0x409b99
test byte [esi + 0x15], 1
jne 0x409b99
xor ebx, ebx
mov eax, dword [esi + 0x14]
cmp eax, 1
je 0x409b58
cmp eax, 2
je 0x409b58
cmp eax, 0x10
je 0x409b58
cmp eax, 0x20
jne 0x409b6d
push esp
push 0x40
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x409b6d
mov bl, 1
xor ebp, ebp
jmp 0x409b7e
mov eax, dword [esi]
add eax, ebp
call fcn.00409afc
add ebp, dword [esp + 8]
cmp ebp, dword [esi + 0xc]
jb 0x409b71
test bl, bl
je 0x409b99
push esp
mov eax, dword [esp + 4]
push eax
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [esi]
add eax, dword [esi + 0xc]
mov ebx, eax
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x409bb8
mov eax, dword [esi + 4]
cmp eax, edi
je 0x409b30
add esp, 0x44
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x433004
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
call 0x43300c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x40a063
sub eax, 0x40a009
nop
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
jl 0x433030
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43301e
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x40211a
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov ebx, 0x4e870e
mov esi, edx
push ebx
mov edi, ecx
call fcn.004041c8
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push ebx
call fcn.0040414f
xor ebx, ebx
mov dword [ebp - 0x10], 1
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 8], ebx
mov byte [ebp - 1], bl
jb 0x402154
mov esi, dword [esi]
lea eax, [ebp - 0xc]
push eax
push 0x20019
push ebx
push esi
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4021fc
mov esi, dword [ebp + 8]
cmp dword [esi + 0x14], 0x10
jb 0x40217b
mov eax, dword [esi]
jmp 0x40217d
mov eax, esi
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 1]
push ecx
lea ecx, [ebp - 0x10]
push ecx
push ebx
push eax
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, 0xea
jne 0x4021f7
mov eax, dword [ebp - 8]
inc eax
push eax
call fcn.00490848
cmp dword [esi + 0x14], 0x10
mov edi, eax
pop ecx
jb 0x4021b6
mov esi, dword [esi]
lea eax, [ebp - 8]
push eax
push edi
lea eax, [ebp - 0x10]
push eax
push 0
push esi
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [ebp - 8]
push edi
mov byte [edi + eax], 0
call fcn.004041c8
pop ecx
mov ecx, dword [ebp + 0xc]
push eax
push edi
call fcn.0040414f
push edi
call fcn.004a525a
pop ecx
push dword [ebp - 0xc]
call ebx
test eax, eax
jne 0x4021f7
mov al, 1
jmp 0x4021fe
push dword [ebp - 0xc]
call ebx
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40273a
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Get file attributes
Read file on windows

Disassembly:
push 0x14c
mov eax, 0x4cf359
call fcn.004aaeb3
mov dword [ebp - 0x158], edx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x134]
push eax
mov dword [ebp - 0x150], eax
xor edi, edi
xor esi, esi
xor bl, bl
call fcn.004041e5
xor eax, eax
mov dword [ebp - 4], eax
push 0x103
push eax
mov byte [ebp - 0x11c], al
lea eax, [ebp - 0x11b]
push eax
call fcn.004ab3c0
add esp, 0xc
lea eax, [ebp - 0x11c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x11c]
push eax
push esi
push 0x4dddcc
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x11c]
push eax
push dword [ebp - 0x150]
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x40280a
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40280a
lea eax, [ebp - 0x11c]
push eax
call fcn.004041c8
pop ecx
push eax
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x134]
call fcn.0040414f
and dword [ebp - 0x154], 0
lea eax, [ebp - 0x134]
cmp dword [ebp - 0x120], 0x10
push 0x4dddd0
cmovae eax, dword [ebp - 0x134]
push eax
lea eax, [ebp - 0x154]
push eax
call fcn.004a616a
add esp, 0xc
test eax, eax
jne 0x4028c2
push dword [ebp - 0x154]
call fcn.004a61af
pop ecx
push eax
call fcn.004a61d3
pop ecx
mov esi, eax
mov dword [ebp - 0x150], 0x1400
lea eax, [ebp - 0x150]
push eax
push eax
push str.FileLimitSizeKB
push str.CInfos
call fcn.0044cc7a
mov ecx, eax
call fcn.0044cce4
mov eax, dword [ebp - 0x150]
shl eax, 0xa
cmp esi, eax
jbe 0x402893
xor bl, bl
jmp 0x402944
test esi, esi
je 0x4028b4
push esi
call fcn.00490848
pop ecx
push dword [ebp - 0x154]
mov edi, eax
push esi
push 1
push edi
call fcn.004a64b1
add esp, 0x10
mov esi, eax
push dword [ebp - 0x154]
call fcn.004a65c9
pop ecx
jmp 0x402904
push dword [ebp - 0x150]
lea eax, [ebp - 0x14c]
push 0
push str.ABLOGType:FileOpenFailedFileSize:_ldPath:_s
push eax
call fcn.004647ea
add esp, 0x10
push eax
push ecx
mov byte [ebp - 4], 1
call fcn.0044fe3d
pop ecx
mov ecx, eax
call fcn.004503bb
push 0
push 1
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0
call fcn.004044e5
test edi, edi
je 0x402930
test esi, esi
je 0x402930
push esi
push edi
push dword [ebp - 0x158]
push str.HISTORY
call fcn.0044fe3d
mov ecx, eax
call fcn.004502f8
test al, al
movzx ebx, bl
push 1
pop eax
cmovne ebx, eax
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
call fcn.004a525a
pop ecx
xor eax, eax
lea ecx, [ebp - 0x134]
push 0
inc eax
push eax
call fcn.004044e5
mov al, bl
call fcn.004aae62
ret