joyce8/EMBER2024-capa huggingface dataset:
Function at 0x452330
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x467384]
xor eax, ebp
mov dword [ebp - 0x10], eax
push 0x463240
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x452413
mov dword [ebp - 8], 0
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x20], 0x33
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov byte [ebp + edx - 0x20], 0xc0
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov byte [ebp + ecx - 0x20], 0xc2
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x20], 4
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov byte [ebp + edx - 0x20], 0
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0xc]
push ecx
push 0x40
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
push 0
mov ecx, dword [ebp - 8]
push ecx
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lea ecx, [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00435531
mov esp, ebp
pop ebp
ret

Function at 0x453040
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
cmp dword [ebp + 8], 0
je 0x4530a6
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x20]
add eax, 1
mov edx, dword [ebp - 4]
mov dword [edx + 0x20], eax
cmp ecx, 0x186a0
jl 0x45308d
push 0
mov ecx, dword [ebp - 4]
call fcn.00451110
mov ecx, dword [ebp - 4]
call fcn.00451140
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov eax, dword [ebp - 4]
mov dword [eax + 0x20], 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043c5c0
add esp, 4
push eax
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 4]
call fcn.00451170
mov esp, ebp
pop ebp
ret 4

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

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x408f6c
mov ecx, 0x8dd70a6
nop
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x43004e
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x430024
nop
mov eax, section..data
nop
nop
mov ebx, 0x42e3d0
nop
mov ecx, 0x4c075d7c
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x430084
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x43006c
nop
nop
nop
popal
nop
nop
jmp 0x401219
Function at 0x40ef50
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0xb000]
push edi
or ebp, 0xffffffff
jmp 0x40ef72
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x40ef79
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x40ef68
mov eax, 1
add ebx, ebx
jne 0x40ef8b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x40ef80
jne 0x40ef9c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40ef80
xor ecx, ecx
sub eax, 3
jb 0x40efb0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x40f022
mov ebp, eax
add ebx, ebx
jne 0x40efbb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x40efc8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x40efec
inc ecx
add ebx, ebx
jne 0x40efd8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x40efcd
jne 0x40efe9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40efcd
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x40f00c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x40effd
jmp 0x40ef6e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x40f00c
add edi, ecx
jmp 0x40ef6e
pop esi
mov edi, esi
mov ecx, 0x15
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x40f02a
cmp byte [edi], 3
jne 0x40f02a
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 0x40f02f
lea edi, [esi + 0xc000]
mov eax, dword [edi]
or eax, eax
je 0x40f09e
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x13eec]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x13f6c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x40f05c
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x13f74]
or eax, eax
je 0x40f098
mov dword [ebx], eax
add ebx, 4
jmp 0x40f079
call dword [esi + 0x13f70]
mov ebp, dword [esi + 0x13f78]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1f7]
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 0x40f0d2
sub esp, 0xffffff80
jmp 0x40129f
Function at 0x402550
Capabilities:
Hash data using djb2

Disassembly:
xor eax, eax
test ecx, ecx
je 0x402648
test edx, edx
je 0x402648
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [esp], ecx
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x40259a
mov ecx, 0x1505
xor edi, edi
nop
nop
nop
nop
nop
movzx ebx, byte [edx + edi]
test ebx, ebx
je 0x4025a1
mov esi, ecx
shl esi, 5
add esi, ecx
add esi, ebx
inc edi
mov ecx, esi
cmp ebp, edi
jne 0x402580
jmp 0x4025a3
mov esi, 0x1505
jmp 0x4025a3
mov esi, ecx
mov ecx, dword [esp]
mov ebp, dword [ecx + 0x20]
mov edi, ebp
sub edi, 1
jb 0x402641
mov dword [esp + 4], edx
mov ecx, esi
not ecx
or edi, ecx
mov ecx, ebp
not ecx
and ecx, 1
mov eax, ebp
and eax, 0xfffffffe
sub eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esp]
mov eax, dword [ecx + 4]
mov dword [esp + 0xc], eax
add edi, esi
inc edi
jmp 0x4025e4
inc edi
dec ebp
je 0x40263f
mov eax, edi
and eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [edx + eax*4]
cmp ebx, 0xffffffff
je 0x40263f
mov eax, dword [ecx + 8]
cmp dword [eax + ebx*4], esi
jne 0x4025e0
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + ebx*4]
mov dword [esp + 8], eax
push eax
call fcn.00408b90
mov ecx, dword [esp + 4]
add esp, 4
cmp eax, dword [esp + 0x28]
jne 0x4025e0
push dword [esp + 0x28]
push dword [esp + 0xc]
push dword [esp + 0xc]
call fcn.00408bb0
mov ecx, dword [esp + 0xc]
add esp, 0xc
test eax, eax
jne 0x4025e0
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + ebx*4]
jmp 0x402641
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x403410
Capabilities:
Compute adler32 checksum
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x4035c6
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
movzx edi, cx
shr ecx, 0x10
test esi, esi
je 0x4035bf
mov edx, 0x5e6ea9af
mov eax, esi
mul edx
shr edx, 0xb
imul eax, edx, 0x15b0
mov ebx, esi
sub ebx, eax
jmp 0x4034a6
mov eax, dword [esp + 4]
sub eax, dword [esp]
add ebp, eax
mov esi, dword [esp + 8]
mov eax, edi
mov edx, 0x80078071
mul edx
mov ebx, edx
shr ebx, 0xf
mov eax, ecx
mov edx, 0x80078071
mul edx
imul eax, ebx, 0xfff1
sub edi, eax
shr edx, 0xf
imul eax, edx, 0xfff1
sub ecx, eax
sub esi, dword [esp + 4]
mov ebx, 0x15b0
je 0x4035bf
xor edx, edx
cmp ebx, 8
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
jb 0x40352f
and ebx, 0x1ff8
mov dword [esp], ebx
xor eax, eax
mov edx, eax
movzx eax, byte [ebp + eax]
add eax, edi
add ecx, eax
movzx esi, byte [ebp + edx + 1]
add esi, eax
add ecx, esi
movzx eax, byte [ebp + edx + 2]
add eax, esi
add ecx, eax
movzx esi, byte [ebp + edx + 3]
add esi, eax
mov eax, ecx
and eax, esi
xor ecx, esi
movzx edi, byte [ebp + edx + 4]
add edi, esi
add ecx, edi
movzx esi, byte [ebp + edx + 5]
add esi, edi
add ecx, esi
movzx ebx, byte [ebp + edx + 6]
add ebx, esi
movzx esi, byte [ebp + edx + 7]
mov edi, ebx
and edi, esi
xor esi, ebx
lea edi, [esi + edi*2]
lea ecx, [ecx + eax*2]
add ecx, ebx
mov ebx, dword [esp + 4]
add ecx, edi
lea eax, [edx + 8]
add edx, 0xf
cmp edx, ebx
jb 0x4034c0
add ebp, eax
mov esi, dword [esp + 8]
mov edx, dword [esp]
mov eax, edx
sub eax, ebx
jae 0x40346d
mov dword [esp + 0xc], eax
mov eax, ebx
and eax, 3
mov dword [esp], edx
je 0x40356f
neg eax
xor ebx, ebx
mov edx, ebp
nop
nop
nop
movzx esi, byte [edx]
inc edx
add edi, esi
add ecx, edi
dec ebx
cmp eax, ebx
jne 0x403550
mov eax, dword [esp]
sub eax, ebx
cmp dword [esp + 0xc], 0xfffffffc
ja 0x403460
jmp 0x40357e
mov eax, edx
mov edx, ebp
cmp dword [esp + 0xc], 0xfffffffc
ja 0x403460
mov ebx, dword [esp + 4]
sub ebx, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [edx + eax]
add esi, edi
add ecx, esi
movzx edi, byte [edx + eax + 1]
add edi, esi
add ecx, edi
movzx esi, byte [edx + eax + 2]
add esi, edi
add ecx, esi
movzx edi, byte [edx + eax + 3]
add edi, esi
add ecx, edi
add eax, 4
cmp ebx, eax
jne 0x403590
jmp 0x403460
shl ecx, 0x10
or ecx, edi
jmp 0x4035cb
mov ecx, 1
mov eax, ecx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x4035e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x403645
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
test edx, edx
je 0x403647
not eax
xor esi, esi
nop
nop
nop
nop
movzx edi, byte [ecx + esi]
mov ebx, eax
shr ebx, 4
and eax, 0xf
mov ebp, edi
and ebp, 0xf
add ebp, eax
and eax, edi
add eax, eax
sub ebp, eax
xor ebx, dword [ebp*4 + 0x436a14]
mov eax, ebx
shr eax, 4
mov ebp, ebx
and ebp, 0xf
shr edi, 4
and ebx, edi
add edi, ebp
add ebx, ebx
sub edi, ebx
xor eax, dword [edi*4 + 0x436a14]
inc esi
cmp edx, esi
jne 0x403600
not eax
jmp 0x403647
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x40e110
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x170
mov word [esp + 0x38], 0x99fb
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40e18f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0xeb
sub edx, eax
add eax, 0x85ad5d14
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x74
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40e150
lea eax, [esp + 0x38]
push eax
push dword [ebp + 8]
call fcn.00402720
add esp, 8
mov ebx, eax
xor ecx, ecx
test eax, eax
sete cl
xor esi, esi
xor eax, eax
mov dword [esp + 0x150], ebx
jmp dword [ecx*4 + 0x43a2d4]
Function at 0x413430
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x413450
mov edi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x413470
sar esi, 1
sar eax, 1
lea ecx, [esi + eax]
add ecx, 2
test ecx, ecx
jns 0x413490
mov eax, 0xffffffff
jmp 0x413499
add eax, esi
lea eax, [eax*2 + 4]
push eax
call fcn.00408a30
add esp, 4
mov ebx, eax
movzx ecx, word [edi]
test cx, cx
je 0x4134d1
add edi, 2
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x4134c0
mov word [eax], 0x5c
add eax, 2
mov edx, dword [ebp + 0x10]
movzx ecx, word [edx]
test cx, cx
je 0x413501
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4134f0
mov word [eax], 0
lea eax, [esp + 8]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.00434840
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0x24], ebx
jmp dword [eax*4 + 0x43a7dc]
Function at 0x4137d0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd8
mov eax, dword [ebp + 0xc]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x4137f0
sar esi, 1
lea edi, [esp + 0x80]
push edi
push 0
push 0
push esi
push eax
push 0
call dword [0x43f05c]
mov ebx, dword [esp + 0x80]
test ebx, ebx
jns 0x413825
mov eax, 0xffffffff
jmp 0x413828
lea eax, [ebx + ebx]
push eax
call fcn.00408a30
add esp, 4
push edi
push ebx
mov dword [esp + 0x24], eax
push eax
push esi
push dword [ebp + 0xc]
push 0
call dword [0x43f05c]
mov dword [esp + 0x20], 0xc38ec19c
mov dword [esp + 0x24], 0xc775c565
mov dword [esp + 0x28], 0xcbaac97c
mov dword [esp + 0x2c], 0xcf6bcd9a
mov dword [esp + 0x30], 0xd361d162
mov dword [esp + 0x34], 0xd779d57d
mov dword [esp + 0x38], 0xdbdad976
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
mov byte [esp + 0x40], 0
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x20
ja 0x413905
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx edx, byte [esp + edx + 0x20]
mov esi, 0x1f
sub esi, ecx
add ecx, 0x34bf2fe0
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x90], esi
mov ecx, dword [esp + 0x90]
add cl, 0xe0
mov edx, dword [esp + 0xb8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 0x21
jb 0x4138b0
lea edi, [esp + 0xb8]
lea edx, [esp + 0x20]
mov ecx, 7
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xd4]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x80]
mov ecx, eax
add ecx, 0xd
jns 0x41393e
mov eax, 0xffffffff
jmp 0x413945
lea eax, [eax*2 + 0x1a]
push eax
call fcn.00408a30
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x413981
mov eax, dword [esp + 0x1c]
lea edx, [eax + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x413970
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x4139b1
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4139a0
mov word [eax], 0
lea eax, [esp + 0x60]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.00434840
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43aa7c]
Function at 0x4179c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov dword [esp + 8], 0xab3dad08
mov dword [esp + 0xc], 0x970fa905
mov dword [esp + 0x10], 0x93c095c8
mov dword [esp + 0x14], 0x9f30913c
lea eax, [esp + 0x18]
mov word [esp + 0x18], 0x9d9c
mov dword [esp + 0x1a], 0
mov dword [esp + 0x1d], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x18
ja 0x417a60
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
mov esi, 0xe5
sub esi, ecx
add ecx, 0xee9b581a
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x28], esi
mov ecx, dword [esp + 0x28]
add cl, 0x4a
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x19
jb 0x417a20
mov ebx, dword [ebp + 8]
lea edi, [esp + 0x28]
lea edx, [esp + 8]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x38]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax], 0
lea eax, [eax + 2]
jne 0x417a90
lea ecx, [ebx + eax]
add ecx, 0xfffffffe
add eax, ebx
mov edx, 1
sub edx, eax
and edx, ebx
mov eax, ebx
not eax
and eax, ecx
sub eax, edx
cmp eax, 0xffffffed
jge 0x417abf
mov eax, 0xffffffff
jmp 0x417ac2
add eax, 0x12
push eax
call fcn.00408a30
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x417af1
add ebx, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x417ae0
mov word [eax], 0
movzx ecx, word [esp + 0x28]
test cx, cx
je 0x417b21
lea edx, [esp + 0x2a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x417b10
mov word [eax], 0
lea eax, [esp + 8]
push eax
push esi
call fcn.00434a20
add esp, 8
mov edi, eax
mov ebx, dword [esp + 8]
jmp dword [0x43ae04]

Function at 0x418040
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x50
mov esi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x18]
mov edi, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x24]
movzx ecx, byte [ebp + 0x20]
mov dword [esp + 0x40], esi
mov byte [esp + 0x44], cl
mov dword [esp + 0x48], eax
test esi, esi
setg al
and al, cl
movzx eax, al
jmp dword [eax*4 + 0x43aef0]
Function at 0x41aef0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov dword [esp + 0x10], 0x7bbb7941
mov dword [esp + 0x14], 0x7f8c7d8a
mov dword [esp + 0x18], 0x739371ba
mov dword [esp + 0x1c], 0x77977586
mov dword [esp + 0x20], 0xbe40951
mov dword [esp + 0x24], 0xff40dde
mov dword [esp + 0x28], 0x3fe01f9
mov dword [esp + 0x2c], 0x7e305e6
mov dword [esp + 0x30], 0x1bfa19f4
mov dword [esp + 0x34], 0x1fee1de1
mov dword [esp + 0x38], 0x13fc11fa
mov dword [esp + 0x3c], 0x17e615c2
mov dword [esp + 0x40], 0x2bce29e7
mov dword [esp + 0x44], 0x2fd02dd1
mov dword [esp + 0x48], 0x23d521c9
lea eax, [esp + 0x4c]
mov word [esp + 0x4c], 0x2522
mov dword [esp + 0x4e], 0
mov word [esp + 0x52], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x43
ja 0x41aff0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x10]
mov esi, 0x50
sub esi, ecx
add ecx, 0x2d9f35af
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x5c], esi
mov ecx, dword [esp + 0x5c]
add cl, 0x37
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x44
jb 0x41afb0
lea esi, [esp + 0x5c]
lea edx, [esp + 0x10]
mov ecx, 0xf
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x98]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0xc]
push edi
push 0
push 0
push 0x1e
push esi
push 0
call dword [0x43f05c]
mov ebx, dword [esp + 0xc]
test ebx, ebx
jns 0x41b039
mov eax, 0xffffffff
jmp 0x41b03c
lea eax, [ebx + ebx]
push eax
call fcn.00408a30
add esp, 4
mov esi, eax
push edi
push ebx
push eax
push 0x1e
lea eax, [esp + 0x6c]
push eax
push 0
call dword [0x43f05c]
mov dword [esp + 0x10], 0xf31acd38
mov dword [esp + 0x14], 0xf764f165
mov dword [esp + 0x18], 0xfb1ff510
mov dword [esp + 0x1c], 0xff18f96e
mov dword [esp + 0x20], 0xe374fd15
mov dword [esp + 0x24], 0xe7e6e104
mov word [esp + 0x28], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x1a
ja 0x41b0ee
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, 0x61
sub edx, eax
add eax, 0xa6e2139e
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xae
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x1b
jb 0x41b0b0
push 0
push 0
lea eax, [esp + 0x18]
push eax
push esi
push dword [ebp + 8]
call fcn.00415ec0
add esp, 0x14
jmp dword [0x43b50c]
Function at 0x41cfa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x868
xor ebx, ebx
mov dword [esp + 8], 0x200
mov eax, 1
xor edi, edi
mov dword [esp + 0x10], 0
jmp 0x41cfe8
jmp dword [eax*4 + 0x43bb50]
Function at 0x421bd0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
cmp edi, 0x24
ja 0x421c2a
cmp edi, 1
je 0x421c2a
mov ebp, dword [esp + 0x38]
mov ebx, ebp
jmp 0x421c01
inc ebx
movzx eax, byte [ebx]
movzx ecx, al
lea edx, [ecx - 9]
cmp edx, 5
jb 0x421c00
cmp ecx, 0x20
je 0x421c00
cmp ecx, 0x2b
mov edx, edi
je 0x421c20
cmp ecx, 0x2d
jne 0x421c3f
inc ebx
cmp al, 0x2b
sete byte [esp + 3]
jmp 0x421c44
xor edi, edi
test esi, esi
je 0x421e15
mov dword [esi], 0x16
jmp 0x421e15
mov byte [esp + 3], 1
test edx, edx
mov dword [esp + 4], ebp
jle 0x421c6d
cmp edx, 0x10
jne 0x421c85
cmp byte [ebx], 0x30
jne 0x421c66
movzx eax, byte [ebx + 1]
and al, 0xdf
xor ecx, ecx
cmp al, 0x58
sete cl
lea ebx, [ebx + ecx*2]
mov edi, 0x10
jmp 0x421c87
xor eax, eax
xor ecx, ecx
cmp byte [ebx], 0x30
setne al
sete cl
add ebx, ecx
lea edi, [eax*2 + 8]
jmp 0x421c87
mov edi, edx
movzx ecx, byte [esp + 3]
mov eax, SysReAllocString
mov dword [esp + 0x18], ecx
sub eax, ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
xor edx, edx
div edi
mov dword [esp + 0x1c], eax
xor ebp, ebp
mov dword [esp + 8], 0
mov edx, edi
mov dword [esp + 0x20], edi
inc ebx
jmp 0x421ce1
mov ebp, ecx
mov dword [esp + 8], 0
mov esi, dword [esp + 0x44]
test esi, esi
je 0x421db0
mov dword [esi], 0x22
mov dword [esp + 4], ebx
inc ebx
mov edi, ebp
movsx eax, byte [ebx - 1]
lea ebp, [eax - 0x30]
cmp ebp, 0xa
jb 0x421d13
mov ecx, eax
and ecx, 0xffffffdf
add ecx, 0xffffffbf
cmp ecx, 0x19
ja 0x421de4
or al, 0x20
movsx eax, al
mov ecx, eax
or ecx, 0xffffffbe
and eax, 0xffffff9e
lea ebp, [eax + ecx]
add ebp, 0xb
cmp ebp, edx
jge 0x421de4
mov eax, edi
mov ecx, dword [esp + 0xc]
xor eax, ecx
mov esi, dword [esp + 8]
or eax, esi
je 0x421cc0
mov dword [esp + 0x14], ebx
mov eax, edi
mov ecx, edx
mul edx
mov dword [esp + 4], eax
xor eax, eax
cmp dword [esp + 0x1c], edi
mov edi, 0
sbb edi, esi
setae bl
jae 0x421d60
xor edx, edx
mov esi, dword [esp + 0xc]
jmp 0x421d69
imul esi, ecx
add edx, esi
mov esi, dword [esp + 4]
mov ecx, ebp
sar ecx, 0x1f
mov edi, dword [esp + 0xc]
sub edi, ebp
sbb eax, ecx
add ebp, esi
adc ecx, edx
mov dword [esp + 8], ecx
cmp edi, esi
mov ecx, dword [esp + 0xc]
sbb eax, edx
setae al
jae 0x421d95
mov dword [esp + 8], 0
mov ebp, ecx
and bl, al
mov esi, dword [esp + 0x44]
test esi, esi
mov edx, dword [esp + 0x20]
je 0x421dcb
test bl, bl
jne 0x421dcb
mov ebx, dword [esp + 0x14]
jmp 0x421cd6
mov dword [esp + 0x10], 0x22
mov dword [esp + 4], ebx
mov ebp, ecx
mov dword [esp + 8], 0
jmp 0x421cbb
test bl, bl
jne 0x421dd7
mov dword [esp + 0x10], 0x22
mov ebx, dword [esp + 0x14]
mov dword [esp + 4], ebx
jmp 0x421cbb
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x421df2
mov ecx, dword [esp + 4]
mov dword [eax], ecx
test esi, esi
mov eax, dword [esp + 0x10]
je 0x421dfc
mov eax, dword [esi]
cmp eax, 0x22
jne 0x421e0c
mov edi, SysReAllocString
sub edi, dword [esp + 0x18]
jmp 0x421e15
cmp byte [esp + 3], 0
jne 0x421e15
neg edi
mov eax, edi
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret