joyce8/EMBER2024-capa huggingface dataset:
Function at 0x42aed7
Capabilities:
Create directory

Disassembly:
push 0xec
mov eax, 0x477015
call fcn.00448ddd
mov edi, edx
mov esi, ecx
and dword [ebp - 4], 0
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
mov ebx, dword [sym.imp.kernel32.dll_CreateDirectoryA]
cmovae eax, dword [ebp + 8]
push esi
push eax
call ebx
test eax, eax
je 0x42afc1
cmp dword [0x4ac0bc], 0
jg 0x42af9c
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
mov dword [ebp - 0x50], esp
xor ebx, ebx
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00404b39
push ecx
push ecx
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 1
call fcn.00403ead
mov edx, str.Created__
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8]
call fcn.00406a2a
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 3
call fcn.00405461
mov esi, eax
mov edx, str.__directory
mov ecx, esi
call fcn.00406a2a
push esi
push str.FileUtils::_anonymous_namespace::createDir
push 0x1ce
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_FileUtils.cpp
push ebx
mov ecx, 0x4ac0bc
call fcn.00402d4b
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], bl
call fcn.0046dfb5
test edi, edi
je 0x42afd9
lea edx, [ebp + 8]
lea ecx, [ebp - 0x28]
call fcn.0042aa4f
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.004138d2
lea ecx, [ebp - 0x28]
call fcn.004049c7
jmp 0x42afd9
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
test esi, esi
jne 0x42afe7
lea ecx, [ebp + 8]
call fcn.0042a811
test al, al
je 0x42afe7
lea ecx, [ebp + 8]
call fcn.004049c7
call fcn.00448d87
ret
push 0x1d7
push str.FileUtils::_anonymous_namespace::createDir
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_FileUtils.cpp
lea ecx, [ebp - 0x5c]
call fcn.00402dde
push eax
push str.System_error
push edi
push ebx
push 0x48fbb8
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
mov dword [ebp - 0x50], esp
push eax
call fcn.00403e50
lea ecx, [ebp - 0xf8]
mov byte [ebp - 4], 5
call fcn.00402b9d
mov byte [ebp - 4], 6
push str.CreateDirectory_
mov ecx, eax
call fcn.0040544d
mov ecx, eax
mov byte [ebp - 4], 7
call fcn.00405461
mov ecx, eax
call fcn.0040544d
push eax
lea ecx, [ebp - 0x1c]
call fcn.00435e5f
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x4c]
call fcn.0041e178
lea eax, [ebp - 0x4c]
mov dword [esp], 0x4a5da4
push eax
call fcn.0046dfb5
int3
Function at 0x42b4be
Capabilities:
Check if file exists
Delete file

Disassembly:
push 0x9c
mov eax, 0x476f03
call fcn.00448da9
mov esi, edx
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x42b4d9
mov eax, dword [esi]
push eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
test eax, eax
je 0x42b576
cmp dword [0x4ac0bc], 0
jg 0x42b56e
sub esp, 0x18
xor edi, edi
mov ecx, esp
mov dword [ebp - 0x10], esp
push esi
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], edi
call fcn.00404b39
push ecx
push ecx
lea ecx, [ebp - 0xa8]
mov dword [ebp - 4], edi
call fcn.00403ead
mov edx, str.Deleted__
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xa8]
call fcn.00406a2a
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 2
call fcn.00405461
mov esi, eax
mov edx, str.__file
mov ecx, esi
call fcn.00406a2a
push esi
push str.FileUtils::_anonymous_namespace::deleteFileImpl
push 0x25e
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_FileUtils.cpp
push edi
mov ecx, 0x4ac0bc
call fcn.00402d4b
lea ecx, [ebp - 0xa8]
call fcn.0046dfb5
mov al, 1
call fcn.00448d72
ret
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 2
je 0x42b56e
cmp eax, 3
je 0x42b56e
xor al, al
jmp 0x42b570
Function at 0x42c1be
Capabilities:
Get file version info

Disassembly:
push 0xe8
mov eax, 0x47739b
call fcn.00448ddd
mov esi, ecx
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x44], esi
push eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
call fcn.00404b39
lea edi, [esi + 0x18]
mov dword [ebp - 4], ebx
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov byte [ebp - 4], 1
mov eax, esi
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x3c], ebx
jb 0x42c205
mov eax, dword [esi]
mov ebx, dword [sym.imp.version.dll_GetFileVersionInfoSizeA]
lea ecx, [ebp - 0x3c]
push ecx
push eax
call ebx
test eax, eax
je 0x42c2ca
push edi
push eax
mov ecx, edi
call fcn.00418eeb
mov eax, dword [edi + 4]
mov ecx, esi
sub eax, dword [edi]
cmp dword [esi + 0x14], 0x10
jb 0x42c232
mov ecx, dword [esi]
push dword [edi]
mov edi, dword [sym.imp.version.dll_GetFileVersionInfoA]
push eax
push dword [ebp - 0x3c]
push ecx
call edi
test eax, eax
jne 0x42c2c0
push 0x46d
push str.VersionResource::VersionResource
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_FileUtils.cpp
lea ecx, [ebp - 0x5c]
call fcn.00402dde
push eax
push str.System_error
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push edi
push 0x48fbb8
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x40], esp
push esi
call fcn.00403e50
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 6
call fcn.00402b9d
mov byte [ebp - 4], 7
push str.GetFileVersionInfo_
mov ecx, eax
call fcn.0040544d
mov ecx, eax
mov byte [ebp - 4], 8
call fcn.00405461
mov ecx, eax
call fcn.0040544d
push eax
lea ecx, [ebp - 0x50]
call fcn.00435e5f
mov byte [ebp - 4], 9
jmp 0x42c340
mov eax, esi
call fcn.00448d87
ret 4
push 0x464
push str.VersionResource::VersionResource
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_FileUtils.cpp
lea ecx, [ebp - 0x50]
call fcn.00402dde
push eax
push str.System_error
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
push ebx
push 0x48fbb8
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x40], esp
push esi
call fcn.00403e50
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 2
call fcn.00402b9d
mov byte [ebp - 4], 3
push str.GetFileVersionInfoSize_
mov ecx, eax
call fcn.0040544d
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00405461
mov ecx, eax
call fcn.0040544d
push eax
lea ecx, [ebp - 0x5c]
call fcn.00435e5f
mov byte [ebp - 4], 5
mov edx, eax
lea ecx, [ebp - 0x38]
call fcn.0041e178
lea eax, [ebp - 0x38]
mov dword [esp], 0x4a5da4
push eax
call fcn.0046dfb5
int3
Function at 0x42e4cf
Capabilities:
Get common file path

Disassembly:
push 0x2c
mov eax, 0x477829
call fcn.00448ddd
mov esi, ecx
mov dword [ebp - 0x38], esi
push ecx
push 0x104
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x38], esi
call fcn.00410bb9
and dword [ebp - 4], 0
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x34]
sub eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.kernel32.dll_GetTempPathA]
mov ecx, dword [ebp - 0x34]
mov edx, eax
mov eax, dword [ebp - 0x30]
sub eax, ecx
cmp edx, eax
jbe 0x42e532
lea eax, [ebp - 0x34]
push eax
push edx
mov ecx, eax
call fcn.00425854
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x34]
sub eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.kernel32.dll_GetTempPathA]
mov ecx, dword [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x28]
call fcn.00403e12
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 1
mov ecx, esi
call fcn.0042aa4f
lea ecx, [ebp - 0x28]
call fcn.004049c7
lea ecx, [ebp - 0x34]
call fcn.0040c03a
mov eax, esi
call fcn.00448d87
ret

Function at 0x42e5a8
Capabilities:
Get common file path

Disassembly:
push 0x208
mov eax, 0x47786f
call fcn.00448ddd
mov esi, ecx
mov dword [ebp - 0x160], esi
push 0x104
xor ebx, ebx
mov dword [ebp - 0x160], esi
lea eax, [ebp - 0x11c]
push ebx
push eax
call fcn.0044b900
add esp, 0xc
lea eax, [ebp - 0x11c]
push eax
push ebx
push ebx
push 0x8023
push ebx
call dword [sym.imp.shell32.dll_SHGetFolderPathA]
mov edi, eax
test edi, edi
jne 0x42e630
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x134]
call fcn.00403e12
lea edx, [ebp - 0x134]
mov dword [ebp - 4], 2
mov ecx, esi
call fcn.0042aa4f
lea ecx, [ebp - 0x134]
call fcn.004049c7
mov eax, esi
call fcn.00448d87
ret
lea ecx, [ebp - 0x214]
call fcn.00402b9d
push edi
push ecx
push 0x489fac
sub esp, 0xc
mov dword [ebp - 4], ebx
push str.__mode
push ecx
push 0x23
push 0x412372
push str.SHGetFolderPath_0x
mov ecx, eax
call fcn.0040544d
mov ecx, eax
call fcn.00412389
mov ecx, eax
call fcn.00413a79
pop ecx
mov ecx, eax
call fcn.0040544d
pop ecx
mov ecx, eax
call fcn.0042eaac
pop ecx
mov ecx, eax
call fcn.0040544d
pop ecx
push eax
lea ecx, [ebp - 0x17c]
call fcn.00433be6
mov edx, eax
push 0x1bf
push str.SysInfo::SHGetFolderPathAdapter
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_SysInfo.cpp
lea ecx, [ebp - 0x16c]
mov byte [ebp - 4], 1
call fcn.00402dde
push eax
lea ecx, [ebp - 0x15c]
call fcn.0042eabe
lea eax, [ebp - 0x15c]
mov dword [esp], 0x4a60a4
push eax
call fcn.0046dfb5
int3
Function at 0x4341d7
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x7c
mov eax, 0x4787fa
call fcn.00448ddd
mov edi, ecx
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x44]
push esi
call fcn.00433c44
xor ebx, ebx
cmp dword [ebp - 0x34], ebx
je 0x43426f
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x84]
push ebx
or eax, 0x20019
push eax
lea eax, [ebp - 0x44]
push eax
push dword [edi]
call fcn.00433c76
mov esi, dword [ebp - 0x84]
add esp, 0x10
cmp dword [ebp - 0x7c], ebx
je 0x434226
mov al, byte [ebp - 0x80]
jmp 0x43425b
push ebx
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x69], bl
push eax
mov al, byte [ebp - 0x80]
push ecx
push ecx
mov ecx, esp
mov byte [ecx + 4], al
lea eax, [ebp - 0x44]
push eax
mov dword [ecx], esi
lea ecx, [ebp - 0x68]
push edi
call fcn.00433e12
mov ecx, eax
call fcn.004341d7
lea ecx, [ebp - 0x68]
mov bl, al
call fcn.0046dfb5
mov al, byte [ebp - 0x69]
mov dword [ebp - 4], 1
test al, al
je 0x434296
push esi
call fcn.00436b4f
pop ecx
jmp 0x434296
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x74], ebx
jb 0x43427d
mov esi, dword [esi]
lea eax, [ebp - 0x70]
push eax
push ebx
lea eax, [ebp - 0x74]
push eax
push ebx
push esi
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x434296
mov bl, 1
lea ecx, [ebp - 0x2c]
call fcn.004049c7
lea ecx, [ebp - 0x44]
call fcn.004049c7
mov al, bl
call fcn.00448d87
ret 8
Function at 0x4345ff
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0xac]
sub esp, 0xac
push 0xffffffffffffffff
push 0x4789b2
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x4a8068]
xor eax, ebp
mov dword [ebp + 0xa8], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x24], ebx
mov esi, dword [ebp + 0xb4]
lea ecx, [ebp + 0x78]
mov edi, dword [ebp + 0xb8]
mov eax, dword [ebp + 0xbc]
mov dword [ebp - 0x20], esi
push edi
mov dword [ebp - 0x20], eax
call fcn.00433c44
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp + 0x88], eax
je 0x43469c
push eax
lea eax, [ebp + 0x78]
push eax
push ebx
lea ecx, [ebp + 0x3c]
call fcn.00433eb1
push dword [ebp - 0x20]
lea ecx, [ebp + 0x90]
mov byte [ebp - 4], 1
push ecx
push esi
mov ecx, eax
call fcn.004345ff
lea ecx, [ebp + 0x3c]
call fcn.0046dfb5
jmp 0x434714
mov ecx, eax
mov dword [ebp - 0x10], eax
mov edx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edx
mov byte [ebp - 4], 2
mov eax, edx
sub eax, ecx
mov dword [ebp - 0x1c], eax
xor eax, eax
cmp ecx, edx
cmove ecx, eax
cmp dword [edi + 0x14], 0x10
mov eax, edi
jb 0x4346c5
mov eax, dword [edi]
lea edx, [ebp - 0x1c]
push edx
push ecx
push dword [ebp - 0x20]
push 0
push eax
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, eax
cmp ebx, 0xea
je 0x43474e
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
jne 0x43476b
test ebx, ebx
jne 0x43476f
test ecx, ecx
jne 0x434751
lea eax, [ebp - 0x18]
push eax
push ecx
mov ecx, eax
call fcn.00418eeb
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
call fcn.00418ebe
lea ecx, [ebp - 0x18]
call fcn.0040c03a
lea ecx, [ebp + 0x90]
call fcn.004049c7
lea ecx, [ebp + 0x78]
call fcn.004049c7
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xa8]
xor ecx, ebp
call fcn.004484c4
add ebp, 0xac
leave
ret 0xc
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x18]
push eax
push ecx
mov ecx, eax
call fcn.00418eeb
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x24]
jmp 0x4346ad
test ebx, ebx
je 0x4346f5
push str.query_value
lea ecx, [ebp + 0x60]
call fcn.00403e12
lea ecx, [ebp]
call fcn.00403e3f
mov ecx, dword [ebp - 0x24]
push eax
push edi
lea eax, [ebp + 0x60]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp + 0x48]
push eax
call fcn.0043507c
push eax
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 5
call fcn.00426e87
push str.System_error
push ebx
mov byte [ebp - 4], 6
lea eax, [ebp - 0xd4]
push dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x30]
push eax
call fcn.00435e5f
mov edx, eax
push 0x12b
push str.Registry::getValue
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_Registry.cpp
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 7
call fcn.00402dde
push eax
lea ecx, [ebp + 0x18]
call fcn.0041e178
lea eax, [ebp + 0x18]
mov dword [esp], 0x4a5da4
push eax
call fcn.0046dfb5
int3
Function at 0x434f39
Capabilities:
Delete registry value

Disassembly:
push 0x104
mov eax, 0x478b6f
call fcn.00448ddd
mov ebx, ecx
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x40]
push esi
call fcn.00433c44
cmp dword [ebp - 0x30], 0
je 0x434fd7
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x78]
push 0
or eax, 0x2001f
push eax
lea eax, [ebp - 0x40]
push eax
push dword [ebx]
call fcn.00433c76
mov edi, dword [ebp - 0x70]
add esp, 0x10
mov esi, dword [ebp - 0x78]
test edi, edi
je 0x434f87
mov al, byte [ebp - 0x74]
jmp 0x434fbc
push 0x4ab119
lea eax, [ebp - 0x28]
push eax
mov al, byte [ebp - 0x74]
push ecx
push ecx
mov ecx, esp
mov byte [ecx + 4], al
lea eax, [ebp - 0x40]
push eax
mov dword [ecx], esi
lea ecx, [ebp - 0x64]
push ebx
call fcn.00433e12
mov ecx, eax
call fcn.00434f39
lea ecx, [ebp - 0x64]
mov edi, eax
call fcn.0046dfb5
xor eax, eax
mov dword [ebp - 4], 1
test al, al
je 0x435062
push esi
call fcn.00436b4f
pop ecx
jmp 0x435062
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x434fe1
mov eax, dword [esi]
push eax
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov edi, eax
test edi, edi
jne 0x435062
cmp dword [0x4ac0bc], eax
jg 0x435062
push ecx
push ecx
lea ecx, [ebp - 0x110]
call fcn.00403ead
mov edx, str.Deleted__
lea ecx, [ebp - 0x110]
call fcn.00406a2a
sub esp, 0x18
mov ecx, ebx
mov eax, esp
push esi
push eax
call fcn.00434128
lea ecx, [ebp - 0x110]
call fcn.00405461
mov esi, eax
mov edx, str.__value
mov ecx, esi
call fcn.00406a2a
push esi
push str.Registry::deleteValue
push 0x1d2
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_Registry.cpp
push edi
mov ecx, 0x4ac0bc
call fcn.00402d4b
lea ecx, [ebp - 0x110]
call fcn.0046dfb5
lea ecx, [ebp - 0x28]
call fcn.004049c7
lea ecx, [ebp - 0x40]
call fcn.004049c7
mov eax, edi
call fcn.00448d87
ret 8
Function at 0x4390ad
Capabilities:
Check mutex on windows

Disassembly:
push 0xa4
mov eax, 0x47976c
call fcn.00448da9
mov edi, ecx
push str.Global_MSIExecute
xor ebx, ebx
push ebx
push 0x100000
call dword [sym.imp.kernel32.dll_OpenMutexA]
mov esi, eax
mov byte [ebp - 0x14], 1
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], ebx
test esi, esi
je 0x43915f
push edi
push esi
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
mov dword [ebp - 0x10], eax
test edi, edi
je 0x439158
cmp dword [0x4ac0bc], 1
jg 0x439158
push ecx
push ecx
lea ecx, [ebp - 0xb0]
call fcn.00403ead
mov edx, str.finish_waiting_for_mutex:
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xb0]
call fcn.00406a2a
push dword [ebp - 0x10]
lea ecx, [ebp - 0xb0]
call fcn.0040581e
lea eax, [ebp - 0xb0]
mov ecx, 0x4ac0bc
push eax
push str.msi::waitForInstallationCompletion
push 0x1c8
push str.c:_jenkins_workspace_8_2_build_windows_i586_cygwin_jdk8u281_880_install_src_windows_common_MsiUtils.cpp
push 1
call fcn.00402d4b
lea ecx, [ebp - 0xb0]
call fcn.0046dfb5
mov eax, dword [ebp - 0x10]
cmp eax, 0x102
je 0x439161
mov bl, 1
push esi
mov dword [ebp - 4], 3
call fcn.00436a38
pop ecx
mov al, bl
call fcn.00448d72
ret

Function at 0x43fc90
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x23c]
sub esp, 0x23c
push 0xffffffffffffffff
push 0x47aa4c
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x4a8068]
xor eax, ebp
mov dword [ebp + 0x238], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
lea eax, [ebp + 0x30]
mov dword [ebp - 0x10], edi
push eax
xor ebx, ebx
push ebx
push ebx
push 0x2c
push ebx
call dword [sym.imp.shell32.dll_SHGetFolderPathW]
test eax, eax
jne 0x43fd6a
lea eax, [ebp + 0x30]
push eax
lea ecx, [ebp]
call fcn.0041d1c7
mov esi, eax
mov dword [ebp - 4], ebx
mov ebx, str.OracleJavajava.settings.cfg
push ebx
call fcn.0046dfb5
pop ecx
push eax
push ebx
mov ecx, esi
call fcn.0046dfb5
xor ecx, ecx
mov byte [ebp - 0x10], cl
push dword [ebp - 0x10]
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], ecx
lea ecx, [ebp + 0x18]
push eax
call fcn.0041d2a0
lea edx, [ebp + 0x18]
mov byte [ebp - 4], 1
mov ecx, edi
call fcn.0043f3d0
lea ecx, [ebp + 0x18]
call fcn.00419e55
lea ecx, [ebp]
call fcn.00419e55
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x238]
xor ecx, ebp
call fcn.004484c4
add ebp, 0x23c
leave
ret
push 0xc8
lea ecx, [ebp - 0x20]
call fcn.0041241e
push 0x4a5ce4
lea eax, [ebp - 0x20]
push eax
call fcn.0046dfb5
int3
Function at 0x46dfb5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
pushal
call 0x46dfc4
pop dword [ebp - 0x2c]
mov eax, 0x23e1a453
add eax, 0xdc653b71
sub dword [ebp - 0x2c], eax
push 0x40
push 0x1000
push 0x48706
push 0
mov eax, sym.imp.kernel32.dll_VirtualAlloc
add eax, dword [ebp - 0x2c]
call dword [eax]
mov ecx, 0xa555cc83
add ecx, 0x5aaa6b46
mov edx, eax
mov ebx, 0xc69e059d
add ebx, 0x39b1a063
add ebx, dword [ebp - 0x2c]
mov esi, 0xe354681d
sub esi, 0x22608a9c
xor dword [ebp - 0x14], ecx
mov edi, dword [ebx]
sub dword [ebp - 0x18], ecx
xor edi, esi
mov dword [ebp - 0x1c], 0xcc30a4f2
mov dword [edx], edi
add dword [ebp - 0x18], edx
add edx, 4
add ebx, 0x75d109b5
add ebx, 0x8a2ef64f
loop 0x46e01e
add eax, 0x87fd32d8
sub eax, 0x87fc60e1
xor ebx, ebx
add ebx, eax
add eax, 0xc334e4b7
add eax, 0x3ccb1b4e
mov ecx, 0x400000
add ecx, dword [ebp - 0x2c]
call ebx
leave
ret
Function at 0x403e4a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x403e59
pop dword [ebp - 0x4c]
mov eax, 0x1d8efddf
add eax, 0xe2b1407a
sub dword [ebp - 0x4c], eax
mov dword [ebp - 0x5c], 0x917568b2
add dword [ebp - 0x5c], 0xbcdcdc99
mov dword [ebp - 0x58], 0x53d4df1a
sub dword [ebp - 0x58], 0x21a192d5
mov dword [ebp - 0x54], 0x18cc2c1b
sub dword [ebp - 0x54], 0xcc7fe7ed
mov dword [ebp - 0x50], 0x861ff4c1
add dword [ebp - 0x50], 0x79e00b3f
lea eax, [ebp - 0x5c]
push eax
mov eax, 0x7e796f8b
sub eax, 0x7e38eeff
add eax, dword [ebp - 0x4c]
call dword [eax]
mov dword [ebp - 0x5c], 0xed3aac6f
sub dword [ebp - 0x5c], 0x78c84319
mov dword [ebp - 0x58], 0x3ec82364
sub dword [ebp - 0x58], 0xfd5bc1ef
mov dword [ebp - 0x54], 0x3e3f1d22
add dword [ebp - 0x54], 0x25304f4a
mov dword [ebp - 0x50], 0x350a594
sub dword [ebp - 0x50], 0x350a594
lea ebx, [ebp - 0x5c]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x4c]
call dword [eax]
push 0x40
push 0x1000
push 0x37c81
push 0
call eax
mov ecx, 0xbc39824f
sub ecx, 0xbc39362c
mov edx, eax
mov esi, 0xc55fe18e
sub esi, 0xc51ed18e
add esi, dword [ebp - 0x4c]
mov ebx, 0xc76ff223
add ebx, 0x325c8512
mov edi, dword [esi]
add dword [ebp - 0x10], 0x51b314b2
xor edi, ebx
mov dword [ebp - 0x10], 0xf6bc4017
mov dword [edx], edi
add dword [ebp - 0x48], 0x13865754
add edx, 4
add esi, 0x5b6af37d
sub esi, 0x5b6af379
loop 0x403f76
add eax, 0xcaf0dd63
sub eax, 0xcaefba04
mov ebx, eax
add eax, 0xead8157d
add eax, 0x1527ea88
mov ecx, 0x409922b6
add ecx, 0xbfa6dd4a
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret
Function at 0x403930
Capabilities:
Accept command line arguments

Disassembly:
push ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov bl, 0x22
cmp byte [eax], bl
je 0x403940
add bl, 0xfe
mov cl, byte [eax + 1]
inc eax
xor edx, edx
cmp cl, dl
je 0x403954
cmp cl, bl
je 0x403954
mov cl, byte [eax + 1]
inc eax
jmp 0x403946
cmp byte [eax], dl
pop ebx
je 0x40395a
inc eax
push edx
push eax
push edx
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call main
push eax
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x403ad0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x40868e]
test eax, eax
jg 0x403ae3
and dword [0x408654], 0
xor eax, eax
ret
push esi
mov esi, 0x800
cmp eax, esi
push edi
ja 0x403af0
mov esi, eax
mov edi, dword [sym.imp.KERNEL32.dll__lread]
push esi
push dword [0x408650]
push dword [0x408070]
call edi
cmp dword [0x408080], 0
mov ecx, eax
mov dword [0x408654], ecx
je 0x403b5f
cmp ecx, 0xffffffff
je 0x403b5f
cmp ecx, esi
je 0x403b70
test ecx, ecx
jl 0x403b5f
mov ax, word [0x407942]
push dword [0x408084]
inc ax
push eax
call fcn.00401428
mov ecx, dword [0x408654]
test ecx, ecx
jne 0x403b58
push esi
push dword [0x408650]
push dword [0x408070]
call edi
mov ecx, eax
mov dword [0x408654], ecx
cmp ecx, 0xffffffff
je 0x403b5f
mov esi, ecx
cmp ecx, esi
je 0x403b70
push 2
call fcn.00401eab
mov ecx, dword [0x408654]
sub dword [0x40868e], ecx
mov esi, dword [0x408650]
cmp dword [0x408074], 0
mov dword [0x40869c], esi
je 0x403bb2
mov eax, ecx
mov edx, eax
dec eax
test edx, edx
je 0x403bb2
lea edi, [eax + 1]
call fcn.00405418
xor byte [esi], al
movzx eax, byte [esi]
push eax
call fcn.0040542e
inc esi
dec edi
pop ecx
jne 0x403b97
mov ecx, dword [0x408654]
mov eax, ecx
dec ecx
pop edi
mov dword [0x408654], ecx
pop esi
ret

Function at 0x40542e
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
mov ecx, dword [0x4080e0]
mov edx, 0xff
mov eax, ecx
push esi
xor eax, dword [esp + 8]
shr ecx, 8
and eax, edx
mov eax, dword [eax*4 + 0x408120]
xor eax, ecx
mov ecx, dword [0x4080e8]
mov dword [0x4080e0], eax
and eax, edx
add eax, dword [0x4080e4]
mov esi, ecx
and esi, edx
imul eax, eax, 0x8088405
inc eax
mov dword [0x4080e4], eax
shr eax, 0x18
xor eax, esi
pop esi
shr ecx, 8
mov eax, dword [eax*4 + 0x408120]
xor eax, ecx
mov dword [0x4080e8], eax
ret

Function at 0x405515
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
push dword [0x40807c]
call fcn.00405489
push 0xc
lea eax, [ebp - 0xc]
push dword [ebp + 8]
push eax
call fcn.0040116b
add esp, 0x10
xor edi, edi
lea esi, [ebp + edi - 0xc]
call fcn.00405418
xor byte [esi], al
movzx eax, byte [esi]
push eax
call fcn.0040542e
inc edi
pop ecx
cmp edi, 0xc
jl 0x40553b
cmp dword [0x408078], 0
pop edi
movzx ax, byte [ebp - 1]
pop esi
je 0x405570
xor ecx, ecx
mov cl, byte [0x408687]
jmp 0x405579
mov ecx, dword [0x40868a]
shr ecx, 0x18
cmp ax, cx
je 0x405583
or eax, 0xffffffff
leave
ret
xor eax, eax
leave
ret