joyce8/EMBER2024-capa huggingface dataset:
Function at 0x62e1b0
Capabilities:
Acquire debug privileges

Disassembly:
push ecx
lea eax, [esp]
mov dword [esp], 0
push eax
push 0x20
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp]
push 1
push str.SeBackupPrivilege
push ecx
call fcn.0062e140
mov edx, dword [esp + 0xc]
push 1
push str.SeDebugPrivilege
push edx
call fcn.0062e140
mov eax, dword [esp + 0x18]
push 1
push str.SeRestorePrivilege
push eax
call fcn.0062e140
mov ecx, dword [esp + 0x24]
push 1
push str.SeSecurityPrivilege
push ecx
call fcn.0062e140
mov edx, dword [esp + 0x30]
add esp, 0x30
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
pop ecx
ret

Function at 0x62ebfa
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
lea eax, [ebp - 4]
push eax
push 0x20019
xor esi, esi
push esi
push str.CLSIDADB880A6_D8FF_11CF_9377_00AA003B7A11InprocServer32
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x62ec50
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
mov dword [ebp - 8], 0x104
push esi
push esi
push 0x64087c
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x62ec43
inc esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
jmp 0x62ec52
xor eax, eax
pop esi
leave
ret 4
Function at 0x785420f9
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, 0x5a4d
cmp word [eax], cx
je 0x7854210e
xor eax, eax
ret
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x7854210b
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x78542140
cmp eax, 0x20b
jne 0x7854210b
xor eax, eax
cmp dword [ecx + 0x84], 0xe
jbe 0x78542151
cmp dword [ecx + 0xf8], eax
jmp 0x7854214e
xor eax, eax
cmp dword [ecx + 0x74], 0xe
jbe 0x78542151
cmp dword [ecx + 0xe8], eax
setne al
ret

Function at 0x78542b94
Capabilities:
Accept command line arguments
Get thread local storage value

Disassembly:
push 8
push 0x785ac4d0
call fcn.7858cb80
mov eax, dword [ebp + 0xc]
xor ebx, ebx
inc ebx
cmp eax, ebx
jne 0x78542c6b
push ebx
call fcn.785836cf
pop ecx
test eax, eax
jne 0x78542bc0
xor eax, eax
jmp 0x78542d35
call fcn.78543a99
test eax, eax
jne 0x78542bd0
call fcn.78583740
jmp 0x78542bb9
call fcn.785865e4
test eax, eax
jge 0x78542be0
call fcn.78543711
jmp 0x78542bc9
call fcn.7858ebb4
mov dword [0x785bba30], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [sym.MSVCR90.dll__acmdln], eax
call sub.KERNEL32.dll_GetCommandLineW
mov dword [sym.MSVCR90.dll__wcmdln], eax
call fcn.78562820
call fcn.78543184
test eax, eax
jl 0x78542c56
xor edi, edi
push edi
call fcn.785422bc
pop ecx
test eax, eax
jne 0x78542c56
mov ecx, dword [ebp + 8]
call fcn.785427e0
test eax, eax
jne 0x78542c60
mov dword [ebp - 4], edi
push 0x22
call fcn.78542506
pop ecx
jmp 0x78542c4f
mov dword [ebp - 4], 0xfffffffe
call fcn.7858683d
jmp 0x78542bd9
inc dword [0x785bba24]
jmp 0x78542d33
xor edi, edi
cmp eax, edi
jne 0x78542cb2
cmp dword [0x785bba24], edi
jle 0x78542bb9
dec dword [0x785bba24]
cmp dword [0x785bb708], edi
jne 0x78542c90
call sym.MSVCR90.dll__cexit
call fcn.7854242e
cmp dword [ebp + 0x10], edi
jne 0x78542d33
call fcn.7858683d
call fcn.78543711
call fcn.78583740
jmp 0x78542d33
cmp eax, 2
jne 0x78542d27
call sym.MSVCR90.dll___set_flsgetvalue
push dword [0x785b71e0]
push dword [0x785b71e4]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
call eax
test eax, eax
jne 0x78542d33
push 0x214
push ebx
call sym.MSVCR90.dll__calloc_crt
pop ecx
pop ecx
mov esi, eax
cmp esi, edi
je 0x78542bb9
push esi
push dword [0x785b71e0]
push dword [0x785bbca0]
call sym.MSVCR90.dll__decode_pointer
pop ecx
call eax
test eax, eax
je 0x78542d1b
push edi
push esi
call sym.MSVCR90.dll__initptd
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esi], eax
or dword [esi + 4], 0xffffffff
jmp 0x78542d33
push esi
call sym.MSVCR90.dll_free
pop ecx
jmp 0x78542bb9
cmp eax, 3
jne 0x78542d33
push edi
call fcn.78543a10
pop ecx
mov eax, ebx
call fcn.7858cbc5
ret
Function at 0x785482b0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x785482e1
call sym.MSVCR90.dll___doserrno
mov dword [eax], esi
call sym.MSVCR90.dll__errno
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call sym.MSVCR90.dll__invalid_parameter
add esp, 0x14
push 0x16
pop eax
jmp 0x78548336
test dword [ebp + 0xc], 0xfffffff9
jne 0x785482bd
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x7854830e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call sym.MSVCR90.dll__dosmaperr
pop ecx
call sym.MSVCR90.dll__errno
mov eax, dword [eax]
jmp 0x78548336
test al, 0x10
jne 0x78548334
test al, 1
je 0x78548334
test byte [ebp + 0xc], 2
je 0x78548334
call sym.MSVCR90.dll___doserrno
mov dword [eax], 5
call sym.MSVCR90.dll__errno
mov dword [eax], 0xd
jmp 0x78548305
xor eax, eax
pop esi
pop ebp
ret

Function at 0x7854835b
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x7854838c
call sym.MSVCR90.dll___doserrno
mov dword [eax], esi
call sym.MSVCR90.dll__errno
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call sym.MSVCR90.dll__invalid_parameter
add esp, 0x14
or eax, 0xffffffff
jmp 0x785483c7
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x785483a9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call sym.MSVCR90.dll__dosmaperr
pop ecx
jmp 0x78548387
test byte [ebp + 0xc], 0x80
je 0x785483b4
and eax, 0xfffffffe
jmp 0x785483b7
or eax, 1
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x7854839a
xor eax, eax
pop esi
pop ebp
ret

Function at 0x78549ccc
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x78549cfd
call sym.MSVCR90.dll___doserrno
mov dword [eax], esi
call sym.MSVCR90.dll__errno
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call sym.MSVCR90.dll__invalid_parameter
add esp, 0x14
push 0x16
pop eax
jmp 0x78549d52
test dword [ebp + 0xc], 0xfffffff9
jne 0x78549cd9
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x78549d2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call sym.MSVCR90.dll__dosmaperr
pop ecx
call sym.MSVCR90.dll__errno
mov eax, dword [eax]
jmp 0x78549d52
test al, 0x10
jne 0x78549d50
test al, 1
je 0x78549d50
test byte [ebp + 0xc], 2
je 0x78549d50
call sym.MSVCR90.dll___doserrno
mov dword [eax], 5
call sym.MSVCR90.dll__errno
mov dword [eax], 0xd
jmp 0x78549d21
xor eax, eax
pop esi
pop ebp
ret
Function at 0x78549eb4
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x78549ee5
call sym.MSVCR90.dll___doserrno
mov dword [eax], esi
call sym.MSVCR90.dll__errno
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call sym.MSVCR90.dll__invalid_parameter
add esp, 0x14
or eax, 0xffffffff
jmp 0x78549f20
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x78549f02
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call sym.MSVCR90.dll__dosmaperr
pop ecx
jmp 0x78549ee0
test byte [ebp + 0xc], 0x80
je 0x78549f0d
and eax, 0xfffffffe
jmp 0x78549f10
or eax, 1
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x78549ef3
xor eax, eax
pop esi
pop ebp
ret

Function at 0x78583577
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
push edi
xor ebx, ebx
push ebx
push ebx
mov edi, 0x785229f4
push edi
call esi
mov dword [ebp - 8], eax
cmp eax, ebx
je 0x785836c2
push eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 4], eax
test eax, eax
je 0x785836c2
push dword [ebp - 8]
push eax
push edi
call esi
test eax, eax
jbe 0x785836b4
cmp eax, dword [ebp - 8]
ja 0x785836b4
mov edi, dword [ebp - 4]
cmp byte [edi], 0
mov ecx, edi
je 0x785835f0
mov al, byte [ecx]
cmp al, 0x61
jl 0x785835ea
cmp al, 0x7a
jg 0x785835ea
sub al, 0x20
mov byte [ecx], al
inc ecx
cmp byte [ecx], 0
jne 0x785835dc
push 0x16
push edi
push 0x785229dc
call sym.MSVCR90.dll_strncmp
add esp, 0xc
test eax, eax
je 0x7858365b
push 0x105
push 8
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x785836b4
push 3
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp byte [esi], 0
mov ecx, esi
je 0x78583644
mov al, byte [ecx]
cmp al, 0x61
jl 0x7858363e
cmp al, 0x7a
jg 0x7858363e
sub al, 0x20
mov byte [ecx], al
inc ecx
cmp byte [ecx], 0
jne 0x78583630
push esi
push edi
call sym.MSVCR90.dll_strstr
pop ecx
pop ecx
push esi
push 0
mov edi, eax
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test edi, edi
je 0x785836b4
push 0x2c
push edi
call sym.MSVCR90.dll_strchr
pop ecx
pop ecx
test eax, eax
je 0x785836b4
inc eax
cmp byte [eax], 0x20
je 0x7858366d
mov cl, byte [eax]
xor esi, esi
cmp cl, 0x30
jl 0x785836b4
cmp cl, 0x39
jg 0x78583693
imul esi, esi, 0xa
movsx ecx, cl
inc eax
lea esi, [esi + ecx - 0x30]
mov cl, byte [eax]
cmp cl, 0x30
jge 0x7858367c
cmp esi, 2
je 0x785836a2
cmp esi, 3
je 0x785836a2
cmp esi, 1
jne 0x785836b4
push dword [ebp - 4]
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
jmp 0x785836c5
push dword [ebp - 4]
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x7858d5e8
Capabilities:
Contain obfuscated stackstrings
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call sym.MSVCR90.dll__encoded_null
and dword [ebp - 4], 0
cmp dword [0x785bc204], 0
mov ebx, eax
jne 0x7858d699
push 0x78522e98
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x7858d74a
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x78522e8c
push edi
call esi
test eax, eax
je 0x7858d74a
push eax
call sym.MSVCR90.dll__encode_pointer
mov dword [esp], 0x78522e7c
push edi
mov dword [0x785bc204], eax
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
mov dword [esp], 0x78522e68
push edi
mov dword [0x785bc208], eax
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
mov dword [esp], 0x78522e4c
push edi
mov dword [0x785bc20c], eax
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
pop ecx
mov dword [0x785bc214], eax
test eax, eax
je 0x7858d699
push 0x78522e34
push edi
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
pop ecx
mov dword [0x785bc210], eax
mov eax, dword [0x785bc210]
cmp eax, ebx
je 0x7858d6f1
cmp dword [0x785bc214], ebx
je 0x7858d6f1
push eax
call sym.MSVCR90.dll__decode_pointer
push dword [0x785bc214]
mov esi, eax
call sym.MSVCR90.dll__decode_pointer
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x7858d6f1
test edi, edi
je 0x7858d6f1
call esi
test eax, eax
je 0x7858d6e8
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x7858d6e8
test byte [ebp - 0xc], 1
jne 0x7858d6f1
or dword [ebp + 0x10], 0x200000
jmp 0x7858d72a
mov eax, dword [0x785bc208]
cmp eax, ebx
je 0x7858d72a
push eax
call sym.MSVCR90.dll__decode_pointer
pop ecx
test eax, eax
je 0x7858d72a
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x7858d72a
mov eax, dword [0x785bc20c]
cmp eax, ebx
je 0x7858d72a
push eax
call sym.MSVCR90.dll__decode_pointer
pop ecx
test eax, eax
je 0x7858d72a
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x785bc204]
call sym.MSVCR90.dll__decode_pointer
pop ecx
test eax, eax
je 0x7858d74a
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x7858d74c
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x7858d83e
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x785ba2a8]
jne 0x7858d848
repz ret
jmp sym.MSVCR90.dll___report_gsfailure
Function at 0x78595229
Capabilities:
Terminate process

Disassembly:
sub esp, 0x5c
mov eax, dword [0x785ba5b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x7530
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, eax
mov eax, dword [0x785ba5a0]
push eax
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
mov eax, ebx
mov edx, dword [0x785ba5a0]
call fcn.78595391
push 0x104
push ebx
mov edx, dword [0x785ba598]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movzx edx, word [ebx]
mov eax, dword [0x785ba5b4]
test edx, edx
je 0x78595373
xor edx, edx
xor ebp, ebp
inc edx
movzx ecx, word [ebx + edx*4 - 2]
dec esp
xchg ebx, eax
dec byte [ebp + 0x7c8d1234]
adc bh, bh
test ecx, ecx
je 0x785952ab
movzx ecx, word [ebx + edx*4]
mov edi, esi
test ecx, ecx
jne 0x78595290
mov esi, edi
lea edx, [ebx + edi*2]
movzx ecx, word [edx - 2]
cmp ecx, 0x5c
je 0x78595302
mov dword [esp + 0xc], eax
mov ecx, ebp
mov dword [esp + 8], ebx
inc ecx
xor eax, eax
lea ebx, [ecx*4]
neg ebx
add ebx, edx
mov word [ebx + 4], ax
lea eax, [ecx + ecx]
neg eax
add eax, edi
movzx ebp, word [ebx]
lea esi, [eax + 1]
cmp ebp, 0x5c
je 0x785952f8
xor esi, esi
mov word [ebx + 2], si
mov esi, eax
movzx eax, word [ebx - 2]
cmp eax, 0x5c
jne 0x785952c3
mov eax, dword [esp + 0xc]
xor ebp, ebp
mov ebx, dword [esp + 8]
movzx edx, word [eax]
test edx, edx
je 0x7859532f
mov ecx, ebp
lea edx, [ebx + esi*2]
inc ecx
movzx esi, word [eax + ecx*4 - 4]
mov word [edx + ecx*4 - 4], si
movzx esi, word [eax + ecx*4 - 2]
test esi, esi
je 0x7859532f
mov word [edx + ecx*4 - 2], si
movzx esi, word [eax + ecx*4]
test esi, esi
jne 0x7859530e
mov edx, 0x44
lea edi, [esp + 8]
mov eax, edi
call fcn.78595391
mov edx, 0x10
lea esi, [esp + 0x4c]
mov eax, esi
call fcn.78595391
push esi
push edi
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
push 0xffffffffffffffff
push dword [esp + 0x50]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xor edi, edi
xor ebp, ebp
jmp 0x785952ab
Function at 0x78595293
Capabilities:
Create process on windows
Terminate process

Disassembly:
sub esp, 0x5c
mov eax, dword [0x785ba5b0]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x7530
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov edx, eax
mov eax, dword [0x785ba5a0]
push eax
push 0
push edx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
mov eax, ebx
mov edx, dword [0x785ba5a0]
call fcn.78595391
push 0x104
push ebx
mov edx, dword [0x785ba598]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movzx edx, word [ebx]
mov eax, dword [0x785ba5b4]
test edx, edx
je 0x78595373
xor edx, edx
xor ebp, ebp
inc edx
movzx ecx, word [ebx + edx*4 - 2]
dec esp
xchg ebx, eax
dec byte [ebp + 0x7c8d1234]
adc bh, bh
test ecx, ecx
je 0x785952ab
movzx ecx, word [ebx + edx*4]
mov edi, esi
test ecx, ecx
jne 0x78595290
mov esi, edi
lea edx, [ebx + edi*2]
movzx ecx, word [edx - 2]
cmp ecx, 0x5c
je 0x78595302
mov dword [esp + 0xc], eax
mov ecx, ebp
mov dword [esp + 8], ebx
inc ecx
xor eax, eax
lea ebx, [ecx*4]
neg ebx
add ebx, edx
mov word [ebx + 4], ax
lea eax, [ecx + ecx]
neg eax
add eax, edi
movzx ebp, word [ebx]
lea esi, [eax + 1]
cmp ebp, 0x5c
je 0x785952f8
xor esi, esi
mov word [ebx + 2], si
mov esi, eax
movzx eax, word [ebx - 2]
cmp eax, 0x5c
jne 0x785952c3
mov eax, dword [esp + 0xc]
xor ebp, ebp
mov ebx, dword [esp + 8]
movzx edx, word [eax]
test edx, edx
je 0x7859532f
mov ecx, ebp
lea edx, [ebx + esi*2]
inc ecx
movzx esi, word [eax + ecx*4 - 4]
mov word [edx + ecx*4 - 4], si
movzx esi, word [eax + ecx*4 - 2]
test esi, esi
je 0x7859532f
mov word [edx + ecx*4 - 2], si
movzx esi, word [eax + ecx*4]
test esi, esi
jne 0x7859530e
mov edx, 0x44
lea edi, [esp + 8]
mov eax, edi
call fcn.78595391
mov edx, 0x10
lea esi, [esp + 0x4c]
mov eax, esi
call fcn.78595391
push esi
push edi
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
push 0xffffffffffffffff
push dword [esp + 0x50]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xor edi, edi
xor ebp, ebp
jmp 0x785952ab
Function at 0x78597178
Capabilities:
Contain obfuscated stackstrings
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call sym.MSVCR90.dll__encoded_null
and dword [ebp - 4], 0
cmp dword [0x785bc600], 0
mov ebx, eax
jne 0x78597229
push 0x7852476c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x785972da
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x78524760
push edi
call esi
test eax, eax
je 0x785972da
push eax
call sym.MSVCR90.dll__encode_pointer
mov dword [esp], 0x78522e7c
push edi
mov dword [0x785bc600], eax
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
mov dword [esp], 0x78522e68
push edi
mov dword [0x785bc604], eax
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
mov dword [esp], 0x78524744
push edi
mov dword [0x785bc608], eax
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
pop ecx
mov dword [0x785bc610], eax
test eax, eax
je 0x78597229
push 0x78522e34
push edi
call esi
push eax
call sym.MSVCR90.dll__encode_pointer
pop ecx
mov dword [0x785bc60c], eax
mov eax, dword [0x785bc60c]
cmp eax, ebx
je 0x78597281
cmp dword [0x785bc610], ebx
je 0x78597281
push eax
call sym.MSVCR90.dll__decode_pointer
push dword [0x785bc610]
mov esi, eax
call sym.MSVCR90.dll__decode_pointer
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x78597281
test edi, edi
je 0x78597281
call esi
test eax, eax
je 0x78597278
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x78597278
test byte [ebp - 0xc], 1
jne 0x78597281
or dword [ebp + 0x10], 0x200000
jmp 0x785972ba
mov eax, dword [0x785bc604]
cmp eax, ebx
je 0x785972ba
push eax
call sym.MSVCR90.dll__decode_pointer
pop ecx
test eax, eax
je 0x785972ba
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x785972ba
mov eax, dword [0x785bc608]
cmp eax, ebx
je 0x785972ba
push eax
call sym.MSVCR90.dll__decode_pointer
pop ecx
test eax, eax
je 0x785972ba
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x785bc600]
call sym.MSVCR90.dll__decode_pointer
pop ecx
test eax, eax
je 0x785972da
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x785972dc
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x402420
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
xor esi, esi
mov edi, dword [sym.imp.ADVAPI32.dll_SetServiceStatus]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [0x4327a8], 3
mov dword [0x4327b0], esi
mov dword [0x4327bc], 0x3e8
mov dword [0x4327ac], esi
mov eax, dword [0x431a60]
lea ecx, [eax + 1]
mov dword [0x431a60], ecx
mov dword [0x4327b8], eax
push 0x4327a4
push dword [0x4327c0]
call edi
push 0x64
push dword [0x4327c4]
call ebx
cmp eax, 0x102
je 0x402434
push dword [0x4327c4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
mov dword [0x4327c4], esi
mov dword [0x4327a8], 1
mov dword [0x4327b0], esi
mov dword [0x4327bc], esi
mov dword [0x4327ac], 5
mov dword [0x4327b8], esi
push 0x4327a4
push dword [0x4327c0]
call dword [sym.imp.ADVAPI32.dll_SetServiceStatus]
push esi
push esi
push esi
push 0x402370
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
je 0x4024eb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret 4
Function at 0x4042d0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [ebp - 0x1c], edx
mov ebx, ecx
mov eax, dword [0x431014]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
push eax
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov edi, eax
push eax
call fcn.0040a27b
add esp, 4
mov esi, eax
push eax
push edi
xor eax, eax
push eax
push ebx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x404352
lea eax, [ebp - 0x14]
mov dword [eax], esi
lea ecx, [ebp - 0x18]
push ecx
push eax
push 0x42c542
push esi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x40437d
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 0xa]
mov edx, dword [ebp - 0x1c]
mov dword [edx], ecx
mov ecx, dword [ebp + 8]
movzx edx, word [eax + 8]
mov dword [ecx], edx
mov ecx, dword [ebp + 0xc]
movzx edx, word [eax + 0xe]
mov dword [ecx], edx
mov ecx, dword [ebp + 0x10]
movzx eax, word [eax + 0xc]
mov dword [ecx], eax
xor edi, edi
inc edi
jmp 0x4043b5
mov eax, dword [0x4329d8]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4043d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_obtain_file_info_of_old_service.____lu_
jmp 0x4043a6
mov eax, dword [0x4329d8]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x404411
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_query_file_version_info_of_old_service.____lu_
push 0x4327cc
call fcn.00408750
add esp, 0xc
xor edi, edi
push esi
call fcn.0040a507
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040afa5
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4329d8
call fcn.0040a5e7
add esp, 4
cmp dword [0x4329d8], 0xffffffff
jne 0x40436f
mov dword [0x4327cc], 0
push 0x402500
call fcn.0040a7ac
add esp, 4
push 0x4329d8
call fcn.0040a639
add esp, 4
jmp 0x40436f
push 0x4329d8
call fcn.0040a5e7
add esp, 4
cmp dword [0x4329d8], 0xffffffff
jne 0x40439a
mov dword [0x4327cc], 0
push 0x402500
call fcn.0040a7ac
add esp, 4
push 0x4329d8
call fcn.0040a639
add esp, 4
jmp 0x40439a