joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47ee1d
Capabilities:
Query environment variable

Disassembly:
push 0x14
push 0x4f9170
call fcn.004cc2dc
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 8], eax
je 0x47eecb
cmp dword [ebp + 0xc], eax
je 0x47eecb
push eax
push eax
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
call edi
mov esi, eax
cmp esi, 1
jb 0x47eecb
mov ebx, 0x103
cmp esi, ebx
ja 0x47eecb
and dword [ebp - 4], 0
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0049391c
pop ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x47eec7
lea ecx, [esi + esi]
push ecx
push 0
push eax
call fcn.00495180
add esp, 0xc
push esi
push dword [ebp - 0x24]
push dword [ebp + 8]
call edi
test eax, eax
je 0x47eec7
cmp eax, ebx
ja 0x47eec7
push eax
push dword [ebp - 0x24]
push ebx
push dword [ebp + 0xc]
call fcn.00499a26
add esp, 0x10
mov dword [ebp - 0x20], 1
jmp 0x47eec7
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], 0
je 0x47eeda
push dword [ebp - 0x1c]
call fcn.004951fa
pop ecx
mov eax, dword [ebp - 0x20]
call fcn.004cc317
ret

Function at 0x47efc6
Capabilities:
Get common file path

Disassembly:
mov eax, 0x4ce8b0
call fcn.004cc470
sub esp, 0x20c
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
push 0x206
mov dword [ebp - 4], edi
lea eax, [ebp - 0x216]
push edi
mov dword [ebp - 0x10], edi
push eax
mov word [ebp - 0x218], di
call fcn.00495180
add esp, 0xc
mov ecx, 0x50dc24
call fcn.004014c8
lea eax, [ebp - 0x218]
push eax
mov dword [ebp - 4], edi
push 0x104
mov dword [ebp - 0x10], 1
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, edi
je 0x47f04e
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea eax, [ebp - 0x218]
push eax
push esi
call fcn.00432935
push str.kinst.log
push esi
call fcn.00432697
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
leave
ret

Function at 0x47f05e
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
push esi
push edi
push str.explorer.exe
lea eax, [ebp - 4]
push eax
xor esi, esi
xor edi, edi
call fcn.0043295b
push 0x228
lea eax, [ebp - 0x22c]
push esi
push eax
mov dword [ebp - 0x230], esi
call fcn.00495180
add esp, 0xc
push esi
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
cmp esi, 0xffffffff
je 0x47f0fb
lea eax, [ebp - 0x230]
push eax
push esi
mov dword [ebp - 0x230], 0x22c
call sub.KERNEL32.dll_Process32FirstW
jmp 0x47f0e0
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 4]
call fcn.004978f4
test eax, eax
pop ecx
pop ecx
je 0x47f0e6
lea eax, [ebp - 0x230]
push eax
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x47f0be
jmp 0x47f0f4
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp + 8]
xor edi, edi
mov dword [ecx], eax
inc edi
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
call fcn.004011c0
mov eax, edi
pop edi
pop esi
leave
ret
Function at 0x47f417
Capabilities:
Create directory
Delete directory

Disassembly:
mov eax, 0x4d237f
call fcn.004cc470
push esi
push edi
and dword [ebp - 4], 0
push str._access
lea eax, [ebp + 8]
push eax
call fcn.00432697
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call esi
test edi, edi
je 0x47f459
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x47f460
call esi
cmp eax, 5
je 0x47f463
xor edi, edi
inc edi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004011c0
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
leave
ret
Function at 0x47f87e
Capabilities:
Move file

Disassembly:
mov eax, 0x4cf667
call fcn.004cc470
sub esp, 0x38
push esi
push edi
and dword [ebp - 4], 0
lea esi, [ebp + 8]
call fcn.0040bbb0
push eax
lea eax, [ebp - 0x44]
call fcn.0041e4b9
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 1
call fcn.0044f1dd
lea eax, [ebp - 0x28]
call fcn.0044f9eb
movzx edi, al
test edi, edi
jne 0x47f8ee
cmp dword [ebp - 0x14], 0x104
jb 0x47f8cf
xor al, al
jmp 0x47f8eb
cmp dword [ebp - 0x10], 8
mov eax, dword [ebp - 0x24]
jae 0x47f8db
lea eax, [ebp - 0x24]
push 5
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
setne al
movzx edi, al
push 0
push 1
lea esi, [ebp - 0x28]
call fcn.0041a431
push 0
push 1
lea esi, [ebp - 0x44]
call fcn.0041a431
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004011c0
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
mov dword fs:[0], ecx
pop esi
leave
ret

Function at 0x47f921
Capabilities:
Check if file exists

Disassembly:
push ecx
push edi
push 3
xor edi, edi
push edi
push edi
push esi
push dword [esp + 0x1c]
call fcn.004807be
add esp, 0x14
test eax, eax
jne 0x47f947
push dword [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x47f947
inc edi
mov eax, edi
pop edi
pop ecx
ret
Function at 0x47fd90
Capabilities:
Persist via run registry key

Disassembly:
mov eax, 0x4cd9a4
call fcn.004cc470
push ecx
push ecx
push esi
push edi
xor edi, edi
and dword [ebp - 0x10], edi
and dword [ebp - 4], edi
mov eax, dword [0x50dc24]
mov ecx, 0x50dc24
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionRunOnce
push reloc.OLEAUT32.dll_SysReAllocString
lea esi, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.0044decf
test eax, eax
je 0x47fde4
lea eax, [ebp - 0x14]
push eax
mov eax, esi
push eax
call fcn.0044df43
test eax, eax
je 0x47fde4
inc edi
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.004011c0
cmp dword [ebp - 0x10], 0
je 0x47fdfe
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
leave
ret

Function at 0x47fe0e
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x4cf97f
call fcn.004cc470
push ecx
push ecx
push ebx
push esi
push edi
mov edi, dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 1
mov esi, ecx
mov eax, dword [esi]
xor ecx, ecx
push ecx
push ecx
push eax
mov ebx, str.open
push ebx
push ecx
call edi
cmp eax, 0x20
jle 0x47fe41
xor esi, esi
inc esi
jmp 0x47fe7e
mov eax, dword [esi]
push 1
push 0
push eax
push str.IEXPLORE.EXE
push ebx
push 0
call edi
cmp eax, 0x20
jg 0x47fe3c
lea eax, [ebp - 0x10]
push eax
call fcn.0047ec52
pop ecx
and dword [ebp - 4], 0
push dword [esi]
push dword [ebp - 0x10]
call fcn.0047e331
mov esi, eax
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
add eax, 0xfffffff0
call fcn.004011c0
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
Function at 0x4807be
Capabilities:
Check if file exists
Delete file

Disassembly:
mov eax, 0x4d1678
call fcn.004cc470
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
sub esp, 0x9c
push ebx
xor ebx, ebx
cmp ecx, ebx
push esi
push edi
je 0x480932
mov edi, dword [ebp + 0xc]
mov ecx, dword [edi]
cmp dword [ecx - 0xc], ebx
je 0x480932
push eax
lea esi, [ebp - 0xa4]
call fcn.00433b86
mov dword [ebp - 4], ebx
push dword [eax]
lea eax, [ebp + 8]
push eax
call fcn.00430579
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 2
cmp dword [ebp - 0xa4], eax
je 0x480829
push dword [ebp - 0xa4]
call fcn.00495d38
pop ecx
mov ecx, 0x50dc24
lea esi, [ebp - 0x14]
mov dword [ebp - 0x20], 0x4eda5c
call fcn.004014c8
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 4], 3
push dword [edi]
mov eax, esi
push eax
call fcn.00432935
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x48085e
mov dword [ebp - 0x18], eax
push dword [ebp + 8]
lea ebx, [ebp - 0x20]
call fcn.004806f3
push dword [edi]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call esi
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
je 0x480881
push dword [edi]
call ebx
cmp dword [ebp + 0x18], 0
lea edi, [ebp - 0x20]
jne 0x480891
push 0x12c
jmp 0x480894
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.004803ff
mov edi, eax
test edi, edi
mov eax, dword [ebp + 0xc]
pop ecx
pop ecx
je 0x4808e6
push dword [eax]
call ebx
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4808b4
mov dword [eax], edi
cmp dword [ebp - 0x10], 0
je 0x4808c7
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x10], 0
mov esi, 0xfa
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.004011c0
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004011c0
mov eax, esi
jmp 0x480935
push dword [eax]
call esi
test eax, eax
jne 0x480905
cmp dword [ebp - 0x10], eax
je 0x480900
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x10], 0
push 0x35
pop esi
jmp 0x4808cc
cmp dword [ebp - 0x10], 0
je 0x480918
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.004011c0
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004011c0
xor eax, eax
jmp 0x480935
push 0x33
pop eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
Function at 0x4815dd
Capabilities:
Check if file exists

Disassembly:
mov eax, dword [esi + 0xc]
cmp dword [eax - 0xc], 0
jne 0x4815ec
mov eax, 0x13a
ret
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4815fd
mov eax, 0x13b
ret
push dword [esi + 0x20]
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
push eax
push ecx
call fcn.0047e45b
add esp, 0xc
test eax, eax
je 0x481617
xor eax, eax
ret
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
push eax
push ecx
mov ecx, dword [esi + 0x20]
call fcn.0047e1c1
test eax, eax
pop ecx
pop ecx
jne 0x481614
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
push 0
push eax
push ecx
mov ecx, dword [esi + 0x20]
call fcn.0047d920
add esp, 0xc
neg eax
sbb eax, eax
and eax, 0xfffffec7
add eax, 0x139
ret

Function at 0x481733
Capabilities:
Check if file exists

Disassembly:
mov eax, 0x4cf97f
call fcn.004cc470
sub esp, 0xc
push ebx
push edi
lea eax, [ebp - 0x10]
xor edi, edi
push eax
mov dword [ebp - 0x14], edi
call fcn.0044e610
pop ecx
mov dword [ebp - 4], edi
cmp dword [esi], edi
je 0x481792
mov eax, esi
push dword [eax]
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x10]
call fcn.0041c66b
pop ecx
pop ecx
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ebx, eax
mov eax, dword [ebp - 0x18]
neg ebx
sbb bl, bl
add eax, 0xfffffff0
inc bl
call fcn.004011c0
test bl, bl
jne 0x481799
inc edi
lea eax, [esi + edi*4]
cmp dword [eax], 0
jne 0x48175a
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
call fcn.004011c0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
pop edi
pop ebx
mov dword fs:[0], ecx
leave
ret

Function at 0x4818bc
Capabilities:
Send icmp echo request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
and dword [ebp - 8], 0
push esi
push edi
call fcn.00481988
test al, al
jne 0x4818d9
or eax, 0xffffffff
jmp 0x481984
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
lea ecx, [ebp - 8]
push ecx
push eax
call fcn.00481a4a
test al, al
pop ecx
pop ecx
je 0x4818d1
and dword [ebp - 4], 0
mov esi, str.Data_Buffer
lea edi, [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call sub.iphlpapi.dll_IcmpCreateFile
mov edi, eax
cmp edi, 0xffffffff
jne 0x48190e
xor eax, eax
jmp 0x481984
push dword [ebp - 8]
call dword [sym.imp.WS2_32.dll_inet_addr]
cmp eax, 0xffffffff
mov dword [ebp - 0xc], eax
jne 0x481927
push edi
call sub.iphlpapi.dll_IcmpCloseHandle
jmp 0x48190a
push 0x28
call fcn.00497722
mov esi, eax
test esi, esi
pop ecx
je 0x48191f
mov dword [ebp - 8], 2
push 0x3e8
push 0x28
push esi
push 0
push 0xc
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0xc]
push edi
call sub.iphlpapi.dll_IcmpSendEcho
test eax, eax
je 0x481962
cmp dword [esi + 4], 0
jne 0x481962
inc dword [ebp - 4]
dec dword [ebp - 8]
jne 0x48193c
push esi
call fcn.00495d38
pop ecx
push edi
call sub.iphlpapi.dll_IcmpCloseHandle
call fcn.00481a06
test al, al
je 0x4818d1
mov eax, dword [ebp - 4]
pop edi
pop esi
leave
ret
Function at 0x481988
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
push esi
lea eax, [ebp - 0x1a0]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
cmp eax, 0xffffffff
jne 0x4819ec
push 0x50da98
call fcn.00481acb
pop ecx
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push ecx
push str.WSAGetLastError____
push ecx
push str.An_error_occured_in_WSAStartup_operation:
push esi
call fcn.00455818
add esp, 0xc
push eax
call fcn.00455818
add esp, 0xc
push eax
call fcn.00454618
mov esi, eax
call fcn.00481ab8
xor al, al
jmp 0x481a03
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx eax, word [ebp - 2]
push eax
call fcn.004996b4
pop ecx
mov al, 1
pop esi
leave
ret

Function at 0x481a4a
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x481a90
push 0x50da98
call fcn.00481acb
pop ecx
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push ecx
push str.An_error_occured_in_gethostbyname_operation:_WSAGetLastError____
push esi
call fcn.00455818
add esp, 0xc
push eax
call fcn.00454618
mov esi, eax
call fcn.00481ab8
xor al, al
jmp 0x481ab5
mov eax, dword [eax + 0xc]
push 4
push dword [eax]
lea eax, [ebp - 4]
push 4
push eax
call fcn.00494fc9
add esp, 0x10
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov al, 1
pop esi
leave
ret

Function at 0x4822be
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
mov eax, 0x4cf5bb
call fcn.004cc470
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, 0x4e3074
push ebx
lea eax, [edi + 0xc]
xor esi, esi
push eax
mov dword [edi], vtable.KInstallTool::KUIInfoReport.0
mov dword [edi + 4], esi
mov dword [edi + 8], esi
call fcn.0043295b
push ebx
lea eax, [edi + 0x10]
push eax
mov dword [ebp - 4], esi
call fcn.0043295b
lea esi, [edi + 0x14]
mov ecx, 0x50dc24
mov byte [ebp - 4], 1
call fcn.004014c8
push ebx
lea eax, [edi + 0x18]
push eax
mov byte [ebp - 4], 2
call fcn.0043295b
push ebx
lea eax, [edi + 0x1c]
push eax
mov byte [ebp - 4], 3
call fcn.0043295b
push ebx
lea eax, [edi + 0x20]
push eax
mov byte [ebp - 4], 4
call fcn.0043295b
and dword [edi + 0x2c], 0
and dword [edi + 0x30], 0
mov ecx, dword [ebp - 0xc]
mov byte [edi + 0x24], 0
mov byte [edi + 0x25], 0
mov byte [edi + 0x26], 0
mov byte [edi + 0x27], 0
mov byte [edi + 0x28], 4
mov eax, edi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4
Function at 0x482918
Capabilities:
Terminate thread

Disassembly:
push ecx
and dword [esp], 0
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ebp, [esi + 0x2c]
push ebp
call edi
lea ebx, [esi + 0x14]
push ebx
call edi
cmp byte [esi + 4], 0
jne 0x482945
mov dword [esp + 0x10], 0xfffffffd
jmp 0x48295d
push 0
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [esi + 4], 0
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ebx
call esi
push ebp
call esi
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x482a49
Capabilities:
Create thread

Disassembly:
push ecx
push ecx
and dword [esp], 0
push ebx
push esi
mov esi, eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [esi + 0x2c]
push eax
mov dword [esp + 0x14], eax
call edi
call fcn.00482af4
test al, al
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
je 0x482a7a
or dword [esp + 0xc], 0xffffffff
jmp 0x482ae4
push ebp
push 8
call fcn.0046222d
mov ebp, eax
xor eax, eax
cmp ebp, eax
pop ecx
jne 0x482a95
mov dword [esp + 0x10], 0xfffffffa
jmp 0x482ae3
lea ecx, [esi + 0xc]
push ecx
push eax
push ebp
push 0x482ce3
push eax
push eax
mov dword [ebp], esi
mov dword [ebp + 4], eax
call fcn.004998ba
add esp, 0x18
test eax, eax
mov dword [esi + 8], eax
je 0x482ad4
lea ebp, [esi + 0x14]
jmp 0x482ac6
call ebx
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebp
call edi
cmp byte [esi + 4], 0
push ebp
je 0x482abc
call ebx
jmp 0x482ae3
push ebp
call fcn.00495d38
pop ecx
mov dword [esp + 0x10], 0xfffffffe
pop ebp
push dword [esp + 0x10]
call ebx
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
pop ecx
pop ecx
ret
Function at 0x482c15
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
mov eax, 0x4cf5bb
call fcn.004cc470
push ebx
push esi
mov esi, dword [ebp + 8]
mov dword [esi], vtable.KInstallTool::KUIInfoReport.0
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
push 0x10
pop ebx
sub eax, ebx
call fcn.00401367
add eax, ebx
mov dword [esi + 0xc], eax
and dword [ebp - 4], 0
mov eax, dword [edi + 0x10]
sub eax, ebx
call fcn.00401367
add eax, ebx
mov dword [esi + 0x10], eax
mov byte [ebp - 4], 1
mov eax, dword [edi + 0x14]
sub eax, ebx
call fcn.00401367
add eax, ebx
mov dword [esi + 0x14], eax
mov byte [ebp - 4], 2
mov eax, dword [edi + 0x18]
sub eax, ebx
call fcn.00401367
add eax, ebx
mov dword [esi + 0x18], eax
mov byte [ebp - 4], 3
mov eax, dword [edi + 0x1c]
sub eax, ebx
call fcn.00401367
add eax, ebx
mov dword [esi + 0x1c], eax
mov byte [ebp - 4], 4
mov eax, dword [edi + 0x20]
sub eax, ebx
call fcn.00401367
add eax, ebx
mov dword [esi + 0x20], eax
mov al, byte [edi + 0x24]
mov ecx, dword [ebp - 0xc]
mov byte [esi + 0x24], al
mov al, byte [edi + 0x25]
mov byte [esi + 0x25], al
mov al, byte [edi + 0x26]
mov byte [esi + 0x26], al
mov al, byte [edi + 0x27]
mov byte [esi + 0x27], al
mov al, byte [edi + 0x28]
mov byte [esi + 0x28], al
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x2c], eax
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 4
Function at 0x483066
Capabilities:
Create thread

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0xe8
push ebx
xor ebx, ebx
xor eax, eax
cmp dword [0x50fa5c], ebx
je 0x483084
inc eax
jmp 0x483173
push esi
push edi
mov byte [ebp + 0x54], bl
lea edi, [ebp + 0x55]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov dword [ebp + 0x68], ebx
lea edi, [ebp + 0x6c]
stosd dword es:[edi], eax
push 0xc6
stosd dword es:[edi], eax
lea eax, [ebp - 0x72]
push ebx
push eax
mov word [ebp - 0x74], bx
call fcn.00495180
add esp, 0xc
call fcn.0048357e
push dword [ebp + 0x7c]
mov dword [0x50fa60], eax
push 0x50fa34
call fcn.00432935
call fcn.004834cb
xor edi, edi
inc edi
push edi
lea eax, [ebp + 0x54]
push eax
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push ebx
push ebx
push edi
lea eax, [ebp + 0x54]
push eax
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
lea eax, [ebp + 0x54]
push 0x50fa38
mov dword [ebp + 0x68], 0xc
mov dword [ebp + 0x6c], eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp - 0x74]
push 0x4edd60
push eax
call fcn.0048380a
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventW]
add esp, 0xc
lea eax, [ebp - 0x74]
push eax
push edi
push edi
lea eax, [ebp + 0x68]
push eax
call esi
push ebx
push ebx
push edi
push ebx
mov dword [0x50fa28], eax
call esi
cmp dword [0x50fa28], ebx
mov dword [0x50fa2c], eax
je 0x48316f
cmp eax, ebx
je 0x48316f
push ebx
push ebx
push 0x50fa20
push 0x48331e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
mov dword [0x50fa30], eax
je 0x48316f
mov dword [0x50fa5c], edi
mov eax, edi
jmp 0x483171
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret 4

Function at 0x48317b
Capabilities:
Terminate thread

Disassembly:
push esi
push edi
xor edi, edi
cmp dword [0x50fa30], edi
mov dword [0x50fa20], 1
je 0x4831c6
mov eax, dword [0x50fa2c]
cmp eax, edi
je 0x4831a1
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0xea60
push dword [0x50fa30]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4831c6
push edi
push dword [0x50fa30]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov eax, dword [0x50fa2c]
cmp eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x4831de
push eax
call esi
mov dword [0x50fa2c], edi
mov eax, dword [0x50fa30]
cmp eax, edi
je 0x4831f0
push eax
call esi
mov dword [0x50fa30], edi
mov dword [0x50fa5c], edi
pop edi
pop esi
ret
Function at 0x48332a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4cf57a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push esi
push edi
mov esi, ecx
call fcn.004836ce
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebx
push 0xffffffffffffffff
mov dword [esp + 0x50], ebx
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
jne 0x4834a4
lea edi, [esi + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x38], eax
push dword [esi + 0xc]
mov dword [esp + 0x24], ecx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [esp + 0x20], ebx
je 0x48348d
cmp dword [esi + 4], ebx
jne 0x4833d3
mov eax, dword [esi + 0x14]
push 0x4edde0
push eax
call fcn.00499eb5
cmp eax, ebx
pop ecx
pop ecx
mov dword [esi + 4], eax
je 0x48348d
push ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], 0xf
call fcn.00418ee3
mov byte [esp + 0x4c], 1
cmp dword [esp + 0x20], ebx
je 0x483467
mov eax, dword [esp + 0x1c]
mov edi, dword [eax]
cmp edi, eax
jne 0x4833ff
call fcn.00496274
push 0xffffffffffffffff
push ebx
add edi, 8
push edi
lea ecx, [esp + 0x30]
call fcn.00418eff
mov eax, dword [esp + 0x1c]
push dword [eax]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
lea ebx, [esp + 0x24]
call fcn.00483678
cmp dword [esp + 0x3c], 0x10
mov ecx, dword [esp + 0x28]
jae 0x483437
lea ecx, [esp + 0x28]
mov eax, dword [esi + 4]
test eax, eax
je 0x48345f
push eax
push dword [esp + 0x3c]
push 1
push ecx
call fcn.0049b4be
push dword [esi + 4]
push 2
push 1
push 0x4eb1c0
call fcn.0049b4be
add esp, 0x20
xor ebx, ebx
cmp dword [esp + 0x20], ebx
jne 0x4833f0
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x483478
push eax
call fcn.0049a1f1
pop ecx
mov dword [esi + 4], ebx
push ebx
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x54], bl
call fcn.00418e98
jmp 0x483373
cmp dword [esi], ebx
jne 0x4834a4
push 0xffffffffffffffff
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x483373
lea esi, [esp + 0x18]
call fcn.004836e6
push dword [esp + 0x1c]
call fcn.00495d38
pop ecx
mov ecx, dword [esp + 0x44]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret