joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5f1770
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0xf4
xor ecx, ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x104]
push edi
xor eax, eax
mov al, byte [ecx + str.80_]
mov edx, eax
and eax, 7
sar edx, 3
mov bl, byte [eax*2 + 0xc25754]
mov dl, byte [edx + esi]
test bl, dl
setne al
mov byte [esp + ecx + 0x4c], al
inc ecx
cmp ecx, 0x38
jl 0x5f1783
mov eax, 0x1e
xor edx, edx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10c], 1
je 0x5f17c4
lea eax, [edx + edx]
lea edi, [esp + eax*4 + 0x88]
lea ebp, [esp + eax*4 + 0x84]
xor eax, eax
xor ecx, ecx
mov cl, byte [edx + 0xc257fc]
mov dword [edi], 0
mov dword [ebp], 0
mov esi, ecx
cmp ecx, 0x1c
jge 0x5f17f6
mov bl, byte [esp + ecx + 0x4c]
jmp 0x5f17fa
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x14], bl
inc eax
inc ecx
cmp eax, 0x1c
jl 0x5f17eb
mov eax, 0x1c
lea ecx, [esi + 0x1c]
cmp ecx, 0x38
jge 0x5f1818
mov bl, byte [esp + ecx + 0x4c]
jmp 0x5f181c
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x14], bl
inc eax
inc ecx
cmp eax, 0x38
jl 0x5f180d
xor ecx, ecx
mov eax, 0xc25764
xor ebx, ebx
mov bl, byte [ecx + 0xc2580c]
cmp byte [esp + ebx + 0x14], 0
je 0x5f1847
mov esi, dword [eax]
mov ebx, dword [ebp]
or ebx, esi
mov dword [ebp], ebx
xor ebx, ebx
mov bl, byte [ecx + 0xc25824]
cmp byte [esp + ebx + 0x14], 0
je 0x5f185e
mov esi, dword [eax]
mov ebx, dword [edi]
or ebx, esi
mov dword [edi], ebx
add eax, 4
inc ecx
cmp eax, str.80_
jl 0x5f182e
mov eax, dword [esp + 0x10]
inc edx
sub eax, 2
cmp eax, 0xfffffffe
mov dword [esp + 0x10], eax
jg 0x5f17b7
lea edx, [esp + 0x84]
push edx
call fcn.005f18a0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret
Function at 0x5f5bb0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ecx
mov eax, dword [0xca7584]
xor edx, edx
cmp eax, edx
jne 0x5f5bd6
xor eax, eax
mov byte [eax + 0xca7484], al
inc eax
cmp eax, 0x100
jl 0x5f5bbe
mov dword [0xca7584], 1
mov eax, dword [esp + 0xc]
push ebx
mov ebx, dword [esp + 0x14]
push esi
push edi
mov ecx, 0x40
mov esi, 0xca7484
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
cmp eax, edx
mov byte [ebx + 0x100], dl
mov byte [ebx + 0x101], dl
jle 0x5f5c67
xor esi, esi
push ebp
mov byte [esp + 0x20], dl
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov al, byte [esi + ebx]
and edi, 0xff
xor edx, edx
mov dl, byte [edi + ebp]
mov ebp, eax
and ebp, 0xff
add ecx, edx
add ecx, ebp
and ecx, 0x800000ff
jns 0x5f5c3a
dec ecx
or ecx, 0xffffff00
inc ecx
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xff
mov dl, byte [ecx + ebx]
mov byte [esi + ebx], dl
mov byte [ecx + ebx], al
lea eax, [edi + 1]
cdq
idiv dword [esp + 0x1c]
inc esi
cmp esi, 0x100
mov byte [esp + 0x20], dl
jl 0x5f5c08
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x5f5c70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov cl, byte [eax + 0x100]
mov dl, byte [eax + 0x101]
mov dword [ebp - 8], eax
mov byte [ebp - 1], cl
mov byte [ebp - 2], dl
xor ebx, ebx
mov bl, byte [ebp - 1]
xor edx, edx
mov dl, byte [ebp - 2]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 8]
xor eax, eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x5f5cc3
inc bl
mov al, byte [esi + ebx]
add dl, al
xchg byte [esi + edx], al
mov byte [esi + ebx], al
add al, byte [esi + edx]
mov al, byte [esi + eax]
xor byte [edi], al
inc edi
dec ecx
jne 0x5f5caa
mov byte [ebp - 1], bl
mov byte [ebp - 2], dl
mov eax, dword [ebp + 0x10]
mov cl, byte [ebp - 1]
mov dl, byte [ebp - 2]
pop edi
pop esi
mov byte [eax + 0x100], cl
mov byte [eax + 0x101], dl
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x5fc680
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x64ea6e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x18]
push esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov ecx, edi
mov dword [esp + 0x10], edi
call fcn.005fcfa0
push 0x10
mov dword [esp + 0x18], 0
mov dword [edi], 0xbe7d3c
call fcn.00637f42
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov al, 1
test esi, esi
mov byte [esp + 0x14], al
je 0x5fc713
push 4
mov byte [esi + 8], al
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.00637f42
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x14], 2
je 0x5fc70c
push 0
mov ecx, eax
call fcn.005f37f0
mov dword [esi + 0xc], eax
jmp 0x5fc715
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x5fc715
xor esi, esi
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x30], esi
mov dword [edi + 0x34], 0
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 8
Function at 0x60d6b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x18]
imul eax, edi
add eax, edx
cmp edx, eax
mov dword [ebp - 0x14], eax
jae 0x60d7d1
mov eax, dword [ebp + 0x10]
lea eax, [edx + eax*4]
push ebx
push esi
mov dword [ebp + 0x14], eax
mov esi, 0xffc03fc0
mov eax, 0xff00ff
cmp edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], ecx
jae 0x60d7b5
mov ebx, dword [ebp + 0x14]
sub ebx, edx
dec ebx
shr ebx, 3
lea ecx, [edx + 4]
inc ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], ebx
mov edx, dword [ecx + edi]
mov edi, dword [edi + ecx - 4]
mov dword [ebp - 8], edi
shr edi, 2
and edi, esi
mov dword [ebp + 0x10], edx
mov edx, dword [ecx]
mov ecx, dword [ecx - 4]
mov ebx, ecx
shr ebx, 2
and ebx, esi
add ebx, edi
mov edi, dword [ebp + 0x10]
shr edi, 2
and edi, esi
add ebx, edi
mov edi, edx
shr edi, 2
and edi, esi
lea ebx, [ebx + edi - 0x7fff80]
mov edi, dword [ebp - 8]
and edi, eax
mov esi, ecx
and esi, eax
add esi, edi
mov edi, dword [ebp + 0x10]
and edi, eax
add esi, edi
mov edi, edx
and edi, eax
lea esi, [esi + edi + 0x20002]
mov edi, dword [ebp - 8]
shr ecx, 2
shr esi, 2
xor ebx, esi
shr edi, 2
mov esi, 0x3fc03fc0
and ecx, esi
and edi, esi
add ecx, edi
mov edi, dword [ebp + 0x10]
shr edi, 2
and edi, esi
add ecx, edi
mov edi, dword [ebp + 0x18]
shr edx, 2
and edx, esi
lea ecx, [ecx + edx + 0x800080]
and ebx, eax
xor ebx, ecx
mov ecx, dword [ebp - 4]
add dword [ebp - 4], 4
mov dword [ecx], ebx
mov ecx, dword [ebp - 0xc]
add ecx, 8
dec dword [ebp - 0x10]
mov dword [ebp - 0xc], ecx
mov esi, 0xffc03fc0
jne 0x60d707
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
add dword [ebp + 8], ecx
lea ecx, [edi + edi]
add dword [ebp + 0x14], ecx
add edx, ecx
cmp edx, dword [ebp - 0x14]
mov dword [ebp + 0xc], edx
jb 0x60d6e5
pop esi
pop ebx
xor eax, eax
pop edi
leave
ret 0x18

Function at 0x60e219
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
and dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
push str.SoftwareMicrosoftDirect3D
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x60e270
push esi
lea eax, [ebp + 0x14]
push eax
push dword [ebp + 0x10]
lea eax, [ebp + 0x10]
push eax
push 0
push dword [ebp + 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
pop esi
jne 0x60e270
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp + 8]
jne 0x60e270
xor eax, eax
inc eax
jmp 0x60e272
xor eax, eax
leave
ret 0x10
Function at 0x60e29b
Capabilities:
Get system information on windows
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push edi
lea eax, [ebp - 4]
push eax
push str.SoftwareMicrosoftDirect3D
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
xor edi, edi
test eax, eax
jne 0x60e309
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push edi
push 0xbebbdc
push dword [ebp - 4]
mov dword [ebp - 8], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x60e300
cmp dword [ebp - 0xc], 4
jne 0x60e300
cmp dword [ebp - 0x10], edi
je 0x60e300
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [0xc2e528], edi
xor eax, eax
jmp 0x60e348
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [0xc2e528], edi
jge 0x60e343
lea eax, [ebp - 0x34]
push eax
mov dword [0xc2e528], edi
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp word [ebp - 0x34], di
jne 0x60e343
cmp word [ebp - 0x14], 5
jb 0x60e343
call fcn.0060e276
test eax, eax
je 0x60e343
emms
mov dword [0xc2e528], 1
mov eax, dword [0xc2e528]
pop edi
leave
ret

Function at 0x63a6f8
Capabilities:
Get graphical window text

Disassembly:
push esi
mov esi, ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x63a730
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.006386a8
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 8]
push 0xffffffffffffffff
call fcn.00638680
jmp 0x63a73c
mov eax, dword [ecx]
push dword [esp + 8]
call dword [eax + 0x88]
pop esi
ret 4

Function at 0x63bef6
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 0x63bf38
call fcn.00642899
mov esi, dword [eax + 0xc]
push 0xf0
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, edi
je 0x63bf38
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, edi
jne 0x63bf2f
xor eax, eax
jmp 0x63bf40
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
push edi
mov ecx, ebx
call fcn.0063bf46
pop edi
pop esi
pop ebx
ret 4

Function at 0x642dc9
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 0x642df7
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x642e15
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.00642d2f
jmp 0x642e15
mov eax, dword [esi + 0x14]
test eax, eax
je 0x642e15
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
mov ecx, esi
push eax
call fcn.00642d2f
test edi, edi
mov eax, edi
jne 0x642dff
pop edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebx
ret 8
Function at 0x40b2c0
Capabilities:
Parse pe header

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x30
mov ebx, ecx
movq xmm0, qword [esp + 0x44]
mov edi, edx
movdqu xmmword [esp + 0x10], xmm0
add esp, 0xfffffff4
lea ecx, [esp + 0xc]
movq qword [esp], xmm0
mov dword [esp + 8], 0x40
call fcn.0040b278
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
movzx ebp, word [eax]
cmp ebp, 0x5a4d
jne 0x40b374
movd xmm2, dword [eax + 0x3c]
add esp, 0xfffffff4
mov eax, dword [eax + 0x3c]
lea esi, [esp + 0x2c]
cdq
movdqu xmm1, xmmword [esi - 0x10]
mov ecx, esi
movd xmm0, edx
mov edx, edi
punpckldq xmm2, xmm0
paddq xmm2, xmm1
movq qword [esp], xmm2
mov dword [esp + 8], 0x108
call fcn.0040b278
push esi
lea ecx, [esp + 4]
call fcn.0040f458
mov ecx, esi
call fcn.0040f678
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
cmp dword [eax], 0x4550
jne 0x40b374
lea edx, [eax + 0x88]
mov ebp, dword [edx]
mov eax, dword [edx + 4]
test ebp, ebp
je 0x40b374
test eax, eax
jne 0x40b37f
mov ecx, ebx
push 0
call fcn.0040f5a8
jmp 0x40b3fe
add esp, 0xfffffff4
movd xmm0, ebp
movdqu xmm2, xmmword [esp + 0x1c]
pxor xmm1, xmm1
mov ecx, esi
movss xmm1, xmm0
mov edx, edi
paddq xmm2, xmm1
movq qword [esp], xmm2
mov dword [esp + 8], eax
call fcn.0040b278
push esi
lea ecx, [esp + 4]
call fcn.0040f458
mov ecx, esi
call fcn.0040f678
push 0
lea ecx, [esp + 4]
call fcn.0040f4e0
mov esi, eax
mov edx, dword [esi + 0x20]
sub edx, ebp
push edx
sub dword [esi + 0x1c], ebp
lea ecx, [esp + 4]
sub dword [esi + 0x24], ebp
mov dword [esi + 0x20], edx
call fcn.0040f4e0
cmp dword [esi + 0x18], 0
jbe 0x40b3f3
xor edx, edx
sub dword [eax], ebp
inc edx
add eax, 4
cmp edx, dword [esi + 0x18]
jb 0x40b3e8
mov ecx, ebx
lea edx, [esp]
push edx
call fcn.0040f63c
lea ecx, [esp]
call fcn.0040f678
mov eax, ebx
add esp, 0x30
pop ebp
pop ebx
pop edi
pop esi
ret 8
Function at 0x4073e2
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x461134], 0
jne 0x407420
xor ecx, ecx
push esi
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
movzx edx, dl
neg edx
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x4073f6
mov dword [ecx*4 + 0x461130], eax
inc ecx
cmp ecx, 0x100
jl 0x4073f1
pop esi
cmp dword [ebp + 0x10], 0
mov eax, dword [ebp + 8]
not eax
jbe 0x40744d
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
dec dword [ebp + 0x10]
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x461130]
inc ecx
cmp dword [ebp + 0x10], 0
ja 0x40742e
not eax
pop ebp
ret 0xc

Function at 0x411800
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x9000]
push edi
or ebp, 0xffffffff
jmp 0x411822
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x411829
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x411818
mov eax, 1
add ebx, ebx
jne 0x41183b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x411830
jne 0x41184c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x411830
xor ecx, ecx
sub eax, 3
jb 0x411860
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x4118d2
mov ebp, eax
add ebx, ebx
jne 0x41186b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x411878
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x41189c
inc ecx
add ebx, ebx
jne 0x411888
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x41187d
jne 0x411899
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x41187d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x4118bc
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x4118ad
jmp 0x41181e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x4118bc
add edi, ecx
jmp 0x41181e
pop esi
mov edi, esi
mov ecx, 0x27e
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x4118da
cmp byte [edi], 5
jne 0x4118da
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 0x4118df
lea edi, [esi + 0xf000]
mov eax, dword [edi]
or eax, eax
je 0x41194e
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x12cd0]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x12cf8]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x41190c
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x12d00]
or eax, eax
je 0x411948
mov dword [ebx], eax
add ebx, 4
jmp 0x411929
call dword [esi + 0x12cfc]
mov ebp, dword [esi + 0x12d04]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x217]
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 0x411982
sub esp, 0xffffff80
jmp 0x4022e2
Function at 0x19c3700
Capabilities:
Decompress data using aplib

Disassembly:
pushal
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
cld
mov dl, 0x80
xor ebx, ebx
movsb byte es:[edi], byte [esi]
mov bl, 2
call fcn.019c378f
jae 0x19c370e
xor ecx, ecx
call fcn.019c378f
jae 0x19c373d
xor eax, eax
call fcn.019c378f
jae 0x19c374d
mov bl, 2
inc ecx
mov al, 0x10
call fcn.019c378f
adc al, al
jae 0x19c372f
jne 0x19c3779
stosb byte es:[edi], al
jmp 0x19c3711
call fcn.019c379b
sub ecx, ebx
jne 0x19c3756
call fcn.019c3799
jmp 0x19c3775
lodsb al, byte [esi]
shr eax, 1
je 0x19c3783
adc ecx, ecx
jmp 0x19c3772
xchg ecx, eax
dec eax
shl eax, 8
lodsb al, byte [esi]
call fcn.019c3799
cmp eax, 0x7d00
jae 0x19c3772
cmp ah, 5
jae 0x19c3773
cmp eax, 0x7f
ja 0x19c3774
inc ecx
inc ecx
xchg ebp, eax
mov eax, ebp
mov bl, 1
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x19c3711
sub edi, dword [esp + 0x28]
mov dword [esp + 0x1c], edi
popal
ret 8
Function at 0x4014c0
Capabilities:
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x47f86c
mov eax, dword fs:[0]
push eax
sub esp, 0x98
mov eax, dword [0x49d2b0]
xor eax, esp
mov dword [esp + 0x94], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49d2b0]
xor eax, esp
push eax
lea eax, [esp + 0xac]
mov dword fs:[0], eax
call fcn.00402170
mov edi, 8
cmp eax, edi
jge 0x401510
mov al, 1
jmp 0x401756
call fcn.00401000
test eax, eax
je 0x401509
push 1
push 2
push 0xc00
sub esp, 0x1c
mov eax, 0x4856b8
mov ecx, esp
mov dword [esp + 0x3c], esp
call fcn.00401ca0
xor ebp, ebp
mov dword [esp + 0xdc], ebp
or esi, 0xffffffff
mov dword [esp + 0xdc], esi
call fcn.00451db0
add esp, 0x28
cmp eax, 1
je 0x401754
push 1
push 2
push 0xc00
sub esp, 0x1c
mov eax, 0x4856c0
mov ecx, esp
mov dword [esp + 0x3c], esp
call fcn.00401ca0
mov dword [esp + 0xdc], 1
mov dword [esp + 0xdc], esi
call fcn.00451db0
add esp, 0x28
cmp eax, 1
je 0x401754
lea ecx, [esp + 0x18]
call fcn.004031a0
mov dword [esp + 0xb4], 2
cmp dword [eax + 0x18], edi
jb 0x4015b6
mov eax, dword [eax + 4]
jmp 0x4015b9
add eax, 4
lea ecx, [esp + 0x70]
call fcn.00401ca0
mov byte [esp + 0xb4], 4
cmp dword [esp + 0x30], edi
jb 0x4015dd
mov eax, dword [esp + 0x1c]
push eax
call fcn.0045f4bb
add esp, 4
xor ecx, ecx
lea eax, [esp + 0x18]
push eax
mov word [esp + 0x20], cx
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0x74]
mov esi, 7
lea edx, [ecx - 1]
push eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebp
call fcn.00401ce0
mov byte [esp + 0xb4], 5
mov ecx, eax
call fcn.00401f90
mov bl, al
mov byte [esp + 0xb4], 4
cmp dword [esp + 0x30], edi
jb 0x401636
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0045f4bb
add esp, 4
xor edx, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ebp
mov word [esp + 0x1c], dx
test bl, bl
je 0x401659
push 1
push 0x4854d8
lea eax, [esp + 0x78]
call fcn.00401d60
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x88], edi
jae 0x40166a
lea eax, [esp + 0x74]
lea ecx, [esp + 0x8c]
call fcn.00401ca0
mov byte [esp + 0xb4], 6
push 0xf
push str.MonitorHTTP.exe
lea eax, [esp + 0x94]
call fcn.00401d60
push 0x38
lea eax, [esp + 0x3c]
push ebp
push eax
mov dword [esp + 0x40], 0x3c
call fcn.00464610
add esp, 0xc
mov dword [esp + 0x40], str.runas
cmp dword [esp + 0xa4], edi
jb 0x4016c7
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x44], ecx
jmp 0x4016d2
lea edx, [esp + 0x90]
mov dword [esp + 0x44], edx
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x54], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov byte [esp + 0xb4], 4
cmp dword [esp + 0xa4], edi
jb 0x401706
mov ecx, dword [esp + 0x90]
push ecx
call fcn.0045f4bb
add esp, 4
xor edx, edx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], ebp
mov word [esp + 0x90], dx
mov dword [esp + 0xb4], 0xffffffff
cmp dword [esp + 0x88], edi
jb 0x40173f
mov eax, dword [esp + 0x74]
push eax
call fcn.0045f4bb
add esp, 4
xor ecx, ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x84], ebp
mov word [esp + 0x74], cx
xor al, al
mov ecx, dword [esp + 0xac]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.0045f4ac
add esp, 0xa4
ret
Function at 0x4017a0
Capabilities:
Check mutex on windows

Disassembly:
push 0xffffffffffffffff
push 0x481c3b
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49d2b0]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
push 0x4856e4
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x401780
mov dword [0x4a9688], eax
call eax
push 0x4857cc
push 0
push 0
mov dword [0x4a968c], eax
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x4a9834], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401817
xor eax, eax
jmp 0x40191c
call fcn.004014c0
test al, al
je 0x401810
push 0x84
call fcn.0045f543
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], 0
test eax, eax
je 0x401845
push eax
call fcn.00452720
jmp 0x401847
xor eax, eax
mov dword [esp + 0x3c], 0xffffffff
push 0xc00
mov dword [0x4a9824], eax
call fcn.0044dc10
push 0xc0c
call fcn.0044dc10
push 0x53c
call fcn.0044dc10
mov esi, dword [esp + 0x50]
mov edi, dword [sym.imp.USER32.dll_LoadStringW]
add esp, 0xc
push 0x64
push 0x4a9758
push 0x8c
push esi
call edi
push 0x64
push 0x4a9690
push 0x8d
push esi
call edi
mov eax, esi
call fcn.00401940
mov eax, esi
call fcn.004019d0
test eax, eax
je 0x401810
push 0x8d
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
mov esi, eax
push 0
lea eax, [esp + 0x24]
push eax
call edi
test eax, eax
je 0x401918
mov ebx, dword [sym.imp.USER32.dll_TranslateAcceleratorW]
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x18]
push ecx
push esi
push edx
call ebx
test eax, eax
jne 0x401907
lea eax, [esp + 0x18]
push eax
call ebp
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea edx, [esp + 0x24]
push edx
call edi
test eax, eax
jne 0x4018e4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret 0x10

Function at 0x4019d0
Capabilities:
Hide graphical window

Disassembly:
push 0
push eax
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0xcf0000
push 0x4a9758
push 0x4a9690
push 0
mov dword [0x4a9820], eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x4a982c], eax
test eax, eax
jne 0x401a0b
ret
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x4a982c]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, 1
ret
Function at 0x402170
Capabilities:
Check os version

Disassembly:
sub esp, 0x118
mov eax, dword [0x49d2b0]
xor eax, esp
mov dword [esp + 0x114], eax
lea eax, [esp]
push eax
mov dword [esp + 4], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x402311
mov eax, dword [esp + 0x10]
sub eax, 1
mov ecx, dword [esp + 8]
je 0x4021c7
sub eax, 1
jne 0x402311
mov eax, dword [esp + 4]
sub eax, 4
je 0x4021f9
sub eax, 1
je 0x402201
sub eax, 1
je 0x402216
test ecx, ecx
je 0x4022f7
cmp ecx, 0xa
je 0x4022dd
cmp ecx, 0x5a
jne 0x402311
lea eax, [ecx - 0x57]
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
test ecx, ecx
je 0x4022c3
mov eax, ecx
sub eax, 0
je 0x4022a9
sub eax, 1
je 0x40228f
sub eax, 1
je 0x402275
mov eax, ecx
sub eax, 0
je 0x40225b
sub eax, 1
je 0x402241
sub eax, 1
jne 0x4021c7
mov eax, 0xa
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 9
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 8
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 7
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 6
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 5
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 4
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 2
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov eax, 1
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0045f4ac
add esp, 0x118
ret
mov ecx, dword [esp + 0x114]
xor ecx, esp
xor eax, eax
call fcn.0045f4ac
add esp, 0x118
ret