joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1007c626
Capabilities:
Create thread

Disassembly:
push esi
mov esi, ecx
push edi
lea edi, [esi + 4]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
mov dword [esi + 0x1c], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0xc]
xor edi, edi
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x24], eax
lea eax, [esi + 0x28]
push eax
push edi
push esi
push 0x1007c737
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
mov eax, dword [esp + 0x14]
dec eax
je 0x1007c675
dec eax
jne 0x1007c67e
push 1
jmp 0x1007c677
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
cmp esi, edi
je 0x1007c689
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
ret 0xc

Function at 0x1007c68e
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea edi, [esi + 4]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
mov dword [esi], 1
call ebx
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
and dword [esp + 0x10], 0
call ebp
mov dword [esp + 0x14], eax
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0x1c], 0
je 0x1007c6e6
push edi
call ebx
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
call ebp
sub eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jae 0x1007c6f1
jmp 0x1007c6c0
push edi
mov dword [esp + 0x14], 1
call ebx
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret 4

Function at 0x1007d621
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
lea eax, [ebp - 0x208]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x1007d642
leave
ret
cmp dword [ebp + 8], 0
je 0x1007d65d
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1007d5c2
pop ecx
test eax, eax
pop ecx
jne 0x1007d6ed
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.100987a0
pop ecx
lea eax, [ebp - 0x104]
pop ecx
push str.MacromedCommon_
push eax
call fcn.10098240
pop ecx
lea eax, [ebp + eax - 0x104]
push eax
call fcn.100987a0
push dword [ebp + 0xc]
lea eax, [ebp - 0x104]
push eax
call fcn.1007d5c2
add esp, 0x10
test eax, eax
jne 0x1007d6ed
lea eax, [ebp - 0x208]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.100987a0
pop ecx
lea eax, [ebp - 0x104]
pop ecx
push str.MacromedShockwave_
push eax
call fcn.10098240
pop ecx
lea eax, [ebp + eax - 0x104]
push eax
call fcn.100987a0
push dword [ebp + 0xc]
lea eax, [ebp - 0x104]
push eax
call fcn.1007d5c2
add esp, 0x10
leave
ret
Function at 0x1008e1c0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
push eax
push esi
xor edi, edi
call dword [0x10177ec0]
mov ecx, eax
add esp, 8
add ecx, 0x20
mov ebx, 8
sar ecx, 6
xor eax, eax
mov al, byte [esi + 7]
sub eax, ecx
cdq
mov ebp, eax
xor eax, eax
mov al, byte [esi + 6]
xor ebp, edx
sub eax, ecx
sub ebp, edx
cdq
xor eax, edx
sub eax, edx
add ebp, eax
xor eax, eax
mov al, byte [esi + 5]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
add ebp, eax
xor eax, eax
mov al, byte [esi + 4]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
add ebp, eax
xor eax, eax
mov al, byte [esi + 3]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
add ebp, eax
xor eax, eax
mov al, byte [esi + 2]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
add ebp, eax
xor eax, eax
mov al, byte [esi + 1]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
add ebp, eax
xor eax, eax
mov al, byte [esi]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x18]
add eax, edi
add esi, edx
dec ebx
lea edi, [eax + ebp]
jne 0x1008e1e6
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x1008e760
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x28]
mov eax, 2
sub eax, edi
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, 3
sub eax, edi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, 4
sub eax, edi
mov ebp, 1
mov dword [esp + 0x14], eax
mov eax, 5
sub eax, edi
sub ebp, edi
mov dword [esp + 0x18], eax
mov eax, 6
sub eax, edi
lea ecx, [ebx + edi + 1]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], 8
xor eax, eax
xor edx, edx
mov al, byte [ecx - 1]
mov dl, byte [ebx]
lea eax, [eax + edx + 1]
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov byte [esi], al
mov dl, byte [ecx]
xor eax, eax
mov al, byte [ebx + 1]
add ebx, edi
lea eax, [eax + edx + 1]
cdq
sub eax, edx
xor edx, edx
sar eax, 1
mov byte [esi + 1], al
mov dl, byte [ecx + 1]
xor eax, eax
mov al, byte [ecx + ebp]
lea eax, [eax + edx + 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x28]
sar eax, 1
mov byte [esi + 2], al
xor eax, eax
mov al, byte [edx + ecx]
xor edx, edx
mov dl, byte [ecx + 2]
lea eax, [eax + edx + 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar eax, 1
mov byte [esi + 3], al
xor eax, eax
mov al, byte [ecx + edx]
xor edx, edx
mov dl, byte [ecx + 3]
lea eax, [eax + edx + 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
mov byte [esi + 4], al
xor eax, eax
mov al, byte [ecx + edx]
xor edx, edx
mov dl, byte [ecx + 4]
lea eax, [eax + edx + 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x18]
sar eax, 1
mov byte [esi + 5], al
xor eax, eax
mov al, byte [ecx + edx]
xor edx, edx
mov dl, byte [ecx + 5]
lea eax, [eax + edx + 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x1c]
sar eax, 1
mov byte [esi + 6], al
xor eax, eax
mov al, byte [ecx + edx]
xor edx, edx
mov dl, byte [ecx + 6]
add ecx, edi
lea eax, [eax + edx + 1]
cdq
sub eax, edx
sar eax, 1
mov byte [esi + 7], al
mov eax, dword [esp + 0x24]
add esi, edi
dec eax
mov dword [esp + 0x24], eax
jne 0x1008e7bd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x1008fe00
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
push edi
mov edi, dword [esp + 0x14]
shl esi, 0xe
mov eax, dword [edi]
xor ebp, ebp
add eax, 4
add esi, 0x100b7d74
sar eax, 3
cmp eax, 1
jge 0x1008fe2b
mov eax, 1
jmp 0x1008fe37
cmp eax, 0xfe
jle 0x1008fe37
mov eax, 0xfe
mov edx, dword [esp + 0x18]
mov ebx, 0x3f
sub edi, edx
mov dword [edx], eax
lea ecx, [edx + 4]
mov eax, dword [edi + ecx]
add ecx, 4
mov eax, dword [esi + eax*4]
mov dword [ecx - 4], eax
cdq
xor eax, edx
sub eax, edx
add ebp, eax
dec ebx
jne 0x1008fe47
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
ret

Function at 0x10090160
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
push edi
mov edi, dword [esp + 0x14]
xor ebx, ebx
shl esi, 0xe
add esi, 0x100b7d74
sub edi, ecx
mov ebp, 0x40
mov eax, dword [edi + ecx]
add ecx, 4
mov eax, dword [esi + eax*4]
mov dword [ecx - 4], eax
cdq
xor eax, edx
sub eax, edx
add ebx, eax
dec ebp
jne 0x10090182
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
ret
Function at 0x10098190
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 8]
push ebx
mov eax, ecx
mov ebx, dword [esp + 0x10]
cdq
and edx, 7
push ebp
add eax, edx
and ecx, 7
sar eax, 3
push esi
mov esi, dword [esp + 0x10]
test eax, eax
mov ebp, ecx
jle 0x100981db
push edi
mov edi, eax
push 8
mov ecx, esi
call fcn.100933d0
xor ecx, ecx
and eax, 0xff
mov cl, bh
xor edx, edx
xor eax, ecx
mov dh, bl
mov ebx, dword [eax*4 + 0x100a4a7c]
xor ebx, edx
dec edi
jne 0x100981b6
pop edi
test ebp, ebp
jle 0x10098207
push 1
mov ecx, esi
call fcn.100933d0
mov ecx, ebx
and ebx, 0x7fff
shr ecx, 0xf
and ecx, 1
xor eax, ecx
shl ebx, 1
test eax, eax
je 0x10098204
xor ebx, 0x8005
dec ebp
jne 0x100981df
pop esi
mov eax, ebx
pop ebp
pop ebx
ret
Function at 0x42a620
Capabilities:
Check os version
Get common file path
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x24
mov eax, dword [0x49803c]
mov esi, ecx
xor eax, ebp
mov dword [ebp - 8], eax
jmp dword [edx*4 + 0x4656ec]

Function at 0x42ae50
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x58
mov esi, ecx
mov ecx, dword [0x49803c]
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x2c]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov ecx, edi
push eax
call fcn.0042abb0
add esp, 4
mov eax, dword [edi + 0x18]
test eax, eax
je 0x42ae9a
mov word [esi], 0
mov dword [esi + 4], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045fb40
mov eax, esi
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret
movsd xmm0, qword [ebp - 0x1c]
movsd xmm2, qword [ebp - 0x2c]
movsd xmm1, qword [ebp - 0x24]
xor eax, eax
lea edi, [ebp - 0x5c]
mov ebx, 7
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x2c], ax
mov dword [edi + 0x14], ebx
mov dword [edi + 0x10], eax
mov word [edi], ax
movsd qword [ebp - 0x34], xmm0
movsd qword [ebp - 0x3c], xmm1
movsd qword [ebp - 0x44], xmm2
sub esp, 0xc
mov al, byte [ebp - 0x60]
mov ecx, edi
mov byte [esp + 4], al
mov dword [esp + 8], str.SOFTWAREMozillaFirefoxDefault_Browser_Agent
mov dword [esp], 0x2e
call fcn.00424520
cmp dword [ebp - 0x30], ebx
mov dword [ebp - 0x64], 4
jbe 0x42af06
mov eax, dword [ebp - 0x44]
jmp 0x42af09
lea eax, [ebp - 0x44]
cmp dword [ebp - 0x48], ebx
jbe 0x42af11
mov edi, dword [ebp - 0x5c]
lea ecx, [ebp - 0x64]
lea edx, [ebp - 0x60]
push ecx
push edx
mov ecx, 0
push ecx
push 0x10
push eax
push edi
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x42af45
cmp eax, 2
jne 0x42af5f
mov dword [esi + 4], 0
mov word [esi], 0
jmp 0x42af89
xor eax, eax
cmp dword [ebp - 0x60], 0
mov dword [esi + 4], 0
setne al
or eax, 0x100
mov word [esi], ax
jmp 0x42af89
movzx edi, ax
mov edx, str.RegistryGetValueBool
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov ecx, edi
push 0xb1
call fcn.00428eb0
add esp, 4
mov word [esi], 0
mov dword [esi + 4], edi
mov ecx, dword [ebp - 0x48]
cmp ecx, 8
jb 0x42afaa
mov eax, dword [ebp - 0x5c]
lea edx, [ecx + ecx + 2]
cmp edx, 0x1000
jae 0x42afe4
push edx
push eax
call fcn.0045f3d1
add esp, 8
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x42afcb
mov eax, dword [ebp - 0x44]
lea edx, [ecx + ecx + 2]
cmp edx, 0x1000
jae 0x42affc
push edx
push eax
call fcn.0045f3d1
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], 0
jmp 0x42ae86
mov edx, eax
mov eax, dword [eax - 4]
add edx, 0xfffffffc
sub edx, eax
cmp edx, 0x20
jae 0x42b014
add ecx, ecx
add ecx, 0x25
mov edx, ecx
jmp 0x42afa0
mov edx, eax
mov eax, dword [eax - 4]
add edx, 0xfffffffc
sub edx, eax
cmp edx, 0x20
jae 0x42b014
add ecx, ecx
add ecx, 0x25
mov edx, ecx
jmp 0x42afc1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x401400
Capabilities:
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [esp + 0x10], 0x441030
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x23
mov dword [esp], 0
call sub.SHELL32.DLL_SHGetFolderPathA
sub esp, 0x14
call sub.msvcrt.dll_rand
mov edx, eax
mov eax, edx
sar eax, 0x1f
shr eax, 0x1f
lea eax, [edx + eax]
sar eax, 1
add eax, eax
sub edx, eax
mov eax, edx
add eax, 5
mov dword [esp], eax
call sym._R_7xs_8hVG_83R77GS6_x48a86_38I_YtaY6_818681_aV6TImYVFXo
mov dword [esp + 4], 0x43e005
mov dword [esp], 0x441030
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 0x43d000
mov dword [esp], 0x441030
call sub.msvcrt.dll_strcat
leave
ret

Function at 0x4015c0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], str.open
mov dword [esp], 0
call sub.SHELL32.DLL_ShellExecuteA
sub esp, 0x18
leave
ret
Function at 0x401d36
Capabilities:
Create directory
Get common file path
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x28c
mov dword [ebp - 0x23c], sym.J_Vh03xzRX5h_h3Vm_3Vk_YX5h_l58d8YX5h_g58d8
mov dword [ebp - 0x238], 0x43c046
lea eax, [ebp - 0x234]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x401f6a
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x254]
mov dword [esp], eax
call fcn.0040d0f0
add dword [0x441018], 0xfffffff9
adc dword [0x44101c], 0xffffffff
mov dword [esp + 0x10], 0x4410b0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x23
mov dword [esp], 0
mov dword [ebp - 0x250], 0xffffffff
call sub.SHELL32.DLL_SHGetFolderPathA
sub esp, 0x14
mov dword [esp + 4], 0x43e005
mov dword [esp], 0x4410b0
call sub.msvcrt.dll_strcat
mov dword [esp + 4], str.Saaaalamm
mov dword [esp], 0x4410b0
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 0
mov dword [esp], 0x4410b0
call sub.KERNEL32.DLL_CreateDirectoryA
sub esp, 8
mov dword [esp + 4], str.Mira.h
mov dword [esp], 0x4410b0
call sub.msvcrt.dll_strcat
mov dword [esp + 4], 0x10
mov dword [esp], 4
call sym.TImYVFXo7MD68IeVFpb8V6l1v0_Uwb7F_681R_7_97n37IYVx8681Rk7
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4410b0
lea eax, [ebp - 0x118]
mov dword [esp], eax
call sym.Vv_lN8FlN58d8F_8RXv_lN8Fl7kVd8I_8o
mov dword [esp + 4], 8
mov dword [esp], 4
call sym.TImYVFXo7MD68IeVFpb8V6l1v0_Uwb7F_681R_7_97n37IYVx8681Rk7
mov dword [esp + 8], eax
mov dword [esp + 4], 0x43d040
lea eax, [ebp - 0x218]
mov dword [esp], eax
mov dword [ebp - 0x250], 2
call sym.Vv_lN8FlN58d8F_8RXv_lN8Fl7kVd8I_8o
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
mov eax, dword [ebp - 0x220]
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x260], eax
mov dword [ebp - 0x25c], edx
mov edx, dword [ebp - 0x25c]
cmp edx, dword [0x44101c]
jg 0x401f2b
mov eax, dword [ebp - 0x25c]
cmp eax, dword [0x44101c]
jl 0x401ed0
mov edx, dword [ebp - 0x260]
cmp edx, dword [0x441018]
jae 0x401f2b
mov dword [esp + 8], 1
mov dword [esp + 4], 0x441020
lea eax, [ebp - 0x218]
mov dword [esp], eax
mov dword [ebp - 0x250], 1
call sym.88_8_788_88__788_88_H_788_88_P_788_88_L_788_88_X_788_88__788_88___78
mov dword [esp + 8], 1
mov dword [esp + 4], 0x441020
lea eax, [ebp - 0x118]
add eax, 8
mov dword [esp], eax
call sym.rP:Zf9jYP:P_NkZF_51_G7BG__L8r8A88YhN71_
lea eax, [ebp - 0x220]
add dword [eax], 1
adc dword [eax + 4], 0
jmp 0x401e8e
lea eax, [ebp - 0x218]
mov dword [esp], eax
mov dword [ebp - 0x250], 1
call sym.8V8V_XOXgPDk_88_7F8RXvg_1_8b7_8Vv_
lea eax, [ebp - 0x118]
mov dword [esp], eax
call sym.8V8V_XOXgPDk_88_7F8RXvg_1_8b7_8Vv_
mov dword [esp + 4], 2
mov dword [esp], 0x4410b0
call sub.KERNEL32.DLL_SetFileAttributesA
sub esp, 8
jmp 0x401fb6
lea eax, [ebp - 0x218]
mov dword [esp], eax
mov dword [ebp - 0x250], 2
call sym._8_HPX1Vh03Vp43_8R8__81zVVi8_81XH__g_vXp41P18
jmp 0x402018
lea eax, [ebp - 0x118]
mov dword [esp], eax
mov dword [ebp - 0x250], 0xffffffff
call sym._8_HPX1Vh03Vp43_8R8__81zVVi8_81XH__g_vXp41P18
lea eax, [ebp - 0x254]
mov dword [esp], eax
call fcn.0040d1d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x4040a0
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
call dword [sym.imp.KERNEL32.DLL_TlsAlloc]
cmp eax, 0xffffffff
je 0x4040d6
mov dword [0x4451d0], eax
mov edx, sym.0P8AP88V7_7V1_u97Xx7c7Xx87V3
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040cb80
test eax, eax
sete al
movzx eax, al
mov dword [0x43d0f0], eax
leave
ret
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
sete al
movzx eax, al
mov dword [0x43d0f0], eax
leave
ret

Function at 0x4041c0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp - 0xc]
sub esp, 0x68
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], esi
mov dword [ebp - 4], edi
mov dword [ebp - 0x28], sym.J_Vh03xzRX5h_h3Vm_3Vk_YX5h_l58d8YX5h_g58d8
mov dword [ebp - 0x24], 0x43c6d4
mov dword [ebp - 0x1c], 0x404280
mov dword [ebp - 0x18], esp
mov dword [esp], eax
call fcn.0040d0f0
cmp dword [0x43d0f0], 0
mov dword [ebp - 0x44], 0x4451e0
je 0x404260
jl 0x4042a0
mov dword [ebp - 0x3c], 1
mov eax, dword [0x4451d0]
mov dword [ebp - 0x4c], eax
mov eax, dword [sym.imp.KERNEL32.DLL_GetLastError]
call eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_TlsGetValue]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_SetLastError]
mov eax, dword [ebp - 0x54]
sub esp, 4
test eax, eax
mov dword [ebp - 0x48], eax
je 0x404343
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
lea esi, [esi]
lea eax, [ebp - 0x40]
mov dword [esp], eax
call fcn.0040d1d0
mov eax, dword [ebp - 0x44]
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
mov edx, dword [0x4457f0]
mov eax, 0xffffffff
test edx, edx
je 0x4042ba
mov eax, dword [0x43d0f4]
test eax, eax
je 0x4042fa
xor eax, eax
test eax, eax
jne 0x4042f0
mov edi, dword [0x43d0f0]
test edi, edi
js 0x4042f0
mov dword [ebp - 0x44], 0x4451e0
mov ebx, dword [0x43d0f0]
test ebx, ebx
je 0x404260
jmp 0x40420e
xor esi, esi
mov dword [0x43d0f0], esi
jmp 0x4042c8
mov dword [esp], 0x43d0f8
mov dword [ebp - 0x3c], 1
call sub.KERNEL32.DLL_InterlockedIncrement
sub esp, 4
test eax, eax
je 0x404381
mov eax, dword [0x43d0f4]
test eax, eax
jne 0x4042b8
mov dword [esp], 0
mov eax, dword [sym.imp.KERNEL32.DLL_Sleep]
mov dword [ebp - 0x3c], 1
call eax
sub esp, 4
mov eax, dword [0x43d0f4]
test eax, eax
je 0x40431d
jmp 0x4042b8
mov dword [esp], 8
call sub.msvcrt.dll_malloc
mov dword [ebp - 0x48], eax
test eax, eax
je 0x404375
mov dword [esp + 4], eax
mov eax, dword [0x4451d0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_TlsSetValue]
sub esp, 8
xor edx, edx
test eax, eax
je 0x4043aa
test edx, edx
je 0x404395
mov dword [ebp - 0x3c], 1
call sym._Xxpq__7Ce_07VXxz5DP_zhY3Z778XHD_7_7XxX7ohx8
call sym.88V7_7V1_u97Xx7c7Xx87V3u77Xx8
mov eax, 1
mov dword [0x43d0f4], eax
jmp 0x4042b8
mov eax, dword [ebp - 0x48]
mov dword [eax], 0
mov dword [eax + 4], 0
jmp 0x404256
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edx, eax
jmp 0x404371
Function at 0x4099f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1c
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
lea esi, [esi]
lea edi, [edi]
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._TG_7XHG_o85_Q94RG_b788V7Xqw_xVxD7n3568o9_7o9
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edi
call sub.msvcrt.dll__read
cmp eax, 0xffffffff
mov ebx, eax
jne 0x409a3c
call sub.msvcrt.dll__errno
cmp dword [eax], 4
je 0x409a10
add esp, 0x1c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x40ca20
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov eax, 0x10
mov ebp, esp
push ebx
sub esp, 0x64
and esp, 0xfffffff0
call fcn.0040db40
call fcn.0040cc80
call sub.KERNEL32.DLL_GetCommandLineA
mov ebx, eax
lea eax, [ebp - 0x58]
mov dword [esp], eax
call sub.KERNEL32.DLL_GetStartupInfoA
sub esp, 4
test ebx, ebx
jne 0x40ca58
jmp 0x40caf6
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
sete al
cmp cl, 9
sete dl
or eax, edx
test al, 1
jne 0x40ca57
cmp cl, 0x22
je 0x40cab0
cmp cl, 0x20
setne al
xor edx, edx
cmp cl, 9
setne dl
test eax, edx
je 0x40cad0
lea esi, [esi]
lea edi, [edi]
test cl, cl
je 0x40cad0
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
setne al
xor edx, edx
cmp cl, 9
setne dl
test eax, edx
jne 0x40ca90
jmp 0x40cad0
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x22
setne al
xor edx, edx
test cl, cl
setne dl
test eax, edx
jne 0x40cab0
cmp cl, 0x22
je 0x40cb32
lea esi, [esi]
cmp cl, 0x20
sete al
cmp cl, 9
sete dl
jmp 0x40caf0
inc ebx
movzx ecx, byte [ebx]
cmp cl, 0x20
sete dl
cmp cl, 9
sete al
or eax, edx
test al, 1
jne 0x40cae0
mov dword [esp], 0
call sub.KERNEL32.DLL_GetModuleHandleA
sub esp, 4
test byte [ebp - 0x2c], 1
mov edx, 0xa
je 0x40cb14
movzx edx, word [ebp - 0x28]
mov dword [esp + 8], ebx
xor ebx, ebx
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edx
mov dword [esp], eax
call sym.a86_38I_YtaY6_818681_aV6TImYVFXo7MD68IeVFpb8V6l1v0_Uwb7F_
sub esp, 0x10
mov ebx, dword [ebp - 4]
leave
ret
inc ebx
movzx ecx, byte [ebx]
jmp 0x40cad0

Function at 0x40cfe0
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov ebx, dword [0x445850]
call dword [sym.imp.KERNEL32.DLL_TlsAlloc]
cmp eax, 0xffffffff
je 0x40d020
mov dword [ebx + 0x2c], eax
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call fcn.0040cb80
test eax, eax
sete al
movzx eax, al
mov dword [ebx + 0x30], eax
add esp, 0x14
pop ebx
pop ebp
ret
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
sete al
movzx eax, al
mov dword [ebx + 0x30], eax
add esp, 0x14
pop ebx
pop ebp
ret
Function at 0x4018a4
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebx
push esi
sub esp, 8
mov eax, dword [0x40f3c0]
xor eax, esp
mov dword [esp + 4], eax
mov byte [esp + 3], 1
rdtsc
xchg ebx, eax
rdtsc
sub eax, ebx
cmp eax, dword [esp + 0x14]
jg 0x4018cb
mov byte [esp + 3], 0
movzx esi, byte [esp + 3]
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.0040a7a1
mov eax, esi
add esp, 8
pop esi
pop ebx
ret
Function at 0x407358
Capabilities:
Set registry value

Disassembly:
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0x40f3c0]
xor edx, esp
mov dword [esp + 4], edx
mov ecx, dword [ecx]
xor edx, edx
mov dword [esp], edx
cmp dword [eax + 0x14], 8
jb 0x407381
mov eax, dword [eax]
mov esi, dword [esp + 0x18]
mov edi, esp
push edi
push 0x2011f
push edx
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test eax, eax
je 0x4073a2
xor ebx, ebx
mov eax, edi
jmp 0x4073d9
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 8
jb 0x4073b5
mov ecx, dword [ecx]
mov ebx, dword [esp]
lea edx, [edx*2 + 2]
cmp dword [eax + 0x14], 8
jb 0x4073c7
mov eax, dword [eax]
push edx
push ecx
push 1
push 0
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x40739e
mov dword [esi], eax
test ebx, ebx
je 0x4073ef
lea eax, [ebx - 0x80000000]
cmp eax, 7
ja 0x407403
cmp eax, 6
je 0x407403
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.0040a7a1
mov eax, esi
add esp, 8
pop esi
pop edi
pop ebx
ret
cmp ebx, 0x80000050
je 0x4073ef
cmp ebx, 0x80000060
je 0x4073ef
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4073ef