joyce8/EMBER2024-capa huggingface dataset:
Function at 0x436980
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x68
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x64], eax
lea eax, [esp]
push eax
push 0xab
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x436a03
cmp eax, 0x82
jbe 0x4369c5
push eax
push str.f80ba18bb00f68df01
call fcn.00439b50
add esp, 8
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push str.78b13a6f91114e6d93f9865b327bbf1
call esi
test eax, eax
jne 0x4369fb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetCurrentDirectory_failed___d_
call fcn.00439b50
add esp, 8
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
lea ecx, [esp + 4]
push ecx
call esi
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret

Function at 0x436a20
Capabilities:
Check if file exists
Copy file
Create directory
Enumerate files on windows
Get file attributes
Set file attributes

Disassembly:
sub esp, 0x254
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x24c], eax
push ebx
push ebp
push esi
push edi
push 0
push str.87216467bb4ddf559a718f5
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x436ac7
lea eax, [esp + 0x10]
push eax
push str..txt
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x436ac7
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0x44]
push edx
call ebp
test eax, eax
je 0x436ae0
lea eax, [esp + 0x3c]
push eax
call esi
cmp eax, 0xffffffff
je 0x436ac7
test al, 1
jne 0x436aa5
or eax, 1
push eax
lea ecx, [esp + 0x154]
push ecx
call edi
lea edx, [esp + 0x10]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x436a72
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x436ac7
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x25c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00439641
add esp, 0x254
ret
push str.14cb2ef345ffb1313bf51e81b6
call fcn.00439b50
add esp, 4
jmp 0x436ac7
Function at 0x436af0
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
push ebx
push esi
push edi
mov edi, 0x2000
push edi
call fcn.00439919
push str.84f178b535c727e57e6b7
mov esi, eax
mov dword [esp + 0x14], edi
call fcn.00439b50
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
add esp, 8
lea eax, [esp + 0xc]
push eax
push esi
push 0
push 0
push str.cd9baa77c6452a19edbd
push 0x80000004
call ebx
cmp eax, 0xea
jne 0x436b68
add edi, 0x1000
push edi
push esi
call fcn.00439d26
add esp, 8
lea ecx, [esp + 0xc]
push ecx
mov esi, eax
push esi
push 0
push 0
push str.138fb781eb731aa52cd1946
push 0x80000004
mov dword [esp + 0x24], edi
call ebx
cmp eax, 0xea
je 0x436b35
test eax, eax
jne 0x436b7f
push edi
push str.3a53d6455ef9b5974c7bf0f1_d
call fcn.00439b50
add esp, 8
pop edi
pop esi
pop ebx
pop ecx
ret
push eax
push str.8e8106a1d2832afd6293189f007749__d_
call fcn.00439b50
add esp, 8
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x436ba0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0x270
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x268], eax
push esi
push 0x103
lea eax, [esp + 0x165]
push 0
push eax
mov byte [esp + 0x16c], 0
call fcn.00440440
add esp, 0xc
xor esi, esi
call fcn.00439c27
cdq
mov ecx, 0x8d
idiv ecx
inc esi
add dl, 0x5d
cmp esi, 0x19
mov byte [esp + esi + 0x15f], dl
jl 0x436bd6
xor eax, eax
lea edx, [esp + 0x160]
push edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x436c57
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x164]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x436c57
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x10]
mov dword [esp + 8], edx
push ecx
lea edx, [esp + 0xc]
push edx
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov ecx, dword [esp + 0x26c]
pop esi
xor ecx, esp
call fcn.00439641
add esp, 0x270
ret

Function at 0x436c70
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x68
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x64], eax
lea eax, [esp]
push eax
push 0xe1
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x436cf3
cmp eax, 0xdc
jbe 0x436cb5
push eax
push str.854da7651a8da69d
call fcn.00439b50
add esp, 8
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push str.387506f3626ba68b5
call esi
test eax, eax
jne 0x436ceb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetCurrentDirectory_failed___d_
call fcn.00439b50
add esp, 8
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
lea ecx, [esp + 4]
push ecx
call esi
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
Function at 0x436d10
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
push ebx
push esi
push edi
mov edi, 0x2000
push edi
call fcn.00439919
push str.a1b5c8b7a21fdff9280bab5f6da5a56
mov esi, eax
mov dword [esp + 0x14], edi
call fcn.00439b50
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
add esp, 8
lea eax, [esp + 0xc]
push eax
push esi
push 0
push 0
push str.5bf9adc365b7323f7a5
push 0x80000004
call ebx
cmp eax, 0xea
jne 0x436d88
add edi, 0x1000
push edi
push esi
call fcn.00439d26
add esp, 8
lea ecx, [esp + 0xc]
push ecx
mov esi, eax
push esi
push 0
push 0
push str.6bf3784dd7bda3d798ade5a95797e
push 0x80000004
mov dword [esp + 0x24], edi
call ebx
cmp eax, 0xea
je 0x436d55
test eax, eax
jne 0x436d9f
push edi
push str.fb01f823d67b1d21fb85c_d
call fcn.00439b50
add esp, 8
pop edi
pop esi
pop ebx
pop ecx
ret
push eax
push str.b06fa4fffd83603546__d_
call fcn.00439b50
add esp, 8
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x436dc0
Capabilities:
Check if file exists
Copy file
Create directory
Enumerate files on windows
Get file attributes
Set file attributes

Disassembly:
sub esp, 0x254
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x24c], eax
push ebx
push ebp
push esi
push edi
push 0
push str.6225c00b24bbe6dd0db91
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x436e67
lea eax, [esp + 0x10]
push eax
push str..txt
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x436e67
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0x44]
push edx
call ebp
test eax, eax
je 0x436e80
lea eax, [esp + 0x3c]
push eax
call esi
cmp eax, 0xffffffff
je 0x436e67
test al, 1
jne 0x436e45
or eax, 1
push eax
lea ecx, [esp + 0x154]
push ecx
call edi
lea edx, [esp + 0x10]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x436e12
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x436e67
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x25c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00439641
add esp, 0x254
ret
push str.2e295213ad672d93c06ff00dc1856
call fcn.00439b50
add esp, 4
jmp 0x436e67
Function at 0x436e90
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x68
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x64], eax
lea eax, [esp]
push eax
push 0x65
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x436f10
cmp eax, 0x99
jbe 0x436ed2
push eax
push str.91b380095f81920d966508c5b94d7f
call fcn.00439b50
add esp, 8
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push str.bcb52df389253a2df125b86d3
call esi
test eax, eax
jne 0x436f08
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetCurrentDirectory_failed___d_
call fcn.00439b50
add esp, 8
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
lea ecx, [esp + 4]
push ecx
call esi
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret

Function at 0x436f20
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x68
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x64], eax
lea eax, [esp]
push eax
push 0x42
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x436f9e
cmp eax, 0x77
jbe 0x436f60
push eax
push str.2f8fd6850bbd3e9bbbd7da87b3ad1f
call fcn.00439b50
add esp, 8
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push str.b73b1381c407064dd84d5ab721a3
call esi
test eax, eax
jne 0x436f96
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetCurrentDirectory_failed___d_
call fcn.00439b50
add esp, 8
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
lea ecx, [esp + 4]
push ecx
call esi
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
Function at 0x436fc0
Capabilities:
Check if file exists
Copy file
Create directory
Enumerate files on windows
Get file attributes
Set file attributes

Disassembly:
sub esp, 0x254
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x24c], eax
push ebx
push ebp
push esi
push edi
push 0
push str.a6039b83be4d32790d2
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x437067
lea eax, [esp + 0x10]
push eax
push str..txt
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x437067
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0x44]
push edx
call ebp
test eax, eax
je 0x437080
lea eax, [esp + 0x3c]
push eax
call esi
cmp eax, 0xffffffff
je 0x437067
test al, 1
jne 0x437045
or eax, 1
push eax
lea ecx, [esp + 0x154]
push ecx
call edi
lea edx, [esp + 0x10]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x437012
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
jne 0x437067
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x25c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00439641
add esp, 0x254
ret
push str.ef5d411f07a9ea75e
call fcn.00439b50
add esp, 4
jmp 0x437067

Function at 0x437090
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x68
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 0x64], eax
lea eax, [esp]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x43710e
cmp eax, 0x41
jbe 0x4370d0
push eax
push str.a43ba9a76fab289fb31ff0
call fcn.00439b50
add esp, 8
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push str.29752899e3e9a1a3cbdb0be3
call esi
test eax, eax
jne 0x437106
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetCurrentDirectory_failed___d_
call fcn.00439b50
add esp, 8
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
lea ecx, [esp + 4]
push ecx
call esi
pop esi
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00439641
add esp, 0x68
ret
Function at 0x437990
Capabilities:
Check os version

Disassembly:
sub esp, 8
mov eax, dword [0x4612b0]
xor eax, esp
mov dword [esp + 4], eax
cmp dword [esi + 0x4c], 0
push ebx
je 0x437a1c
mov eax, dword [esi + 0x18]
test eax, eax
je 0x437b6d
cmp eax, 1
je 0x437b6d
cmp eax, 2
je 0x437b6d
cmp eax, 0xa
je 0x437b6d
cmp eax, 4
je 0x437b59
cmp eax, 5
je 0x437b59
cmp eax, 6
je 0x437b59
cmp eax, 0xc
je 0x437b59
cmp eax, 8
je 0x437af2
cmp eax, 0xe
je 0x437af2
cmp eax, 0xf
jne 0x437a31
push 0
mov eax, esi
call fcn.00438210
add eax, 0x1c
cmp dword [eax + 0x14], 0
jne 0x437b89
mov eax, 0x80004005
pop ebx
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.00439641
add esp, 8
ret
cmp eax, 0x10
jne 0x437a7c
push 1
mov eax, esi
call fcn.00438210
add eax, 0x1c
cmp dword [eax + 0x14], 0
je 0x437a1c
push 1
mov eax, esi
call fcn.00438210
push 0xffffffffffffffff
add eax, 0x1c
push 0
push eax
mov ecx, edi
call fcn.00402be0
push 0
call fcn.0043af41
add esp, 4
xor eax, eax
pop ebx
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.00439641
add esp, 8
ret
cmp eax, 0x11
jne 0x437a9a
push 2
mov eax, esi
call fcn.00438210
add eax, 0x1c
cmp dword [eax + 0x14], 0
je 0x437a1c
push 2
jmp 0x437b8b
push 0
push esi
mov dword [esi + 0x18], 0
call fcn.00437f60
test eax, eax
jl 0x437a1c
push 0
mov eax, esi
call fcn.00438210
push 0xffffffffffffffff
add eax, 0x1c
push 0
push eax
mov ecx, edi
call fcn.00402be0
call fcn.00436780
test eax, eax
je 0x437ba1
call fcn.00436d10
call fcn.0041a8a0
xor eax, eax
pop ebx
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.00439641
add esp, 8
ret
push 2
push esi
call fcn.00437f60
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, 2
je 0x437b11
sub eax, 2
je 0x437b11
sub eax, 4
jne 0x437b19
push 0
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test ebx, ebx
jl 0x437a1c
push 2
mov eax, esi
call fcn.00438210
push 0xffffffffffffffff
add eax, 0x1c
push 0
push eax
mov ecx, edi
call fcn.00402be0
call fcn.00436780
test eax, eax
je 0x437ba1
call fcn.00431240
xor eax, eax
pop ebx
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.00439641
add esp, 8
ret
push 1
push esi
call fcn.00437f60
test eax, eax
jl 0x437a1c
push 1
jmp 0x437b8b
push 0
push esi
call fcn.00437f60
push 0
mov ebx, eax
call fcn.0043af41
add esp, 4
test ebx, ebx
jl 0x437a1c
push 0
mov eax, esi
call fcn.00438210
push 0xffffffffffffffff
push 0
add eax, 0x1c
push eax
mov ecx, edi
call fcn.00402be0
mov ecx, dword [esp + 8]
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00439641
add esp, 8
ret
Function at 0x439641
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x4612b0]
jne 0x43964b
repz ret
jmp fcn.0043eeb4

Function at 0x44645b
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.0044052c
and dword [ebp - 4], 0
cmp dword [0x463264], 0
mov ebx, eax
jne 0x44650c
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x4465bd
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x453e30
push edi
call esi
test eax, eax
je 0x4465bd
push eax
call fcn.004404ba
mov dword [esp], 0x453e20
push edi
mov dword [0x463264], eax
call esi
push eax
call fcn.004404ba
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x463268], eax
call esi
push eax
call fcn.004404ba
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x46326c], eax
call esi
push eax
call fcn.004404ba
pop ecx
mov dword [0x463274], eax
test eax, eax
je 0x44650c
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.004404ba
pop ecx
mov dword [0x463270], eax
mov eax, dword [0x463270]
cmp eax, ebx
je 0x446564
cmp dword [0x463274], ebx
je 0x446564
push eax
call fcn.00440535
push dword [0x463274]
mov esi, eax
call fcn.00440535
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x446564
test edi, edi
je 0x446564
call esi
test eax, eax
je 0x44655b
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x44655b
test byte [ebp - 0xc], 1
jne 0x446564
or dword [ebp + 0x10], 0x200000
jmp 0x44659d
mov eax, dword [0x463268]
cmp eax, ebx
je 0x44659d
push eax
call fcn.00440535
pop ecx
test eax, eax
je 0x44659d
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x44659d
mov eax, dword [0x46326c]
cmp eax, ebx
je 0x44659d
push eax
call fcn.00440535
pop ecx
test eax, eax
je 0x44659d
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x463264]
call fcn.00440535
pop ecx
test eax, eax
je 0x4465bd
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x4465bf
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4035e5
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1000
call fcn.00415490
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
cmp word [esi], 0
je 0x403766
push esi
call fcn.0040376f
push esi
call fcn.0041a003
pop ecx
push esi
mov edi, eax
call fcn.0040379a
test al, al
je 0x40369a
push esi
call fcn.0040376f
test al, al
je 0x403654
lea eax, [edi + 4]
cmp dword [ebp + 0x10], eax
jbe 0x403766
push dword [ebp + 0x10]
push str.__
push dword [ebp + 0xc]
call fcn.0040694c
push dword [ebp + 0x10]
push esi
push dword [ebp + 0xc]
call fcn.00406924
mov al, 1
jmp 0x403768
push 0x5c
pop eax
cmp word [esi], ax
jne 0x403766
lea ebx, [esi + 2]
cmp word [ebx], ax
jne 0x403766
mov esi, dword [ebp + 0x10]
lea eax, [edi + 6]
cmp esi, eax
jbe 0x403766
push esi
push str.__
push dword [ebp + 0xc]
call fcn.0040694c
push esi
push 0x4295f4
push dword [ebp + 0xc]
call fcn.00406924
push esi
push ebx
jmp 0x403645
lea eax, [ebp - 0x1000]
mov ebx, 0x7ff
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x403766
cmp eax, ebx
ja 0x403766
movzx eax, word [esi]
push eax
call fcn.004037cf
test al, al
je 0x403705
lea eax, [edi + 6]
mov edi, dword [ebp + 0x10]
cmp edi, eax
jbe 0x403766
push edi
push str.__
push dword [ebp + 0xc]
call fcn.0040694c
xor eax, eax
mov word [ebp - 0xffc], ax
lea eax, [ebp - 0x1000]
push edi
push eax
push dword [ebp + 0xc]
call fcn.00406924
push edi
jmp 0x403644
push 0x800
lea eax, [ebp - 0x1000]
push eax
call fcn.004031e2
lea eax, [ebp - 0x1000]
push eax
call fcn.0041a003
add edi, 4
add eax, edi
mov edi, dword [ebp + 0x10]
pop ecx
cmp edi, eax
jbe 0x403766
push edi
push str.__
push dword [ebp + 0xc]
call fcn.0040694c
push edi
lea eax, [ebp - 0x1000]
push eax
push dword [ebp + 0xc]
call fcn.00406924
cmp word [esi], 0x2e
jne 0x4036ff
movzx eax, word [esi + 2]
push eax
call fcn.004037cf
test al, al
je 0x4036ff
add esi, 4
jmp 0x4036ff
xor al, al
pop edi
pop esi
pop ebx
leave
ret 0xc
Function at 0x4039cf
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push esi
push edi
push str.StartServiceCtrlDispatcherA
push str.ADVAPI32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, str.Serpiei
mov edi, eax
push esi
call fcn.00403061
test eax, eax
pop ecx
je 0x403a23
and dword [ebp - 8], 0
and dword [ebp - 4], 0
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], esi
push eax
mov dword [ebp - 0xc], 0x403756
call edi
pop edi
xor eax, eax
pop esi
leave
ret 0x10
and byte [ebp - 0x114], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x113]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x114]
push eax
call fcn.00402ca7
lea eax, [ebp - 0x114]
push 1
push eax
push str.Microsoft_.NET_COM_Integration_with_SOAP
push str.Microsoft_.Net_Frameworek_COMi_Suppoot
push esi
call fcn.004031c0
add esp, 0x18
call fcn.00402217
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x402403
Capabilities:
Enumerate files on windows
Get disk size
Get geographical location
Print debug messages
Query environment variable

Disassembly:
inc eax
add dl, bh
jbe 0x402397
add dl, ah
mov dword [0xa22759], eax
push 0x40c0cd
jmp [ebp - 0x1dbfc917]
daa
mov byte [0xc0cd6800], al
inc eax
add bh, bh
lodsd eax, dword [esi]
jmp 0xe92263e0
inc eax
loop 0x402392
popal
add dl, ah
add byte [ebx + 0x40bb6d], ah
push 0x402249
jecxz 0x4023ef
jmp 0xe840c5f5
and ah, byte [edx - 0x3417b000]
add byte [eax], al
add byte [edi], bh
popal
daa
inc eax
loop 0x402456
push 0x40bf32
push eax
cli
push es
add byte [eax], al
loop 0x4023ad
daa
mov byte [0x5955c300], al
in eax, 0x83
in al, dx
salc
mov edi, dword [ebp + 8]
jl 0x40239b
aas
dec ebp
mov byte [ebp + 0x65], dh
mov eax, ebp
add edx, dword [edi + 0x3c]
jl 0x4023a7
cmp dl, byte [eax - 0x63]
jne 0x402484
mov dword [ebp + 0x6a428bf4], ecx
add eax, dword [ebp + 8]
pop ecx
inc ebp
clc
mov esp, dword [edx - 0x25bafce0]
mov dword [ebp - 4], eax
mov cl, 0xc9
mov edx, dword [ebp - 0x16]
cmp ecx, dword [edx + 0x18]
cmp cl, byte gs:[ebx + 0x1c8be65d]
mov ebx, edi
pop ebp
or bh, bh
insd dword es:[edi], dx
or al, 0x53
push ebx
call fcn.0040220a
pop edi
clc
add dword [edi + ebx*8 + 0x41], esi
jmp 0x402442
mov cl, 0xc0
mov esp, ebp
test edx, eax
or byte [eax], al

Function at 0x4042a0
Capabilities:
Terminate process

Disassembly:
mov edx, eax
push dword [0x402740]
call dword [sym.imp.pdh.dll_PdhValidatePathA]
and eax, 0xf
add eax, 0xb
xor edi, edi
xor esi, esi
cmp eax, 0x18
je 0x4042c9
push 0
call dword [sym.imp.kernel32.dll_ExitProcess]
mov edx, eax
mov dword [0x403705], eax
ret
Function at 0x10013d9a
Capabilities:
Write file on windows

Disassembly:
push 0x20
mov eax, 0x1003ee55
call fcn.1003b3a5
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 0x40], ebx
je 0x10013e8c
cmp byte [esi + 0x45], bl
je 0x10013e8c
mov eax, dword [esi]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
jne 0x10013dcf
xor al, al
jmp 0x10013e8e
push ebx
push 8
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
call fcn.10014076
mov dword [ebp - 4], ebx
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov ebx, edi
cmp eax, 0x10
jae 0x10013dfc
lea ebx, [ebp - 0x28]
mov edi, ebx
mov ecx, dword [esi + 0x40]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x18]
add eax, ebx
mov edx, dword [ecx]
push eax
push edi
lea eax, [esi + 0x48]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x10013e23
dec eax
je 0x10013e27
dec eax
dec eax
je 0x10013e7a
xor bl, bl
jmp 0x10013e7c
mov byte [esi + 0x45], 0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov ecx, edi
cmp eax, 0x10
jae 0x10013e37
lea ecx, [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
sub ebx, ecx
je 0x10013e60
cmp eax, 0x10
jae 0x10013e46
lea edi, [ebp - 0x28]
push dword [esi + 0x50]
push ebx
push 1
push edi
call dword [sym.imp.MSVCR120.dll_fwrite]
add esp, 0x10
cmp ebx, eax
jne 0x10013e1f
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
cmp byte [esi + 0x45], 0
je 0x10013e7a
test ebx, ebx
jne 0x10013df0
push ebx
push 8
lea ecx, [ebp - 0x28]
call fcn.10014015
jmp 0x10013dea
mov bl, 1
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.10010630
mov al, bl
jmp 0x10013e8e
mov al, 1
call fcn.1003b354
ret

Function at 0x10017483
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [esp + 8]
push esi
push edi
xor edi, edi
movzx eax, word [ecx + 0x14]
movzx esi, word [ecx + 6]
test esi, esi
lea eax, [eax + ecx + 0x18]

Function at 0x100176d6
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov byte [ebp - 0x49], 0xc1
mov byte [ebp - 0x48], 0xc8
mov byte [ebp - 0x47], 0xa7
call sym.MSVCP120.dll___1__basic_iostream__WU__char_traits__W_std___std__UAE_XZ
les ecx, [eax]
xor byte [edx], 0x8d
inc ebp
test al, 0x50
call fcn.10017453
mov esi, dword [ebp + 0xc]
push eax
push esi
push dword [ebp + 8]
call fcn.10017408
add esp, 0x10
lea ecx, [ebp - 0xb0]
push ecx
call eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xac]
xor edx, edx
div ecx
xor edx, edx
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
div ecx
test edx, edx
je 0x10017731
inc dword [ebp - 0x8c]
imul ecx, dword [ebp - 0x8c]
mov dword [ebp + 0xc], ecx
mov byte [ebp - 0x40], bl
mov byte [ebp - 0x3f], bl
mov byte [ebp - 0x3e], 0xec
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
invalid
inc ebp