joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4069a7
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 8], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
call fcn.004015db
push eax
lea ecx, [ebp - 8]
call fcn.00401f9b
mov edi, dword [ebp - 8]
xor ecx, ecx
inc ecx
mov edx, 0x104
mov eax, dword [edi - 8]
sub ecx, dword [edi - 4]
sub eax, edx
or ecx, eax
jge 0x4069f2
push edx
lea ecx, [ebp - 8]
call fcn.00402095
mov edi, dword [ebp - 8]
and dword [ebp - 0xc], 0
call fcn.004015db
push eax
lea ecx, [ebp - 0xc]
call fcn.00401f9b
call fcn.004084e6
test al, al
jne 0x406a24
call fcn.00406079
test al, al
jne 0x406a24
mov dword [ebp - 0x10], 0x1c
mov esi, str.Temp
jmp 0x406a30
mov dword [ebp - 0x10], 0x23
mov esi, str.MicrosoftEdgeUpdateLog
push esi
call fcn.004159fd
pop ecx
push eax
push esi
lea ecx, [ebp - 0xc]
call fcn.00401ed9
push edi
xor eax, eax
push eax
push eax
push dword [ebp - 0x10]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x406a7d
push 0x42aecc
mov ecx, ebx
call fcn.00401cda
mov ecx, dword [ebp - 0xc]
lea ecx, [ecx - 0x10]
call fcn.004015b2
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.004031a1
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff0
jmp 0x406ac2
mov esi, dword [ebp - 0xc]
push esi
push edi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x406a9a
push 0x42aecc
mov ecx, ebx
call fcn.00401cda
jmp 0x406aaa
mov ecx, dword [ebp - 8]
lea ecx, [ecx - 0x10]
call fcn.00402028
add eax, 0x10
mov dword [ebx], eax
lea ecx, [esi - 0x10]
call fcn.004015b2
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.004031a1
mov ecx, dword [ebp - 8]
lea ecx, [ecx - 0x10]
call fcn.004015b2
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret 4

Function at 0x406b91
Capabilities:
Print debug messages

Disassembly:
push edi
mov edi, ecx
cmp dword [edi + 0xe0], 0
jne 0x406bdc
push esi
push 0x40
call fcn.0041d3bc
push 0x40
mov esi, eax
push 0
push esi
call fcn.0040d430
add esp, 0xc
mov ecx, esi
call fcn.00408c34
mov dword [edi + 0xe0], eax
pop esi
test eax, eax
jne 0x406bdc
push dword [edi + 0x54]
push str.LOG_SYSTEM:___s_:_ERROR___Cannot_create_ETW_log_writer
call fcn.00408a36
pop ecx
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [edi + 0xe0]
test eax, eax
je 0x406bee
push eax
mov ecx, edi
call fcn.00407513
pop edi
ret
Function at 0x406bf0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
cmp byte [ebx + 0x77], 0
je 0x406cda
push esi
xor esi, esi
cmp dword [ebx + 0xd8], esi
jne 0x406cc7
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], esi
push eax
call fcn.00406ada
mov eax, dword [ebp - 0xc]
cmp dword [eax - 0xc], esi
je 0x406c62
lea edx, [ebp - 0xc]
mov dword [ebp - 8], esi
lea ecx, [ebp - 8]
call fcn.00408616
mov esi, dword [ebp - 8]
mov ecx, esi
call fcn.004061d0
test al, al
jne 0x406c6c
mov ecx, esi
call fcn.00404760
test eax, eax
jns 0x406c6c
lea ecx, [esi - 0x10]
call fcn.004015b2
mov eax, dword [ebp - 0xc]
lea ecx, [eax - 0x10]
call fcn.004015b2
jmp 0x406cd9
mov al, byte [ebx + 0x79]
push edi
push 0x20
mov byte [ebp - 8], al
call fcn.0041d3bc
pop ecx
mov edx, eax
xor eax, eax
push 8
pop ecx
push dword [ebp - 8]
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0xc]
mov ecx, edx
push edi
call fcn.00407743
mov dword [ebx + 0xd8], eax
test eax, eax
jne 0x406cb6
push edi
push dword [ebx + 0x54]
push str.LOG_SYSTEM:___s_:_ERROR___Cannot_create_log_writer_to__s
call fcn.00408a36
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [esi - 0x10]
call fcn.004015b2
lea ecx, [edi - 0x10]
call fcn.004015b2
pop edi
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x406cd9
push eax
mov ecx, ebx
call fcn.00407513
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret

Function at 0x406e74
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
cmp byte [esi + 0x7a], 1
jne 0x406eba
lea ecx, [ebp - 8]
call fcn.0040647a
push dword [eax]
push str.LOG_SYSTEM:___s_:_ERROR___Calling_the_logging_system_after_it_has_been_shut_down__n
call fcn.00408a36
pop ecx
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [ebp - 8]
lea ecx, [eax - 0x10]
call fcn.004015b2
xor al, al
jmp 0x406eeb
cmp byte [esi + 0x50], 1
jne 0x406ec4
mov al, 1
jmp 0x406eeb
and dword [ebp - 0xc], 0
lea eax, [esi + 0x58]
and dword [ebp - 8], 0
lea ecx, [ebp - 0xc]
push eax
call fcn.00405dfd
mov ecx, esi
call fcn.00406dae
lea ecx, [ebp - 0xc]
mov bl, al
call fcn.00405e28
mov al, bl
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret
Function at 0x407219
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x18], ecx
test eax, eax
je 0x407378
mov ebx, dword [ebp + 8]
test ebx, ebx
jne 0x407253
cmp dword [ebp + 0x10], 2
jg 0x407378
cmp dword [edi + 0xf8], 3
jg 0x407378
and dword [ebp - 0xc], 0
call fcn.004015db
push eax
lea ecx, [ebp - 0xc]
call fcn.00401f9b
and dword [ebp - 8], 0
call fcn.004015db
push eax
lea ecx, [ebp - 8]
call fcn.00401f9b
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
lea eax, [edi + 0x58]
mov eax, dword [eax]
add dword [edi + 0xe8], 1
push 0
adc dword [edi + 0xec], 0
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x4212d8]
lea ecx, [edi + 0x58]
call esi
test al, al
jne 0x4072da
add dword [edi + 0xf0], 1
push 0x32
adc dword [edi + 0xf4], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, 0x14
lea eax, [edi + 0x58]
jle 0x40728d
jmp 0x40730f
push dword [ebp - 0x18]
lea eax, [ebp - 8]
mov ecx, edi
push dword [ebp - 0x14]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.0040712d
mov eax, dword [edi + 0x58]
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4212d8]
lea ecx, [edi + 0x58]
call esi
cmp dword [ebp - 0x10], 0x14
jle 0x40735b
push str.LOG_SYSTEM:_Couldnt_acquire_lock__
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0x434c60
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
inc dword [edi + 0xf8]
cmp dword [edi + 0xf8], 3
jle 0x407362
push dword [ebp - 0x18]
lea eax, [ebp - 8]
mov ecx, edi
push str.LOG_SYSTEM:_Couldnt_acquire_lock_after_max_retries__this_process_will_no_longer_log_
push eax
lea eax, [ebp - 0xc]
push eax
push 0xfffffffffffffffe
push 0
push ebx
call fcn.0040712d
jmp 0x407362
and dword [edi + 0xf8], 0
mov ecx, dword [ebp - 8]
lea ecx, [ecx - 0x10]
call fcn.004015b2
mov ecx, dword [ebp - 0xc]
lea ecx, [ecx - 0x10]
call fcn.004015b2
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret 0x14
Function at 0x407743
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, ecx
mov dword [edi], fcn.00407920
mov dword [edi + 4], 0x989680
mov word [edi + 8], bx
mov byte [edi + 0xa], al
mov byte [edi + 0xb], 1
call fcn.004015db
push eax
lea ecx, [edi + 0xc]
call fcn.00401f9b
push esi
lea ecx, [edi + 0x14]
mov dword [edi + 0x10], ebx
call fcn.00401cda
mov dword [edi + 0x18], ebx
call fcn.004015db
push eax
lea ecx, [edi + 0x1c]
call fcn.00401f9b
movzx ebx, byte [0x43ae81]
neg ebx
sbb ebx, ebx
and ebx, 0x43ad80
je 0x407823
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push eax
mov ecx, ebx
call fcn.004075a2
mov esi, dword [ebp - 8]
cmp dword [esi - 0xc], 0
je 0x407802
push esi
push 0x989680
push str.MaxLogFileSize
push str.LoggingSettings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [edi + 4], eax
xor eax, eax
push esi
inc eax
push eax
push str.LogFileWide
push str.LoggingSettings
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
setne al
jmp 0x40780c
xor eax, eax
mov dword [edi + 4], 0x989680
inc eax
lea edx, [ebx + 0x54]
mov byte [edi + 0xb], al
push edx
lea ecx, [edi + 0x1c]
call fcn.00401c8c
lea ecx, [esi - 0x10]
call fcn.004015b2
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret 8

Function at 0x407899
Capabilities:
Print debug messages

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 8], 0
jne 0x40791e
mov byte [esi + 8], 1
call fcn.0040794c
cmp dword [esi + 0x10], 0
je 0x40791e
test al, al
je 0x4078b9
mov byte [esi + 0xa], 1
mov ecx, esi
call fcn.00407f3f
test al, al
jne 0x4078e0
push dword [esi + 0xc]
push dword [esi + 0x1c]
push str.LOG_SYSTEM:___s_:_Could_not_acquire_logging_mutex__s_n
call fcn.00408a36
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
pop esi
ret
mov ecx, esi
call fcn.00407a2e
cmp dword [esi + 0x18], 0
jne 0x40790b
push dword [esi + 0x14]
push dword [esi + 0x1c]
push str.LOG_SYSTEM:___s_:_Could_not_create_logging_file__s_n
call fcn.00408a36
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov byte [esi + 9], 0
cmp dword [esi + 0x10], 0
mov byte [esi + 9], 1
je 0x40791e
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop esi
ret
Function at 0x407a2e
Capabilities:
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 8], 0
lea edx, [ebp - 8]
push ebx
push esi
push edi
mov edi, ecx
lea ebx, [edi + 0x14]
mov ecx, dword [ebx]
call fcn.004062ef
mov eax, dword [ebp - 8]
cmp eax, dword [edi + 4]
jbe 0x407a63
mov ecx, edi
call fcn.00407bae
xor eax, eax
cmp byte [edi + 0xa], al
setne al
xor esi, esi
push esi
push 0x80
lea eax, [eax*2 + 2]
push eax
push esi
push 3
push 0x40000000
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [edi + 0x18], eax
cmp eax, 0xffffffff
jne 0x407a9d
mov dword [edi + 0x18], esi
xor al, al
jmp 0x407b31
mov edx, ebx
mov dword [ebp - 8], esi
lea ecx, [ebp - 8]
call fcn.00408616
mov esi, dword [ebp - 8]
lea edx, [ebp - 9]
xor ebx, ebx
mov ecx, esi
inc ebx
mov byte [ebp - 9], bl
call fcn.00406259
cmp byte [ebp - 9], 0
jne 0x407afe
mov ecx, dword [edi + 0x18]
call fcn.00406371
test al, al
jne 0x407afe
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x407b27
cmp byte [edi + 0xb], 0
je 0x407b27
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push 0
push eax
push 2
push 0x42e1cc
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x407b27
push dword [edi + 0x14]
push dword [edi + 0x1c]
push str.LOG_SYSTEM:___s_:_ERROR___Log_path__s_has_a_reparse_point
call fcn.00408a36
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [edi + 0x18], 0
xor bl, bl
lea ecx, [esi - 0x10]
call fcn.004015b2
mov al, bl
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret

Function at 0x407b40
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
mov esi, ecx
push ebx
push 0x80
push 5
push ebx
push 3
push 0x40000000
push dword [esi + 0x14]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp dword [esi + 0x18], 0xffffffff
mov edi, eax
jne 0x407b7b
xor al, al
jmp 0x407b9f
cmp byte [esi + 0xb], bl
je 0x407b96
push ebx
lea eax, [ebp - 8]
mov dword [ebp - 8], ebx
push eax
push 2
push 0x42e1cc
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret
Function at 0x407c41
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x18
mov dword [ebp - 0x7c], ecx
lea edi, [ebp - 0x68]
pop ecx
mov esi, str.SYSTEMCurrentControlSetControlSession_Manager
lea eax, [ebp - 0x78]
rep movsd dword es:[edi], dword [esi]
push eax
push 0x20019
xor ebx, ebx
lea eax, [ebp - 0x68]
push ebx
push eax
push 0x80000002
movsw word es:[edi], word [esi]
mov dword [ebp - 0x78], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407d71
push 7
pop esi
lea eax, [ebp - 0x74]
mov dword [ebp - 0x74], ebx
push eax
push ebx
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], esi
push eax
push ebx
mov edi, str.PendingFileRenameOperations
push edi
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x407d71
cmp dword [ebp - 0x6c], esi
jne 0x407d71
push dword [ebp - 0x74]
call fcn.0041d3ec
push dword [ebp - 0x74]
mov esi, eax
push ebx
push esi
mov dword [ebp - 0x80], esi
call fcn.0040d430
add esp, 0x10
lea eax, [ebp - 0x74]
push eax
push esi
push ebx
push ebx
push edi
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x407d66
mov edi, dword [ebp - 0x74]
shr edi, 1
lea eax, [edi - 2]
cmp eax, 0xffffd
ja 0x407d66
cmp word [esi + edi*2 - 4], bx
jne 0x407d66
cmp word [esi + edi*2 - 2], bx
jne 0x407d66
mov eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x70]
add eax, 0x14
mov dword [ebp - 0x70], ebx
push eax
mov edx, str.___
call fcn.00407fb4
mov esi, dword [ebp - 0x70]
pop ecx
test edi, edi
je 0x407d52
mov eax, dword [ebp - 0x80]
push esi
lea eax, [eax + ebx*2]
push eax
mov dword [ebp - 0x7c], eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x407d55
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc ebx
add ebx, eax
cmp ebx, edi
jb 0x407d2d
or ebx, 0xffffffff
cmp ebx, 0xffffffff
lea ecx, [esi - 0x10]
setne bl
call fcn.004015b2
mov esi, dword [ebp - 0x80]
push esi
call fcn.0040d2c5
pop ecx
mov al, bl
jmp 0x407d73
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret

Function at 0x407f3f
Capabilities:
Print debug messages

Disassembly:
push esi
mov esi, ecx
cmp dword [esi + 0x10], 0
jne 0x407f4c
xor al, al
pop esi
ret
push 0x1f4
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x407f85
cmp eax, 0x80
je 0x407f85
push dword [esi + 0xc]
push dword [esi + 0x1c]
push str.LOG_SYSTEM:___s_:_Could_not_acquire_logging_mutex__s_n
call fcn.00408a36
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov byte [esi + 9], 0
jmp 0x407f48
mov al, 1
pop esi
ret
Function at 0x40830c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x118
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], 0x11c
push 0
push eax
call fcn.0040d430
add esp, 0xc
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4084b3
mov ecx, dword [ebp - 0x120]
cmp ecx, 6
je 0x4083bc
cmp ecx, 0xa
je 0x4083bc
cmp ecx, 5
jne 0x4084b3
cmp dword [ebp - 0x11c], 2
jne 0x40839a
cmp byte [ebp - 0xa], 1
jne 0x408386
call fcn.00408213
cmp eax, 9
je case.0x408402.1
test dword [ebp - 0xc], 0x8000
jne 0x4084b3
push 2
jmp 0x40847e
cmp dword [ebp - 0x11c], 1
jne 0x4084b3
test dword [ebp - 0xc], 0x200
jne 0x4084b3
xor eax, eax
inc eax
jmp 0x4084b5
mov edx, dword [ebp - 0x11c]
lea eax, [ebp - 8]
and dword [ebp - 8], 0
push eax
push ecx
push ecx
call fcn.004080b8
add esp, 0xc
test eax, eax
je 0x4084b3
mov eax, dword [ebp - 8]
cmp eax, 0x30
ja 0x40845b
je case.0x408402.1
cmp eax, 0xb
ja 0x408409
je case.0x408402.2
dec eax
cmp eax, 9
ja case.0x408402.2
movzx eax, byte [eax + 0x4084dc]
jmp dword [eax*4 + 0x4084c8]
cmp eax, 0x10
ja 0x40843a
je case.0x408402.4
sub eax, 0xc
je case.0x408402.7
sub eax, 1
je case.0x408402.7
sub eax, 1
je case.0x408402.7
sub eax, 1
je case.0x408402.7
jmp case.0x408402.2
sub eax, 0x11
je case.0x408402.7
sub eax, 1
je case.0x408402.7
sub eax, 7
je case.0x408402.7
dec eax
sub eax, 1
jmp 0x408498
cmp eax, 0x7d
ja 0x408481
je case.0x408402.4
sub eax, 0x46
je case.0x408402.4
dec eax
sub eax, 1
je case.0x408402.4
sub eax, 0xc
je case.0x408402.4
sub eax, 0x25
je 0x40847c
sub eax, 1
jne case.0x408402.2
push 4
pop eax
jmp 0x4084b5
sub eax, 0x7e
je case.0x408402.4
sub eax, 3
je case.0x408402.4
sub eax, 1
je case.0x408402.4
sub eax, 0x3a
je case.0x408402.4
sub eax, 3
je case.0x408402.4
mov al, byte [ebp - 0xa]
cmp al, 3
je case.0x408402.7
cmp al, 2
je case.0x408402.7
test byte [ebp - 0xc], 2
jne case.0x408402.4
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040c698
leave
ret
push 3
jmp 0x40847e

Function at 0x4084e6
Capabilities:
Get token membership

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
mov word [ebp - 0xc], 0x500
lea eax, [ebp - 0x14]
mov dword [ebp - 0x10], ebx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
lea eax, [ebp - 0x10]
mov dword [ebp - 0x14], ebx
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
mov dword [ebp - 8], eax
test eax, eax
je 0x40854c
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x14]
push ebx
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
push dword [ebp - 0x14]
neg eax
sbb eax, eax
and dword [ebp - 8], eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, dword [ebp - 8]
test eax, eax
mov ecx, dword [ebp - 4]
setne al
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret
Function at 0x408b6a
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80c
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
mov edi, ecx
cmp edi, 0x80000003
jne 0x408b97
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.0040c698
leave
ret
push esi
push 0x802
lea eax, [ebp - 0x808]
push 0
push eax
call fcn.0040d430
mov esi, dword [0x43ad7c]
lea ecx, [ebp - 0x80c]
xor edx, edx
call fcn.00405fcf
push dword [ebp + 0xc]
lea eax, [ebp - 0x808]
push str.baselogging.cc
push 0
push esi
push dword [ebp - 0x80c]
push edi
push str.Exception__x_in__s__s__u_r_n_r_n_hs:_d_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x80c]
add esp, 0x2c
lea ecx, [ecx - 0x10]
call fcn.004015b2
lea ecx, [ebp - 0x808]
call fcn.004094b5
push 0x250012
push str.Exception
lea eax, [ebp - 0x808]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
pop esi
sub eax, 3
je 0x408c2b
sub eax, 1
jne 0x408c23
int3
xor eax, eax
inc eax
jmp 0x408b8a
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x4094b5
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebx
push edi
mov edi, ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0
mov ebx, eax
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x409524
push esi
call dword [sym.imp.USER32.dll_EmptyClipboard]
lea ebx, [ebx*2 + 2]
push ebx
push 0x2002
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x409500
push ebx
push edi
push eax
call fcn.0040d590
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
test eax, eax
jne 0x40951b
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop esi
pop edi
pop ebx
jmp dword [sym.imp.USER32.dll_CloseClipboard]
pop edi
pop ebx
ret
Function at 0x40a648
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 8], 0
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, edx
mov esi, ecx
call fcn.004015db
push eax
lea ecx, [ebp - 8]
call fcn.00401f9b
mov dword [ebp - 0xc], esi
mov edx, 0x811c9dc5
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0xc]
xor eax, edx
imul edx, eax, 0x1000193
inc ecx
cmp ecx, 4
jb 0x40a67e
push edx
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.0040c2d7
mov ecx, dword [0x43ae88]
mov eax, dword [eax + 4]
test eax, eax
jne 0x40a6ae
mov eax, ecx
cmp eax, ecx
je 0x40a6c0
add eax, 0xc
lea ecx, [ebp - 8]
push eax
call fcn.00401c8c
jmp 0x40a6d6
or esi, 0x4000
lea edx, [ebp - 8]
mov ecx, esi
call fcn.0040488e
mov esi, eax
test esi, esi
js 0x40a745
mov eax, dword [ebp - 8]
xor edx, edx
mov esi, dword [edi]
inc edx
mov edi, 0x104
mov ecx, dword [eax - 8]
sub edx, dword [eax - 4]
sub ecx, edi
or edx, ecx
jge 0x40a6fb
push edi
lea ecx, [ebp - 8]
call fcn.00402095
mov eax, dword [ebp - 8]
push esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0xffffffffffffffff
lea ecx, [ebp - 8]
mov esi, eax
call fcn.004031a1
test esi, esi
jne 0x40a71a
mov esi, 0x80040709
jmp 0x40a745
mov esi, dword [ebp - 8]
test esi, esi
jne 0x40a725
xor eax, eax
jmp 0x40a72c
push esi
call fcn.004159fd
pop ecx
push eax
push esi
mov ecx, ebx
call fcn.00401ed9
cmp byte [ebp + 8], 0
je 0x40a743
mov ecx, dword [ebp - 8]
call fcn.00404760
xor esi, esi
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff0
call fcn.004015b2
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c698
leave
ret

Function at 0x40cfd3
Capabilities:
Parse pe header

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

Function at 0x417bda
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov byte [ebp - 0x3c2], 0x99
and byte [ebp - 0x3c1], 0
mov byte [ebp - 0x3c0], 0x21
mov byte [ebp - 0x3bf], 3
mov byte [ebp - 0x3be], 0x12
mov byte [ebp - 0x3bd], 0x2b
mov byte [ebp - 0x3bc], 9
mov byte [ebp - 0x3bb], 2
mov byte [ebp - 0x3ba], 0x13
mov byte [ebp - 0x3b9], 0xa
mov byte [ebp - 0x3b8], 3
mov byte [ebp - 0x3b7], 0x20
mov byte [ebp - 0x3b6], 0xf
mov byte [ebp - 0x3b5], 0xa
mov byte [ebp - 0x3b4], 3
mov byte [ebp - 0x3b3], 0x28
mov byte [ebp - 0x3b2], 7
mov byte [ebp - 0x3b1], 0xb
mov byte [ebp - 0x3b0], 3
mov byte [ebp - 0x3af], 0x27
mov byte [ebp - 0x3ae], 0x66
lea eax, [ebp - 0x3c4]
push eax
call fcn.004172eb
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.004172a0
add esp, 0xc
mov dword [ebp - 0x538], eax
Function at 0x41cfc0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x41cfed
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x41cfed
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x433002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..reloc
nop
mov ebx, 0x40de38
nop
mov ecx, 0x64b6202e
nop
test eax, eax
nop
nop
nop
nop
je 0x43304e
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x433024
nop
nop
mov eax, section..text
nop
mov ebx, 0x4304d8
nop
nop
mov ecx, 0x48245f5a
nop
nop
nop
test eax, eax
nop
je 0x433084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
jne 0x43306c
nop
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219