joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100ebac0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, 0x100
xor ebx, ebx
push edi
mov edi, dword [esp + 0x14]
mov ebp, ecx
or edx, esi
add edi, edi
mov ecx, esi
and ecx, edi
mov eax, edx
shr eax, 8
add ecx, esi
add eax, ecx
movzx ecx, word [ebp + eax*2]
mov eax, edx
shr eax, 7
add edx, edx
and eax, 1
shr ecx, 4
neg eax
shr eax, 4
and eax, 0x7f
xor ecx, eax
mov eax, dword [esp + 0x18]
add ebx, dword [eax + ecx*4]
mov ecx, edx
xor ecx, edi
not ecx
and esi, ecx
cmp edx, 0x10000
jb 0x100ebad3
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
ret

Function at 0x100ebd80
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0xc], edx
mov edx, ecx
push esi
push edi
mov dword [esp + 0x10], edx
mov edi, ebx
mov esi, ebx
shr esi, 2
shr edi, 1
mov eax, edi
and eax, 1
movzx ecx, word [edx + esi*2 + 4]
neg eax
shr eax, 4
neg esi
and eax, 0x7f
shr ecx, 4
xor ecx, eax
and esi, 0x7f0
movzx eax, word [edx + 2]
xor esi, eax
mov eax, dword [esp + 0x10]
shr esi, 4
mov edx, dword [ebp + ecx*4]
movzx ecx, word [eax + edi*2 + 8]
add edx, dword [ebp + esi*4]
mov eax, ecx
add edx, dword [esp + 0x14]
xor ecx, 0x7f0
mov esi, dword [esp + 0x1c]
shr eax, 4
shr ecx, 4
mov eax, dword [ebp + eax*4]
add eax, edx
mov dword [esi + ebx*4], eax
mov eax, dword [ebp + ecx*4]
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [esi + ebx*4 + 4], eax
add ebx, 2
cmp ebx, 8
jb 0x100ebd97
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
Function at 0x100ebe20
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, ecx
mov ebx, edx
mov ecx, dword [esp + 0x1c]
push esi
push edi
mov edi, dword [esp + 0x28]
movzx esi, word [ecx]
mov eax, esi
mov dword [esp + 0x14], ebx
xor eax, 0x7f0
shr esi, 4
shr eax, 4
mov dword [esp + 0x10], ebp
mov edx, dword [edi + esi*4]
mov eax, dword [edi + eax*4]
mov dword [esp + 0x28], eax
movzx eax, word [ecx + 0x10]
mov esi, dword [esp + 0x28]
shr eax, 4
mov dword [esp + 0x1c], edx
mov eax, dword [edi + eax*4]
add eax, esi
mov dword [esp + 0x18], eax
test ebx, ebx
je 0x100ebebb
lea ebx, [ebp + 4]
mov esi, ecx
mov ebp, dword [esp + 0x14]
nop word [eax + eax]
push edi
push ebx
mov ecx, esi
call fcn.100ebd80
mov edx, dword [esp + 0x20]
lea eax, [ebx + 0x20]
push edi
push eax
lea ecx, [esi + 0x10]
call fcn.100ebd80
mov edx, dword [esp + 0x2c]
add esp, 0x10
add ebx, 0x440
add esi, 0x20
sub ebp, 1
jne 0x100ebe80
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
mov ebx, dword [ebp]
cmp ebx, 0x10
jbe 0x100ebf92
lea eax, [ebp + 0x44]
add ebx, 0xfffffff1
mov dword [esp + 0x18], eax
movzx eax, word [ecx + 0x10]
xor eax, 0x7f0
shr ebx, 1
shr eax, 4
lea ebp, [ebx + 0x180]
add esi, dword [edi + eax*4]
lea ebp, [ecx + ebp*2]
mov dword [esp + 0x28], esi
nop
dec ebx
lea ebp, [ebp - 2]
mov dword [esp + 0x1c], ebx
lea eax, [ebx + 0x80]
mov ebx, dword [esp + 0x24]
mov edx, eax
shr eax, 1
and edx, 1
neg edx
shr edx, 4
movzx ecx, word [ebx + eax*2 + 0x200]
and edx, 0x7f
shr ecx, 4
xor ecx, edx
add esi, dword [edi + ecx*4]
cmp eax, 2
jae 0x100ebf02
movzx ecx, word [ebp]
mov ebx, dword [esp + 0x1c]
mov eax, ecx
mov edx, dword [esp + 0x18]
xor ecx, 0x7f0
shr eax, 4
shr ecx, 4
mov eax, dword [edi + eax*4]
add eax, esi
mov dword [edx + ebx*8], eax
mov eax, dword [edi + ecx*4]
add eax, esi
mov esi, dword [esp + 0x28]
mov dword [edx + ebx*8 + 4], eax
test ebx, ebx
jne 0x100ebef0
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
lea ebx, [eax*4 - 0x40]
mov eax, dword [esp + 0x14]
cmp eax, 1
jbe 0x100ebf92
add esi, 0x484
lea edi, [eax - 1]
push ebx
push edx
push esi
call fcn.101528b0
mov edx, dword [esp + 0x24]
add esp, 0xc
add esi, 0x440
sub edi, 1
jne 0x100ebf78
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 8
Function at 0x100edf70
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x74
push ebx
mov ebx, ecx
lea edx, [ebx + 0x270]
mov dword [esp + 0x14], ebx
push esi
push edi
mov dword [ebx + 0x7c], 0
lea edi, [edx + 0x60]
mov dword [ebx + 0x78], 0
xor esi, esi
mov dword [edx], 0
mov dword [edx + 0x34], 0
mov word [edx + 0x1e], 0
mov dword [edx + 0x38], 0
mov dword [edx + 0x24], 0
mov dword [edx + 0x468], 0xffffffff
mov dword [edx + 0x46c], 0xffffffff
mov dword [edx + 0x30], 0x20
mov byte [edx + 0x1d], 1
mov dword [edx + 0x48], 4
mov word [edx + 0x58], 2
mov ecx, esi
lea edi, [edi + 4]
and ecx, 1
mov eax, esi
shr eax, 1
neg ecx
and ecx, 0xedb88320
inc esi
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov ecx, eax
shr eax, 1
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov eax, ecx
shr ecx, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, ecx
mov dword [edi - 4], eax
cmp esi, 0x100
jb 0x100edfe8
lea ecx, [ebx + 0x218]
mov dword [ebx + 0x26c], edx
mov dword [ebx + 0x1e0], 0
call fcn.1012f8c0
lea ecx, [ebx + 0x110]
call fcn.1012f8c0
lea ecx, [esp + 0x38]
call fcn.100eb610
mov edx, ecx
mov ecx, ebx
call fcn.100eb7b0
lea eax, [ebx + 0x2cb0]
mov edi, 2
mov word [eax], 0x100
add eax, 2
mov dword [esp + 0x18], eax
mov ecx, edi
movd xmm0, edi
shr ecx, 1
mov esi, 1
dec ecx
pshufd xmm0, xmm0, 0
shl esi, cl
xor edx, edx
test esi, esi
je 0x100ee144
cmp esi, 0x10
jb 0x100ee12e
andps xmm0, xmmword [0x101d3570]
mov ebx, esi
packuswb xmm0, xmm0
and ebx, 0xfffffff0
packuswb xmm0, xmm0
add eax, 8
movaps xmmword [esp + 0x20], xmm0
mov ecx, dword [esp + 0x20]
mov dword [eax - 8], ecx
lea eax, [eax + 0x10]
mov dword [eax - 0x14], ecx
add edx, 0x10
mov dword [eax - 0x10], ecx
mov dword [eax - 0xc], ecx
cmp edx, ebx
jb 0x100ee110
mov eax, dword [esp + 0x18]
cmp edx, esi
jae 0x100ee144
lea ecx, [edx + eax]
mov eax, esi
sub eax, edx
push eax
push edi
push ecx
call fcn.10152e30
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, esi
inc edi
mov dword [esp + 0x18], eax
cmp edi, 0x16
jb 0x100ee0d0
mov ebx, dword [esp + 0x1c]
mov edi, 8
add ebx, 0x760
nop
xor edx, edx
mov eax, edi
lea esi, [edx + 4]
nop word [eax + eax]
imul eax, eax
add edx, edx
cmp eax, 0x10000
jb 0x100ee18a
nop dword [eax]
shr eax, 1
inc edx
cmp eax, 0x10000
jae 0x100ee180
sub esi, 1
jne 0x100ee170
mov eax, 0xa1
add edi, 0x10
sub eax, edx
mov dword [ebx], eax
add ebx, 4
cmp edi, 0x808
jb 0x100ee160
mov eax, dword [esp + 0x1c]
pop edi
mov dword [eax + 0x50], esi
mov dword [eax + 0x1bcb8], esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100ef2c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
movaps xmm0, xmmword [0x101d35c0]
push ebx
push esi
mov esi, ecx
mov ebx, 0x400
push edi
mov edi, 0xc
mov eax, dword [esi + 0x78]
lea edx, [esi + 0x1e68]
mov dword [esi + 0x70], eax
lea eax, [esi + 0x2030]
mov dword [esi + 0x2c], 0
mov dword [esi + 0x44], 1
mov dword [esi + 0x40], 1
mov dword [esi + 0x3c], 1
mov dword [esi + 0x38], 1
mov dword [esi + 0x58], 0xffffffff
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x88], 0
movups xmmword [esi + 0x1e30], xmm0
movups xmmword [esi + 0x1e40], xmm0
mov ecx, 0x10
nop word [eax + eax]
mov word [eax - 0x180], bx
mov word [eax], bx
add eax, 2
sub ecx, 1
jne 0x100ef370
mov word [edx - 0x18], bx
mov word [edx], bx
mov word [edx + 0x18], bx
mov word [edx + 0x30], bx
add edx, 2
sub edi, 1
jne 0x100ef361
mov eax, 0x4000400
lea edi, [esi + 0x21b0]
mov ecx, 0x80
rep stosd dword es:[edi], eax
lea edi, [esi + 0x23b0]
mov ecx, 0x40
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x98]
mov eax, 0x300
add ecx, dword [esi + 0x94]
shl eax, cl
test eax, eax
je 0x100ef3e2
mov edi, dword [esi + 0x50]
mov ecx, eax
shr ecx, 1
mov eax, 0x4000400
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov eax, 0x4000400
lea edi, [esi + 0x24b0]
mov ecx, 0x80
rep stosd dword es:[edi], eax
lea edi, [esi + 0x26b0]
mov ecx, 0x80
rep stosd dword es:[edi], eax
mov ecx, 0x80
lea edi, [esi + 0x28b0]
rep stosd dword es:[edi], eax
lea edi, [esi + 0x2ab0]
mov ecx, 0x80
rep stosd dword es:[edi], eax
mov dword [esi + 0x1c], 0
lea eax, [esi + 0xbcb8]
mov dword [esi + 0x18], 0
mov ecx, 0x800
mov dword [eax], 0x40000000
lea eax, [eax + 0x20]
sub ecx, 1
jne 0x100ef434
mov dword [esi + 0x34], ecx
mov eax, 1
mov ecx, dword [esi + 0x9c]
mov edx, 0x100
shl eax, cl
mov ecx, dword [esi + 0x94]
dec eax
mov dword [esi + 0x4c], eax
mov eax, edx
shr eax, cl
mov ecx, dword [esi + 0x98]
shl edx, cl
sub edx, eax
pop edi
mov dword [esi + 0x48], edx
pop esi
pop ebx
ret
Function at 0x100f0cf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebx
push ebp
push edi
mov edi, ecx
test edi, edi
je 0x100f0efd
mov eax, dword [edi + 0x20]
mov dword [edi + 0x18], 0
test eax, eax
jne 0x100f0d1a
mov dword [edi + 0x28], eax
mov eax, 0x101117f0
mov dword [edi + 0x20], 0x101117f0
cmp dword [edi + 0x24], 0
jne 0x100f0d27
mov dword [edi + 0x24], fcn.100d32a0
cmp edx, 0xffffffff
mov ebp, 6
cmovne ebp, edx
cmp ebp, 9
ja 0x100f0efd
push esi
push 0x16c4
cmp eax, 0x101117f0
jne 0x100f0d52
call fcn.101554b7
add esp, 4
jmp 0x100f0d5c
push 1
push dword [edi + 0x28]
call eax
add esp, 0xc
mov esi, eax
test esi, esi
je 0x100f0ef3
mov dword [edi + 0x1c], esi
mov dword [esi], edi
mov dword [esi + 4], 0x2a
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x30], 0xf
mov dword [esi + 0x2c], 0x8000
mov dword [esi + 0x34], 0x7fff
mov dword [esi + 0x50], 0xf
mov dword [esi + 0x4c], 0x8000
mov dword [esi + 0x54], 0x7fff
mov dword [esi + 0x58], 5
mov eax, dword [edi + 0x20]
cmp eax, 0x101117f0
jne 0x100f0dca
push 0x10000
call fcn.101554b7
add esp, 4
jmp 0x100f0dd9
push 2
push 0x8000
push dword [edi + 0x28]
call eax
add esp, 0xc
mov dword [esi + 0x38], eax
mov ebx, 2
mov ecx, dword [edi + 0x20]
mov eax, dword [esi + 0x2c]
cmp ecx, 0x101117f0
jne 0x100f0e04
mul ebx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.101554b7
add esp, 4
jmp 0x100f0e0f
push 2
push eax
push dword [edi + 0x28]
call ecx
add esp, 0xc
mov dword [esi + 0x40], eax
mov ecx, dword [edi + 0x20]
mov eax, dword [esi + 0x4c]
cmp ecx, 0x101117f0
jne 0x100f0e35
mul ebx
mov ecx, 0xffffffff
cmovb eax, ecx
push eax
call fcn.101554b7
add esp, 4
jmp 0x100f0e40
push 2
push eax
push dword [edi + 0x28]
call ecx
add esp, 0xc
mov dword [esi + 0x44], eax
mov dword [esi + 0x16c0], 0
mov dword [esi + 0x169c], 0x4000
mov eax, dword [edi + 0x20]
cmp eax, 0x101117f0
jne 0x100f0e70
push 0x10000
call fcn.101554b7
add esp, 4
jmp 0x100f0e7f
push 4
push 0x4000
push dword [edi + 0x28]
call eax
add esp, 0xc
cmp dword [esi + 0x38], 0
mov ecx, eax
mov edx, dword [esi + 0x169c]
mov dword [esi + 8], ecx
lea eax, [edx*4]
mov dword [esi + 0xc], eax
je 0x100f0ede
cmp dword [esi + 0x40], 0
je 0x100f0ede
cmp dword [esi + 0x44], 0
je 0x100f0ede
test ecx, ecx
je 0x100f0ede
lea eax, [edx + ecx]
mov dword [esi + 0x84], ebp
mov dword [esi + 0x1698], eax
mov ecx, edi
lea eax, [edx - 1]
mov dword [esi + 0x88], 0
lea eax, [eax + eax*2]
mov byte [esi + 0x24], 8
mov dword [esi + 0x16a4], eax
pop esi
pop edi
pop ebp
pop ebx
jmp fcn.100f1100
mov dword [esi + 4], 0x29a
mov ecx, edi
mov dword [edi + 0x18], str.insufficient_memory
call fcn.100f1a20
pop esi
pop edi
pop ebp
mov eax, 0xfffffffc
pop ebx
ret
pop edi
pop ebp
mov eax, 0xfffffffe
pop ebx
ret
Function at 0x100f0f10
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, ecx
mov ebx, edx
mov dword [esp + 0xc], ebp
push esi
test ebp, ebp
je 0x100f10e9
cmp dword [ebp + 0x20], 0
je 0x100f10e9
cmp dword [ebp + 0x24], 0
je 0x100f10e9
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x100f10e9
cmp dword [eax], ebp
jne 0x100f10e9
mov eax, dword [eax + 4]
cmp eax, 0x2a
je 0x100f0f79
cmp eax, 0x45
je 0x100f0f79
cmp eax, 0x49
je 0x100f0f79
cmp eax, 0x5b
je 0x100f0f79
cmp eax, 0x67
je 0x100f0f79
cmp eax, 0x71
je 0x100f0f79
cmp eax, 0x29a
jne 0x100f10e9
test ebx, ebx
je 0x100f10e9
mov esi, dword [ebp + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esp + 0xc], eax
cmp eax, 2
je 0x100f10e9
cmp eax, 1
jne 0x100f0fa3
cmp dword [esi + 4], 0x2a
jne 0x100f10e9
cmp dword [esi + 0x74], 0
jne 0x100f10e9
push edi
mov edi, dword [esp + 0x24]
cmp eax, 1
jne 0x100f0fca
mov ecx, dword [ebp + 0x30]
push edi
call fcn.10111810
mov dword [ebp + 0x30], eax
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [esi + 0x18], 0
cmp edi, dword [esi + 0x2c]
jb 0x100f101e
test eax, eax
jne 0x100f1016
mov eax, dword [esi + 0x44]
xor edx, edx
mov ecx, dword [esi + 0x4c]
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esi + 0x4c]
lea eax, [eax*2 - 2]
push eax
push edx
push dword [esi + 0x44]
call fcn.10152e30
add esp, 0xc
mov dword [esi + 0x6c], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x16b4], 0
sub edi, dword [esi + 0x2c]
add ebx, edi
mov edi, dword [esi + 0x2c]
mov eax, dword [ebp + 4]
mov ecx, esi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
mov dword [esp + 0x18], eax
mov dword [ebp + 4], edi
mov dword [ebp], ebx
call fcn.100f0ae0
mov ecx, dword [esi + 0x74]
cmp ecx, 3
jb 0x100f109f
mov ebx, dword [esi + 0x6c]
lea ebp, [ecx - 2]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x34]
and edx, ebx
movzx edi, byte [eax + ebx + 2]
mov eax, dword [esi + 0x48]
shl eax, cl
mov ecx, dword [esi + 0x40]
xor edi, eax
and edi, dword [esi + 0x54]
mov eax, dword [esi + 0x44]
mov dword [esi + 0x48], edi
mov ax, word [eax + edi*2]
mov word [ecx + edx*2], ax
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov word [eax + ecx*2], bx
inc ebx
sub ebp, 1
jne 0x100f1047
mov ecx, esi
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x74], 2
call fcn.100f0ae0
mov ecx, dword [esi + 0x74]
cmp ecx, 3
jae 0x100f1041
mov ebp, dword [esp + 0x14]
add dword [esi + 0x6c], ecx
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x16b4], ecx
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 2
mov dword [esi + 0x60], 2
mov dword [esi + 0x68], 0
mov dword [ebp], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x10]
pop edi
mov dword [esi + 0x18], eax
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x10
ret
Function at 0x100f1100
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
mov esi, ecx
test esi, esi
je 0x100f12b8
cmp dword [esi + 0x20], 0
je 0x100f12b8
cmp dword [esi + 0x24], 0
je 0x100f12b8
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x100f12b8
cmp dword [eax], esi
jne 0x100f12b8
mov eax, dword [eax + 4]
cmp eax, 0x2a
je 0x100f115e
cmp eax, 0x45
je 0x100f115e
cmp eax, 0x49
je 0x100f115e
cmp eax, 0x5b
je 0x100f115e
cmp eax, 0x67
je 0x100f115e
cmp eax, 0x71
je 0x100f115e
cmp eax, 0x29a
jne 0x100f12b8
push edi
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x14], 0
mov dword [esi + 8], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x2c], 2
mov eax, dword [edi + 8]
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [edi + 0x14], 0
test eax, eax
jns 0x100f1197
neg eax
mov dword [edi + 0x18], eax
push 0
xor edx, edx
mov dword [edi + 4], 0x2a
xor ecx, ecx
call fcn.10111810
mov dword [esi + 0x30], eax
mov ecx, edi
lea eax, [edi + 0x94]
mov dword [edi + 0x28], 0xfffffffe
mov dword [edi + 0xb18], eax
lea eax, [edi + 0x988]
mov dword [edi + 0xb24], eax
lea eax, [edi + 0xa7c]
mov dword [edi + 0xb30], eax
xor eax, eax
mov dword [edi + 0xb20], 0x101a5358
mov dword [edi + 0xb2c], 0x101a52b8
mov dword [edi + 0xb38], 0x101a52cc
mov word [edi + 0x16b8], ax
mov dword [edi + 0x16bc], eax
call fcn.10131bc0
mov esi, dword [esi + 0x1c]
xor edx, edx
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x4c]
add eax, eax
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x44]
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esi + 0x4c]
lea eax, [eax*2 - 2]
push eax
push edx
push dword [esi + 0x44]
call fcn.10152e30
mov eax, dword [esi + 0x84]
add esp, 0x10
lea ecx, [eax + eax*2]
movzx eax, word [ecx*4 + 0x101a2a72]
mov dword [esi + 0x80], eax
movzx eax, word [ecx*4 + 0x101a2a70]
mov dword [esi + 0x8c], eax
movzx eax, word [ecx*4 + 0x101a2a74]
mov dword [esi + 0x90], eax
movzx eax, word [ecx*4 + 0x101a2a76]
mov dword [esi + 0x7c], eax
xor eax, eax
pop edi
mov dword [esi + 0x6c], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x16b4], 0
mov dword [esi + 0x78], 2
mov dword [esi + 0x60], 2
mov dword [esi + 0x68], 0
mov dword [esi + 0x48], 0
pop esi
ret
mov eax, 0xfffffffe
pop esi
ret
Function at 0x100f9e60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
push 4
mov ebp, ecx
mov edi, edx
push str.wvpk
xor ebx, ebx
mov dword [esp + 0x24], edi
push ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ebx
call fcn.1015d410
add esp, 0xc
test eax, eax
jne 0x100f9fdd
mov esi, dword [ebp + 4]
lea eax, [esi + 8]
cmp eax, 0x20
jb 0x100f9fdd
add esi, 0xffffffe8
lea eax, [ebp + 0x20]
cmp esi, 2
jb 0x100f9fbb
nop
mov cl, byte [eax + 1]
sub esi, 2
mov ch, byte [eax]
add eax, 2
movzx edi, cl
add edi, edi
mov byte [esp + 0x13], ch
test ch, ch
jns 0x100f9ef4
cmp esi, 2
jb 0x100f9fdd
mov cl, byte [eax + 1]
mov bl, byte [eax]
add eax, 2
movzx edx, cl
shl edx, 8
movzx ecx, bl
mov ebx, dword [esp + 0x14]
add edx, ecx
mov ch, byte [esp + 0x13]
shl edx, 9
add edi, edx
sub esi, 2
cmp esi, edi
jb 0x100f9fdd
cmp dword [esp + 0x1c], 0
je 0x100f9faa
mov cl, ch
and cl, 0x3f
cmp cl, 0x2f
jne 0x100f9faa
mov edx, eax
or ebx, 0xffffffff
sub edx, dword [esp + 0x18]
sub edx, 2
sar edx, 1
test ch, 0x40
jne 0x100f9fdd
lea ecx, [edi - 2]
cmp ecx, 2
ja 0x100f9fdd
test edx, edx
je 0x100f9f51
nop dword [eax]
movzx ecx, word [ebp]
lea ebx, [ebx + ebx*2]
add ebx, ecx
lea ebp, [ebp + 2]
sub edx, 1
jne 0x100f9f40
movzx edx, byte [eax]
cmp edi, 4
jne 0x100f9f82
movzx ecx, bl
cmp edx, ecx
jne 0x100f9fdd
mov cl, byte [eax + 1]
mov edx, ebx
shr edx, 8
cmp cl, dl
jne 0x100f9fdd
mov cl, byte [eax + 2]
mov edx, ebx
shr edx, 0x10
cmp cl, dl
jne 0x100f9fdd
mov cl, byte [eax + 3]
shr ebx, 0x18
add eax, edi
jmp 0x100f9f99
mov ecx, ebx
shr ecx, 0x10
xor ebx, ecx
movzx ecx, bl
cmp edx, ecx
jne 0x100f9fdd
mov cl, byte [eax + 1]
shr ebx, 8
add eax, 2
cmp cl, bl
jne 0x100f9fdd
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
inc ebx
mov dword [esp + 0x14], ebx
sub esi, edi
add eax, edi
cmp esi, 2
jae 0x100f9eb0
mov edi, dword [esp + 0x1c]
test esi, esi
jne 0x100f9fdd
test edi, edi
je 0x100f9fd0
test dword [ebp + 0x18], 0x10000000
je 0x100f9fd0
test ebx, ebx
je 0x100f9fdd
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret
Function at 0x100fc200
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101833b5
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x101e6040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp + 0x1c]
xorps xmm0, xmm0
push ecx
movq qword [ebp - 0x20], xmm0
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], 0
push 0x400
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.10048fa0
push 0x400
mov dword [ebp - 4], 0
mov edi, dword [ebp - 0x20]
push edi
push ecx
push 0x20
push dword [ebp + 8]
mov ecx, ebx
call fcn.100fb5c0
add esp, 0x14
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
movq qword [ebp - 0x2c], xmm0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
push 0
push 0x100
mov dword [ebp - 0x28], 0
call fcn.100950c0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x38]
push 0
push 0x400000
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.100950c0
mov ebx, dword [ebp - 0x2c]
xor esi, esi
mov eax, esi
mov ecx, esi
shr eax, 2
and ecx, 3
lea edx, [ebx + eax*4]
shl ecx, 3
movsx eax, byte [edi + esi]
inc esi
movzx eax, al
shl eax, cl
add dword [edx], eax
cmp esi, 0x400
jl 0x100fc2e8
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], 0x4000
nop dword [eax]
mov edi, eax
mov ecx, 0x100
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.100fbd60
mov eax, dword [ebp - 0x3c]
add eax, 0x400
sub dword [ebp - 0x40], 1
mov dword [ebp - 0x3c], eax
jne 0x100fc320
mov edi, dword [ebp - 0x38]
mov esi, 0x4000
nop dword [eax + eax]
mov eax, dword [ebx + 0x3c0]
xor edx, edx
and eax, 0x3fff
shl eax, 0xa
add eax, edi
mov ecx, dword [eax]
lea eax, [eax + 4]
xor dword [ebx + edx*4], ecx
inc edx
cmp edx, 0x100
jl 0x100fc362
mov ecx, ebx
call fcn.100fbd60
sub esi, 1
jne 0x100fc350
mov esi, dword [ebp - 0x20]
xor edx, edx
mov eax, edx
mov ecx, edx
shr eax, 2
and ecx, 3
shl ecx, 3
mov eax, dword [ebx + eax*4]
shr eax, cl
mov byte [esi + edx], al
inc edx
cmp edx, 0x400
jl 0x100fc384
push 0
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 2
call fcn.100950c0
push 0
push 0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 3
call fcn.100950c0
push 0x20
push dword [ebp - 0x44]
push ecx
mov ecx, dword [ebp - 0x48]
push 0x400
push esi
call fcn.100fb5c0
add esp, 0x14
cmp dword [ebp - 0x1c], 0
jbe 0x100fc3eb
sub esi, dword [ebp - 0x18]
push esi
call fcn.10154f5a
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10151433
mov esp, ebp
pop ebp
ret
Function at 0x100fc410
Capabilities:
Create new key via cryptacquirecontext
Generate random numbers via winapi

Disassembly:
sub esp, 8
mov eax, dword [0x101e6040]
xor eax, esp
mov dword [esp + 4], eax
push esi
push 0xf0000000
push 1
push 0
push 0
lea eax, [esp + 0x14]
mov esi, ecx
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x100fc476
push esi
push 0x20
push dword [esp + 0xc]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x100fc476
push 0
push dword [esp + 8]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov al, byte [esi]
cmp al, 0x7a
je 0x100fc462
cmp al, 0x37
jne 0x100fc466
xor al, 0x80
mov byte [esi], al
mov ecx, dword [esp + 8]
pop esi
xor ecx, esp
call fcn.10151433
add esp, 8
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CryptGenRandom:_error__d_n
push 2
call fcn.1015d37f
add esp, 4
push eax
call fcn.100032c0
add esp, 0xc
mov ecx, str.key_generation_failed
call fcn.100d7670
int3
Function at 0x10108970
Capabilities:
Encode data using xor

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
mov dword [esp + 4], edx
push edi
mov edi, dword [esp + 0x14]
test esi, esi
je 0x101089a0
test dl, 7
je 0x1010899c
movzx eax, byte [edx]
inc edx
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [edi + eax*4]
sub esi, 1
jne 0x10108983
mov dword [esp + 8], edx
cmp esi, 8
jb 0x10108a2e
push ebx
push ebp
mov ebp, esi
shr ebp, 3
xor ecx, dword [edx]
sub esi, 8
mov ebx, dword [edx + 4]
mov eax, ecx
shr eax, 8
movzx edx, al
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov edx, dword [edi + edx*4 + 0x1800]
xor edx, dword [edi + eax*4 + 0x1400]
mov eax, ebx
shr eax, 8
movzx eax, al
xor edx, dword [edi + eax*4 + 0x800]
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor edx, dword [edi + eax*4 + 0x400]
mov eax, ecx
shr eax, 0x18
xor edx, dword [edi + eax*4 + 0x1000]
movzx eax, cl
xor edx, dword [edi + eax*4 + 0x1c00]
movzx eax, bl
shr ebx, 0x18
xor edx, dword [edi + eax*4 + 0xc00]
xor edx, dword [edi + ebx*4]
mov ecx, edx
mov edx, dword [esp + 0x10]
add edx, 8
mov dword [esp + 0x10], edx
sub ebp, 1
jne 0x101089b0
pop ebp
pop ebx
test esi, esi
je 0x10108a48
movzx eax, byte [edx]
lea edx, [edx + 1]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [edi + eax*4]
sub esi, 1
jne 0x10108a32
pop edi
mov eax, ecx
pop esi
pop ecx
ret 8