joyce8/EMBER2024-capa huggingface dataset:
Function at 0x422e10
Capabilities:
Enumerate pe sections

Disassembly:
push esi
mov esi, eax
test dword [esi], 0x80000000
push edi
mov edi, ecx
je 0x422e67
mov eax, 0x8b1f
call fcn.004237e0
mov eax, 0x808
call fcn.004237e0
mov eax, dword [edi + 4]
call fcn.004237e0
movzx eax, word [edi + 6]
call fcn.004237e0
mov eax, 0xb02
call fcn.004237e0
mov eax, dword [edi + 0x20]
inc eax
je 0x422f92
push eax
add edi, 0x48
push edi
call fcn.004238a0
add esp, 8
pop edi
pop esi
ret
mov eax, 0x4034b50
call fcn.004237e0
mov eax, 0x403
call fcn.004237e0
mov eax, 0x2d
call fcn.004237e0
movzx eax, word [edi + 0x30]
call fcn.004237e0
movzx eax, word [edi + 2]
call fcn.004237e0
mov eax, dword [edi + 4]
call fcn.004237e0
movzx eax, word [edi + 6]
call fcn.004237e0
mov eax, dword [edi + 8]
call fcn.004237e0
movzx eax, word [edi + 0xa]
call fcn.004237e0
or eax, 0xffffffff
call fcn.004237e0
or eax, 0xffffffff
call fcn.004237e0
or eax, 0xffffffff
call fcn.004237e0
or eax, 0xffffffff
call fcn.004237e0
mov eax, dword [edi + 0x20]
call fcn.004237e0
mov eax, dword [edi + 0x24]
add eax, 0x14
call fcn.004237e0
mov eax, dword [edi + 0x20]
test eax, eax
je 0x422f00
push eax
lea eax, [edi + 0x48]
push eax
call fcn.004238a0
add esp, 8
mov eax, 1
call fcn.004237e0
mov eax, 0x10
call fcn.004237e0
mov eax, dword [edi + 0x18]
call fcn.004237e0
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
shrd eax, ecx, 0x10
shr ecx, 0x10
call fcn.004237e0
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
mov cl, 0x20
call fcn.004b9e90
call fcn.004237e0
movzx eax, word [edi + 0x1e]
call fcn.004237e0
mov eax, dword [edi + 0x10]
call fcn.004237e0
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
shrd eax, edx, 0x10
shr edx, 0x10
call fcn.004237e0
mov eax, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov cl, 0x20
call fcn.004b9e90
call fcn.004237e0
movzx eax, word [edi + 0x16]
call fcn.004237e0
mov eax, dword [edi + 0x24]
test eax, eax
je 0x422f92
push eax
mov eax, dword [edi + 0x40]
push eax
call fcn.004238a0
add esp, 8
pop edi
pop esi
ret
Function at 0x423620
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
test ecx, ecx
jne 0x423627
xor eax, eax
ret
push esi
not eax
cmp edx, 8
jb 0x4236fd
mov esi, edx
shr esi, 3
push edi
lea esp, [esp]
movzx edi, byte [ecx]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
movzx edi, byte [ecx + 1]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
movzx edi, byte [ecx + 2]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
movzx edi, byte [ecx + 3]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
movzx edi, byte [ecx + 4]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
movzx edi, byte [ecx + 5]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
movzx edi, byte [ecx + 6]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
movzx edi, byte [ecx + 7]
xor edi, eax
and edi, 0xff
shr eax, 8
xor eax, dword [edi*4 + 0x4d0b98]
add ecx, 8
sub edx, 8
dec esi
jne 0x423640
pop edi
test edx, edx
je 0x42371a
movzx esi, byte [ecx]
xor esi, eax
and esi, 0xff
shr eax, 8
xor eax, dword [esi*4 + 0x4d0b98]
inc ecx
dec edx
jne 0x423701
not eax
pop esi
ret

Function at 0x423720
Capabilities:
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
mov eax, dword [edx]
movsx ecx, cl
xor ecx, eax
shr eax, 8
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x4d0b98]
xor ecx, eax
movzx eax, cl
add eax, dword [edx + 4]
mov dword [edx], ecx
mov ecx, dword [edx + 8]
imul eax, eax, 0x8088405
inc eax
mov dword [edx + 4], eax
shr eax, 0x18
xor eax, ecx
and eax, 0xff
shr ecx, 8
xor ecx, dword [eax*4 + 0x4d0b98]
mov dword [edx + 8], ecx
ret

Function at 0x423770
Capabilities:
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push esi
push edi
mov edi, dword [edx]
mov eax, dword [edx + 8]
movsx ebx, bl
mov ecx, edi
xor ecx, ebx
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x4d0b98]
shr edi, 8
xor ecx, edi
mov dword [edx], ecx
movzx ecx, cl
add ecx, dword [edx + 4]
mov esi, eax
imul ecx, ecx, 0x8088405
inc ecx
mov dword [edx + 4], ecx
shr ecx, 0x18
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x4d0b98]
and esi, 0xfffd
mov dword [edx + 8], eax
or esi, 2
mov eax, esi
xor eax, 1
imul eax, esi
shr eax, 8
pop edi
xor eax, ebx
pop esi
ret
Function at 0x4237e0
Capabilities:
Write file on windows

Disassembly:
sub esp, 8
cmp dword [esi + 0x20], 0
push ebx
mov ebx, eax
jne 0x42389a
shr eax, 8
test byte [esi], 0x10
mov byte [esp + 4], bl
mov byte [esp + 5], al
je 0x423819
lea edx, [esi + 0x34]
call fcn.00423770
mov bl, byte [esp + 5]
mov byte [esp + 4], al
call fcn.00423770
mov byte [esp + 5], al
test byte [esi], 1
push edi
je 0x423860
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x30]
add ecx, 2
adc eax, 0
xor edx, edx
cmp eax, edx
jb 0x423847
ja 0x42383a
cmp ecx, edi
jb 0x423847
pop edi
mov dword [esi + 0x20], 0xb
pop ebx
add esp, 8
ret
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 4]
mov ax, word [esp + 8]
mov word [ecx + edx], ax
add dword [esi + 0x28], 2
adc dword [esi + 0x2c], 0
jmp 0x42388a
mov eax, dword [esi + 4]
push 0
lea ecx, [esp + 0x10]
push ecx
push 2
lea edx, [esp + 0x14]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x423883
cmp dword [esp + 0xc], 2
je 0x42388a
mov dword [esi + 0x20], 3
test dword [esi], 0x40000000
je 0x423899
mov dword [esi + 0x20], 0x14
pop edi
pop ebx
add esp, 8
ret

Function at 0x4238a0
Capabilities:
Write file on windows

Disassembly:
push ecx
push ebp
mov ebp, dword [esp + 0x10]
push edi
xor edi, edi
cmp dword [esi + 0x20], edi
jne 0x4239ab
test byte [esi], 0x10
push ebx
je 0x42392d
mov eax, dword [esi + 0x40]
cmp eax, edi
je 0x4238ce
cmp dword [esi + 0x44], ebp
jae 0x4238ce
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esi + 0x40], edi
cmp dword [esi + 0x40], edi
jne 0x4238f5
lea eax, [ebp + ebp]
push eax
push edi
mov dword [esi + 0x44], eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esi + 0x40], eax
cmp eax, edi
jne 0x4238f5
mov dword [esi + 0x20], 2
jmp 0x42399b
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x40]
push ebp
push eax
push ecx
call sub.MSVCR100.dll_memcpy
add esp, 0xc
cmp ebp, edi
jbe 0x423926
lea edx, [esi + 0x34]
mov edi, edi
mov eax, dword [esi + 0x40]
mov bl, byte [eax + edi]
call fcn.00423770
mov ecx, dword [esi + 0x40]
mov byte [edi + ecx], al
inc edi
cmp edi, ebp
jb 0x423910
mov edx, dword [esi + 0x40]
mov dword [esp + 0x14], edx
test byte [esi], 1
je 0x423973
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
mov ebx, dword [esi + 0x30]
xor edi, edi
add ecx, ebp
adc eax, edi
xor edx, edx
cmp eax, edx
jb 0x423956
ja 0x42394d
cmp ecx, ebx
jb 0x423956
mov dword [esi + 0x20], 0xb
jmp 0x42399b
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x14]
add ecx, dword [esi + 0x28]
push ebp
push eax
push ecx
call sub.MSVCR100.dll_memcpy
add esp, 0xc
add dword [esi + 0x28], ebp
adc dword [esi + 0x2c], edi
jmp 0x42399b
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
push 0
lea edx, [esp + 0x10]
push edx
push ebp
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x423994
cmp dword [esp + 0xc], ebp
je 0x42399b
mov dword [esi + 0x20], 3
test dword [esi], 0x40000000
pop ebx
je 0x4239ab
mov dword [esi + 0x20], 0x14
pop edi
pop ebp
pop ecx
ret
Function at 0x423ae0
Capabilities:
Read file on windows

Disassembly:
push ecx
mov eax, dword [esi]
push edi
test eax, 0x40000000
je 0x423af7
mov dword [esi + 0x20], 0x14
xor eax, eax
pop edi
pop ecx
ret
test al, al
jns 0x423b2a
mov eax, dword [esi + 0x6c]
mov edi, dword [esi + 0x68]
cmp eax, edi
jae 0x423b48
sub edi, eax
mov dword [esp + 4], edi
cmp edi, ecx
jbe 0x423b15
mov edi, ecx
mov dword [esp + 4], edi
mov ecx, dword [esi + 0x64]
push edi
add ecx, eax
push ecx
push ebx
call sub.MSVCR100.dll_memcpy
add esp, 0xc
add dword [esi + 0x6c], edi
jmp 0x423b51
mov eax, dword [esi + 0x64]
push 0
lea edx, [esp + 8]
push edx
push ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x423b4d
mov dword [esi + 0x20], 7
xor eax, eax
pop edi
pop ecx
ret
mov edi, dword [esp + 4]
add dword [esi + 0x58], edi
mov eax, dword [esi + 0x60]
mov edx, edi
adc dword [esi + 0x5c], 0
mov ecx, ebx
call fcn.00423620
mov dword [esi + 0x60], eax
mov eax, edi
pop edi
pop ecx
ret

Function at 0x424da0
Capabilities:
Allocate or change rwx memory
Enumerate pe sections
Execute shellcode via indirect call

Disassembly:
push ecx
mov eax, dword [esp + 0x14]
push ebx
mov ebx, dword [eax + 4]
mov eax, dword [eax]
movzx ecx, word [eax + 0x14]
push ebp
xor edx, edx
push esi
push edi
lea ecx, [ecx + eax + 0x18]
mov dword [esp + 0x10], 0
cmp dx, word [eax + 6]
jae 0x424e72
mov ebp, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
lea esi, [ecx + 0x10]
mov eax, dword [esi]
test eax, eax
jne 0x424e13
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0x38]
test edi, edi
jle 0x424e54
mov ecx, dword [esi - 4]
push 0x40
push 0x1000
push edi
add ecx, ebx
push ecx
call ebp
test eax, eax
je 0x424e85
mov eax, dword [esi - 4]
add eax, ebx
mov dword [esi - 8], eax
test edi, edi
je 0x424e54
push edi
push 0
push eax
call sub.MSVCR100.dll_memset
jmp 0x424e51
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x424e24
mov edx, dword [esi + 4]
add edx, eax
cmp ecx, edx
jb 0x424e7d
push 0x40
push 0x1000
push eax
mov eax, dword [esi - 4]
add eax, ebx
push eax
call ebp
test eax, eax
je 0x424e85
mov edx, dword [esi + 4]
mov ecx, dword [esi]
add edx, dword [esp + 0x18]
mov edi, dword [esi - 4]
push ecx
add edi, ebx
push edx
push edi
call sub.MSVCR100.dll_memcpy
mov dword [esi - 8], edi
add esp, 0xc
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [esp + 0x10]
movzx ecx, word [edx + 6]
inc eax
add esi, 0x28
mov dword [esp + 0x10], eax
cmp eax, ecx
jl 0x424dd3
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
Function at 0x424f30
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
movzx ecx, word [eax + 0x14]
mov edx, dword [edi + 0x30]
mov esi, dword [ecx + eax + 0x20]
dec edx
lea ecx, [ecx + eax + 0x18]
not edx
and edx, esi
mov dword [esp + 0x14], esi
mov esi, dword [ecx + 0x10]
mov dword [esp + 0x18], edx
test esi, esi
jne 0x424f74
mov ebx, dword [ecx + 0x24]
test bl, 0x40
je 0x424f6d
mov esi, dword [eax + 0x20]
jmp 0x424f74
test bl, bl
jns 0x424f74
mov esi, dword [eax + 0x24]
mov dword [esp + 0x1c], esi
mov esi, dword [ecx + 0x24]
mov dword [esp + 0x20], esi
mov esi, 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], 1
cmp si, word [eax + 6]
jae 0x42504f
lea ebx, [ecx + 0x4c]
mov esi, dword [edi + 0x30]
mov ebp, dword [ebx - 0x1c]
mov edi, dword [ebx - 0x14]
dec esi
not esi
and esi, ebp
test edi, edi
jne 0x424fc6
mov ecx, dword [ebx]
test cl, 0x40
je 0x424fbf
mov edi, dword [eax + 0x20]
jmp 0x424fc6
test cl, cl
jns 0x424fc6
mov edi, dword [eax + 0x24]
cmp edx, esi
je 0x424ffd
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x14]
cmp eax, esi
ja 0x424ffd
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x14]
call fcn.00424e90
test eax, eax
je 0x425070
mov eax, dword [ebx]
mov edx, esi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], eax
jmp 0x425029
mov eax, dword [ebx]
test eax, 0x2000000
je 0x425016
test dword [esp + 0x20], 0x2000000
je 0x425016
or dword [esp + 0x20], eax
jmp 0x425023
or eax, dword [esp + 0x20]
and eax, 0xfdffffff
mov dword [esp + 0x20], eax
sub edi, dword [esp + 0x14]
add edi, ebp
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
movzx esi, word [eax + 6]
inc ecx
add ebx, 0x28
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
cmp ecx, esi
jl 0x424fa1
lea ecx, [esp + 0x14]
mov edx, edi
mov dword [esp + 0x24], 1
call fcn.00424e90
pop edi
neg eax
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x18
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18
ret
Function at 0x425970
Capabilities:
Accept command line arguments
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, eax
test edi, edi
je 0x425ab3
cmp dword [edi + 0x14], 0
jne 0x425ab3
cmp dword [edi + 0x2c], 0
je 0x425ab3
cmp dword [edi + 0x18], 0
je 0x425ab3
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ebx, eax
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4259b0
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 0xa]
cmp eax, 0x400
mov eax, ebx
lea edx, [eax + 2]
ja 0x4259f6
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4259d0
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 0xa]
call fcn.004b9db0
mov eax, esp
test eax, eax
je 0x425a20
mov dword [eax], 0xcccc
jmp 0x425a1d
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4259f6
sub eax, edx
sar eax, 1
lea ecx, [eax + eax + 0xa]
push ecx
call dword [sym.imp.MSVCR100.dll_malloc]
add esp, 4
test eax, eax
je 0x425a20
mov dword [eax], 0xdddd
add eax, 8
mov esi, eax
mov edx, esi
mov eax, ebx
sub edx, ebx
jmp 0x425a30
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x425a30
mov eax, dword [ebp + 8]
mov edx, ebx
sub edx, eax
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x425a46
mov edx, dword [edi + 0x2c]
push 0
push 0
push 0
push edx
push 0
push 0
call dword [sym.imp.MSVCR100.dll__beginthreadex]
add esp, 0x18
mov edi, eax
push 0x64
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, ebx
mov eax, esi
sub edx, esi
lea ecx, [ecx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x425a80
test esi, esi
je 0x425aa9
cmp dword [esi - 8], 0xdddd
lea eax, [esi - 8]
jne 0x425aa9
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov eax, edi
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret
xor eax, eax
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x425de0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov eax, dword [0x4e6dd4]
push esi
xor esi, esi
cmp eax, esi
je 0x425dfb
lea esp, [esp]
cmp dword [eax + 4], esi
jne 0x425e43
mov eax, dword [eax]
cmp eax, esi
jne 0x425df0
push 0x40
push 0x3000
push 0x1000
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
cmp eax, esi
je 0x425e43
lea ecx, [eax + 0x20]
mov edx, ecx
mov dword [eax + 4], esi
mov dword [eax + 8], esi
sub edx, eax
nop
mov esi, dword [eax + 4]
mov dword [ecx], esi
mov dword [eax + 4], ecx
add edx, 0x20
add ecx, 0x20
cmp edx, 0xfe0
jbe 0x425e20
mov ecx, dword [0x4e6dd4]
mov dword [eax], ecx
mov dword [0x4e6dd4], eax
pop esi
ret
Function at 0x425eb0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
sub esp, 0x28
push ebx
push ebp
mov ebp, dword [0x4eaeb8]
push esi
push edi
mov ebx, 5
call fcn.00425de0
test eax, eax
je 0x425efc
mov esi, dword [eax + 4]
mov ecx, dword [esi]
inc dword [eax + 8]
lea edx, [esp + 0x14]
push edx
mov dword [eax + 4], ecx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], 0x424d50
mov dword [esp + 0x20], esi
call fcn.004260b0
add esp, 4
test eax, eax
jne 0x425f06
call fcn.00425e50
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
test eax, eax
je 0x425efc
push 0x2c
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, eax
test edi, edi
je 0x425ef7
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov al, byte [edi + 0x14]
mov dl, cl
and dl, 1
and al, 0xf8
or al, dl
mov edx, dword [edi + 0x18]
xor edx, dword [esp + 0x24]
mov dword [edi], esi
and edx, 0xf
xor dword [edi + 0x18], edx
mov edx, dword [esp + 0x28]
mov dword [edi + 0x1c], edx
mov edx, dword [esp + 0x2c]
mov dword [edi + 0x20], edx
mov edx, dword [esp + 0x30]
mov dword [edi + 0x24], edx
mov edx, dword [esp + 0x34]
mov byte [edi + 0x14], al
mov dword [edi + 0x28], edx
test ecx, ecx
je 0x425f97
mov edx, dword [ebp - 5]
mov dword [edi + 0xc], edx
mov dx, word [ebp - 1]
mov word [edi + 0x10], dx
mov cl, byte [ebp + 1]
mov byte [edi + 0x12], cl
jmp 0x425fa3
mov edx, dword [ebp]
mov dword [edi + 0xc], edx
mov cl, byte [ebp + 4]
mov byte [edi + 0x10], cl
test al, 1
je 0x425faf
add esi, 0xfffffffb
mov ebx, 7
mov ebp, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea edx, [esp + 0x10]
push edx
push 0x40
push ebx
push esi
call ebp
test eax, eax
je 0x425efc
mov byte [esi], 0xe9
mov eax, dword [edi + 4]
sub eax, esi
sub eax, 5
mov dword [esi + 1], eax
test byte [edi + 0x14], 1
je 0x425fe3
mov eax, dword [edi]
mov word [eax], 0xf9eb
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
push ecx
push edx
push ebx
push esi
call ebp
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
Function at 0x426010
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ecx
test byte [edi + 0x14], 1
push ebx
push ebp
push esi
mov esi, dword [edi]
mov ebp, 5
je 0x426028
sub esi, ebp
mov ebp, 7
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [esp + 0xc]
push eax
push 0x40
push ebp
push esi
call ebx
test eax, eax
jne 0x426042
pop esi
pop ebp
pop ebx
pop ecx
ret
mov ecx, dword [edi + 0xc]
test byte [edi + 0x14], 1
mov dword [esi], ecx
je 0x42605d
mov dx, word [edi + 0x10]
mov word [esi + 4], dx
mov al, byte [edi + 0x12]
mov byte [esi + 6], al
jmp 0x426063
mov dl, byte [edi + 0x10]
mov byte [esi + 4], dl
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xc]
push eax
push ecx
push ebp
push esi
call ebx
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret
Function at 0x4263b0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov dword [0x4e6de0], eax
mov edx, 1
mov eax, 0x4e6de0
push edi
mov ecx, dword [eax]
mov edi, ecx
shr edi, 0x1e
xor edi, ecx
imul edi, edi, 0x6c078965
add edi, edx
mov dword [eax + 4], edi
add eax, 4
inc edx
cmp eax, 0x4e779c
jl 0x4263c0
mov dword [0x4e44d4], 1
mov dword [0x4e89f0], 1
pop edi
ret

Function at 0x426400
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
cmp dword [0x4e89f0], 0
push esi
mov esi, 0x4e6de0
jne 0x42641a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
call fcn.004263b0
mov dword [0x4e44d4], 0x270
mov dword [0x4e6dd8], esi
mov ecx, 0xe3
nop
mov eax, dword [esi + 4]
mov edx, dword [esi]
xor edx, eax
and edx, 0x7ffffffe
xor edx, dword [esi]
and al, 1
movzx eax, al
shr edx, 1
neg eax
sbb eax, eax
and eax, 0x9908b0df
xor edx, eax
xor edx, dword [esi + 0x634]
add esi, 4
dec ecx
mov dword [esi - 4], edx
jne 0x426430
mov ecx, 0x18c
mov eax, dword [esi + 4]
mov edx, dword [esi]
xor edx, eax
and edx, 0x7ffffffe
xor edx, dword [esi]
and al, 1
movzx eax, al
shr edx, 1
neg eax
sbb eax, eax
and eax, 0x9908b0df
xor edx, eax
xor edx, dword [esi - 0x38c]
add esi, 4
dec ecx
mov dword [esi - 4], edx
jne 0x426465
mov ecx, dword [esi]
mov eax, dword [0x4e6de0]
xor ecx, eax
and ecx, 0x7ffffffe
xor ecx, dword [esi]
and al, 1
movzx edx, al
shr ecx, 1
neg edx
sbb edx, edx
and edx, 0x9908b0df
xor ecx, edx
xor ecx, dword [esi - 0x38c]
mov dword [esi], ecx
pop esi
ret

Function at 0x4264d0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
dec dword [0x4e44d4]
jne 0x4264dd
call fcn.00426400
mov eax, dword [0x4e6dd8]
mov ecx, dword [eax]
add eax, 4
mov dword [0x4e6dd8], eax
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov edx, ecx
and edx, 0xff3a58ad
shl edx, 7
xor ecx, edx
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
ret

Function at 0x426520
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push ecx
dec dword [0x4e44d4]
jne 0x42652e
call fcn.00426400
mov ecx, dword [0x4e6dd8]
mov eax, dword [ecx]
add ecx, 4
mov dword [0x4e6dd8], ecx
mov ecx, eax
shr ecx, 0xb
xor eax, ecx
mov edx, eax
and edx, 0xff3a58ad
shl edx, 7
xor eax, edx
mov ecx, eax
and ecx, 0xffffdf8c
shl ecx, 0xf
xor eax, ecx
mov edx, eax
shr edx, 0x12
xor edx, eax
mov dword [esp], edx
fild dword [esp]
jns 0x426575
fadd qword [0x4de7d8]
fmul qword [0x4de830]
pop ecx
ret
Function at 0x42ac70
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov eax, dword [0x4e4a38]
mov ecx, dword [0x4e6998]
add eax, 4
push ebx
imul eax, eax, 0x108
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
push eax
push ecx
call dword [sym.imp.MSVCR100.dll_realloc]
add esp, 8
mov dword [0x4e6998], eax
test eax, eax
jne 0x42aca7
pop edi
pop esi
pop ebp
pop ebx
ret 4
mov esi, dword [0x4e4b24]
mov edx, dword [0x4e7ef0]
push 0x403c90
push 0x4ef6d80
mov edi, eax
mov ecx, 0x42
push 0xe
rep movsd dword es:[edi], dword [esi]
mov edi, dword [sym.imp.USER32.dll_SetTimer]
push edx
mov dword [0x4e4b24], eax
call edi
cmp dword [ebp + 0x60c], 0
jne 0x42ace9
mov ebx, 1
jmp 0x42adab
mov eax, dword [0x4e4b24]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [eax + 0xec], 0
call esi
cmp byte [0x4e804c], 0
mov ecx, dword [0x4e4b24]
mov dword [ecx + 0xdc], eax
mov dword [ecx + 0xe0], 0x64
jne 0x42ad39
mov ecx, dword [0x4e7ef0]
push 0x403b90
push 0x64
push 0xb
push ecx
call edi
test eax, eax
setne dl
mov byte [0x4e804c], dl
mov byte [ebp + 0xaf5], 1
call esi
mov esi, 1
add dword [0x4e8060], esi
push str.Auto_execute
mov dword [ebp + 0xb14], eax
mov dword [ebp + 0xb10], eax
call fcn.0040b7b0
mov ecx, dword [ebp + 0x60c]
push 0
push 0
push esi
call fcn.00440a30
sub dword [0x4e9884], 0xc
sub dword [0x4e8060], esi
cmp byte [0x4e804c], 0
mov ebx, eax
je 0x42ada4
mov eax, dword [0x4e7ef0]
push 0xb
push eax
call dword [sym.imp.USER32.dll_KillTimer]
test eax, eax
je 0x42ada4
mov byte [0x4e804c], 0
mov byte [ebp + 0xaf5], 0
mov ebp, dword [0x4e4b24]
cmp dword [ebp + 0x104], 0
je 0x42ae07
mov eax, dword [ebp + 0x104]
cmp dword [eax + 8], 6
jne 0x42add0
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp + 0x104]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x42ade7
push eax
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
mov ecx, dword [ebp + 0x104]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
mov dword [ebp + 0x104], 0
mov ebp, dword [0x4e4b24]
add esp, 4
mov eax, ebp
call fcn.00403d10
mov edx, dword [0x4e86f0]
push 1
push 0
push 0xffffffffffffffff
mov byte [ebp + 0xec], 1
push 0x4bbb9c
mov ecx, 0x42
mov esi, ebp
mov edi, 0x4e6aa8
rep movsd dword es:[edi], dword [esi]
push edx
mov byte [ebp + 0xec], 1
mov dword [ebp + 0xe0], 0
mov word [ebp + 0xed], 1
mov dword [ebp + 0x2c], connect
call fcn.004a2810
mov eax, dword [0x4e5d74]
cmp word [eax], 0
jne 0x42aea1
cmp dword [0x4e8990], 0
jne 0x42aea1
cmp dword [0x4e8020], 0
jne 0x42aea1
cmp dword [0x4e8024], 0
jne 0x42aea1
cmp byte [0x4e8048], 0
jne 0x42aea1
neg ebx
sbb ebx, ebx
and ebx, 7
push 0
add ebx, 2
push ebx
mov ecx, 0x4ea1d0
call fcn.0042b150
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 4