joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41e080
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ecx, 0x1a
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x80]
mov esi, 0x4bba19
push ebx
sub esp, 0x9c
mov eax, dword [0x4bba18]
mov dword [ebp - 0x81], eax
mov eax, dword [0x4bba7d]
mov dword [ebp - 0x1c], eax
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp + 8]
lea eax, [edx + 0x84]
and eax, 0xfffffff0
call fcn.0040c030
mov ecx, 0x1a
sub esp, eax
lea esi, [ebp - 0x81]
mov dword [ebp - 0x8c], edx
lea ebx, [esp + 0x1b]
and ebx, 0xfffffff0
mov edi, ebx
lea eax, [ebx + 0x68]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x8c]
mov byte [ebx + edx + 0x68], 0
mov dword [esp], ebx
call fcn.004b0980
nop
nop
nop
nop
nop
nop
nop
push edi
push esi
push ebx
sub esp, 0x20
cmp byte [0x4b9dc4], 0
jne 0x41e1a6
mov byte [0x4b9dc4], 1
call fcn.004ae610
test eax, eax
je 0x41e174
mov ebx, dword [eax + 4]
xor eax, eax
cmp byte [ebx], 0x2a
mov dword [esp + 8], 0
sete al
mov dword [esp + 4], 0
add ebx, eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.0040af10
mov dword [esp], 2
mov esi, dword [fcn.0041a950]
mov edi, eax
call esi
mov dword [esp + 8], 0x30
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_after_throwing_an_instance_of_
call sub.msvcrt.dll_fwrite
mov edx, dword [esp + 0x1c]
mov dword [esp], 2
test edx, edx
je 0x41e164
call esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
mov dword [esp], 2
call esi
mov dword [esp + 8], 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], 0x4ba721
call sub.msvcrt.dll_fwrite
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4af79c
jmp 0x4af794
call esi
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
jmp 0x41e12a
mov dword [esp], 2
call dword [0x4b8218]
mov dword [esp + 8], 0x2d
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_without_an_active_exception_n
call sub.msvcrt.dll_fwrite
jmp 0x4af78f
mov dword [esp], 2
call dword [0x4b8218]
mov dword [esp + 8], 0x1d
mov dword [esp + 0xc], eax
mov dword [esp + 4], 1
mov dword [esp], str.terminate_called_recursively_n
call sub.msvcrt.dll_fwrite
call sub.msvcrt.dll_abort
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
mov ebx, ecx
sub esp, 0x18
mov dword [ecx], 0x4c3524
call fcn.004a7a20
mov dword [esp], ebx
mov dword [esp + 4], 4
call fcn.004ae3c0
add esp, 0x18
pop ebx
ret
Function at 0x4753c0
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x1c
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll__fileno_1
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll__read
mov ebp, eax
cmp eax, 0xffffffff
je 0x475400
add esp, 0x1c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret 8
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 4
je 0x4753d1
add esp, 0x1c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret 8
Function at 0x401ae1
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, edx
mov ebx, ecx
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x401b3a
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x401b3a
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edx, dword [ebp + 8]
lea ecx, [esi + eax]
and edx, 0xf
jbe 0x401b29
cmp esi, ecx
jae 0x401b3a
movzx eax, word [esi]
lea esi, [esi + eax*2]
add esi, 2
sub edx, 1
jne 0x401b17
cmp esi, ecx
jae 0x401b3a
cmp word [esi], 0
je 0x401b3a
lfence
mov eax, esi
jmp 0x401b3c
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x402ab5
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x10], eax
mov edi, ecx
xor ecx, ecx
lea eax, [ebp - 0xc]
push eax
push ecx
lea eax, [ebp - 8]
mov dword [ebp - 0xc], ecx
push eax
push ecx
push ebx
push dword [edi + 4]
mov dword [ebp - 8], ecx
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
mov esi, eax
test esi, esi
jle 0x402b00
movzx esi, si
or esi, 0x80070000
test esi, esi
jne 0x402b53
mov eax, dword [ebp - 0xc]
xor ecx, ecx
shr eax, 1
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0041d3ec
cmp dword [ebp - 0xc], 0
pop ecx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
je 0x402b4e
lea ecx, [ebp - 0xc]
push ecx
push eax
lea eax, [ebp - 8]
push eax
push 0
push ebx
push dword [edi + 4]
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
mov esi, eax
test esi, esi
jle 0x402b53
movzx esi, si
or esi, 0x80070000
jmp 0x402b53
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c69e
leave
ret 8
Function at 0x402b66
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
lea ecx, [ebp - 0xc]
mov dword [ebp - 0x10], eax
push ecx
push edx
lea ecx, [ebp - 8]
mov dword [ebp - 0xc], edx
push ecx
push edx
push eax
push dword [ebx + 4]
mov dword [ebp - 8], edx
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
mov esi, eax
test esi, esi
jle 0x402bb1
movzx esi, si
or esi, 0x80070000
test esi, esi
jne 0x402c22
mov edx, dword [ebp - 0xc]
test edx, edx
je 0x402c1b
shr edx, 1
add edx, 1
js 0x402c35
mov eax, dword [edi]
xor ecx, ecx
inc ecx
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, edx
or ecx, eax
jge 0x402bdd
push edx
mov ecx, edi
lfence
call fcn.00402095
cmp dword [edi], 0
jne 0x402be9
mov esi, 0x8007000e
jmp 0x402c10
lea eax, [ebp - 0xc]
push eax
push dword [edi]
lea eax, [ebp - 8]
push eax
push 0
push dword [ebp - 0x10]
push dword [ebx + 4]
call dword [sym.imp.SHLWAPI.dll_SHQueryValueExW]
mov esi, eax
test esi, esi
jle 0x402c10
movzx esi, si
or esi, 0x80070000
push 0xffffffffffffffff
mov ecx, edi
call fcn.004031a1
jmp 0x402c22
mov ecx, edi
call fcn.00401d26
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c69e
leave
ret 8
push 0x80070057
call fcn.00401a85
int3

Function at 0x4042a0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
ror byte [eax + 0x45c6c15d], 0xc2
in al, dx
mov byte [ebp - 0x3d], bl
mov byte [ebp - 0x3c], 0x45
mov byte [ebp - 0x3b], 0x7a
mov byte [ebp - 0x3a], 0x61
mov byte [ebp - 0x39], 0x67
mov byte [ebp - 0x38], 0x66
mov byte [ebp - 0x37], 0x72
mov byte [ebp - 0x36], 0x7f
mov byte [ebp - 0x35], 0x52
mov byte [ebp - 0x34], 0x7f
mov byte [ebp - 0x33], 0x7f
mov byte [ebp - 0x32], 0x7c
mov byte [ebp - 0x31], 0x70
mov byte [ebp - 0x30], 0x13
call fcn.00403fa6
xchg al, ah
mov edi, 0xc0458d04
push eax
call fcn.00403fb6
push eax
push esi
push dword [ebp + 8]
call fcn.00403f6b
add esp, 0x10
mov dword [ebp - 0x88], eax
call fcn.00403fa6
pop ebx
insb byte es:[edi], dx
invalid
Function at 0x40488e
Capabilities:
Contain obfuscated stackstrings

Disassembly:
test dword [eax + 0x4fffff9], edx
add byte [eax], al
add byte [eax - 0x3c35b], al
inc dword [eax]
and byte [ebp - 0x3c3], 0
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.00403fb6
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.00403f6b
add esp, 0xc
mov dword [ebp - 0x538], eax
and byte [ebp - 0x3ec], 0
and byte [ebp - 0x3eb], 0
inc dword [eax]
Function at 0x406371
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
test esi, esi
jne 0x40638c
mov al, 1
jmp 0x4063cf
push 0x34
lea eax, [ebp - 0x38]
push 0
push eax
call fcn.0040d430
add esp, 0xc
lea eax, [ebp - 0x38]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
jne 0x4063c7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x434708
call fcn.00408a36
pop ecx
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x406388
mov eax, dword [ebp - 0x38]
shr eax, 0xa
and al, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.0040c69e
leave
ret

Function at 0x406841
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x43900c]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push ebx
push esi
push edi
push eax
mov ebx, ecx
call fcn.004075a2
mov edi, dword [ebp - 8]
cmp dword [edi - 0xc], 0
je 0x4068e6
push edi
push 1
push str.EnableLogging
mov esi, str.LoggingSettings
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push edi
push 1
test eax, eax
push str.ShowTime
setne al
push esi
mov byte [ebx + 0x74], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push edi
push 1
test eax, eax
push str.LogToFile
setne al
push esi
mov byte [ebx + 0x76], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push edi
push 0
test eax, eax
push str.LogToOutputDebug
setne al
push esi
mov byte [ebx + 0x77], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push edi
push 1
test eax, eax
push str.AppendToFile
setne al
push esi
mov byte [ebx + 0x78], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
setne al
mov byte [ebx + 0x79], al
jmp 0x4068f1
mov byte [ebx + 0x74], 1
mov dword [ebx + 0x76], 0x1000101
cmp byte [ebx + 0x75], 0
je 0x4068fb
mov byte [ebx + 0x76], 1
xor eax, eax
mov byte [ebx], 1
mov dword [ebx + 4], 7
mov dword [ebp - 0xc], eax
mov edx, dword [eax + 0x439a80]
mov ecx, dword [eax + 0x439a84]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], edx
test edx, edx
je 0x406974
cmp ecx, 9
ja 0x406974
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push eax
mov ecx, ebx
mov dword [ebp - 0x14], 3
call fcn.004075a2
mov esi, dword [ebp - 8]
cmp dword [esi - 0xc], 0
je 0x406957
push esi
push 3
push dword [ebp - 0x10]
push str.LoggingLevel
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
jmp 0x40695a
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
test eax, eax
setne cl
mov byte [ebx + edx*8], cl
lea ecx, [esi - 0x10]
mov dword [ebx + edx*8 + 4], eax
call fcn.004015b2
mov eax, dword [ebp - 0xc]
add eax, 8
mov dword [ebp - 0xc], eax
cmp eax, 0x48
jb 0x40690a
call fcn.00401c47
lea ecx, [edi - 0x10]
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], edx
call fcn.004015b2
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c69e
leave
ret
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.0040c69e
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.0040c69e
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.0040c69e
leave
ret
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.0040c69e
leave
ret 8
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.0040c69e
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.0040c69e
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.0040c69e
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