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

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
lea esi, [ebp + 0xc]
sub esp, 0x10
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x1b
lea ebx, [eax + 0x40]
mov dword [esp + 4], 1
mov dword [esp + 0xc], ebx
mov dword [esp], 0x6d977684
call sym._fwrite
mov eax, dword [ebp + 8]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.msvcrt.dll_vfprintf]
call sym._abort
lea esi, [esi]
Function at 0x1000cac3
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword fs:[0x2c]
push ebx
push esi
mov esi, dword [0x100139e8]
mov ebx, ecx
push edi
mov edi, edx
mov dword [ebp - 8], edi
mov esi, dword [eax + esi*4]
mov eax, dword [0x10013e80]
cmp eax, dword [esi + 4]
jg 0x1000cb78
lea eax, [ebx + edi]
cmp eax, ebx
ja 0x1000cb01
mov eax, 0x10dd
jmp 0x1000cb71
mov eax, dword [0x10013e7c]
cmp edi, eax
jbe 0x1000cb0f
push 0x32
pop eax
jmp 0x1000cb71
mov edi, dword [ebp + 8]
lea ecx, [ebp - 4]
and dword [ebp - 4], 0
lea esi, [eax - 1]
push ecx
not esi
push dword [edi]
and esi, ebx
push eax
push esi
call dword [sym.imp.kernel32.dll_VirtualProtect]
test eax, eax
jne 0x1000cb37
call dword [sym.imp.kernel32.dll_GetLastError]
jmp 0x1000cb71
mov ecx, dword [0x10013e7c]
mov eax, dword [ebp - 8]
dec ecx
mov edx, dword [ebp - 4]
dec eax
add eax, ebx
mov dword [edi], edx
not ecx
and ecx, eax
cmp ecx, esi
je 0x1000cb6c
lea eax, [ebp - 4]
push eax
push dword [edi + 4]
push dword [0x10013e7c]
push ecx
call dword [sym.imp.kernel32.dll_VirtualProtect]
test eax, eax
je 0x1000cb2f
mov edx, dword [ebp - 4]
mov dword [edi + 4], edx
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
mov esi, 0x10013e80
push esi
call fcn.1000cd54
cmp dword [0x10013e80], 0xffffffff
pop ecx
jne 0x1000caf3
push 9
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x28]
push esi
mov dword [0x10013e7c], eax
call fcn.1000cd54
mov edi, dword [ebp - 8]
pop ecx
jmp 0x1000caf3

Function at 0x1000cd54
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
pushal
call 0x1000cd63
pop dword [ebp - 0x1c]
mov eax, 0x6b91a071
add eax, 0xa46f2cf2
sub dword [ebp - 0x1c], eax
push 0x40
push 0x1000
push 0x36e03
push 0
mov eax, 0x53e181ac
sub eax, 0x43e04148
add eax, dword [ebp - 0x1c]
call dword [eax]
mov ecx, 0x3f77
xor ebx, ebx
add ebx, eax
mov edi, 0x6659ab81
sub edi, 0x56582581
add edi, dword [ebp - 0x1c]
mov edx, 0x5bdb434e
add edx, 0xff37b91a
xor dword [ebp - 0x14], 0x5514aeac
mov esi, dword [edi]
sub dword [ebp - 0xc], ecx
sub esi, edx
sub dword [ebp - 4], esi
mov dword [ebx], esi
sub dword [ebp - 0x10], 0x13670a30
add ebx, 0x9e1d7408
add ebx, 0x61e28bfc
add edi, 4
loop 0x1000cdbe
add eax, 0xf0af
mov ebx, eax
add eax, 0x50e1ec83
add eax, 0xaf1e1382
mov ecx, 0x10000000
add ecx, dword [ebp - 0x1c]
call ebx
leave
ret
Function at 0x10023b5d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
pushal
call 0x10023b6c
pop dword [ebp - 0x2c]
mov eax, 0xff6c3ce6
sub eax, 0xef6a017a
sub dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0x2ed7ae75
add dword [ebp - 0x3c], 0x1f7a96d6
mov dword [ebp - 0x38], 0x2af05a2c
sub dword [ebp - 0x38], 0xf8bd0de7
mov dword [ebp - 0x34], 0x38f13e54
sub dword [ebp - 0x34], 0xeca4fa26
mov dword [ebp - 0x30], 0x86685f1c
add dword [ebp - 0x30], 0x7997a0e4
lea eax, [ebp - 0x3c]
push eax
mov eax, 0xc2e8b957
add eax, 0x4d1b5781
add eax, dword [ebp - 0x2c]
call dword [eax]
mov dword [ebp - 0x3c], 0x3e738f42
add dword [ebp - 0x3c], 0x35feda14
mov dword [ebp - 0x38], 0x7852eab2
add dword [ebp - 0x38], 0xc91976c3
mov dword [ebp - 0x34], 0x7464ed95
sub dword [ebp - 0x34], 0x10f58129
mov dword [ebp - 0x30], 0x2d418938
add dword [ebp - 0x30], 0xd2be76c8
lea ebx, [ebp - 0x3c]
push ebx
push eax
mov eax, 0x1b257462
add eax, 0xf4de9c16
add eax, dword [ebp - 0x2c]
call dword [eax]
push 0x40
push 0x1000
push 0x50c23
push 0
call eax
mov ecx, 0xd3166cb5
add ecx, 0x2ce9e77a
xor ebx, ebx
add ebx, eax
mov edi, 0x1004ea00
add edi, dword [ebp - 0x2c]
mov edx, 0xd20e26c1
add edx, 0x12ea79cb
xor dword [ebp - 0x20], 0x68f5e609
mov esi, dword [edi]
sub dword [ebp - 0x1c], edi
sub esi, edx
mov dword [ebp - 0xc], 0xe4398ee3
mov dword [ebx], esi
sub dword [ebp - 4], 0x85e9434a
add ebx, 4
add edi, 4
loop 0x10023c8a
add eax, 0x3b020705
sub eax, 0x3b00c376
mov ebx, eax
add eax, 5
mov ecx, 0x78373672
sub ecx, 0x68373672
add ecx, dword [ebp - 0x2c]
call ebx
leave
ret

Function at 0x1003f584
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x1004acd0]
jne 0x1003f58e
repz ret
jmp fcn.1003fc70
Function at 0x100bdbb
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x14
mov eax, 0x1022d25
call fcn.01004c72
mov edi, ecx
mov esi, dword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
push ebx
call esi
cmp dword [edi + 0x9c], ebx
je 0x10136df
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x20]
push ecx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x14]
push ecx
push eax
push dword [ebp + 8]
push dword [edi + 0x9c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0xea
je 0x10136e8
cmp eax, ebx
jne 0x100be2b
push dword [ebp - 0x14]
mov ecx, esi
call fcn.010043c0
xor eax, eax
inc eax
call fcn.01001c67
ret 8
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100be23
push 6
call esi
jmp 0x100be32
mov eax, dword [ebp - 0x14]
add eax, eax
push eax
mov ecx, esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], ebx
call fcn.010041b7
or dword [ebp - 4], 0xffffffff
jmp 0x100bde9

Function at 0x100c0c7
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xc
mov eax, 0x1022d69
call fcn.01004c72
mov ebx, ecx
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
push esi
call edi
cmp dword [ebx + 0x9c], esi
je 0x1013712
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 4]
push esi
push esi
push esi
push esi
lea ecx, [ebp - 0x14]
push ecx
push eax
push dword [ebp + 8]
push dword [ebx + 0x9c]
call dword [sym.imp.KERNEL32.dll_RegEnumValueW]
cmp eax, 0xea
je 0x101371b
cmp eax, esi
jne 0x100cc8b
push dword [ebp - 0x14]
mov ecx, edi
call fcn.010043c0
xor eax, eax
inc eax
call fcn.01001c67
ret 8
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100c130
push 6
call edi
jmp 0x100cc92
mov eax, dword [ebp - 0x14]
add eax, eax
push eax
mov ecx, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], esi
call fcn.010041b7
or dword [ebp - 4], 0xffffffff
jmp 0x100c0f5

Function at 0x100ca03
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
mov esi, ecx
cmp dword [esi + 8], 0
jne 0x100ca37
and dword [esi + 0x14], 0
lea eax, [esi + 0x1c]
push eax
push 0
push esi
push 0x1003485
push dword [ebp + 8]
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 8], eax
test eax, eax
je 0x1010d31
xor eax, eax
pop esi
pop ebp
ret 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x100ca39
and eax, 0xffff
or eax, 0x80070000
jmp 0x100ca39

Function at 0x100ca43
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
mov esi, ecx
cmp dword [esi + 8], 0
jne 0x100ca77
and dword [esi + 0x14], 0
lea eax, [esi + 0x1c]
push eax
push 0
push esi
push 0x1001eae
push dword [ebp + 8]
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 8], eax
test eax, eax
je 0x1011ee8
xor eax, eax
pop esi
pop ebp
ret 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x100ca79
and eax, 0xffff
or eax, 0x80070000
jmp 0x100ca79
Function at 0x401321
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
lea ebp, [esp - 0xfb8]
mov eax, 0x1038
call fcn.004105e0
mov eax, dword [0x43cddc]
xor eax, ebp
mov dword [ebp + 0xfb4], eax
push edi
mov edi, dword [ebp + 0xfc0]
lea eax, [ebp - 0x7c]
push eax
call fcn.00424fe1
pop ecx
mov dword [ebp - 0x78], eax
cmp eax, 0xffffffff
jne 0x401366
push 5
call fcn.00409a61
pop ecx
jmp 0x401452
push esi
call fcn.004082d1
push eax
push 0x5c
call fcn.00408c45
push eax
push 0x4360e8
mov esi, 0x400
lea eax, [ebp - 0x54]
push esi
push eax
call fcn.00408299
push dword [ebp - 0x7c]
lea eax, [ebp + 0x7ac]
push 0x4360f8
push esi
push eax
call fcn.00408299
and dword [ebp - 0x64], 0
lea eax, [ebp + 0x7ac]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x54]
push eax
push 0
mov dword [ebp - 0x74], str.JavaWSSplashScreen
mov dword [ebp - 0x70], 0x436128
mov dword [ebp - 0x68], edi
call fcn.00424fe1
add esp, 0x34
test eax, eax
jne 0x401449
mov word [ebp - 0x64], ax
lea edi, [ebp - 0x62]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x78]
mov dword [ebp - 0x80], 0x10
call dword [sym.imp.WSOCK32.dll_accept]
mov esi, eax
cmp esi, 0xffffffff
jne 0x401401
push 6
jmp 0x40144b
push 0
push 6
lea eax, [ebp + 0xfac]
push eax
push esi
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 6
je 0x40141c
push 7
jmp 0x40144b
lea eax, [ebp + 0xfac]
push eax
call fcn.00424fe1
pop ecx
mov dword [0x4360e0], eax
test eax, eax
jg 0x401436
push 8
jmp 0x40144b
push esi
call fcn.00408098
push dword [ebp - 0x78]
call fcn.00408098
pop ecx
xor eax, eax
jmp 0x401450
push 0
call fcn.00409a61
pop ecx
pop esi
mov ecx, dword [ebp + 0xfb4]
xor ecx, ebp
pop edi
call fcn.0040ffe6
add ebp, 0xfb8
leave
ret
Function at 0x406f15
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1198]
mov eax, 0x1218
call fcn.004105e0
mov eax, dword [0x43cddc]
xor eax, ebp
mov dword [ebp + 0x1194], eax
push edi
push 0x437f38
push 0x437f68
push 0xffffffffffffffff
lea eax, [ebp - 0x74]
push 0x1000
push eax
call fcn.00424fe1
add esp, 0x18
lea eax, [ebp - 0x78]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x74]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x406f77
xor eax, eax
jmp 0x406ffb
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp + 0xf8c]
push eax
lea eax, [ebp - 0x7c]
push eax
push 0
push str.Path
push dword [ebp - 0x78]
mov dword [ebp - 0x80], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x78]
test eax, eax
je 0x406fac
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x406f70
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x7c], 1
jne 0x406f70
mov eax, dword [esi + 4]
test eax, eax
je 0x406fc6
push eax
call fcn.00424fe1
pop ecx
push edi
call fcn.00424fe1
lea ecx, [esi + 8]
push ecx
push eax
mov dword [esi + 4], eax
call fcn.00406c53
mov eax, dword [esi]
add esp, 0xc
test eax, eax
je 0x406fe9
push eax
call fcn.00424fe1
pop ecx
lea eax, [ebp + 0xf8c]
push eax
call fcn.00424fe1
mov dword [esi], eax
xor eax, eax
pop ecx
inc eax
mov ecx, dword [ebp + 0x1194]
xor ecx, ebp
call fcn.0040ffe6
add ebp, 0x1198
leave
ret
Function at 0x407010
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
lea ebp, [esp - 0x1c8]
sub esp, 0x248
mov eax, dword [0x43cddc]
xor eax, ebp
mov dword [ebp + 0x1c4], eax
mov eax, dword [ebp + 0x1d0]
push ebx
push esi
xor ebx, ebx
push str.FORCED_FX_ROOT
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x6c]
push ebx
push eax
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x74], 0x1fe
xor esi, esi
mov dword [ebp - 0x6c], ebx
call fcn.004107d9
add esp, 0xc
cmp dword [ebp - 0x6c], ebx
je 0x40709e
cmp eax, ebx
jne 0x40709e
push 0x34
push 1
call fcn.00424fe1
push str.2.0
mov esi, eax
call fcn.00424fe1
lea ecx, [esi + 8]
push ecx
push eax
mov dword [esi + 4], eax
call fcn.00406c53
push dword [ebp - 0x6c]
call fcn.00424fe1
mov dword [esi], eax
push dword [ebp - 0x6c]
call fcn.00424fe1
add esp, 0x1c
jmp 0x407159
lea eax, [ebp - 0x7c]
push eax
push 0x20019
push ebx
push str.SoftwareOracleJavaFX
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x4070c3
xor eax, eax
jmp 0x40715b
push edi
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x70]
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [ebp - 0x80], eax
cmp eax, ebx
jne 0x40713c
cmp dword [ebp - 0x78], ebx
je 0x4070f8
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x78]
call fcn.00406eb4
pop ecx
pop ecx
jmp 0x4070fb
xor eax, eax
inc eax
cmp eax, ebx
je 0x40713c
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00406c53
pop ecx
pop ecx
cmp esi, ebx
je 0x407127
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00406cf7
pop ecx
pop ecx
test eax, eax
je 0x40713c
jmp 0x407134
push 0x34
push 1
call fcn.00424fe1
pop ecx
pop ecx
mov esi, eax
lea edi, [ebp - 0x3c]
call fcn.00406f15
inc dword [ebp - 0x70]
mov dword [ebp - 0x74], 0x1fe
cmp dword [ebp - 0x80], ebx
je 0x4070c4
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, esi
mov ecx, dword [ebp + 0x1c4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0040ffe6
add ebp, 0x1c8
leave
ret

Function at 0x4074b6
Capabilities:
Send data
Send data on socket

Disassembly:
cmp dword [esp + 8], 0
jne 0x4074c0
xor eax, eax
ret
mov eax, dword [esp + 8]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4074c7
sub eax, edx
sar eax, 1
push esi
lea esi, [eax + eax + 6]
lea eax, [esi + esi]
push edi
push eax
call fcn.00424fe1
mov edi, eax
pop ecx
test edi, edi
je 0x407536
push dword [esp + 0x10]
push str._s_r_n
push esi
push edi
call fcn.00408299
mov eax, edi
add esp, 0x10
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x407504
sub eax, ecx
sar eax, 1
push 0
add eax, eax
push eax
push edi
push dword [esp + 0x18]
call dword [sym.imp.WSOCK32.dll_send]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
push edi
mov esi, ecx
call fcn.00424fe1
pop ecx
mov eax, esi
pop edi
pop esi
ret
Function at 0x407539
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebx
push esi
push edi
mov edi, 0x44a698
xor ebx, ebx
mov esi, edi
push 0
push 2
push esi
push dword [esp + 0x1c]
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
je 0x407580
test eax, eax
je 0x407584
movzx eax, word [esi]
cmp eax, 0xa
je 0x407584
cmp eax, 0xd
je 0x40756e
inc ebx
add esi, 2
cmp esi, 0x44ae96
jl 0x407545
xor eax, eax
mov word [0x44ae96], ax
jmp 0x40758e
xor eax, eax
jmp 0x407590
xor eax, eax
mov word [ebx*2 + 0x44a698], ax
mov eax, edi
pop edi
pop esi
pop ebx
ret

Function at 0x407ff9
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x194
mov eax, dword [0x43cddc]
xor eax, esp
mov dword [esp + 0x190], eax
cmp dword [0x451730], 0
jne 0x408083
push esi
push edi
xor edi, edi
push str.ws2_32.dll
inc edi
call fcn.00424fe1
mov esi, eax
pop ecx
test esi, esi
jne 0x40804d
push str.wsock32.dll
call fcn.00424fe1
mov esi, eax
xor edi, edi
pop ecx
test esi, esi
jne 0x40804d
push 0xd
call fcn.00409a61
pop ecx
push eax
call fcn.00407f5a
lea eax, [esp + 8]
push eax
push 2
call dword [sym.imp.WSOCK32.dll_WSAStartup]
test eax, eax
je 0x408062
push 0xe
jmp 0x408041
test edi, edi
je 0x408077
push str.WSASendDisconnect
push esi
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [0x45172c], eax
pop edi
mov dword [0x451730], 1
pop esi
mov ecx, dword [esp + 0x190]
xor ecx, esp
call fcn.0040ffe6
add esp, 0x194
ret
Function at 0x408418
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xf98]
mov eax, 0x1018
call fcn.004105e0
mov eax, dword [0x43cddc]
xor eax, ebp
mov dword [ebp + 0xf94], eax
mov eax, dword [ebp + 0xfa0]
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push edi
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x74]
push eax
mov ebx, 0x20019
push ebx
push 0
push 0x439880
mov edi, reloc.OLEAUT32.dll_SysReAllocString
push edi
mov dword [ebp - 0x7c], 0x400
mov dword [ebp - 0x70], 1
call esi
test eax, eax
jne 0x408519
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x794]
push eax
lea eax, [ebp - 0x80]
push eax
push 0
push str.CurrentVersion
push dword [ebp - 0x74]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x40849f
and dword [ebp - 0x70], 0
push dword [ebp - 0x74]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4084b0
and dword [ebp - 0x70], 0
lea eax, [ebp + 0x794]
push eax
push str.SoftwareJavaSoftJava_Runtime_Environment
push 0x439874
lea eax, [ebp - 0x6c]
push 0x400
push eax
call fcn.00424fe1
add esp, 0x14
lea eax, [ebp - 0x74]
push eax
push ebx
xor ebx, ebx
push ebx
lea eax, [ebp - 0x6c]
push eax
push edi
call esi
test eax, eax
jne 0x408519
lea eax, [ebp + 0xfa4]
push eax
push dword [ebp - 0x78]
lea eax, [ebp - 0x80]
push eax
push ebx
push 0x439950
push dword [ebp - 0x74]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x408509
mov dword [ebp - 0x70], ebx
push dword [ebp - 0x74]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x408519
mov dword [ebp - 0x70], ebx
mov ecx, dword [ebp + 0xf94]
mov eax, dword [ebp - 0x70]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040ffe6
add ebp, 0xf98
leave
ret
Function at 0x40af57
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x98]
sub esp, 0x118
mov eax, dword [0x43cddc]
xor eax, ebp
mov dword [ebp + 0x94], eax
cmp dword [0x4530a8], 0
je 0x40af82
mov eax, dword [0x4530a4]
jmp 0x40afc6
push 0x114
lea eax, [ebp - 0x80]
push 0
push eax
call fcn.00410610
add esp, 0xc
lea eax, [ebp - 0x80]
push eax
mov dword [ebp - 0x80], 0x114
call dword [sym.imp.kernel32.dll_GetVersionExW]
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x70], 2
jne 0x40afb9
cmp dword [ebp - 0x7c], 6
jb 0x40afb9
mov eax, ecx
jmp 0x40afbb
xor eax, eax
mov dword [0x4530a4], eax
mov dword [0x4530a8], ecx
mov ecx, dword [ebp + 0x94]
xor ecx, ebp
call fcn.0040ffe6
add ebp, 0x98
leave
ret

Function at 0x40b3a3
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 8], 0
jne 0x40b3b0
xor eax, eax
pop ebp
ret
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.kernel32.dll_CreateProcessW]
pop ebp
ret

Function at 0x40b6b6
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xf8c]
mov eax, 0x100c
call fcn.004105e0
mov eax, dword [0x43cddc]
xor eax, ebp
mov dword [ebp + 0xf88], eax
push esi
mov esi, dword [ebp + 0xf9c]
push edi
mov edi, dword [ebp + 0xf94]
xor eax, eax
push 0x7fe
push eax
mov word [ebp + 0x788], ax
lea eax, [ebp + 0x78a]
push eax
call fcn.00410610
push edi
push str.SOFTWAREClassesCLSID_sInprocServer32
lea eax, [ebp + 0x788]
push 0x400
push eax
call fcn.00424fe1
add esp, 0x1c
lea eax, [ebp - 0x7c]
push eax
push 0x20019
neg esi
push 0
lea eax, [ebp + 0x788]
sbb esi, esi
push eax
add esi, reloc.OLEAUT32.dll_SysReAllocString
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
pop edi
pop esi
test eax, eax
je 0x40b74b
xor ecx, ecx
cmp eax, 2
sete cl
jmp 0x40b7ba
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x78]
push eax
push 0x42f4d4
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], 0x800
call dword [sym.imp.ADVAPI32.dll_RegQueryValueW]
push dword [ebp - 0x7c]
test eax, eax
je 0x40b779
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x40b7bc
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 0xf98]
lea ecx, [ebp - 0x78]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40b7ae
test dx, dx
je 0x40b7aa
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40b7ae
add eax, 4
add ecx, 4
test dx, dx
jne 0x40b788
xor eax, eax
jmp 0x40b7b3
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
mov ecx, dword [ebp + 0xf88]
xor ecx, ebp
call fcn.0040ffe6
add ebp, 0xf8c
leave
ret

Function at 0x40b9c3
Capabilities:
Query environment variable

Disassembly:
push esi
xor esi, esi
cmp dword [esp + 8], esi
je 0x40b9e4
push dword [esp + 0xc]
push dword [esp + 0xc]
push 0x42f5ec
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x40b9e4
inc esi
mov eax, esi
pop esi
ret
Function at 0x40c913
Capabilities:
Get common file path

Disassembly:
push ebp
sub esp, 0x208
lea ebp, [esp - 4]
mov eax, dword [0x43cddc]
xor eax, ebp
mov dword [ebp + 0x208], eax
push 0x10
mov eax, 0x42d995
call fcn.00415253
push 0x42f684
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.004107d9
add esp, 0xc
test eax, eax
jne 0x40c9ee
push dword [ebp - 0x18]
call fcn.00424fe1
cmp dword [0x453088], 0
pop ecx
je 0x40c96e
xor eax, eax
inc eax
jmp 0x40c9f0
lea eax, [ebp]
push eax
mov esi, 0x104
push esi
call dword [sym.imp.kernel32.dll_GetTempPathW]
cmp eax, esi
ja 0x40c9ee
test eax, eax
je 0x40c9ee
lea eax, [ebp]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040d1d7
and dword [ebp - 4], 0
push str.JavaDeployReg.log
lea ecx, [ebp - 0x14]
call fcn.0040d1d7
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.0040d3f0
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x40c9bf
call fcn.0040d3b2
mov esi, dword [ebp - 0x10]
test esi, esi
je 0x40c9ca
mov eax, dword [esi]
jmp 0x40c9cc
xor eax, eax
push 0x42f730
push eax
push 0x453088
call fcn.00424fe1
add esp, 0xc
test eax, eax
je 0x40ca13
test esi, esi
je 0x40c9ee
mov ecx, esi
call fcn.0040d3b2
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x208]
xor ecx, ebp
call fcn.0040ffe6
add ebp, 0x20c
leave
ret
test esi, esi
je 0x40c966
mov ecx, esi
call fcn.0040d3b2
jmp 0x40c966

Function at 0x40ccc2
Capabilities:
Get common file path

Disassembly:
push 0x14
mov eax, 0x42d9bd
call fcn.00415286
mov esi, dword [ebp + 8]
xor eax, eax
xor edi, edi
xor ebx, ebx
mov word [esi], ax
mov dword [ebp - 4], edi
call fcn.00424fe1
test eax, eax
je 0x40cced
call fcn.0040ccb3
mov ebx, eax
push 0x104
push esi
push ebx
push edi
push 0x42e30c
call dword [sym.imp.SHELL32.dll_SHGetFolderPathEx]
mov esi, eax
cmp esi, edi
jge 0x40cd48
push esi
push str.Error:_08x_in_SHGetFolderPathEx_FOLDERID_LocalAppDataLow__0__hToken__pPath__MAX_PATH_
call fcn.0040d692
pop ecx
pop ecx
push edi
push esi
call fcn.00424fe1
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx + 4]
mov dword [ebp - 0x14], esi
call fcn.0040d30f
push eax
push esi
push 0x42e66c
call fcn.0040d692
or dword [ebp - 4], 0xffffffff
add esp, 0xc
mov eax, 0x40cd41
ret
cmp ebx, edi
je 0x40cd53
push ebx
call dword [sym.imp.kernel32.dll_CloseHandle]
or dword [ebp - 4], 0xffffffff
cmp esi, edi
jge 0x40ce04
push dword [ebp + 8]
mov dword [ebp - 4], 2
push edi
push edi
push 0x1a
push edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov esi, eax
cmp esi, edi
jge 0x40cdb0
push esi
push str.Error:_08x_in_SHGetFolderPathW_NULL__CSIDL_APPDATA__NULL__0__pPath_
jmp 0x40cd0c
or dword [ebp - 4], 0xffffffff
cmp esi, edi
jge 0x40ce04
push 1
push 0x1a
push dword [ebp + 8]
mov dword [ebp - 4], 4
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov esi, eax
cmp esi, edi
jge 0x40ce04
push esi
push str.Error:_08x_in_SHGetSpecialFolderPathW_NULL__pPath__CSIDL_APPDATA__TRUE_
jmp 0x40cd0c
mov eax, esi
call fcn.004152bc
ret