joyce8/EMBER2024-capa huggingface dataset:
Function at 0x428de0
Capabilities:
Check mutex on windows
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [ebp + 8]
mov dword [esp], esi
call sym._strlen
mov ebx, eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
lea eax, [ebx + 0x40]
lea ecx, [ebx + 0x30]
shr eax, 4
mov dword [ebp - 0x20], ecx
shl eax, 4
call fcn.00416270
mov edx, 0x326d
sub esp, eax
lea eax, [esp + 0x1b]
mov dword [esp + 8], ebx
lea edi, [esp + 0xc]
mov dword [esp + 4], esi
mov dword [esp], eax
mov word [esp + 0x18], dx
mov dword [esp + 0xc], 0x2d636367
mov dword [esp + 0x10], 0x656d6873
mov dword [esp + 0x14], 0x64742d6d
mov byte [esp + 0x1a], 0x2d
call sym._memcpy
lea eax, [ebx + 0x10]
add eax, edi
mov dword [eax], 0x61616161
mov dword [eax + 4], 0x61616161
mov dword [eax + 8], 0x61616161
mov dword [eax + 0xc], 0x61616161
mov dword [eax + 0x10], 0x61616161
mov dword [eax + 0x14], 0x61616161
mov dword [eax + 0x18], 0x61616161
mov dword [eax + 0x1c], 0x61616161
mov byte [esp + ebx + 0x3c], 0
mov byte [esp + ebx + 0x1b], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov byte [edi + ebx + 0xf], 0x2d
sub esp, 0xc
mov dword [ebp - 0x24], eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub esp, 8
test eax, eax
je 0x428ed4
int3
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_FindAtomA]
sub esp, 4
test ax, ax
je 0x428f20
mov ecx, dword [ebp - 0x1c]
movzx eax, ax
mov edx, edi
mov dword [esp], ecx
mov ecx, dword [ebp - 0x20]
call sym._get_ptr_from_atom_1
mov ebx, eax
mov edi, dword [ebp - 0x24]
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
sub esp, 4
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0xc]
add ebx, edi
mov dword [esp], eax
call sym._malloc
mov edx, 0x20
mov esi, eax
lea esi, [esi]
bt esi, edx
jae 0x428f46
mov eax, edx
neg eax
mov byte [ebx + eax + 0x30], 0x41
sub edx, 1
jne 0x428f38
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_AddAtomA]
sub esp, 4
test ax, ax
jne 0x428f5d
int3
mov ecx, dword [ebp - 0x1c]
movzx eax, ax
mov edx, edi
mov dword [esp], ecx
mov ecx, dword [ebp - 0x20]
call sym._get_ptr_from_atom_1
mov ebx, eax
cmp esi, eax
je 0x428f83
mov dword [esp], esi
call sym._free
jmp 0x428efa
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], 0
mov dword [esp], ebx
mov dword [esp + 8], eax
call sym._memset
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x428efa
mov dword [esp], ebx
call dword [ebp + 0x10]
jmp 0x428efa
Function at 0x4cf820
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
lea eax, [esp + 0x60]
mov dword [esp + 0x34], sym.___gxx_personality_sj0
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], 0x4d4cbc
mov dword [esp + 0x40], 0x4cf91e
mov dword [esp + 0x44], esp
call dbg._Unwind_SjLj_Register
mov eax, dword [esp + 0x80]
mov dword [esp + 4], 0
lea ecx, [esp + 0x5f]
mov dword [esp + 0x20], 0xffffffff
mov dword [esp], eax
call sym.std::istream::sentry::sentry_std::istream__bool_
sub esp, 8
cmp byte [esp + 0x5f], 0
je 0x4cf8b9
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x80]
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
mov ecx, dword [ebx + eax + 0x78]
mov eax, dword [ecx + 8]
cmp dword [ecx + 0xc], eax
jbe 0x4cf8d8
movzx edx, byte [eax]
add eax, 1
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x84]
mov byte [eax], dl
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [esp + 0x80]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x20], 1
call eax
cmp eax, 0xffffffff
jne 0x4cf91a
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
mov eax, dword [eax]
add ecx, dword [eax - 0xc]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x20], 0xffffffff
or eax, 6
mov dword [esp], eax
call method.std::basic_ios_char__std::char_traits_char___.clear_std::_Ios_Iostate_
sub esp, 4
jmp 0x4cf8b9
mov edx, eax
jmp 0x4cf8b0
Function at 0x4015ad
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x44807c]
jne 0x4015b7
repz ret
jmp fcn.00401eac

Function at 0x406e0c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x44807c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.004044f4
and dword [ebp - 0x14], 0
cmp dword [0x44ad8c], 0
mov dword [ebp - 0x18], eax
jne 0x406ebf
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x406f67
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x406f67
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x44ad8c], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x44ad90], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x44ad94], eax
call edi
push eax
call esi
mov dword [0x44ad9c], eax
test eax, eax
je 0x406ebf
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x44ad98], eax
mov eax, dword [0x44ad98]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x406f18
cmp dword [0x44ad9c], ecx
je 0x406f18
push eax
call esi
push dword [0x44ad9c]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x406f18
test ebx, ebx
je 0x406f18
call edi
test eax, eax
je 0x406f0f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x406f0f
test byte [ebp - 8], 1
jne 0x406f18
or dword [ebp + 0x10], 0x200000
jmp 0x406f4b
mov eax, dword [0x44ad90]
cmp eax, dword [ebp - 0x18]
je 0x406f4b
push eax
call esi
test eax, eax
je 0x406f4b
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x406f4b
mov eax, dword [0x44ad94]
cmp eax, dword [ebp - 0x18]
je 0x406f4b
push eax
call esi
test eax, eax
je 0x406f4b
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x44ad8c]
call esi
test eax, eax
je 0x406f67
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x406f69
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004015ad
leave
ret
Function at 0x408da0
Capabilities:
Set console window title

Disassembly:
sub esp, 0x40c
mov eax, dword [0x44807c]
xor eax, esp
mov dword [esp + 0x408], eax
mov eax, dword [0x455184]
push ebx
mov ebx, dword [0x454eac]
push edi
mov edi, eax
cmp eax, 0x5dd
jne 0x408dec
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc]
push ecx
push 0
lea edx, [esp + 0x1c]
push edx
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_ReadEventLogW]
mov eax, dword [0x455184]
push esi
mov esi, dword [0x448e50]
cmp eax, 0x930
jne 0x408e07
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
mov eax, dword [0x455184]
mov dword [0x454ea8], esi
pop esi
cmp eax, 0x114e
jne 0x408e30
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
push 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov eax, dword [0x455184]
cmp eax, 0x2f
jne 0x408e4f
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoA]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextVolumeMountPointA]
push edi
push ebx
call fcn.00408c60
mov ecx, dword [esp + 0x418]
add esp, 8
pop edi
pop ebx
xor ecx, esp
call fcn.004015ad
add esp, 0x40c
ret
Function at 0x10213c0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x1a000]
push edi
jmp 0x10213da
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x10213e1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x10213d0
mov eax, 1
add ebx, ebx
jne 0x10213f3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x10213e8
jne 0x1021404
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x10213e8
xor ecx, ecx
sub eax, 3
jb 0x1021418
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x102148a
mov ebp, eax
add ebx, ebx
jne 0x1021423
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x1021430
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x1021454
inc ecx
add ebx, ebx
jne 0x1021440
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x1021435
jne 0x1021451
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x1021435
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x1021474
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x1021465
jmp 0x10213d6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x1021474
add edi, ecx
jmp 0x10213d6
pop esi
mov edi, esi
mov ecx, 0x11b
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x1021492
cmp byte [edi], 4
jne 0x1021492
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 0x1021497
lea edi, [esi + 0x1f000]
mov eax, dword [edi]
or eax, eax
je 0x102150f
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x216ec]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x21780]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x10214c4
mov ecx, edi
jns 0x10214f3
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 + 0x21788]
or eax, eax
je 0x1021509
mov dword [ebx], eax
add ebx, 4
jmp 0x10214e1
call dword [esi + 0x21784]
mov ebp, dword [esi + 0x2178c]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x227]
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 0x1021543
sub esp, 0xffffff80
jmp 0x1006ee5
Function at 0x401010
Capabilities:
Terminate process

Disassembly:
mov eax, ecx
call 0x401018
rcl ah, 0x1c
mov edx, esi
inc eax
pop ebp
imul eax, eax
call fcn.004015e4
add cl, byte [ecx + 0x4d8bfc45]
cld
add ecx, 3
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
add edx, 4
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
add eax, 5
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
add ecx, 6
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
add edx, 7
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
add eax, 8
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
add ecx, 9
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
add edx, 0xa
mov dword [ebp - 4], edx
push 0x4e20
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x401fb0
Capabilities:
Delete file

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [sym.imp.MSVCRT.dll_fopen]
push ebp
mov ebp, dword [sym.imp.MSVCRT.dll_fclose]
push esi
push edi
mov edi, dword [sym.imp.MSVCRT.dll_fscanf]
mov dword [esp + 0x14], ecx
push 0x4400a4
push str.C:input.txt
call ebx
add esp, 8
mov esi, eax
lea eax, [esp + 0x10]
push eax
push 0x440090
push esi
call edi
add esp, 0xc
cmp eax, 0xffffffff
jne 0x401fde
push esi
call ebp
mov eax, dword [esp + 0x14]
add esp, 4
test eax, eax
je 0x401fcd
push str.C:input.txt
call dword [sym.imp.MSVCRT.dll_remove]
mov esi, dword [esp + 0x14]
mov ecx, dword [0x44004c]
push esi
push ecx
push 0x40404c
call fcn.00401ed0
mov edx, dword [0x44004c]
mov ecx, dword [esp + 0x24]
add esp, 0x10
push esi
push edx
push 0x40404c
call fcn.00401f20
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret

Function at 0x414b40
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0xe000]
push edi
or ebp, 0xffffffff
jmp 0x414b62
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x414b69
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x414b58
mov eax, 1
add ebx, ebx
jne 0x414b7b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x414b70
jne 0x414b8c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x414b70
xor ecx, ecx
sub eax, 3
jb 0x414ba0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x414c12
mov ebp, eax
add ebx, ebx
jne 0x414bab
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x414bb8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x414bdc
inc ecx
add ebx, ebx
jne 0x414bc8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x414bbd
jne 0x414bd9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x414bbd
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x414bfc
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x414bed
jmp 0x414b5e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x414bfc
add edi, ecx
jmp 0x414b5e
pop esi
mov edi, esi
mov ecx, 0x43b
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x414c1a
cmp byte [edi], 0
jne 0x414c1a
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 0x414c1f
lea edi, [esi + 0x12000]
Function at 0x422a7d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x422a8c
pop dword [ebp - 0x4c]
mov eax, 0x422a8c
sub dword [ebp - 0x4c], eax
push 0x40
push 0x1000
push 0x3ce4b
push 0
mov eax, 0xd85ac43f
add eax, 0x27e78dd9
add eax, dword [ebp - 0x4c]
call dword [eax]
mov ecx, 0x1d11a8da
sub ecx, 0x1d116456
mov edx, eax
mov esi, 0x3183e6eb
sub esi, 0x314092eb
add esi, dword [ebp - 0x4c]
mov ebx, 0x502c6f80
add ebx, 0xa890065
mov edi, dword [esi]
add dword [ebp - 0x3c], 0x7ac773cb
xor edi, ebx
sub dword [ebp - 0x2c], edx
mov dword [edx], edi
xor dword [ebp - 0x18], 0xbaf65a2c
add edx, 0x9347f035
add edx, 0x6cb80fcf
add esi, 0x9925aa77
sub esi, 0x9925aa73
loop 0x422ae6
add eax, 0x104e3
mov ebx, eax
add eax, 0xa7bf8f5a
sub eax, 0xa7bf8f55
mov ecx, 0x88b00020
add ecx, 0x778fffe0
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret
Function at 0x10008ec6
Capabilities:
Set registry value

Disassembly:
push 4
lea eax, [esp + 0xc]
push eax
push 4
push 0
push dword [esp + 0x14]
push dword [ecx]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
ret 8

Function at 0x10008f28
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 8]
push ebx
mov ebx, ecx
test edx, edx
jne 0x10008f38
push 0xd
pop eax
jmp 0x10008f6e
push ebp
push esi
push edi
xor esi, esi
mov edi, edx
mov ecx, edi
lea ebp, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10008f44
sub ecx, ebp
lea eax, [ecx + 1]
add edi, eax
add esi, eax
cmp eax, 1
jne 0x10008f3f
push esi
push edx
push 7
push 0
push dword [esp + 0x24]
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
pop edi
pop esi
pop ebp
pop ebx
ret 8

Function at 0x1000b667
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [ebx]
add dword [ebp - 0x14], ebx
add edx, esi
xor dword [ebp - 0x20], ebx
mov dword [edi], edx
add dword [ebp - 0x18], esi
add edi, 0x177ddefd
sub edi, 0x177ddef9
add ebx, 4
loop 0x1000b65d
add eax, 0x14ecf
mov ebx, eax
invalid
dec edx
jecxz 0x1000b691
Function at 0x431000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40915c
mov ecx, 0x1da17ed6
nop
nop
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x43104e
nop
nop
nop
xor dword [eax], ecx
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x431024
nop
nop
nop
mov eax, section..reloc
nop
mov ebx, 0x42f3f8
mov ecx, 0x75640c7d
nop
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x431084
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x43106c
nop
nop
nop
nop
nop
popal
nop
jmp 0x401219
Function at 0x50d71a
Capabilities:
Encode data using xor

Disassembly:
sbb ebp, ebx
lea edi, [0xf5f39e8d]
add dh, al
xchg ah, dl
test ah, 0x4b
movsx eax, dx
add ebp, edx
dec eax
imul ecx, esi
js 0x50d739
mov ecx, esi
mov ecx, edi
cmp esi, ebx
dec dh
mov ah, dh
lea esi, [0x64a0ed13]
test al, dl
imul ebp, ecx
inc edi
mov bl, dl
movzx eax, bp
call 0x50d757
sbb bh, ah
dec edx
imul edx, esi
dec bl
inc ecx
xchg ch, cl
xor eax, 0x511c
mov dh, 0xf7
pop ebx
or dl, 0xf0
movzx ecx, bx
imul eax, ecx, 0xed616c5a
movsx eax, dl
push 0xf1ed53
push edx
add eax, ebp
mov dl, cl
sub edi, edx
dec ebp
inc dl
push ebp
imul edx, esi, 0x5ece2112
lea edx, [0xa4283dcb]
lea ecx, [0xe493bd6e]
imul esi, esi
dec ecx
lea ebp, [0x1e78cd7e]
movzx ecx, cx
mov al, 0xc1
dec esi
mov esi, 0xb0f46a19
imul edx, esi, 0x2bd90d4c
add ebx, 0xab10c
sub eax, 0xcfc3eb35
or eax, 0x79bbe542
mov dh, 8
sub ebx, 0xa9831
imul eax, ebx
mov edx, 0x67afbc36
imul edx, edi
movsx edx, ax
dec edi
xchg dl, ch
sub dh, al
mov ah, 0x6a
mov esi, esi
add ebp, 0x31f5
mov ecx, edi
test eax, edi
add ebp, 0x6261
mov ch, dh
movzx edx, ax
push edi
mov dl, dh
add ch, bl
lea ebp, [0x31bf02d0]
push eax
push edi
lea edi, [0x1d6360df]
push ebx
mov edx, ecx
dec edi
movsx edx, al
test ebp, eax
movsx ecx, dl
test al, 0x89
dec edx
inc ebp
cmp esi, 0x30bb
sub edx, edx
mov al, 1
test ah, 0xa7
imul esi, ebp, 0x6afb9c14
mov ecx, eax
inc eax
xor al, 0x69
add edx, 0xfffffbe4
xchg eax, ebp
add edx, 0x41d
xchg ch, ah
dec edi
imul ecx, eax, 0xecd31df1
test ch, 0x14
cmp edx, 0x214
jl 0x50d830
mov ecx, 0x214c2778
ret
Function at 0x10001720
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov esi, dword [ebp + 8]
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_strlen]
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x10001778
cmp byte [esi + ebx - 1], 0xa
je 0x1000174c
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x24]
xchg dword [0x10007084], eax
mov dword [esp], 2
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_fwrite]
add esp, 0x10
pop ebx
pop esi
pop ebp
ret
Function at 0x10001cd0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xe0
mov edi, dword [0x10007094]
mov esi, dword [ebp + 8]
test edi, edi
je 0x10001e90
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call dword [0x10007094]
movzx eax, al
bt eax, esi
jae 0x10001ef0
mov ecx, dword [0x10007084]
xor eax, eax
mov edx, dword fs:[0x18]
cmp dword [edx + 0x24], ecx
je 0x10001d95
test byte [0x10003438], 8
jne 0x10001e30
lea ebx, [ebp - 0xd4]
mov edi, ebx
test byte [0x10003448], 8
jne 0x10001de0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x24]
mov dword [esp + 4], str._04x:
mov dword [esp], edi
mov dword [esp + 8], eax
call dbg.sprintf
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x10001d64
cmp esi, 3
jbe 0x10001da0
mov dword [esp], 2
call dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [esp], ebx
mov esi, eax
call dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp + 0xc], esi
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_fwrite]
add esp, 0xe0
pop ebx
pop esi
pop edi
pop ebp
ret
add eax, edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 8], str._s:_s:_s
mov dword [esp], eax
mov dword [esp + 0x14], edi
mov edi, dword [ebp + 0xc]
lea edx, [edi + 1]
mov dword [esp + 0x10], edx
mov edx, dword [esi*4 + 0x10005240]
mov dword [esp + 0xc], edx
mov edx, ebx
sub edx, eax
add edx, 0xc8
mov dword [esp + 4], edx
call sym._snprintf.constprop.0
jmp 0x10001d64
mov ecx, dword [0x10007094]
test ecx, ecx
je 0x10001ed0
mov dword [esp], 0x10003448
call dword [0x10007094]
test al, 8
je 0x10001d3b
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x20]
mov dword [esp], edi
mov dword [esp + 4], str._04x:
mov dword [esp + 8], eax
call dbg.sprintf
add edi, eax
jmp 0x10001d3b
mov ebx, dword [0x10007094]
test ebx, ebx
je 0x10001eb0
mov dword [esp], 0x10003438
call dword [0x10007094]
test al, 8
je 0x10001d26
call dword [sym.imp.kernel32.dll_GetTickCount]
mov edx, 0x10624dd3
lea ebx, [ebp - 0xd4]
mov dword [esp + 4], str._3u._03u:
mov ecx, eax
mul edx
mov dword [esp], ebx
shr edx, 6
imul eax, edx, 0x3e8
mov dword [esp + 8], edx
sub ecx, eax
mov dword [esp + 0xc], ecx
call dbg.sprintf
lea edi, [ebx + eax]
jmp 0x10001d2e
mov ecx, dbg.fallback__wine_dbg_get_channel_flags
mov edx, str.__wine_dbg_get_channel_flags
mov eax, 0x10007094
call sym._load_func.part.0
jmp 0x10001ced
mov ecx, dbg.fallback__wine_dbg_get_channel_flags
mov edx, str.__wine_dbg_get_channel_flags
mov eax, 0x10007094
call sym._load_func.part.0
jmp 0x10001e3a
mov ecx, dbg.fallback__wine_dbg_get_channel_flags
mov edx, str.__wine_dbg_get_channel_flags
mov eax, 0x10007094
call sym._load_func.part.0
jmp 0x10001dee
mov eax, 0xffffffff
jmp 0x10001d95
Function at 0x401c57
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
pushal
call 0x401c66
pop dword [ebp - 0x14]
mov eax, 0x44b3c9b0
sub eax, 0x4473ad4a
sub dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 0xcc304d6c
sub dword [ebp - 0x24], 0x7dde0821
mov dword [ebp - 0x20], 0xfd78ba00
sub dword [ebp - 0x20], 0xcb456dbb
mov dword [ebp - 0x1c], 0xe3bf325a
sub dword [ebp - 0x1c], 0x9772ee2c
mov dword [ebp - 0x18], 0xf262ee20
sub dword [ebp - 0x18], 0xf262ee20
lea eax, [ebp - 0x24]
push eax
mov eax, 0xe68aa6cc
add eax, 0x19b58988
add eax, dword [ebp - 0x14]
call dword [eax]
mov dword [ebp - 0x24], 0x7f9c59c1
sub dword [ebp - 0x24], 0xb29f06b
mov dword [ebp - 0x20], 0x2739c13d
add dword [ebp - 0x20], 0x1a32a038
mov dword [ebp - 0x1c], 0xf4e6a994
sub dword [ebp - 0x1c], 0x91773d28
mov dword [ebp - 0x18], 0x9f18b212
add dword [ebp - 0x18], 0x60e74dee
lea ebx, [ebp - 0x24]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x14]
call dword [eax]
push 0x40
push 0x1000
push 0x33b82
push 0
call eax
mov ecx, 0x78d82cf6
sub ecx, 0x78d7f002
xor edx, edx
add edx, eax
mov ebx, 0x407000
add ebx, dword [ebp - 0x14]
mov edi, 0x96049337
add edi, 0xeb8dbcb1
xor dword [ebp - 0xc], esi
mov esi, dword [ebx]
sub esi, edi
xor dword [ebp - 8], ebx
mov dword [edx], esi
mov dword [ebp - 8], 0x1157a55f
add edx, 4
add ebx, 0x26ec6d62
add ebx, 0xd91392a2
loop 0x401d7f
add eax, 0xe6a3
mov ebx, eax
add eax, 5
mov ecx, 0x400000
add ecx, dword [ebp - 0x14]
call ebx
leave
ret

Function at 0x401fb2
Capabilities:
Delete file
Move file

Disassembly:
mov ecx, 0x404f28
jmp fcn.0040170c

Function at 0x401ff6
Capabilities:
Check if file exists
Delete directory
Get file attributes

Disassembly:
push esi
mov esi, 0x404f28
push esi
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x402013
push esi
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
test eax, eax
je 0x402018
push 1
pop eax
pop esi
ret
call fcn.00401fb2
pop esi
ret