joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4df630
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
mov byte [ebp - 0x110], 0
push 0x103
push 0
lea eax, [ebp - 0x10f]
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x12c], 0
cmp dword [0x546ed8], 0
jne 0x4df877
call dword [sym.imp.MSVCR80.dll__getpid]
push eax
push str.TerminalServerFlexlmMutex
push 0x5323c8
lea ecx, [ebp - 0x110]
push ecx
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
lea edx, [ebp - 0x110]
push edx
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x4df6f6
xor eax, eax
jmp 0x4df883
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4df712
push 0xffffffffffffffff
mov eax, dword [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [0x546ed8], 0
jne 0x4df85d
call fcn.004df550
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp - 0x130]
sub edx, 4
mov dword [ebp - 0x130], edx
cmp dword [ebp - 0x130], 3
ja case.default.0x4df758
mov eax, dword [ebp - 0x130]
jmp dword [eax*4 + 0x4df894]
push 0x5323d0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x546eec], eax
cmp dword [0x546eec], 0
je 0x4df816
push str.WTSEnumerateSessionsA
mov ecx, dword [0x546eec]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x546ee0], eax
cmp dword [0x546ee0], 0
je 0x4df816
push 0x5323f8
mov edx, dword [0x546eec]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x546ee4], eax
cmp dword [0x546ee4], 0
je 0x4df816
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x128]
push ecx
push 1
push 0
push 0
call dword [0x546ee0]
cmp dword [ebp - 0x128], 0
je 0x4df7f0
mov edx, dword [ebp - 0x128]
cmp dword [edx + 8], 0
jne 0x4df7ff
mov eax, dword [ebp - 0x128]
push eax
call dword [0x546ee4]
jmp 0x4df816
mov ecx, dword [ebp - 0x128]
push ecx
call dword [0x546ee4]
mov dword [0x546edc], 1
mov edx, dword [0x546eec]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x546eec], 0
jmp case.default.0x4df758
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je case.default.0x4df758
mov dword [0x546edc], 1
mov dword [0x546ed8], 1
mov eax, dword [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0x114]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
cmp dword [0x546edc], 0
setne al
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret
Function at 0x4e65d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 0x10]
and ecx, 0xff
mov byte [ebp - 8], cl
mov edx, dword [ebp + 0x10]
sar edx, 8
and edx, 0xff
mov byte [ebp - 7], dl
mov eax, dword [ebp + 0x10]
sar eax, 0x10
and eax, 0xff
mov byte [ebp - 6], al
mov ecx, dword [ebp + 0x10]
sar ecx, 0x18
and ecx, 0xff
mov byte [ebp - 5], cl
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
sub eax, 1
mov dword [ebp + 0xc], eax
test edx, edx
je 0x4e6661
mov ecx, dword [ebp - 4]
movsx edx, byte [ebp + ecx - 8]
mov eax, dword [ebp + 8]
movsx ecx, byte [eax]
xor ecx, edx
mov edx, dword [ebp + 8]
mov byte [edx], cl
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 3
jle 0x4e6656
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x4e661b
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
Function at 0x4e7e80
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp dword [ebp + 0x10], 0xffffff9d
jne 0x4e7ed5
mov dword [0x5327e8], 0xffffffff
mov dword [ebp - 4], 0
jmp 0x4e7ea8
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 4
jae 0x4e7ed0
mov ecx, dword [ebp - 4]
shl ecx, 4
mov dword [ecx + 0x5327b0], 0
mov edx, dword [ebp - 4]
shl edx, 4
mov dword [edx + 0x5327b4], 0
jmp 0x4e7e9f
jmp 0x4e8083
cmp dword [ebp + 0x10], 4
jb 0x4e7ef1
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_EndDialog]
jmp 0x4e8083
cmp dword [ebp + 0x10], 0
jl 0x4e7efd
cmp dword [ebp + 0x10], 4
jb 0x4e7f02
jmp 0x4e8083
cmp dword [0x5327e8], 0
jge 0x4e7f14
cmp dword [0x5327e8], 4
jae 0x4e7f2b
push 0
mov eax, dword [0x5327e8]
shl eax, 4
mov ecx, dword [eax + 0x5327b0]
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [ebp + 0x10]
mov dword [0x5327e8], edx
mov eax, dword [0x5327e8]
shl eax, 4
cmp dword [eax + 0x5327b4], 0
jne 0x4e7f74
mov ecx, dword [0x5327e8]
shl ecx, 4
mov edx, dword [ecx + 0x5327b0]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004e8090
add esp, 8
mov ecx, dword [0x5327e8]
shl ecx, 4
mov dword [ecx + 0x5327b4], 1
push 0
push 0
push 0xaec
mov edx, dword [0x5327e8]
shl edx, 4
mov eax, dword [edx + 0x5327b0]
push eax
mov ecx, dword [0x5327e8]
shl ecx, 4
mov edx, dword [ecx + 0x5327a8]
call edx
push 5
mov eax, dword [0x5327e8]
shl eax, 4
mov ecx, dword [eax + 0x5327b0]
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov dword [ebp - 4], 0
jmp 0x4e7fc7
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 3
jae 0x4e8083
mov eax, dword [ebp - 4]
mov ecx, dword [eax*8 + 0x5327ec]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4e807e
mov eax, dword [ebp - 4]
mov ecx, dword [eax*8 + 0x5327f0]
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx + ecx + 0x138]
and eax, 1
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_EnableWindow]
mov edx, dword [ebp - 4]
mov eax, dword [edx*8 + 0x5327f0]
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + eax + 0x138]
and edx, 2
je 0x4e807e
mov eax, dword [ebp - 4]
mov ecx, dword [eax*8 + 0x5327f0]
imul ecx, ecx, 0x32
mov edx, dword [ebp + 0xc]
lea eax, [edx + ecx + 0x13b]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edx, dword [ebp - 4]
mov eax, dword [edx*8 + 0x5327f0]
mov ecx, dword [ebp + 0xc]
movsx edx, byte [ecx + eax + 0x138]
and edx, 0xfffffffd
mov eax, dword [ebp - 4]
mov ecx, dword [eax*8 + 0x5327f0]
mov eax, dword [ebp + 0xc]
mov byte [eax + ecx + 0x138], dl
jmp 0x4e7fbe
mov esp, ebp
pop ebp
ret
Function at 0x4ff820
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x541514]
xor eax, ebp
mov dword [ebp - 4], eax
mov byte [ebp - 0x3c], 0x6c
mov byte [ebp - 0x3b], 0xb0
mov byte [ebp - 0x3a], 0x4b
mov byte [ebp - 0x39], 0xa0
mov byte [ebp - 0x38], 0xad
mov byte [ebp - 0x37], 0xef
mov byte [ebp - 0x36], 0x73
mov byte [ebp - 0x35], 0x4e
mov byte [ebp - 0x34], 0xa3
mov byte [ebp - 0x33], 0x2f
mov byte [ebp - 0x32], 0x90
mov byte [ebp - 0x31], 0xd2
mov byte [ebp - 0x30], 0xb0
mov byte [ebp - 0x2f], 0x45
mov byte [ebp - 0x2e], 0xa2
mov byte [ebp - 0x2d], 0x75
mov byte [ebp - 0x2c], 0x85
mov byte [ebp - 0x2b], 0xe8
mov byte [ebp - 0x2a], 0xa3
mov byte [ebp - 0x29], 0xfb
mov byte [ebp - 0x28], 0x7b
mov byte [ebp - 0x27], 0xd4
mov byte [ebp - 0x26], 0x81
mov byte [ebp - 0x25], 0x38
mov byte [ebp - 0x24], 0xd6
mov byte [ebp - 0x23], 0xf5
mov byte [ebp - 0x22], 0xdc
mov byte [ebp - 0x21], 0xa4
mov byte [ebp - 0x20], 0xba
mov byte [ebp - 0x1f], 0x4c
mov byte [ebp - 0x1e], 0xf8
mov byte [ebp - 0x1d], 0xb9
mov byte [ebp - 0x1c], 0xe9
mov byte [ebp - 0x1b], 0x83
mov byte [ebp - 0x1a], 0x8a
mov byte [ebp - 0x19], 0x7f
mov byte [ebp - 0x18], 0xa6
mov byte [ebp - 0x17], 0x18
mov byte [ebp - 0x16], 0xac
mov byte [ebp - 0x15], 0x17
mov byte [ebp - 0x14], 0xb9
mov byte [ebp - 0x13], 0x88
mov byte [ebp - 0x12], 0x11
mov byte [ebp - 0x11], 0xaa
mov byte [ebp - 0x10], 0x7a
mov byte [ebp - 0xf], 0x47
mov byte [ebp - 0xe], 0xf3
mov byte [ebp - 0xd], 0x76
mov byte [ebp - 0xc], 0x37
mov byte [ebp - 0xb], 0x74
mov byte [ebp - 0xa], 2
mov byte [ebp - 9], 0xa
mov byte [ebp - 8], 0x1d
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], 0x9c
mov byte [ebp - 5], 0x69
mov dword [ebp - 0x44], 0x38
mov dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x10]
add eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x44]
ja 0x4ff941
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 0x10]
lea eax, [ebp + edx - 0x3c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call sub.MSVCR80.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047294a
mov esp, ebp
pop ebp
ret
Function at 0x401434
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
pushal
call 0x401443
pop dword [ebp - 0x30]
mov eax, 0xc377f311
sub eax, 0xc337dece
sub dword [ebp - 0x30], eax
mov dword [ebp - 0x40], 0x42db6f68
sub dword [ebp - 0x40], 0xf4892a1d
mov dword [ebp - 0x3c], 0xec8ad526
add dword [ebp - 0x3c], 0x45a8771f
mov dword [ebp - 0x38], 0xfb182e66
sub dword [ebp - 0x38], 0xaecbea38
mov dword [ebp - 0x34], 0x491f9724
add dword [ebp - 0x34], 0xb6e068dc
lea eax, [ebp - 0x40]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x30]
call dword [eax]
mov dword [ebp - 0x40], 0x7d745a19
sub dword [ebp - 0x40], 0x901f0c3
mov dword [ebp - 0x3c], 0xc51eb618
sub dword [ebp - 0x3c], 0x83b254a3
mov dword [ebp - 0x38], 0x87c68e83
sub dword [ebp - 0x38], 0x24572217
mov dword [ebp - 0x34], 0x6d9e50a3
add dword [ebp - 0x34], 0x9261af5d
lea ebx, [ebp - 0x40]
push ebx
push eax
mov eax, 0x440c6ed2
sub eax, 0x43cbee56
add eax, dword [ebp - 0x30]
call dword [eax]
push 0x40
push 0x1000
push 0x39db5
push 0
call eax
mov ecx, 0x40dfff3e
add ecx, 0xbf204eae
xor edx, edx
add edx, eax
mov ebx, 0xa4e5a127
add ebx, 0x5b5ff0d9
add ebx, dword [ebp - 0x30]
mov edi, 0x201f5c6f
add edi, 0x4b78ebee
sub dword [ebp - 0x1c], 0xea996a39
mov esi, dword [ebx]
add dword [ebp - 0x14], 0x812e35ec
xor esi, edi
xor dword [ebp - 0x20], ecx
mov dword [edx], esi
sub dword [ebp - 0x24], 0x51fff542
add edx, 0x7d86f199
sub edx, 0x7d86f195
add ebx, 0xaa00b59b
sub ebx, 0xaa00b597
loop 0x401562
add eax, 0xf02151cd
add eax, 0xfdfd8b6
mov ebx, eax
add eax, 0xdec935b8
sub eax, 0xdec935b3
mov ecx, 0x400000
add ecx, dword [ebp - 0x30]
call ebx
leave
ret
Function at 0x5c9ec0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov eax, dword fs:[0x30]
mov eax, dword ds:[eax + 0xc]
mov eax, dword ds:[eax + 0xc]
mov eax, dword ds:[eax]
mov eax, dword ds:[eax]
mov eax, dword ds:[eax + 0x18]
ret

Function at 0x5c9ee0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
call fcn.005c9ec0
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x3c]
add edx, dword [ebp - 8]
mov dword [ebp - 0x24], edx
mov eax, 8
imul ecx, eax, 0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + ecx + 0x78]
add eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x1c]
add edx, dword [ebp - 8]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x20]
add ecx, dword [ebp - 8]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x24]
add eax, dword [ebp - 8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0xc], 0
jmp 0x5c9f4b
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
cmp eax, dword [edx + 0x18]
jae 0x5c9ff5
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x2c], eax
xor ecx, ecx
mov byte [ebp - 1], cl
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 1]
call fcn.005ca050
mov ecx, eax
call fcn.005cb660
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx]
mov byte [ebp - 2], dl
mov eax, dword [ebp - 0x18]
cmp dl, byte [eax]
jne 0x5c9fc7
cmp byte [ebp - 2], 0
je 0x5c9fbe
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx + 1]
mov byte [ebp - 3], dl
mov eax, dword [ebp - 0x18]
cmp dl, byte [eax + 1]
jne 0x5c9fc7
add dword [ebp - 0x14], 2
add dword [ebp - 0x18], 2
cmp byte [ebp - 3], 0
jne 0x5c9f8a
mov dword [ebp - 0x1c], 0
jmp 0x5c9fcf
sbb ecx, ecx
or ecx, 1
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
jne 0x5c9ff0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x34]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + edx*4]
add eax, dword [ebp - 8]
jmp 0x5c9ff7
jmp 0x5c9f42
xor eax, eax
mov esp, ebp
pop ebp
ret

Function at 0x5cc3af
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x5cc3ee
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x5cc3ee
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x5cc3ee
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x5cc3ee
cmp dword [ecx + 0x74], 0xe
jbe 0x5cc3ee
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x5d27e8
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov al, byte [esp + 3]
push dword [esp + 2]
lea esp, [esp + 8]
jmp 0x5d27d2

Function at 0x5d28e2
Capabilities:
Resolve function by parsing pe exports

Disassembly:
lea esp, [esp + 4]
mov dword [ebp - 0x58], ecx
jmp 0x5d1e48
jmp 0x5d28cc
Function at 0x401000
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push esi
mov esi, dword [esp + 0xc]
test esi, esi
je 0x401090
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x10]
push ebx
cmp byte [esi], 0
je 0x40108d
push 0x5c
push esi
call dword [sym.imp.MSVCRT.dll_strchr]
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x40108d
push edi
mov byte [esi], 0
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x401066
push 0
push edi
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
test eax, eax
jne 0x40105f
test ebp, ebp
je 0x40105f
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
jmp 0x401066
push edi
push 1
call ebp
pop ecx
pop ecx
test bl, 0x10
jne 0x401087
push 0xb7
call dword [sym.imp.kernel32.dll_SetLastError]
test ebp, ebp
je 0x401087
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
mov byte [esi], 0x5c
inc esi
jne 0x401018
pop ebx
pop edi
pop ebp
xor eax, eax
inc eax
pop esi
ret

Function at 0x402bf1
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
pushal
call 0x402c00
pop dword [ebp - 0x1c]
mov eax, 0x902d4b7
add eax, 0xf73d5749
sub dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], 0xaaa7b62
sub dword [ebp - 0x2c], 0xbc583617
mov dword [ebp - 0x28], 0xe298cbbd
sub dword [ebp - 0x28], 0xb0657f78
mov dword [ebp - 0x24], 0x48a9b32e
add dword [ebp - 0x24], 0x3a29100
mov dword [ebp - 0x20], 0xa9b341d5
sub dword [ebp - 0x20], 0xa9b341d5
lea eax, [ebp - 0x2c]
push eax
mov eax, 0xa0d80084
sub eax, 0xa0979020
add eax, dword [ebp - 0x1c]
call dword [eax]
mov dword [ebp - 0x2c], 0x997bf5bf
add dword [ebp - 0x2c], 0xdaf67397
mov dword [ebp - 0x28], 0x5053ebe7
sub dword [ebp - 0x28], 0xee78a72
mov dword [ebp - 0x24], 0x27bbb1b2
sub dword [ebp - 0x24], 0xc44c4546
mov dword [ebp - 0x20], 0x2cc4bb08
add dword [ebp - 0x20], 0xd33b44f8
lea ebx, [ebp - 0x2c]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x1c]
call dword [eax]
push 0x40
push 0x1000
push 0x3d5aa
push 0
call eax
mov ecx, 0x62a9
xor ebx, ebx
add ebx, eax
mov esi, 0x6ed4b4cf
add esi, 0x916c4b31
add esi, dword [ebp - 0x1c]
mov edx, 0x8dad9a4d
xor dword [ebp - 0x10], ebx
mov edi, dword [esi]
sub edi, edx
mov dword [ebp - 4], 0x4fee7a2d
mov dword [ebx], edi
sub dword [ebp - 0x18], ecx
add ebx, 4
add esi, 0x76483606
add esi, 0x89b7c9fe
loop 0x402d13
add eax, 0x17d77
xor ebx, ebx
add ebx, eax
add eax, 0x4257f5d1
add eax, 0xbda80a34
mov ecx, 0x19846b77
add ecx, 0xe6bb9489
add ecx, dword [ebp - 0x1c]
call ebx
leave
ret
Function at 0x4047ac
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov edi, dword [ebp + 8]
mov edi, dword [edi]
push edi
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
pop edi
mov esi, ecx
not esi
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0xc]
lea eax, [eax + 0x10]
push dword [eax]
xor eax, eax
push edx
mov ecx, dword [edx + 0x30]
movzx ebx, byte [eax + edi]
movzx edx, byte [ecx + eax*2]
sub ebx, edx
cmp ebx, 0
je 0x4047f3
cmp ebx, 0x20
je 0x4047f3
cmp ebx, 0xffffffe0
je 0x4047f3
jne 0x4047fc
add eax, 1
cmp esi, eax
je 0x404809
jne 0x4047d8
pop edx
mov edx, dword [edx]
xor eax, eax
pop ebx
cmp ebx, edx
push ebx
je 0x40480d
jne 0x4047d4
pop edx
mov eax, dword [edx + 0x18]
leave
ret

Function at 0x40485d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
pop ebp
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x404936
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x404936
mov eax, dword [edi + 0x3c]
cmp dword [eax + edi + 0x7c], 0
je 0x404936
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov ecx, ebx
mov esi, dword [eax + 0x1c]
sub ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
add esi, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edx
cmp ecx, edx
ja 0x4048bc
mov eax, dword [esi + ecx*4]
add eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
mov edx, dword [eax + 0x20]
mov ecx, dword [eax + 0x24]
mov ebp, dword [eax + 0x18]
add edx, edi
add ecx, edi
xor esi, esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ecx
test ebp, ebp
je 0x404936
mov eax, dword [edx + esi*4]
add eax, edi
mov ecx, ebx
lea ecx, [ecx]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x404901
test dl, dl
je 0x4048fd
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x404901
add ecx, 2
add eax, 2
test dl, dl
jne 0x4048e1
xor eax, eax
jmp 0x404906
sbb eax, eax
or eax, 1
test eax, eax
jne 0x404918
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + esi*2]
cmp eax, dword [esp + 0x20]
jbe 0x404923
inc esi
cmp esi, ebp
jae 0x404936
mov edx, dword [esp + 0x10]
jmp 0x4048d7
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4]
add eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret 8
Function at 0x42d520
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ecx
mov eax, dword [0x97aef0]
xor edx, edx
cmp eax, edx
jne 0x42d546
xor eax, eax
mov byte [eax + 0x97adf0], al
inc eax
cmp eax, 0x100
jl 0x42d52e
mov dword [0x97aef0], 1
mov eax, dword [esp + 0xc]
push ebx
mov ebx, dword [esp + 0x14]
push esi
push edi
mov ecx, 0x40
mov esi, 0x97adf0
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
cmp eax, edx
mov byte [ebx + 0x100], dl
mov byte [ebx + 0x101], dl
jle 0x42d5d7
xor esi, esi
push ebp
mov byte [esp + 0x20], dl
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
mov al, byte [esi + ebx]
and edi, 0xff
xor edx, edx
mov dl, byte [edi + ebp]
mov ebp, eax
and ebp, 0xff
add ecx, edx
add ecx, ebp
and ecx, 0x800000ff
jns 0x42d5aa
dec ecx
or ecx, 0xffffff00
inc ecx
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x10]
and ecx, 0xff
mov dl, byte [ecx + ebx]
mov byte [esi + ebx], dl
mov byte [ecx + ebx], al
lea eax, [edi + 1]
cdq
idiv dword [esp + 0x1c]
inc esi
cmp esi, 0x100
mov byte [esp + 0x20], dl
jl 0x42d578
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x42d650
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov cl, byte [eax + 0x100]
mov dl, byte [eax + 0x101]
mov dword [ebp - 8], eax
mov byte [ebp - 1], cl
mov byte [ebp - 2], dl
xor ebx, ebx
mov bl, byte [ebp - 1]
xor edx, edx
mov dl, byte [ebp - 2]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 8]
xor eax, eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x42d6a3
inc bl
mov al, byte [esi + ebx]
add dl, al
xchg byte [esi + edx], al
mov byte [esi + ebx], al
add al, byte [esi + edx]
mov al, byte [esi + eax]
xor byte [edi], al
inc edi
dec ecx
jne 0x42d68a
mov byte [ebp - 1], bl
mov byte [ebp - 2], dl
mov eax, dword [ebp + 0x10]
mov cl, byte [ebp - 1]
mov dl, byte [ebp - 2]
pop edi
pop esi
mov byte [eax + 0x100], cl
mov byte [eax + 0x101], dl
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x431a10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
mov eax, dword [esp + 0x78]
push ebx
push esi
cmp eax, 1
push edi
mov dword [esp + 0x14], ecx
jl 0x431c31
cmp eax, 8
jg 0x431c31
cmp dword [esp + 0x8c], 2
jl 0x431c31
mov eax, dword [esp + 0x7c]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
mov dword [esp + 0x6c], ecx
sub ecx, esi
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x7c], ecx
test ecx, ecx
mov dword [esp + 0x70], ebx
jle 0x431c31
sub ebx, edi
test ebx, ebx
mov dword [esp + 0x20], ebx
jle 0x431c31
mov eax, dword [esp + 0x80]
test eax, eax
je 0x431a97
mov edx, dword [eax]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x4c], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x50], eax
xor edx, edx
push ebp
test ebx, ebx
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], edx
jle 0x431c1a
mov ebp, dword [0x49b4a0]
mov eax, ebx
mov dword [esp + 0x10], 0x32
sub eax, edx
cmp eax, 0x32
jg 0x431ac9
mov dword [esp + 0x10], eax
xor eax, eax
test ecx, ecx
jle 0x431c01
mov ebx, dword [esp + 0x10]
add ebx, edx
mov dword [esp + 0x20], ebx
sub ecx, eax
cmp ecx, 0x32
jle 0x431ae9
mov ecx, 0x32
lea ebx, [ecx + eax]
mov ecx, dword [esp + 0x20]
push ecx
push ebx
push edx
lea edx, [esp + 0x34]
push eax
push edx
call dword [0x49b48c]
push edi
lea eax, [esp + 0x2c]
push esi
push eax
call ebp
mov eax, dword [esp + 0x84]
test eax, eax
je 0x431b28
lea ecx, [esp + 0x48]
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x2c]
push edx
push eax
call dword [0x49b494]
lea ecx, [esp + 0x28]
push ecx
call dword [0x49b4d4]
test eax, eax
jne 0x431be8
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], ecx
mov eax, edi
mov ecx, esi
mov dword [esp + 0x44], edx
neg eax
neg ecx
push eax
lea edx, [esp + 0x3c]
push ecx
push edx
call ebp
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x94]
sub ecx, edi
sub eax, esi
push edx
push ecx
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x9c]
push eax
call fcn.00431020
cmp eax, 1
jne 0x431c12
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x80]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x28]
call fcn.004318d0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x14]
mov eax, ebx
cmp eax, ecx
jl 0x431add
mov ebx, dword [esp + 0x24]
add edx, dword [esp + 0x10]
cmp edx, ebx
mov dword [esp + 0x14], edx
jge 0x431c1a
jmp 0x431ab4
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x18]
call fcn.00430c20
mov eax, dword [esp + 0x1c]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x68
ret 0x1c
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x68
ret 0x1c