joyce8/EMBER2024-capa huggingface dataset:
Function at 0x409c90
Capabilities:
Create service
Persist via windows service

Disassembly:
sub esp, 0x50c
mov eax, dword [0x4138d0]
push ebx
push ebp
push esi
push edi
push 0xf003f
xor edi, edi
push edi
push edi
mov dword [esp + 0x524], eax
mov ebx, ecx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebp, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov esi, eax
test esi, esi
je 0x409ce7
push 1
lea eax, [ebx + 0x40]
push eax
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
test eax, eax
je 0x409cdc
push eax
mov edi, 1
call ebp
push esi
call ebp
test edi, edi
jne 0x409e02
push 0x104
lea ecx, [esp + 0x15]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x409d6f
cmp eax, 0x104
je 0x409d6f
push 0xf003f
mov cl, 0x22
push 0
mov byte [esp + 0x18], cl
push 0
mov byte [esp + eax + 0x1d], cl
mov byte [esp + eax + 0x1e], 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov esi, eax
test esi, esi
jne 0x409d88
push 0x400
lea edx, [esp + 0x11c]
push edx
push 0xd80a
call fcn.00409580
add esp, 0xc
test eax, eax
jne 0x409d59
push str.Could_not_open_Service_Manager
lea eax, [esp + 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0
add ebx, 0x40
push ebx
lea ecx, [esp + 0x120]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x508]
call fcn.0040e0fe
add esp, 0x50c
ret
push 0
push 0
push str.RPCSS
push 0
push 0
lea edx, [esp + 0x24]
push edx
push 1
push 2
push 0x110
push 0xf01ff
lea edi, [ebx + 0x40]
push edi
push edi
push esi
call dword [sym.imp.ADVAPI32.dll_CreateServiceA]
test eax, eax
jne 0x409dfc
push esi
call ebp
push 0x400
lea eax, [esp + 0x11c]
push eax
push 0xd80b
call fcn.00409580
add esp, 0xc
test eax, eax
jne 0x409dec
push str.Could_not_start_service
lea ecx, [esp + 0x11c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0
push edi
lea edx, [esp + 0x120]
push edx
jmp 0x409d67
push eax
call ebp
push esi
call ebp
mov ecx, dword [esp + 0x518]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
call fcn.0040e0fe
add esp, 0x50c
ret
Function at 0x40a7f0
Capabilities:
Create thread

Disassembly:
push ecx
push esi
push edi
push 1
push 4
push 0x413c6c
mov esi, ecx
call fcn.00409b90
mov edi, eax
test edi, edi
jne 0x40a844
mov al, byte [esi + 0x3c]
test al, al
je 0x40a848
push edi
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
mov dword [esi + 0x30], eax
je 0x40a839
lea eax, [esp + 8]
push eax
push edi
push esi
push 0x409e20
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x40a848
pop edi
mov eax, 0x80004005
pop esi
pop ecx
ret 4
mov byte [esi + 0x3c], 0
mov eax, edi
pop edi
pop esi
pop ecx
ret 4

Function at 0x40ad10
Capabilities:
Delete registry value

Disassembly:
sub esp, 0x1c
push edi
mov edi, ecx
call fcn.004095d0
test eax, eax
jne 0x40ad2b
mov eax, 0x80004005
pop edi
add esp, 0x1c
ret 4
mov ecx, dword [0x413954]
push ebx
lea eax, [esp + 0x14]
push eax
push 1
push 0x65
xor ebx, ebx
push ecx
mov dword [esp + 0x24], 0x410ddc
mov dword [esp + 0x28], 0x410c28
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
call fcn.00409200
cmp eax, ebx
jl 0x40ae63
push esi
push 0x20006
push str.AppID
push accept
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebx
call fcn.004063b0
cmp eax, ebx
je 0x40ada9
push eax
call fcn.00406310
mov esi, eax
mov eax, dword [esp + 0x10]
add esp, 4
cmp eax, ebx
je 0x40ad9e
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
pop ebx
pop edi
add esp, 0x1c
ret 4
mov esi, dword [esp + 0xc]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push str.FA5C463B_6B46_47A2_9642_46320994393E
push esi
mov dword [esp + 0x34], ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x40ae2d
mov eax, dword [esp + 0x10]
push str.LocalService
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp byte [esp + 0x2c], bl
je 0x40ae4e
push 1
lea ecx, [edi + 0x40]
push ecx
push str.LocalService
lea ecx, [esp + 0x1c]
call fcn.00406420
mov ecx, edi
call fcn.00409c90
test eax, eax
jne 0x40ae4e
lea ecx, [esp + 0x10]
call fcn.004069c0
lea ecx, [esp + 0xc]
call fcn.004069c0
pop esi
pop ebx
mov eax, 0x80004005
pop edi
add esp, 0x1c
ret 4
push eax
call fcn.00406310
add esp, 4
cmp esi, ebx
mov edi, eax
je 0x40ae43
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebx
mov eax, edi
pop edi
add esp, 0x1c
ret 4
lea ecx, [esp + 0x10]
call fcn.004069c0
lea ecx, [esp + 0xc]
call fcn.004069c0
xor eax, eax
pop esi
pop ebx
pop edi
add esp, 0x1c
ret 4
Function at 0x40ae80
Capabilities:
Delete registry value

Disassembly:
sub esp, 8
call fcn.004095d0
test eax, eax
jne 0x40ae95
mov eax, 0x80004005
add esp, 8
ret
push ebp
lea eax, [esp + 8]
push eax
push 0x20006
xor ebp, ebp
push ebp
push str.AppID
push accept
mov dword [esp + 0x1c], ebp
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebp
je 0x40aec9
push eax
call fcn.00406310
add esp, 4
pop ebp
add esp, 8
ret
push ebx
push esi
push edi
mov edi, dword [esp + 0x14]
push 0x20006
push str.FA5C463B_6B46_47A2_9642_46320994393E
push edi
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], ebp
call fcn.004063b0
cmp eax, ebp
je 0x40af19
push eax
call fcn.00406310
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, eax
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, ebp
je 0x40af08
push eax
call ebx
cmp edi, ebp
je 0x40af0f
push edi
call ebx
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
add esp, 8
ret
mov esi, dword [esp + 0x10]
push str.LocalService
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push ebp
call fcn.0040acd0
test esi, esi
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebp, eax
je 0x40af3e
push esi
call ebx
test edi, edi
je 0x40af45
push edi
call ebx
pop edi
pop esi
pop ebx
mov eax, ebp
pop ebp
add esp, 8
ret

Function at 0x40b290
Capabilities:
Accept command line arguments

Disassembly:
push ecx
push esi
mov esi, ecx
call fcn.00406240
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 4
push 0
push 3
push 2
push 0
push 0
push 0xffffffffffffffff
push 0x4130c4
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov al, byte [0x413960]
test al, al
je 0x40b2d3
call dword [sym.imp.ole32.dll_CoUninitialize]
or eax, 0xffffffff
pop esi
pop ecx
ret 4
mov dword [esp + 4], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea ecx, [esp + 4]
push ecx
push eax
mov ecx, esi
call fcn.0040b1d0
cmp al, 1
jne 0x40b312
mov edx, dword [esp + 0xc]
push edx
mov ecx, esi
call fcn.0040af50
mov esi, eax
call dword [sym.imp.ole32.dll_CoUninitialize]
call fcn.00406270
mov eax, esi
pop esi
pop ecx
ret 4
mov esi, dword [esp + 4]
call dword [sym.imp.ole32.dll_CoUninitialize]
call fcn.00406270
mov eax, esi
pop esi
pop ecx
ret 4
Function at 0x40b640
Capabilities:
Delete file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1b4
mov eax, dword [0x4138d0]
push ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x1b4], eax
mov eax, dword [ebp + 0xc]
test eax, eax
push esi
push edi
je 0x40b70c
lea ecx, [esp + 0x28]
call fcn.0040c090
xor eax, eax
mov ecx, 0x20
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x10]
push ecx
lea eax, [esp + 0x2c]
push 2
push ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0x71
call fcn.0040c490
add esp, 0xc
test eax, eax
je 0x40b7b0
cmp byte [esp + 0x98], 0x1c
mov dword [esp + 0x10], 0x80
jbe 0x40b6c1
mov byte [esp + 0x98], 0
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov cx, word [esp + 0x1e]
cmp cx, 0x1c
jbe 0x40b6e0
mov cx, 0x1c
mov word [esp + 0x1e], cx
mov al, byte [esp + 0x98]
test al, al
je 0x40b7c3
movzx edx, cx
movzx esi, al
inc edx
cmp esi, edx
je 0x40b70c
cmp al, 1
jne 0x40b7b0
cmp cx, 0x1b
jbe 0x40b7b0
push ebx
call fcn.0040c600
add esp, 4
push 0x10e
lea eax, [esp + 0xac]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov esi, dword [sym.imp.MSVCR71.dll_strrchr]
lea ecx, [esp + 0xa8]
push 0x5c
push ecx
call esi
lea edx, [esp + 0xb0]
push 0x5c
push edx
mov byte [eax], 0
call esi
mov edi, eax
mov ecx, 7
mov esi, str.Jobs_and_SettingsSoftKey.DAT
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [esp + 0xb8]
push 0x410ed4
push eax
movsb byte es:[edi], byte [esi]
call dword [sym.imp.MSVCR71.dll_fopen]
mov esi, eax
add esp, 0x18
test esi, esi
je 0x40b7b0
push esi
push 1
lea ecx, [esp + 0x18]
push 4
push ecx
mov dword [esp + 0x20], 0
call dword [sym.imp.MSVCR71.dll_fread]
push esi
call dword [sym.imp.MSVCR71.dll_fclose]
mov eax, dword [esp + 0x24]
add esp, 0x14
cmp eax, ebx
jne 0x40b7b0
lea edx, [esp + 0xa8]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esp + 0x1bc]
call fcn.0040e0fe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov al, byte [esp + 0x1e]
push ecx
push edx
push 2
push ebx
mov byte [esp + 0xa8], al
call fcn.0040c260
mov ecx, dword [esp + 0x1cc]
add esp, 0x10
call fcn.0040e0fe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40c890
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
push 0xf0000000
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push 0
push esi
call edi
test eax, eax
jne 0x40c8df
push eax
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push str.ScanvecAmiable_Dummy
push esi
call edi
test eax, eax
jne 0x40c8df
push 8
push 1
push str.Microsoft_Enhanced_Cryptographic_Provider_v1.0
push str.ScanvecAmiable_Dummy
push esi
call edi
test eax, eax
jne 0x40c8df
pop edi
pop esi
ret 4
pop edi
mov eax, 1
pop esi
ret 4

Function at 0x40c8f0
Capabilities:
Encrypt data using des via winapi
Hash data using sha1
Hash data using sha1 via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push 0xffffffffffffffff
push 0x40ed38
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
mov eax, dword [0x4138d0]
push esi
mov esi, ecx
lea ecx, [esp + 4]
mov dword [esp + 0x20], eax
call fcn.00409e40
mov ecx, dword [esi + 4]
lea eax, [esp + 8]
push eax
push 0
push 0
push 0x8004
push ecx
mov dword [esp + 0x40], 0
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
lea ecx, [esp + 4]
je 0x40c9ed
mov edx, dword [esp + 8]
push edx
call fcn.0040d990
mov ecx, dword [esp + 4]
mov al, 0x9b
push 0
mov byte [esp + 0x17], al
mov byte [esp + 0x20], al
push 0x14
lea eax, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x1c], 0x34
mov byte [esp + 0x1d], 0x43
mov byte [esp + 0x1e], 0xa0
mov byte [esp + 0x1f], 0xb9
mov byte [esp + 0x20], 3
mov byte [esp + 0x21], 0xc1
mov byte [esp + 0x22], 0xf7
mov byte [esp + 0x24], 0x33
mov byte [esp + 0x25], 0x64
mov byte [esp + 0x26], 0xcc
mov byte [esp + 0x27], 0x23
mov byte [esp + 0x28], 0x11
mov byte [esp + 0x29], 1
mov byte [esp + 0x2a], 0x8b
mov byte [esp + 0x2b], 0x26
mov byte [esp + 0x2d], 0xdd
mov byte [esp + 0x2e], 0x22
mov byte [esp + 0x2f], 0x29
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x40c9e9
mov eax, dword [esp + 4]
mov ecx, dword [esi + 4]
lea edx, [esi + 0xc]
push edx
push 0
push eax
push 0x6601
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
lea ecx, [esp + 4]
mov dword [esp + 0x2c], 0xffffffff
call fcn.0040dbb0
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x20]
pop esi
call fcn.0040e0fe
add esp, 0x2c
ret
Function at 0x40cd90
Capabilities:
Encrypt or decrypt via wincrypt

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x10]
test esi, esi
mov ebx, ecx
mov dword [ebp], 0
mov dword [ebp + 4], 0
je 0x40ce2c
mov eax, dword [ebx + 4]
test eax, eax
je 0x40ce1a
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x40ce1a
lea eax, [esi + 1]
push edi
push eax
mov dword [ebp], esi
call sub.MSVCR71.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, esi
mov esi, dword [esp + 0x1c]
mov edx, ecx
shr ecx, 2
mov dword [ebp + 4], eax
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add esp, 4
mov ecx, edx
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0xc]
push eax
push 0
push 1
push 0
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
pop edi
jne 0x40ce22
mov edx, dword [ebp + 4]
push edx
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [ebp], 0
mov dword [ebp + 4], 0
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0xc
mov eax, dword [ebp + 4]
mov ecx, dword [ebp]
mov byte [eax + ecx], 0
pop esi
pop ebp
mov eax, 1
pop ebx
ret 0xc

Function at 0x40dbf0
Capabilities:
Get common file path
Get disk information

Disassembly:
sub esp, 0x118
mov eax, dword [0x4138d0]
mov dword [esp + 0x114], eax
push 0x105
lea eax, [esp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x40dc29
mov ecx, dword [esp + 0x114]
call fcn.0040e0fe
add esp, 0x118
ret
mov eax, dword [esp + 0x11c]
push 0
push 0
lea ecx, [esp + 8]
push ecx
mov edx, ecx
push edx
push eax
push 0
push 0
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x27], 0
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov ecx, dword [esp + 0x114]
neg eax
sbb eax, eax
neg eax
call fcn.0040e0fe
add esp, 0x118
ret
Function at 0x40e2da
Capabilities:
Parse pe header
Terminate process

Disassembly:
push 0x74
push 0x4110f0
call fcn.0040e590
xor ebx, ebx
mov dword [ebp - 0x20], ebx
push ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x40e31a
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x40e31a
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x40e332
cmp eax, 0x20b
je 0x40e31f
mov dword [ebp - 0x1c], ebx
jmp 0x40e346
cmp dword [ecx + 0x84], 0xe
jbe 0x40e31a
xor eax, eax
cmp dword [ecx + 0xf8], ebx
jmp 0x40e340
cmp dword [ecx + 0x74], 0xe
jbe 0x40e31a
xor eax, eax
cmp dword [ecx + 0xe8], ebx
setne al
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ebx
push 2
call dword [sym.imp.MSVCR71.dll___set_app_type]
pop ecx
or dword [0x413ca8], 0xffffffff
or dword [0x413cac], 0xffffffff
call dword [sym.imp.MSVCR71.dll___p__fmode]
mov ecx, dword [0x413ca0]
mov dword [eax], ecx
call dword [sym.imp.MSVCR71.dll___p__commode]
mov ecx, dword [0x413c9c]
mov dword [eax], ecx
mov eax, dword [sym.imp.MSVCR71.dll__adjust_fdiv]
mov eax, dword [eax]
mov dword [0x413ca4], eax
call fcn.0040e666
call fcn.0040e706
cmp dword [0x4138f0], ebx
jne 0x40e3a6
push fcn.0040e706
call dword [sym.imp.MSVCR71.dll___setusermatherr]
pop ecx
call fcn.0040e6f4
push 0x413034
push 0x413030
call sub.MSVCR71.dll__initterm
push 0x40e6aa
call fcn.0040e1a2
mov eax, dword [0x413c98]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
push dword [0x413c94]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.MSVCR71.dll___getmainargs]
add esp, 0x20
mov dword [ebp - 0x3c], eax
cmp eax, ebx
jge 0x40e3fa
push 8
call sub.MSVCR71.dll__amsg_exit
pop ecx
push 0x41302c
push section..data
call sub.MSVCR71.dll__initterm
pop ecx
pop ecx
mov eax, dword [sym.imp.MSVCR71.dll__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x24], esi
mov al, byte [esi]
cmp al, 0x20
ja 0x40e478
cmp al, bl
je 0x40e424
cmp dword [ebp - 0x20], ebx
jne 0x40e478
mov al, byte [esi]
cmp al, bl
je 0x40e434
cmp al, 0x20
ja 0x40e434
inc esi
mov dword [ebp - 0x24], esi
jmp 0x40e424
mov dword [ebp - 0x58], ebx
lea eax, [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
test byte [ebp - 0x58], 1
je 0x40e450
movzx eax, word [ebp - 0x54]
jmp 0x40e453
push 0xa
pop eax
push eax
push esi
push ebx
push ebx
call edi
push eax
call fcn.0040b330
mov esi, eax
mov dword [ebp - 0x40], esi
cmp dword [ebp - 0x1c], ebx
jne 0x40e470
push esi
call dword [sym.imp.MSVCR71.dll_exit]
call dword [sym.imp.MSVCR71.dll__cexit]
jmp 0x40e4cd
cmp al, 0x22
jne 0x40e487
xor ecx, ecx
cmp dword [ebp - 0x20], ebx
sete cl
mov dword [ebp - 0x20], ecx
movzx eax, al
push eax
call dword [sym.imp.MSVCR71.dll__ismbblead]
pop ecx
test eax, eax
je 0x40e49a
inc esi
mov dword [ebp - 0x24], esi
inc esi
jmp 0x40e412
or dword [ebp - 4], 0xffffffff
mov eax, esi
call fcn.0040e5cb
ret
Function at 0x48e990
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x48e9f0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 4], 0
je 0x48e9e7
mov edx, dword [0x4fba80]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x48e9db
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x48e9c0
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, 1
jmp 0x48e9e9
xor al, al
mov esp, ebp
pop ebp
ret
Function at 0x495000
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xf8
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + 0x78]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
add edx, dword [ecx + 0x20]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + 0x1c]
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], 0
jmp 0x49506c
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
cmp eax, dword [edx + 0x18]
jae 0x4950b3
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call fcn.004bf098
add esp, 8
test eax, eax
jne 0x4950b1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add ecx, dword [eax + edx*4]
mov eax, ecx
jmp 0x4950b5
jmp 0x495063
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x4a2370
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d8
mov eax, dword [0x4ed310]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
call fcn.0049d880
add esp, 4
movzx edx, al
test edx, edx
je 0x4a2401
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push 0x2cc
push 0
lea ecx, [ebp - 0x2d8]
push ecx
call fcn.004b3f40
add esp, 0xc
mov dword [ebp - 0x2d8], 0x10001
lea edx, [ebp - 0x2d8]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
je 0x4a23ff
mov edx, dword [ebp - 0x220]
cmp edx, dword [ebp + 0xc]
jne 0x4a23ff
jmp 0x4a2401
jmp 0x4a2383
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b4695
mov esp, ebp
pop ebp
ret
Function at 0x4a52b0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c9307
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x4ed310]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x44
call fcn.004a3a10
mov dword [ebp - 4], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xa4
call fcn.004a3a10
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
push edx
mov ecx, dword [ebp - 0x10]
add ecx, 0x104
call fcn.004a3a10
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x44
mov ecx, dword [ebp - 0x10]
add ecx, 0x44
call fcn.004a4cb0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xa4
call fcn.004a4cb0
mov edx, dword [ebp - 0x10]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x104
call fcn.004a4cb0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x20], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x24], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x28], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x30]
mov word [edx + 0x30], cx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x32]
mov word [edx + 0x32], cx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
mov dword [edx + 0x3c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x40]
mov dword [edx + 0x40], ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4