joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1037864
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
lea eax, [ebp - 0x18]
push eax
xor esi, esi
push esi
push ebx
mov dword [ebp - 4], esi
xor edi, edi
call fcn.010374b8
test eax, eax
je 0x103789c
lea eax, [ebp - 0x18]
push eax
inc edi
push edi
push ebx
call fcn.010374b8
test eax, eax
jne 0x1037888
cmp edi, esi
jne 0x10378b7
mov eax, dword [ebx + 0x10]
mov dword [eax + 0x18], esi
mov eax, dword [ebx + 0x10]
mov dword [eax + 0x1c], esi
mov eax, dword [ebx + 0x10]
mov dword [eax + 0x24], esi
mov dword [ebp - 4], 1
jmp 0x1037936
mov esi, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esi + 8]
sub eax, dword [ebx + 8]
add ecx, 0x40000
cmp eax, ecx
jb 0x103792b
mov eax, dword [esi + 0x18]
xor ebx, ebx
cmp eax, ebx
je 0x1037910
cmp edi, eax
jne 0x10378ef
inc dword [esi + 0x24]
cmp dword [esi + 0x24], 4
jb 0x1037936
mov dword [ebp - 4], 1
mov dword [esi + 0x18], ebx
jmp 0x1037913
jbe 0x1037910
mov ecx, dword [esi + 0x1c]
cmp ecx, ebx
je 0x103791b
mov edx, edi
sub edx, eax
cmp ecx, edx
jb 0x103791b
call dword [sym.imp.API_MS_Win_Core_SysInfo_L1_1_0.dll_GetTickCount]
sub eax, dword [esi + 0x20]
cmp eax, 0x493e0
jbe 0x1037936
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x24], ebx
jmp 0x1037936
sub edi, eax
mov dword [esi + 0x1c], edi
call dword [sym.imp.API_MS_Win_Core_SysInfo_L1_1_0.dll_GetTickCount]
mov dword [esi + 0x20], eax
jmp 0x1037936
xor eax, eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x1037b1e
Capabilities:
Write file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x103d004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, 0x11c
push esi
lea eax, [ebp - 0x220]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x220]
mov dword [ebp - 0x220], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
push eax
call esi
test eax, eax
jne 0x1037b7f
lea eax, [ebp - 0x220]
push eax
mov dword [ebp - 0x220], 0x114
call esi
test eax, eax
je 0x1037bf8
movzx eax, byte [ebp - 0x106]
push 0x102b790
push eax
movzx eax, word [ebp - 0x108]
push eax
movzx eax, word [ebp - 0x10a]
push eax
movzx eax, word [ebp - 0x10c]
push eax
push dword [ebp - 0x214]
lea eax, [ebp - 0x104]
push dword [ebp - 0x218]
push dword [ebp - 0x21c]
push 0x102b6f0
push 0xff
push eax
call fcn.01035653
add esp, 0x2c
test eax, eax
jl 0x1037bf8
push 0
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x104]
push eax
push edi
call dword [sym.imp.API_MS_Win_Core_File_L1_1_0.dll_WriteFile]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.01034b90
leave
ret 4
Function at 0x1037f6b
Capabilities:
Get file size

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov ecx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 0xc]
or dword [esi], 0xffffffff
push edi
mov edi, dword [ebp + 8]
mov dword [esi + 0x18], ecx
lea ecx, [ebp - 4]
push ecx
xor eax, eax
push esi
push 0x7530
push eax
lea ebx, [esi + 8]
push eax
mov dword [esi + 4], eax
mov dword [ebx], eax
mov dword [esi + 0x1c], eax
push dword [edi + 0x10]
mov dword [ebp - 4], eax
call fcn.01039087
mov dword [ebp + 0xc], eax
test eax, eax
jne 0x1038093
mov eax, dword [ebp - 4]
test eax, eax
jne 0x1037ff1
push dword [esi]
call fcn.01037b1e
push 0
push dword [esi]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
and dword [edi + 0xc], 0xffffefff
push edi
mov dword [ebp - 4], eax
call fcn.01037446
test eax, 0x1000
je 0x1038045
and eax, 0xffffefff
push eax
push edi
call fcn.010373e5
jmp 0x1038045
cmp dword [ebp + 0x18], 0
je 0x1038045
cmp eax, dword [edi + 8]
jb 0x1038045
cmp dword [edi + 0x14], 4
jae 0x1038045
test dword [edi + 0xc], 0x2000
jne 0x1038045
push dword [esi]
call dword [sym.imp.API_MS_Win_Core_Handle_L1_1_0.dll_CloseHandle]
or dword [esi], 0xffffffff
lea eax, [ebp - 4]
push eax
push esi
push 0x7530
push 0
push 0x10000
push dword [edi + 0x10]
call fcn.01039087
mov dword [ebp + 0xc], eax
test eax, eax
jne 0x1038093
mov eax, dword [ebp - 4]
cmp eax, dword [edi + 8]
jb 0x1038045
mov dword [esi + 0x1c], 1
mov ecx, dword [ebp - 4]
push ebx
lea eax, [esi + 4]
push eax
mov eax, dword [ebp + 0x10]
add ecx, eax
push ecx
push dword [esi]
call fcn.0103915a
mov dword [ebp + 0xc], eax
test eax, eax
jne 0x1038093
mov eax, dword [ebx]
add eax, dword [ebp - 4]
mov dword [esi + 0x10], edi
mov dword [esi + 0xc], eax
xor edi, edi
jmp 0x1038071
inc edi
lea eax, [ebp - 0x18]
push eax
push edi
push esi
call fcn.010374b8
test eax, eax
jne 0x1038070
mov eax, dword [esi + 0xc]
imul edi, edi, 0x14
sub eax, edi
sub eax, dword [ebx]
and dword [ebp + 0xc], 0
mov dword [esi + 0x14], eax
jmp 0x10380ac
push esi
call fcn.01037737
mov eax, dword [0x103d4e8]
inc dword [0x103d4e8]
cmp eax, 5
jbe 0x10380ac
and dword [edi], 0
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 0x14
Function at 0x10390f1
Capabilities:
Read file via mapping

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
push esi
push edi
xor edi, edi
push edi
push dword [ebp + 0xc]
push edi
push 2
push edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, dword [ebp + 0x10]
mov dword [esi], eax
cmp eax, edi
je 0x1039144
push dword [ebp + 0xc]
push edi
push edi
push 4
push eax
call dword [sym.imp.API_MS_Win_Core_Memory_L1_1_0.dll_MapViewOfFile]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
cmp eax, edi
je 0x1039130
xor eax, eax
jmp 0x103914e
call dword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
push dword [esi]
mov ebx, eax
call dword [sym.imp.API_MS_Win_Core_Handle_L1_1_0.dll_CloseHandle]
mov dword [esi], edi
jmp 0x103914c
call dword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
mov ebx, eax
mov eax, ebx
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
Function at 0x103927e
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x103d004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x210]
push ecx
mov esi, 0x104
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
cmp eax, esi
jae 0x103945e
test eax, eax
jne 0x10392cb
call dword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_GetLastError]
jmp 0x1039461
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x103945e
lea ecx, [ebp - 0x210]
cmp eax, ecx
je 0x103945e
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x210]
cmp ax, 0x41
jb 0x10392fe
cmp ax, 0x5a
jbe 0x1039307
lea ecx, [eax - 0x61]
cmp cx, 0x19
ja 0x103932b
cmp word [ebp - 0x20e], 0x3a
jne 0x103932b
cmp word [ebp - 0x20c], 0x5c
jne 0x103945e
lea ecx, [ebp - 0x20c]
mov dword [ebp - 0x214], ecx
push 0x5c
pop edi
cmp ax, di
jne 0x103936d
cmp word [ebp - 0x20e], di
jne 0x103936d
lea eax, [ebp - 0x20c]
push edi
push eax
call sub.msvcrt.dll_wcschr
pop ecx
pop ecx
test eax, eax
je 0x103945e
add eax, 2
push edi
push eax
call sub.msvcrt.dll_wcschr
pop ecx
pop ecx
mov dword [ebp - 0x214], eax
test eax, eax
je 0x103945e
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1039397
and al, 0x10
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xfffffef5
add eax, 0x10b
jmp 0x1039461
mov esi, dword [ebp - 0x218]
lea eax, [ebp - 0x210]
cmp esi, eax
jne 0x10393ab
mov esi, eax
jmp 0x10393ae
add esi, 0xfffffffe
cmp esi, dword [ebp - 0x214]
je 0x103945e
cmp word [esi], di
jne 0x103945e
cmp esi, dword [ebp - 0x214]
jbe 0x103945e
xor eax, eax
mov word [esi], ax
lea eax, [ebp - 0x210]
push 0x5c
push eax
call sub.msvcrt.dll_wcsrchr
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x103945e
movzx ebx, word [edi + 2]
xor eax, eax
mov word [edi + 2], ax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov word [edi + 2], bx
cmp eax, 0xffffffff
jne 0x1039426
mov esi, edi
cmp edi, dword [ebp - 0x214]
ja 0x10393cf
cmp esi, dword [ebp - 0x214]
jbe 0x103945e
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor ebx, ebx
jmp 0x1039447
test al, 0x10
jne 0x1039414
mov eax, 0x10b
jmp 0x1039461
cmp word [esi + 2], bx
je 0x103945a
push 0x5c
pop eax
push esi
mov word [esi], ax
call dword [sym.imp.API_MS_Win_Core_Misc_L1_1_0.dll_lstrlenW]
lea esi, [esi + eax*2]
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
test eax, eax
jne 0x1039431
jmp 0x10392c0
xor eax, eax
jmp 0x1039461
push 0x7b
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01034b90
leave
ret 4
Function at 0x1039477
Capabilities:
Get file attributes
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
and dword [ebp - 8], 0
push ebx
mov ebx, dword [ebp + 8]
mov byte [ebp - 1], 1
cmp ebx, 0xffffffff
jne 0x1039499
mov dword [ebp - 8], 0x57
jmp 0x10394fd
push esi
push 4
push 0x28
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
call dword [sym.imp.ntdll.dll_NtQueryInformationFile]
mov esi, dword [sym.imp.ntdll.dll_NtSetInformationFile]
test eax, eax
jl 0x10394df
test byte [ebp - 0x18], 1
je 0x10394df
push edi
push 0xa
pop ecx
xor eax, eax
push 4
lea edi, [ebp - 0x38]
rep stosd dword es:[edi], eax
push 0x28
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
mov dword [ebp - 0x18], 0x80
call esi
pop edi
push 0xd
push 1
lea eax, [ebp - 1]
push eax
lea eax, [ebp - 0x10]
push eax
push ebx
call esi
pop esi
test eax, eax
jge 0x10394fd
push eax
call dword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
mov dword [ebp - 8], eax
push dword [ebp - 8]
call dword [sym.imp.API_MS_Win_Core_ErrorHandling_L1_1_0.dll_SetLastError]
xor eax, eax
cmp dword [ebp - 8], eax
pop ebx
sete al
leave
ret 4
Function at 0x40d230
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x4550d8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push 0x208
push 0
push eax
call fcn.00422fc0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push 0x44018c
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
cmp eax, 0x104
jbe 0x40d28c
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004202ef
mov esp, ebp
pop ebp
ret
push str.IntelCPHS.log
push str.Logs
push str.Intel
lea eax, [ebp - 0x20c]
push eax
lea eax, [esi + 0x10]
neg esi
sbb esi, esi
and esi, eax
push esi
call fcn.0040ba80
add esp, 8
push eax
call fcn.0040ba80
add esp, 8
push eax
call fcn.0040ba80
add esp, 8
push eax
call fcn.0040ba80
add esp, 8
mov ecx, eax
push 0
call fcn.00406f10
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.004202ef
mov esp, ebp
pop ebp
ret

Function at 0x40d3c0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43cc38
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x4550d8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp dword [ebx + 0x38], 0
je 0x40d51e
cmp byte [ebx + 0x3e], 0
je 0x40d51e
mov eax, dword [ebx]
push 0xffff
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x43f300]
mov ecx, ebx
call esi
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
sete al
test al, al
je 0x40d430
xor al, al
jmp 0x40d520
mov ecx, 0xf
mov byte [ebp - 0x28], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], ecx
cmp ecx, 0x10
movq qword [ebp - 0x28], xmm0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], 8
cmovae eax, dword [ebp - 0x28]
mov byte [eax + 8], 0
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x14]
mov edi, dword [ebx + 0x38]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x28]
cmp esi, 0x10
lea edx, [ebp - 0x28]
mov esi, dword [edi]
cmovae ecx, dword [ebp - 0x28]
cmovae edx, dword [ebp - 0x28]
add eax, ecx
push eax
mov esi, dword [esi + 0x20]
lea eax, [ebx + 0x40]
push edx
push eax
mov ecx, esi
call dword [0x43f300]
mov ecx, edi
call esi
sub eax, 0
je 0x40d4ad
sub eax, 1
je 0x40d4b1
mov esi, dword [ebp - 0x14]
sub eax, 2
je 0x40d504
xor bl, bl
jmp 0x40d506
mov byte [ebx + 0x3e], 0
mov esi, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
cmp esi, 0x10
mov edi, dword [ebp - 0x2c]
cmovae eax, ecx
sub edi, eax
je 0x40d4e6
push dword [ebx + 0x4c]
cmp esi, 0x10
lea eax, [ebp - 0x28]
push edi
cmovae eax, ecx
push 1
push eax
call fcn.00427e2f
mov esi, dword [ebp - 0x14]
add esp, 0x10
cmp edi, eax
jne 0x40d4a9
cmp byte [ebx + 0x3e], 0
je 0x40d504
test edi, edi
jne 0x40d463
push edi
push 8
lea ecx, [ebp - 0x28]
call fcn.004050f0
jmp 0x40d460
mov bl, 1
cmp esi, 0x10
jb 0x40d51a
lea ecx, [esi + 1]
push ecx
push dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
call fcn.00405810
mov al, bl
jmp 0x40d520
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004202ef
mov esp, ebp
pop ebp
ret
Function at 0x412010
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x4550d8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 0x21c], eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x214], 0
push ecx
mov dword [ebp - 0x210], 0
mov edi, dword [ebx + 4]
or edi, 0x2001f
mov dword [ebp - 0x20c], 0
push edi
push 0
push eax
push dword [ebx]
mov dword [ebp - 0x218], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov esi, eax
test esi, esi
jne 0x41215f
mov eax, dword [ebp - 0x214]
test eax, eax
je 0x412092
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, eax
mov eax, dword [ebp - 0x218]
and edi, 0x300
mov dword [ebp - 0x214], eax
mov dword [ebp - 0x210], edi
test esi, esi
jne 0x41215f
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x208], 0x100
push ecx
push esi
push esi
push esi
lea ecx, [ebp - 0x208]
push ecx
lea ecx, [ebp - 0x204]
push ecx
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x41212b
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x214]
call fcn.00412010
mov esi, eax
test esi, esi
jne 0x41215f
lea eax, [ebp - 0x224]
mov dword [ebp - 0x208], 0x100
push eax
push esi
push esi
push esi
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x204]
push eax
push esi
push dword [ebp - 0x214]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x4120e0
mov eax, dword [ebp - 0x214]
test eax, eax
je 0x412146
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x214], 0
push dword [ebp - 0x21c]
mov ecx, ebx
mov dword [ebp - 0x210], 0
call fcn.00410ce0
mov esi, eax
mov eax, dword [ebp - 0x214]
test eax, eax
je 0x412170
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004202ef
mov esp, ebp
pop ebp
ret 4
Function at 0x412510
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43d116
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x4550d8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x418], 0
push 0x60
push 0
push edi
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
mov dword [ebp - 0x420], esi
test esi, esi
jne 0x4125b8
push 2
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
mov dword [ebp - 0x420], eax
test esi, esi
jne 0x4125b8
call fcn.00410630
mov edi, eax
jmp 0x4126a3
push dword [ebp - 0x41c]
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x4125d6
call fcn.00410630
jmp 0x412696
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
mov dword [ebp - 0x41c], ebx
test ebx, ebx
jne 0x4125f4
call fcn.00410630
jmp 0x412696
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
mov dword [ebp - 0x424], edi
lea eax, [edi + 1]
cmp eax, edi
jae 0x412615
mov edi, 0x8007000e
jmp 0x412698
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.004103e0
jmp 0x41263f
cmp dword [ebp - 0x418], 0
mov dword [ebp - 4], 1
jne 0x412656
mov edi, 0x8007000e
jmp 0x412698
push edi
push dword [ebp - 0x418]
push edi
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, eax
test ecx, ecx
jne 0x412676
call fcn.00410630
jmp 0x412696
mov eax, dword [ebp - 0x418]
xor edx, edx
push dword [ebp + 0x14]
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x42c]
push dword [ebp - 0x418]
call fcn.004123b0
mov edi, eax
test esi, esi
je 0x4126a3
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x4126c0
lea ecx, [ebp - 0x418]
call fcn.00410e00
nop dword [eax]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004202ef
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4130a0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
test ebx, ebx
jne 0x4130b9
lea eax, [ebx + 0xd]
pop ebx
mov esp, ebp
pop ebp
ret 8
push esi
push edi
xor esi, esi
mov edx, ebx
nop
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4130c5
sub eax, edi
sar eax, 1
lea ecx, [eax + 1]
lea edx, [edx + ecx*2]
lea esi, [esi + ecx*2]
cmp ecx, 1
jne 0x4130c0
mov eax, dword [ebp - 4]
push esi
push ebx
push 7
push 0
push dword [ebp + 8]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x413100
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push esi
mov esi, ecx
test edx, edx
jne 0x413115
lea eax, [edx + 0xd]
pop esi
pop ebp
ret 0xc
mov eax, edx
push edi
lea edi, [eax + 2]
nop dword [eax + eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x413120
sub eax, edi
sar eax, 1
lea eax, [eax*2 + 2]
push eax
push edx
push dword [ebp + 0x10]
push 0
push dword [ebp + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
pop edi
pop esi
pop ebp
ret 0xc
Function at 0x413870
Capabilities:
Create thread
Resume thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43d230
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x4550d8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x104]
push 1
call fcn.00401f70
mov dword [eax + 0x60], 0x64
add eax, 0x10
push str.ClientMonitor::startMonitor___session_0x
push eax
mov dword [ebp - 4], 0
call fcn.00401240
mov edx, eax
add esp, 8
test edx, edx
jne 0x4138d7
xor ecx, ecx
jmp 0x4138de
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
mov eax, dword [ecx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + 0x14], eax
mov ecx, edx
push edi
call fcn.0040fab0
mov esi, eax
test esi, esi
jne 0x413900
xor ecx, ecx
jmp 0x413907
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
mov eax, dword [ecx + 0x14]
and eax, 0xfffff3ff
or eax, 0x200
mov dword [ecx + 0x14], eax
mov eax, dword [esi]
push 0xa
mov ecx, dword [eax + 4]
add ecx, esi
call fcn.00407680
movzx eax, ax
mov ecx, esi
push eax
call fcn.00406f10
mov ecx, esi
call fcn.00406780
lea ecx, [ebp - 0x94]
call fcn.0040c690
lea eax, [ebp - 0x94]
mov dword [ebp - 4], 1
push eax
mov dword [ebp - 0x94], vtable.std::ios_base.0
call fcn.0041f324
push 0xc
mov dword [ebp - 4], 0xffffffff
call fcn.0041fdf3
add esp, 8
mov dword [ebp - 0x40], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x413993
push dword [edi + 0x60]
mov ecx, eax
push dword [edi + 0x24]
push edi
call fcn.0040f7e0
mov esi, eax
mov dword [ebp - 0x40], eax
jmp 0x413998
xor esi, esi
mov dword [ebp - 0x40], esi
push 0
push 4
push esi
push 0x411650
push 0
push 0
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, eax
test ebx, ebx
jne 0x4139e6
push 0xc
push esi
call fcn.0041fe2b
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ClientMonitor::startMonitor___CreateThread
lea ecx, [ebp - 0x3c]
call fcn.004081d0
push 0x451b88
lea eax, [ebp - 0x3c]
push eax
call fcn.004225f6
mov eax, dword [edi]
push edi
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x43f300]
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
jne 0x413a41
push 0xc
push dword [ebp - 0x40]
call fcn.0041fe2b
mov eax, dword [edi]
add esp, 8
mov esi, dword [eax + 8]
mov ecx, esi
push edi
call dword [0x43f300]
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.ClientMonitor::startMonitor___ResumeThread
lea ecx, [ebp - 0x4c]
call fcn.00402410
push 0x450c8c
lea eax, [ebp - 0x4c]
push eax
call fcn.004225f6
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004202ef
mov esp, ebp
pop ebp
ret 4
Function at 0x419390
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, dword [ebp + 8]
mov edx, 0xc
push esi
mov esi, ecx
mov eax, ebx
xor ecx, ecx
mov dword [ebp - 4], esi
mul edx
push edi
mov dword [esi + 0x10], 0
seto cl
mov dword [0x456a74], esi
neg ecx
mov dword [esi + 8], 0
or ecx, eax
push 0x456e66
push ecx
call fcn.004206c9
mov edi, eax
add esp, 8
mov dword [ebp - 8], edi
test edi, edi
je 0x419408
mov edx, ebx
test ebx, ebx
je 0x41940a
lea ecx, [edi + 4]
nop word [eax + eax]
mov dword [ecx + 4], 0
lea ecx, [ecx + 0xc]
mov dword [ecx - 0xc], 0
sub edx, 1
jne 0x4193f0
jmp 0x41940a
xor edi, edi
mov dword [esi + 0xc], edi
test edi, edi
je 0x4194ef
lea eax, [ebx + ebx*2]
shl eax, 2
push eax
push 0
push edi
call fcn.00422fc0
add esp, 0xc
mov dword [esi + 8], ebx
xor edi, edi
test ebx, ebx
jle 0x4194a4
xor esi, esi
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
call fcn.00425929
mov ecx, dword [ebp - 8]
test eax, eax
push 0
cmovne ecx, eax
mov dword [ebp - 8], ecx
call fcn.0042594e
push eax
call fcn.00410590
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
add eax, esi
push eax
push 0
push eax
push 0x41e130
push 0
push 0
call fcn.00428694
mov edx, dword [ebp - 4]
add esp, 0x24
mov ecx, dword [edx + 0xc]
mov dword [esi + ecx + 4], eax
mov eax, dword [edx + 0xc]
cmp dword [esi + eax + 4], 0
je 0x4194c9
push dword [ebp - 8]
call fcn.0042594e
push eax
call fcn.00410590
inc edi
add esp, 8
add esi, 0xc
cmp edi, ebx
jl 0x419432
cmp byte [0x456aa8], 0
jne 0x4194bd
push 0x441964
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x456aa4], eax
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
call fcn.00425929
mov eax, dword [ebp - 4]
add esp, 4
mov byte [0x456aa8], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x80004005
mov byte [0x456aa8], 1
call fcn.00410820
int3