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

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffd0
mov dword [esp], edx
mov ebx, eax
lea edx, [esp + 0x20]
mov eax, dword [esp]
mov ecx, 0x10
call fcn.00402934
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 4]
dec eax
test eax, eax
jl 0x49d038
inc eax
mov dword [esp + 0x1c], eax
lea eax, [ebx + 8]
mov ebx, eax
mov edx, dword [esp + 0xc]
mov ecx, dword [ebx]
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + 4]
add edx, eax
add eax, edx
mov edi, edx
shr edi, 7
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 0xd
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, esi
shr edi, 0x11
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 9
xor eax, edi
add edx, eax
add eax, edx
mov edi, edx
shr edi, 3
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 7
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, eax
shr edi, 0xf
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 0xb
xor eax, edi
mov edi, edx
mov edx, esi
mov esi, edi
mov edi, ecx
mov ecx, eax
mov eax, edi
add edx, eax
add eax, edx
mov edi, edx
shr edi, 7
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 0xd
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, esi
shr edi, 0x11
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 9
xor eax, edi
add edx, eax
add eax, edx
mov edi, edx
shr edi, 3
xor edx, edi
add ecx, edx
add edx, ecx
mov edi, ecx
shl edi, 7
xor ecx, edi
add esi, ecx
add ecx, esi
mov edi, eax
shr edi, 0xf
xor esi, edi
add eax, esi
add esi, eax
mov edi, eax
shl edi, 0xb
xor eax, edi
xor edx, dword [esp + 0x14]
xor ecx, edx
mov dword [esp + 4], ecx
xor esi, dword [esp + 0x18]
xor eax, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
add ebx, 8
dec dword [esp + 0x1c]
jne 0x49cf2e
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov edx, dword [esp]
lea eax, [esp + 0x20]
mov ecx, 0x10
call fcn.00402934
add esp, 0x30
pop edi
pop esi
pop ebx
ret
Function at 0x49d070
Capabilities:
Encrypt data using des

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff74
mov byte [esp + 8], cl
mov dword [esp + 4], edx
mov dword [esp], eax
mov ecx, 0x38
mov esi, 0x4a8e44
lea eax, [esp + 0x1c]
movzx edi, byte [esi]
mov edx, edi
and edx, 0x80000007
jns 0x49d0a5
dec edx
or edx, 0xfffffff8
inc edx
test edi, edi
jns 0x49d0ac
add edi, 7
sar edi, 3
mov ebx, dword [esp]
mov bl, byte [ebx + edi]
and bl, byte [edx + 0x4a8ebc]
setne dl
mov byte [eax], dl
inc eax
inc esi
dec ecx
jne 0x49d093
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, 0x4a8eac
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
xor ecx, ecx
lea eax, [esp + 0x54]
movzx edi, byte [esi]
add edi, ecx
cmp edi, 0x1c
jge 0x49d0f7
mov dl, byte [esp + edi + 0x1c]
mov byte [eax], dl
mov dl, byte [esp + edi + 0x38]
mov byte [eax + 0x1c], dl
jmp 0x49d103
mov dl, byte [esp + edi]
mov byte [eax], dl
mov dl, byte [esp + edi + 0x1c]
mov byte [eax + 0x1c], dl
inc ecx
inc eax
cmp ecx, 0x1c
jne 0x49d0de
lea eax, [esp + 9]
xor ecx, ecx
mov edx, 8
call fcn.00403254
xor ecx, ecx
mov ebp, 0x4a8e7c
xor eax, eax
mov al, byte [ebp]
cmp byte [esp + eax + 0x54], 0
je 0x49d152
mov eax, ecx
mov ebx, 6
cdq
idiv ebx
mov edi, eax
mov eax, ecx
mov ebx, 6
cdq
idiv ebx
xor eax, eax
mov al, byte [edx + 0x4a8ebc]
shr eax, 2
or byte [esp + edi + 9], al
inc ecx
inc ebp
cmp ecx, 0x30
jne 0x49d121
cmp byte [esp + 8], 0
je 0x49d1bd
xor eax, eax
mov al, byte [esp + 9]
shl eax, 0x18
xor edx, edx
mov dl, byte [esp + 0xb]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esp + 0xd]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esp + 0xf]
or eax, edx
mov edx, dword [esp + 0x18]
mov dword [edx], eax
xor eax, eax
mov al, byte [esp + 0xa]
shl eax, 0x18
xor edx, edx
mov dl, byte [esp + 0xc]
shl edx, 0x10
or eax, edx
xor edx, edx
mov dl, byte [esp + 0xe]
shl edx, 8
or eax, edx
xor edx, edx
mov dl, byte [esp + 0x10]
or eax, edx
mov edx, dword [esp + 0x18]
mov dword [edx + 4], eax
jmp 0x49d230
xor edx, edx
mov dl, byte [esp + 9]
shl edx, 0x18
xor ecx, ecx
mov cl, byte [esp + 0xb]
shl ecx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0xd]
shl ecx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0xf]
or edx, ecx
mov eax, dword [esp + 0x14]
add eax, eax
mov ecx, eax
inc ecx
mov ebx, 0x1f
sub ebx, ecx
mov ecx, dword [esp + 4]
mov dword [ecx + ebx*4], edx
xor edx, edx
mov dl, byte [esp + 0xa]
shl edx, 0x18
xor ecx, ecx
mov cl, byte [esp + 0xc]
shl ecx, 0x10
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0xe]
shl ecx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [esp + 0x10]
or edx, ecx
mov ecx, 0x1f
sub ecx, eax
mov eax, dword [esp + 4]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x14]
add dword [esp + 0x18], 8
inc esi
cmp dword [esp + 0x14], 0x10
jne 0x49d0d8
mov eax, dword [esp + 4]
mov dl, byte [esp + 8]
mov byte [eax + 0x80], dl
add esp, 0x8c
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x49d260
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff5c
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov dl, byte [ebp + 8]
mov byte [eax], dl
mov edx, ebx
mov eax, 0x10
call fcn.0049ce94
mov edx, eax
mov eax, 4
call fcn.0049ce9c
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x24], 0x4a7dec
mov eax, dword [ebp - 4]
add eax, 8
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x24]
mov esi, dword [ecx]
mov ecx, esi
mov ebx, dword [ebp - 8]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xc], esi
mov edi, dword [ebp - 8]
mov edi, dword [edi + 8]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], esi
mov edi, dword [ebp - 8]
mov edi, dword [edi + 0xc]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], esi
mov esi, 8
mov edi, ecx
shl edi, 0xb
xor edx, edi
add dword [ebp - 0xc], edx
add ecx, ebx
mov edi, ebx
shr edi, 2
xor ecx, edi
add dword [ebp - 0x10], ecx
add ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
shl edi, 8
xor ebx, edi
add dword [ebp - 0x14], ebx
mov edi, dword [ebp - 0x10]
add dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x10]
shr edi, 0x10
xor dword [ebp - 0xc], edi
mov edi, dword [ebp - 0xc]
add dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x14]
add dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x14]
shl edi, 0xa
xor dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x10]
add dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x18]
add dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x18]
shr edi, 4
xor dword [ebp - 0x14], edi
add edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
add dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x1c]
shl edi, 8
xor dword [ebp - 0x18], edi
add ecx, dword [ebp - 0x18]
add dword [ebp - 0x1c], edx
mov edi, edx
shr edi, 9
xor dword [ebp - 0x1c], edi
add ebx, dword [ebp - 0x1c]
add edx, ecx
dec esi
jne 0x49d2e0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov edx, dword [ebp - 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 0x1c], edx
add eax, 0x20
add dword [ebp - 0x24], 4
dec dword [ebp - 0x20]
jne 0x49d2ae
cmp byte [ebp + 8], 0
jne 0x49d40f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
dec eax
test eax, eax
jl 0x49d3e4
inc eax
mov dword [ebp - 0x20], 0
mov edx, dword [ebp - 4]
add edx, 8
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 4]
dec ecx
sub ecx, dword [ebp - 0x20]
mov ebx, dword [edx]
mov dword [ebp + ecx*8 - 0xa4], ebx
mov ebx, dword [edx + 4]
mov dword [ebp + ecx*8 - 0xa0], ebx
inc dword [ebp - 0x20]
add edx, 8
dec eax
jne 0x49d3be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
dec eax
test eax, eax
jl 0x49d40f
inc eax
lea edx, [ebp - 0xa4]
mov ebx, dword [ebp - 4]
add ebx, 8
mov ecx, dword [edx]
mov dword [ebx], ecx
mov ecx, dword [edx + 4]
mov dword [ebx + 4], ecx
add ebx, 8
add edx, 8
dec eax
jne 0x49d3fc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x49d564
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff4
mov dword [esp], edx
mov edi, eax
mov ebx, 0x4a8ec4
lea esi, [esp + 4]
lea ecx, [esp + 8]
mov edx, esi
mov eax, dword [esp]
call fcn.0049d418
lea edx, [esp + 8]
mov eax, esi
call fcn.0049d468
mov edx, edi
mov ecx, 8
mov eax, dword [esp + 8]
shr eax, 4
mov edi, dword [esp + 8]
shl edi, 0x1c
or eax, edi
xor eax, dword [edx]
add edx, 4
mov edi, eax
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x600]
xor dword [esi], edi
mov edi, eax
shr edi, 8
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x400]
xor dword [esi], edi
mov edi, eax
shr edi, 0x10
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x200]
xor dword [esi], edi
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4]
xor dword [esi], eax
mov eax, dword [esp + 8]
xor eax, dword [edx]
add edx, 4
mov edi, eax
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x700]
xor dword [esi], edi
mov edi, eax
shr edi, 8
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x500]
xor dword [esi], edi
mov edi, eax
shr edi, 0x10
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x300]
xor dword [esi], edi
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4 + 0x100]
xor dword [esi], eax
mov eax, dword [esi]
shr eax, 4
mov edi, dword [esi]
shl edi, 0x1c
or eax, edi
xor eax, dword [edx]
add edx, 4
mov edi, eax
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x600]
xor dword [esp + 8], edi
mov edi, eax
shr edi, 8
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x400]
xor dword [esp + 8], edi
mov edi, eax
shr edi, 0x10
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x200]
xor dword [esp + 8], edi
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4]
xor dword [esp + 8], eax
mov eax, dword [esi]
xor eax, dword [edx]
add edx, 4
mov edi, eax
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x700]
xor dword [esp + 8], edi
mov edi, eax
shr edi, 8
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x500]
xor dword [esp + 8], edi
mov edi, eax
shr edi, 0x10
and edi, 0x3f
mov edi, dword [ebx + edi*4 + 0x300]
xor dword [esp + 8], edi
shr eax, 0x18
and eax, 0x3f
mov eax, dword [ebx + eax*4 + 0x100]
xor dword [esp + 8], eax
dec ecx
jne 0x49d598
lea edx, [esp + 8]
mov eax, esi
call fcn.0049d4e4
mov ecx, dword [esp]
mov edx, dword [esp + 8]
mov eax, dword [esi]
call fcn.0049d444
add esp, 0xc
pop edi
pop esi
pop ebx
ret
Function at 0x49d744
Capabilities:
Encrypt data using blowfish

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe4
mov esi, eax
lea edi, [esp + 0xc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebp, edx
mov edx, ebp
mov eax, 0x4a7dfc
mov ecx, 0x48
call fcn.00402934
lea edx, [ebp + 0x48]
mov eax, 0x4a7e44
mov ecx, 0x1000
call fcn.00402934
xor edi, edi
mov esi, 0x12
mov dword [esp + 8], ebp
xor edx, edx
mov eax, 4
shl edx, 8
xor ecx, ecx
mov cl, byte [esp + edi + 0xc]
or edx, ecx
inc edi
cmp edi, 0x10
jl 0x49d79f
xor edi, edi
dec eax
jne 0x49d78c
mov eax, dword [esp + 8]
xor dword [eax], edx
add dword [esp + 8], 4
dec esi
jne 0x49d785
xor eax, eax
mov dword [esp], eax
xor eax, eax
mov dword [esp + 4], eax
xor esi, esi
mov edx, esp
mov eax, ebp
mov cl, 1
call fcn.0049d820
mov eax, dword [esp]
mov dword [ebp + esi*4], eax
mov eax, dword [esp + 4]
mov dword [ebp + esi*4 + 4], eax
add esi, 2
cmp esi, 0x11
jle 0x49d7bd
mov edi, 4
mov ebx, ebp
xor esi, esi
mov edx, esp
mov eax, ebp
mov cl, 1
call fcn.0049d820
mov eax, dword [esp]
mov dword [ebx + esi*4 + 0x48], eax
mov eax, dword [esp + 4]
mov dword [ebx + esi*4 + 0x4c], eax
add esi, 2
cmp esi, 0xff
jle 0x49d7e8
add ebx, 0x400
dec edi
jne 0x49d7e6
add esp, 0x1c
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x49d820
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff4
mov byte [esp], cl
mov esi, edx
mov ebx, eax
lea edi, [esp + 1]
mov edx, edi
mov eax, esi
mov ecx, 8
call fcn.00402934
cmp byte [esp], 0
je 0x49d8d3
mov eax, dword [ebx]
xor dword [esi], eax
mov eax, 1
xor edx, edx
mov dl, byte [edi + 3]
mov edx, dword [ebx + edx*4 + 0x48]
xor ecx, ecx
mov cl, byte [edi + 2]
add edx, dword [ebx + ecx*4 + 0x448]
xor ecx, ecx
mov cl, byte [edi + 1]
xor edx, dword [ebx + ecx*4 + 0x848]
xor ecx, ecx
mov cl, byte [edi]
add edx, dword [ebx + ecx*4 + 0xc48]
mov ecx, dword [ebx + eax*4]
xor ecx, dword [esi + 4]
xor edx, ecx
mov dword [esi + 4], edx
xor edx, edx
mov dl, byte [edi + 7]
mov edx, dword [ebx + edx*4 + 0x48]
xor ecx, ecx
mov cl, byte [edi + 6]
add edx, dword [ebx + ecx*4 + 0x448]
xor ecx, ecx
mov cl, byte [edi + 5]
xor edx, dword [ebx + ecx*4 + 0x848]
xor ecx, ecx
mov cl, byte [edi + 4]
add edx, dword [ebx + ecx*4 + 0xc48]
mov ecx, dword [ebx + eax*4 + 4]
xor ecx, dword [esi]
xor edx, ecx
mov dword [esi], edx
add eax, 2
cmp eax, 0x10
jle 0x49d852
mov eax, dword [ebx + 0x44]
xor dword [esi + 4], eax
jmp 0x49d958
mov eax, dword [ebx + 0x44]
xor dword [esi + 4], eax
mov eax, 0x10
xor edx, edx
mov dl, byte [edi + 7]
mov edx, dword [ebx + edx*4 + 0x48]
xor ecx, ecx
mov cl, byte [edi + 6]
add edx, dword [ebx + ecx*4 + 0x448]
xor ecx, ecx
mov cl, byte [edi + 5]
xor edx, dword [ebx + ecx*4 + 0x848]
xor ecx, ecx
mov cl, byte [edi + 4]
add edx, dword [ebx + ecx*4 + 0xc48]
mov ecx, dword [ebx + eax*4]
xor ecx, dword [esi]
xor edx, ecx
mov dword [esi], edx
xor edx, edx
mov dl, byte [edi + 3]
mov edx, dword [ebx + edx*4 + 0x48]
xor ecx, ecx
mov cl, byte [edi + 2]
add edx, dword [ebx + ecx*4 + 0x448]
xor ecx, ecx
mov cl, byte [edi + 1]
xor edx, dword [ebx + ecx*4 + 0x848]
xor ecx, ecx
mov cl, byte [edi]
add edx, dword [ebx + ecx*4 + 0xc48]
mov ecx, dword [ebx + eax*4 - 4]
xor ecx, dword [esi + 4]
xor edx, ecx
mov dword [esi + 4], edx
sub eax, 2
cmp eax, 1
jge 0x49d8de
mov eax, dword [ebx]
xor dword [esi], eax
add esp, 0xc
pop edi
pop esi
pop ebx
ret

Function at 0x49d9dc
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffee8
mov ebx, eax
mov edx, esp
mov eax, ebx
mov ecx, 0x118
call fcn.00402934
xor eax, eax
mov dword [esp], eax
mov esi, 0x4a7cec
lea edi, [esp + 4]
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], 0x55555555
mov dword [esp + 0x10c], 0x55555555
mov dword [esp + 0x110], 0x55555555
mov dword [esp + 0x114], 0x55555555
mov edx, ebx
mov eax, esp
mov ecx, 0x118
call fcn.00402934
add esp, 0x118
pop edi
pop esi
pop ebx
ret
Function at 0x49da58
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffee0
mov edi, ecx
mov ebx, edx
mov dword [esp], eax
lea edx, [esp + 8]
mov eax, dword [esp]
mov ecx, 0x118
call fcn.00402934
dec edi
test edi, edi
jl 0x49db77
inc edi
mov dword [esp + 4], edi
mov esi, ebx
mov al, byte [esi]
mov edx, dword [esp + 8]
xor byte [esp + edx + 0xc], al
inc dword [esp + 8]
cmp dword [esp + 8], 0x100
jne 0x49daa8
xor edx, edx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x10c]
xor byte [esp + edx + 0x110], al
inc dword [esp + 0x10c]
cmp dword [esp + 0x10c], 8
jne 0x49db6c
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
mov ebx, dword [esp + 0x114]
mov eax, dword [esp + 0x110]
mov edi, 4
add edx, eax
add eax, edx
mov ebp, edx
shr ebp, 7
xor edx, ebp
add ecx, edx
add edx, ecx
mov ebp, ecx
shl ebp, 0xd
xor ecx, ebp
add ebx, ecx
add ecx, ebx
mov ebp, ebx
shr ebp, 0x11
xor ebx, ebp
add eax, ebx
add ebx, eax
mov ebp, eax
shl ebp, 9
xor eax, ebp
add edx, eax
add eax, edx
mov ebp, edx
shr ebp, 3
xor edx, ebp
add ecx, edx
add edx, ecx
mov ebp, ecx
shl ebp, 7
xor ecx, ebp
add ebx, ecx
add ecx, ebx
mov ebp, eax
shr ebp, 0xf
xor ebx, ebp
add eax, ebx
add ebx, eax
mov ebp, eax
shl ebp, 0xb
xor eax, ebp
dec edi
jne 0x49daec
mov dword [esp + 0x110], edx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], eax
xor eax, eax
mov dword [esp + 0x10c], eax
inc esi
dec dword [esp + 4]
jne 0x49da8a
mov edx, dword [esp]
lea eax, [esp + 8]
mov ecx, 0x118
call fcn.00402934
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x49dc7c
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
mov esi, eax
mov edi, edx
push ecx
shr ecx, 2
je 0x49dc96
cld
mov eax, dword [edi]
xor dword [esi], eax
add esi, 4
add edi, 4
dec ecx
jne 0x49dc89
pop ecx
and ecx, 3
je 0x49dca5
mov al, byte [edi]
xor byte [esi], al
inc esi
inc edi
dec ecx
jne 0x49dc9c
pop edi
pop esi
ret
Function at 0x49e498
Capabilities:
Encode data using base64

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffff88
mov dword [esp + 4], edx
mov dword [esp], eax
lea eax, [esp + 0x39]
xor ecx, ecx
mov edx, 0x3f
call fcn.00403254
lea edx, [esp + 0xc]
mov ecx, 0x2d
mov eax, dword [esp]
mov ebx, dword [eax]
call dword [ebx + 8]
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x49e61d
mov edi, 1
xor esi, esi
jmp 0x49e55d
mov al, byte [esp + edi + 0xb]
xor edx, edx
mov dl, al
shr edx, 2
and dl, 0x3f
and edx, 0xff
mov dl, byte [edx + 0x4a96cc]
mov byte [esp + esi + 0x39], dl
mov edx, eax
shl edx, 4
xor eax, eax
mov al, byte [esp + edi + 0xc]
shr eax, 4
or dl, al
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x4a96cc]
mov byte [esp + esi + 0x3a], al
mov dl, byte [esp + edi + 0xc]
shl edx, 2
mov al, byte [esp + edi + 0xd]
xor ecx, ecx
mov cl, al
shr ecx, 6
or dl, cl
and dl, 0x3f
and edx, 0xff
mov dl, byte [edx + 0x4a96cc]
mov byte [esp + esi + 0x3b], dl
mov edx, eax
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x4a96cc]
mov byte [esp + esi + 0x3c], al
add edi, 3
add esi, 4
mov eax, dword [esp + 8]
sub eax, 2
cmp edi, eax
jle 0x49e4de
cmp edi, dword [esp + 8]
jg 0x49e603
mov al, byte [esp + edi + 0xb]
xor edx, edx
mov dl, al
shr edx, 2
and dl, 0x3f
and edx, 0xff
mov dl, byte [edx + 0x4a96cc]
mov byte [esp + esi + 0x39], dl
cmp edi, dword [esp + 8]
jne 0x49e5ba
mov edx, eax
shl edx, 4
and dl, 0x30
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x4a96cc]
mov byte [esp + esi + 0x3a], al
mov byte [esp + esi + 0x3b], 0x3d
jmp 0x49e5fb
mov edx, eax
shl edx, 4
and dl, 0x30
xor eax, eax
mov al, byte [esp + edi + 0xc]
shr eax, 4
and al, 0xf
or dl, al
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x4a96cc]
mov byte [esp + esi + 0x3a], al
mov dl, byte [esp + edi + 0xc]
shl edx, 2
and dl, 0x3c
and dl, 0x3f
xor eax, eax
mov al, dl
mov al, byte [eax + 0x4a96cc]
mov byte [esp + esi + 0x3b], al
mov byte [esp + esi + 0x3c], 0x3d
add esi, 4
lea edx, [esp + 0x39]
mov ecx, esi
mov eax, dword [esp + 4]
mov ebx, dword [eax]
call dword [ebx + 0xc]
cmp dword [esp + 8], 0x2d
jge 0x49e4b5
add esp, 0x78
pop edi
pop esi
pop ebx
ret
Function at 0x4a3610
Capabilities:
Terminate process

Disassembly:
push ecx
push edx
push eax
call sub.user32.dll_FindWindowA
push esp
push eax
call sub.user32.dll_GetWindowThreadProcessId
mov eax, dword [esp]
push eax
push 0
push 1
call sub.kernel32.dll_OpenProcess
push 4
push eax
call sub.kernel32.dll_TerminateProcess
pop edx
ret

Function at 0x4a3638
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff7c
push ebx
xor eax, eax
mov dword [ebp - 0x84], eax
xor eax, eax
push ebp
push 0x4a36fd
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [0x4a9a40]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_GetWindow
mov ebx, eax
test ebx, ebx
je 0x4a36e4
mov eax, dword [0x4a9a40]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x30]
je 0x4a36d6
push ebx
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x4a36d6
push 4
push ebx
call sub.user32.dll_GetWindow
test eax, eax
jne 0x4a36d6
push 0x80
lea eax, [ebp - 0x80]
push eax
push ebx
call sub.user32.dll_GetWindowTextA
test eax, eax
je 0x4a36d6
push 0x80
lea eax, [ebp - 0x80]
push eax
push ebx
call sub.user32.dll_GetWindowTextA
lea edx, [ebp - 0x84]
lea eax, [ebp - 0x80]
call fcn.00409914
mov eax, dword [ebp - 0x84]
call fcn.00404d70
mov edx, eax
xor eax, eax
call fcn.004a3610
push 2
push ebx
call sub.user32.dll_GetWindow
mov ebx, eax
test ebx, ebx
jne 0x4a3670
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a3704
lea eax, [ebp - 0x84]
call fcn.004048c0
ret
Function at 0x401055
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push esi
push dword [esp + 0xc]
mov esi, eax
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x40106c
pop esi
ret
push edi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4010a1
push dword [esp + 0x10]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, edi
and esi, 0xf
jbe 0x40109d
cmp edi, eax
jae 0x4010a1
dec esi
movzx ecx, word [edi]
lea edi, [edi + ecx*2 + 2]
jne 0x40108f
cmp edi, eax
jb 0x4010a5
xor eax, eax
jmp 0x4010af
mov ax, word [edi]
neg ax
sbb eax, eax
and eax, edi
pop edi
pop esi
ret

Function at 0x4010ca
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0xa0
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp + 0x74], eax
push 0x9c
lea eax, [ebp - 0x28]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x40110b
xor al, al
jmp 0x401128
cmp dword [ebp - 0x24], 5
jb 0x401107
jbe 0x401117
mov al, 1
jmp 0x401128
xor eax, eax
inc eax
cmp dword [ebp - 0x20], eax
jae 0x401128
cmp word [ebp + 0x6c], 4
sbb al, al
inc al
mov ecx, dword [ebp + 0x74]
xor ecx, ebp
call fcn.00404720
add ebp, 0x78
leave
ret

Function at 0x4015ed
Capabilities:
Create directory
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, eax
push edi
lea ebx, [esi + 0x20]
mov eax, ebx
lea edi, [ebp - 0xc]
call fcn.00401ff1
push dword [eax + 4]
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov eax, dword [ebp - 4]
cmp eax, 0xffffffff
mov edi, dword [ebp - 0xc]
jne 0x401625
mov ecx, dword [edi]
call fcn.00402274
mov edx, edi
call fcn.004021e9
mov eax, dword [ebx]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x401648
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40168e
add esi, 0x1c
mov eax, esi
lea edi, [ebp - 0xc]
call fcn.00401ff1
mov eax, dword [eax + 4]
mov ebx, dword [ebx]
push eax
push 0
push 0x4063c0
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
mov edi, dword [ebp - 0xc]
mov ebx, eax
mov eax, dword [ebp - 4]
neg ebx
sbb bl, bl
inc bl
cmp eax, 0xffffffff
jne 0x401683
mov ecx, dword [edi]
call fcn.00402274
mov edx, edi
call fcn.004021e9
test bl, bl
je 0x401693
or eax, 0xffffffff
jmp 0x4016a7
push dword [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0
push dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret