joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4a9220
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebx
push esi
push edi
mov ebx, edx
mov edi, eax
mov ecx, dword [edi + 0x170]
mov edx, ebx
mov eax, edi
call fcn.004a9454
mov esi, eax
mov dword [edi + 0x170], esi
and esi, 0xff
add dword [edi + 0x174], esi
imul esi, dword [edi + 0x174], 0x8088405
inc esi
mov dword [edi + 0x174], esi
mov edx, esi
shr edx, 0x18
mov ecx, dword [edi + 0x178]
mov eax, edi
call fcn.004a9454
mov dword [edi + 0x178], eax
pop edi
pop esi
pop ebx
ret

Function at 0x4a9294
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov ebx, edx
mov edi, eax
mov esi, ecx
dec esi
test esi, esi
jl 0x4a92b9
inc esi
mov eax, edi
call fcn.004a9278
xor byte [ebx], al
mov dl, byte [ebx]
mov eax, edi
call fcn.004a9220
inc ebx
dec esi
jne 0x4a92a3
pop edi
pop esi
pop ebx
ret

Function at 0x4a9348
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov esi, ecx
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], edx
mov edi, eax
mov eax, dword [ebp - 4]
call fcn.00405188
xor eax, eax
push ebp
push 0x4a93bd
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.004a92c0
mov dword [ebp - 8], 0xc
lea esi, [ebp - 0x14]
mov eax, edi
call fcn.004a9278
mov ebx, eax
xor bl, byte [esi]
mov edx, ebx
mov eax, edi
call fcn.004a9220
mov byte [esi], bl
inc esi
dec dword [ebp - 8]
jne 0x4a9388
mov bl, byte [ebp - 9]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a93c4
lea eax, [ebp - 4]
call fcn.00404cd8
ret
Function at 0x4a9f80
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 8], ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4aa164
push dword fs:[eax]
mov dword fs:[eax], esp
cmp ebx, 0xffffffff
jle 0x4aa120
mov eax, dword [ebp - 4]
call fcn.004ab908
cmp ebx, eax
jge 0x4aa120
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
mov edx, ebx
call fcn.004a0654
mov edx, dword [0x4a1a30]
call fcn.00404084
mov esi, eax
mov eax, esi
call fcn.004a2910
test al, al
je 0x4aa116
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov edi, dword [esi + 0x44]
test edi, edi
jne 0x4aa10a
xor eax, eax
push ebp
push 0x4aa103
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.004aa538
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x130]
call fcn.0041bae0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
push dword [esi + 0x34]
push dword [esi + 0x30]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x130]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x46]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x130]
mov ecx, 0x2e
mov esi, dword [eax]
call dword [esi + 0xc]
movzx eax, word [ebp - 0x2a]
movzx edx, word [ebp - 0x28]
add eax, edx
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x130]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x18]
movzx esi, word [ebp - 0x26]
mov eax, dword [ebp - 8]
mov edx, esi
call fcn.00405324
mov eax, dword [ebp - 8]
call fcn.004051f0
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x130]
mov ecx, esi
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x158]
mov al, byte [eax + 0x28]
mov byte [ebp - 9], al
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004aa2fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x158]
mov dl, byte [ebp - 9]
mov byte [eax + 0x28], dl
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4aa14e
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x130]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
jne 0x4aa102
mov eax, dword [ebp - 4]
call fcn.004aa5bc
ret
mov edx, dword [ebp - 8]
mov eax, edi
call fcn.0040a588
jmp 0x4aa14e
mov eax, dword [ebp - 8]
call fcn.00404cd8
jmp 0x4aa14e
mov dword [ebp - 0x50], ebx
mov byte [ebp - 0x4c], 0
lea eax, [ebp - 0x50]
push eax
push 0
lea edx, [ebp - 0x54]
mov eax, 0xb3
call fcn.00409ad8
mov ecx, dword [ebp - 0x54]
mov dl, 1
mov eax, dword [0x416a7c]
call fcn.0040d4b4
call fcn.00404668
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4aa16b
lea eax, [ebp - 0x54]
call fcn.00404cd8
ret
Function at 0x4059a6
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
mov edi, dword [esp + 0x10]
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
test edi, edi
pop ecx
mov esi, eax
jbe 0x4059d1
mov eax, dword [esp + 0xc]
push ebx
mov ecx, esi
sub eax, esi
mov edx, edi
mov bl, byte [eax + ecx]
xor bl, 0x42
mov byte [ecx], bl
inc ecx
dec edx
jne 0x4059c4
pop ebx
push 0x408230
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push edi
push esi
call fcn.00404b97
push esi
mov edi, eax
call fcn.00405a0a
add esp, 0x18
mov eax, edi
pop edi
pop esi
ret 0x10

Function at 0x419d30
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, 0x410015
lea edi, [esi - 0xf015]
push edi
or ebp, 0xffffffff
jmp 0x419d52
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x419d59
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x419d48
mov eax, 1
add ebx, ebx
jne 0x419d6b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x419d60
jne 0x419d7c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x419d60
xor ecx, ecx
sub eax, 3
jb 0x419d90
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x419e02
mov ebp, eax
add ebx, ebx
jne 0x419d9b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x419da8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x419dcc
inc ecx
add ebx, ebx
jne 0x419db8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x419dad
jne 0x419dc9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x419dad
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x419dec
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x419ddd
jmp 0x419d4e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x419dec
add edi, ecx
jmp 0x419d4e
pop esi
mov edi, esi
mov ecx, 0x2b3
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x419e0a
cmp byte [edi], 5
jne 0x419e0a
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 0x419e0f
lea edi, [esi + 0x17000]
mov eax, dword [edi]
or eax, eax
je 0x419e87
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x19000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x1908c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x419e3c
mov ecx, edi
jns 0x419e6b
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 + 0x19090]
or eax, eax
je 0x419e81
mov dword [ebx], eax
add ebx, 4
jmp 0x419e59
call dword [esi + 0x190a0]
mov ebp, dword [esi + 0x19094]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x19f]
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 0x419ebb
sub esp, 0xffffff80
jmp 0x404c20
Function at 0x4153e0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x19cc74ca
mov byte [esi + eax - 0x6e], dh
cmc
retf 0x1a33
fidivr word [edx - 0x2c71a5e9]
mov edx, 0xd38e5a17
xchg ebx, eax
fisttp qword [ebx - 0x66b365ce]
jo 0x4153e1
mov esi, dword [edx]
lcall 0x7df6, 0xf270994c
fld xword [eax - 0x5d338ae0]
je 0x415408
idiv byte [ebp - 0x25]
test al, 0x20
jne 0x4153c2
mov byte [0xc8e0f74], al
arpl word [edx], si
mov cs, word [ebx]
xor dh, byte [ebx]
ret 0x8bdf
xor eax, edx
fisttp word [ebx - reloc.advapi32.dll_IsValidSecurityDescriptor]
xor ecx, dword [edx - 0x24]
sti
jb 0x4153fd
je 0x4153e8
int3
Function at 0x4013ca
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [0x406054], 1
mov dword [0x406058], 1
mov dword [0x40605c], 1
mov dword [0x406048], 1
mov dword [ebp - 4], 0x400000
mov eax, dword [ebp - 4]
movzx eax, word [eax]
cmp ax, 0x5a4d
je 0x401415
mov eax, 0
jmp 0x4014af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp eax, 0x4550
je 0x401438
mov eax, 0
jmp 0x4014af
mov eax, dword [ebp - 8]
add eax, 0x18
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
movzx eax, ax
cmp eax, 0x10b
je 0x40145a
cmp eax, 0x20b
je 0x40147f
jmp 0x4014aa
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x5c]
cmp eax, 0xe
ja 0x40146c
mov eax, 0
jmp 0x4014af
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x4014af
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x6c]
cmp eax, 0xe
ja 0x401497
mov eax, 0
jmp 0x4014af
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x4014af
mov eax, 0
leave
ret

Function at 0x401a18
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x24
lea eax, [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov dword [esp], 2
call fcn.00402a48
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.Mingw_w64_runtime_failure:_n
call sub.msvcrt.dll_fwrite
mov ebx, dword [ebp - 0xc]
mov dword [esp], 2
call fcn.00402a48
mov dword [esp + 8], ebx
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort

Function at 0x402568
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movzx eax, word [eax]
cmp ax, 0x5a4d
je 0x402587
mov eax, 0
jmp 0x4025cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp - 4]
add eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp eax, 0x4550
je 0x4025aa
mov eax, 0
jmp 0x4025cb
mov eax, dword [ebp - 8]
add eax, 0x18
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
cmp ax, 0x10b
je 0x4025c6
mov eax, 0
jmp 0x4025cb
mov eax, 1
leave
ret
Function at 0x4025cd
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp + 8]
add eax, edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x14]
movzx edx, ax
mov eax, dword [ebp - 0xc]
add eax, edx
add eax, 0x18
mov dword [ebp - 4], eax
jmp 0x40262c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cmp dword [ebp + 0xc], eax
jb 0x402624
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
add eax, edx
cmp dword [ebp + 0xc], eax
jae 0x402624
mov eax, dword [ebp - 4]
jmp 0x402640
add dword [ebp - 8], 1
add dword [ebp - 4], 0x28
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 6]
movzx eax, ax
cmp dword [ebp - 8], eax
jb 0x402601
mov eax, 0
leave
ret

Function at 0x402a88
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push edi
push esi
sub esp, 0x34
mov eax, dword [0x406040]
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp], 0x4040a4
mov esi, dword [esp + 0x40]
call sub.KERNEL32.dll_GetModuleHandleW
push edx
mov dword [esp + 4], str.NtAllocateVirtualMemory
mov dword [esp], eax
call sub.KERNEL32.dll_GetProcAddress
push ecx
push ecx
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x28]
mov dword [esp + 0x24], 0
mov dword [esp + 0xc], edx
lea edx, [esp + 0x24]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], 0x40
mov dword [esp + 0x10], 0x3000
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov dword [esp], 0xffffffff
call eax
sub esp, 0x18
test eax, eax
jne 0x402b11
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
rep movsb byte es:[edi], byte [esi]
call dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
sub eax, dword [0x406040]
je 0x402b22
call fcn.00401760
add esp, 0x34
pop esi
pop edi
ret
Function at 0x402b3c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push edi
mov ecx, 8
push esi
mov esi, 0x404044
push ebx
sub esp, 0x250
mov eax, dword [0x406040]
mov dword [esp + 0x24c], eax
xor eax, eax
lea edi, [esp + 0x2c]
mov ebx, dword [esp + 0x260]
rep movsd dword es:[edi], dword [esi]
mov edx, eax
mov byte [esp + eax + 0x14c], al
and edx, 0x1f
mov dl, byte [esp + edx + 0x2c]
mov byte [esp + eax + 0x4c], dl
inc eax
cmp eax, 0x100
jne 0x402b6a
xor esi, esi
xor edi, edi
movzx eax, byte [esp + esi + 0x14c]
add eax, edi
add al, byte [esp + esi + 0x4c]
movzx edi, al
lea eax, [esp + 0x14c]
add eax, esi
inc esi
mov dword [esp + 4], eax
lea eax, [esp + 0x14c]
add eax, edi
mov dword [esp], eax
call fcn.00402b28
cmp esi, 0x100
jne 0x402b8a
mov edi, dword [esp + 0x264]
xor esi, esi
xor eax, eax
add edi, ebx
cmp edi, ebx
je 0x402c21
lea edx, [esi + 1]
lea ecx, [esp + 0x14c]
movzx esi, dl
add al, byte [esp + esi + 0x14c]
movzx eax, al
lea edx, [ecx + eax]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], edx
lea edx, [ecx + esi]
mov dword [esp], edx
call fcn.00402b28
mov eax, dword [esp + 0x1c]
mov dl, byte [esp + eax + 0x14c]
add dl, byte [esp + esi + 0x14c]
movzx edx, dl
mov dl, byte [esp + edx + 0x14c]
xor byte [ebx], dl
inc ebx
jmp 0x402bcf
mov eax, dword [esp + 0x24c]
sub eax, dword [0x406040]
je 0x402c35
call fcn.00401760
mov eax, dword [esp + 0x264]
add esp, 0x250
pop ebx
pop esi
pop edi
ret
Function at 0x402c48
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x15c]
mov esi, 0x404064
push ebx
sub esp, 0x17c
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x11c], 0
mov eax, dword [0x406040]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov eax, 0x10
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x118]
mov eax, ecx
mov ecx, 0x3f
rep stosd dword es:[edi], eax
movzx edx, byte [ebp + eax - 0x15c]
mov byte [ebp + edx - 0x11c], al
inc eax
cmp eax, 0x40
jne 0x402c8e
xor edx, edx
test byte [ebp + 0xc], 3
jne 0x402e26
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
shr edx, 2
cmp byte [ebx + eax - 1], 0x3d
lea edx, [edx + edx*2]
jne 0x402cc3
dec edx
mov eax, dword [ebp + 0xc]
cmp byte [ebx + eax - 2], 0x3d
jne 0x402cce
dec edx
lea eax, [edx + 0xf]
shr eax, 4
shl eax, 4
call fcn.00402944
mov ecx, 0
mov dword [ebp - 0x170], 0
sub esp, eax
test edx, edx
cmovns ecx, edx
mov edi, esp
xor eax, eax
mov dword [ebp - 0x174], esp
xor esi, esi
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x170]
cmp eax, dword [ebp + 0xc]
jb 0x402d1c
mov esi, dword [ebp - 0x174]
mov edi, ebx
mov ecx, edx
rep movsb byte es:[edi], byte [esi]
jmp 0x402e26
mov eax, dword [ebp - 0x170]
xor edi, edi
movzx eax, byte [ebx + eax]
cmp al, 0x3d
je 0x402d34
movzx edi, byte [ebp + eax - 0x11c]
mov dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x170]
movzx eax, byte [ebx + eax + 1]
cmp al, 0x3d
je 0x402d5b
movzx eax, byte [ebp + eax - 0x11c]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x17c], 0
mov eax, dword [ebp - 0x170]
movzx eax, byte [ebx + eax + 2]
cmp al, 0x3d
je 0x402d82
movzx eax, byte [ebp + eax - 0x11c]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x170]
xor ecx, ecx
add dword [ebp - 0x170], 4
movzx eax, byte [ebx + eax + 3]
cmp al, 0x3d
je 0x402da4
movzx eax, byte [ebp + eax - 0x11c]
mov ecx, eax
mov dword [ebp - 0x16c], esi
cmp edx, esi
ja 0x402db9
mov esi, dword [ebp - 0x16c]
jmp 0x402d00
mov eax, dword [ebp - 0x178]
shl edi, 0x12
inc dword [ebp - 0x16c]
shl eax, 0xc
add eax, edi
mov edi, dword [ebp - 0x17c]
shl edi, 6
add eax, edi
mov edi, dword [ebp - 0x174]
add eax, ecx
mov ecx, eax
shr eax, 0x10
mov byte [edi + esi], al
cmp edx, dword [ebp - 0x16c]
jbe 0x402dae
lea eax, [esi + 2]
mov dword [ebp - 0x178], eax
mov eax, edi
mov edi, dword [ebp - 0x16c]
mov byte [eax + edi], ch
lea eax, [esi + 2]
mov dword [ebp - 0x16c], eax
cmp edx, eax
jbe 0x402dae
lea eax, [esi + 3]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x174]
mov byte [eax + esi + 2], cl
jmp 0x402dae
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x406040]
je 0x402e36
call fcn.00401760
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x10002419
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
mov dword [0x1000ad54], eax
mov eax, dword [ebp + 0x14]
mov dword [0x1000ac4c], eax
mov eax, dword [ebp + 0x10]
mov dword [0x1000ae5c], eax
call fcn.1000127e
pop ebp
jmp fcn.10001420
Function at 0x4173d8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov byte [ebp - 1], cl
sub edx, 0
inc edx
mov dword [ebp - 8], edx
mov esi, dword [ebp - 8]
dec esi
test esi, esi
jl 0x417411
inc esi
xor ecx, ecx
movzx edx, byte [eax]
movzx ebx, byte [ebp - 1]
mov byte [ebp - 9], bl
xor dl, byte [ebp - 9]
mov ebx, dword [ebp + 8]
add ebx, ecx
mov edi, ebx
mov byte [edi], dl
inc ecx
inc eax
dec esi
jne 0x4173f6
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov byte [eax], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x419760
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, 0x40f015
lea edi, [esi - 0xe015]
push edi
or ebp, 0xffffffff
jmp 0x419782
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x419789
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x419778
mov eax, 1
add ebx, ebx
jne 0x41979b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x419790
jne 0x4197ac
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x419790
xor ecx, ecx
sub eax, 3
jb 0x4197c0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x419832
mov ebp, eax
add ebx, ebx
jne 0x4197cb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x4197d8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x4197fc
inc ecx
add ebx, ebx
jne 0x4197e8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x4197dd
jne 0x4197f9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x4197dd
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x41981c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x41980d
jmp 0x41977e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x41981c
add edi, ecx
jmp 0x41977e
pop esi
mov edi, esi
mov ecx, 0x2b3
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x41983a
cmp byte [edi], 5
jne 0x41983a
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 0x41983f
lea edi, [esi + 0x17000]
mov eax, dword [edi]
or eax, eax
je 0x4198b7
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x19000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x1908c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x41986c
mov ecx, edi
jns 0x41989b
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 + 0x19090]
or eax, eax
je 0x4198b1
mov dword [ebx], eax
add ebx, 4
jmp 0x419889
call dword [esi + 0x190a0]
mov ebp, dword [esi + 0x19094]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x19f]
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 0x4198eb
sub esp, 0xffffff80
jmp 0x404c20
Function at 0x10015a30
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100dca30
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x10129124]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x10], eax
push 8
mov dword [eax], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.100af516
mov esi, eax
xorps xmm0, xmm0
movq qword [esi], xmm0
push 1
mov dword [ebp - 4], 0
call fcn.10098148
mov dword [esi + 4], eax
add esp, 8
mov eax, dword [ebp - 0x10]
lea edi, [eax + 0x14]
lea ecx, [eax + 0x18]
lea edx, [eax + 0x24]
mov dword [eax + 0x34], esi
lea ebx, [eax + 4]
mov dword [eax + 0xc], ebx
lea esi, [eax + 8]
mov dword [eax + 0x10], esi
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x2c], edx
add eax, 0x28
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 0x30], eax
mov ebx, dword [ebp - 0x14]
mov dword [esi], 0
mov dword [ecx], 0
mov dword [eax], 0
mov eax, dword [ebp - 0x10]
mov dword [ebx], 0
mov dword [edi], 0
mov dword [edx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
push esi
push edi
mov dword [ecx + 0x1384], 0xffffffff
lea edi, [ecx + 8]
mov dword [ecx + 4], edx
mov esi, 1
nop dword [eax]
mov eax, edx
lea edi, [edi + 4]
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, esi
inc esi
mov dword [edi - 4], edx
cmp esi, 0x270
jb 0x1001ad90
pop edi
mov dword [ecx], 0x270
mov eax, ecx
pop esi
pop ebp
ret 0xc
Function at 0x1001ae40
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
mov eax, dword [edi]
cmp eax, 0x270
jne 0x1001ae9e
lea edx, [edi + 8]
mov esi, eax
nop dword [eax]
mov ecx, dword [edx - 4]
lea edx, [edx + 4]
xor ecx, dword [edx - 4]
and ecx, 0x7fffffff
xor ecx, dword [edx - 8]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x62c]
xor eax, ecx
mov dword [edx + 0x9b8], eax
sub esi, 1
jne 0x1001ae60
mov eax, dword [edi]
jmp 0x1001af89
cmp eax, 0x4e0
jb 0x1001af89
mov eax, dword [edi + 0x9c4]
push ebx
lea ebx, [edi + 0x9c4]
mov edi, 0xe3
nop dword [eax + eax]
mov ecx, dword [ebx + 4]
lea edx, [ebx + 4]
xor ecx, eax
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx + 0x634]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x1001aec0
mov ebx, dword [ebp - 4]
mov edi, 0x18c
add ebx, 0xd50
mov eax, dword [ebx]
nop dword [eax]
mov ecx, eax
lea edx, [ebx + 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx - 0xd4c]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x1001af10
mov edi, dword [ebp - 4]
pop ebx
mov ecx, dword [edi + 0x1380]
xor ecx, dword [edi + 4]
and ecx, 0x7fffffff
xor ecx, dword [edi + 0x1380]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edi + 0x634]
xor eax, ecx
mov dword [edi + 0x9c0], eax
xor eax, eax
mov dword [edi], 0
mov edx, dword [edi + eax*4 + 4]
inc eax
mov dword [edi], eax
mov ecx, edx
mov eax, dword [edi + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
pop edi
xor eax, edx
pop esi
mov esp, ebp
pop ebp
ret