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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x10031004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
cmp ebx, 0xffffffff
jne 0x100056a0
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
push edi
mov ecx, dword [eax]
test ecx, ecx
je 0x100056dc
mov edx, dword [esi + 0x30]
mov edi, dword [edx]
lea eax, [edi + ecx]
cmp ecx, eax
jae 0x100056dc
lea ecx, [edi - 1]
mov dword [edx], ecx
mov edx, dword [esi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 1]
mov dword [edx], ecx
mov byte [esi], bl
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x4c], 0
je 0x100057c6
mov edi, dword [esi + 0xc]
lea eax, [esi + 0x3c]
cmp dword [edi], eax
jne 0x10005704
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
sub edx, ecx
mov dword [edi], ecx
mov eax, dword [esi + 0x1c]
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x10005737
push dword [esi + 0x4c]
movsx eax, bl
push eax
call fcn.1000dea0
add esp, 8
or ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret 4
mov byte [ebp - 0x25], bl
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x25]
push eax
lea eax, [esi + 0x40]
push eax
call edx
sub eax, 0
je 0x10005799
sub eax, 1
je 0x10005799
sub eax, 2
jne 0x100057c6
push dword [esi + 0x4c]
movsx eax, byte [ebp - 0x25]
push eax
call fcn.1000dea0
add esp, 8
or ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x100057b6
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.1000ecfe
add esp, 0x10
cmp edi, eax
jne 0x100057c6
lea eax, [ebp - 0x25]
mov byte [esi + 0x3d], 1
cmp dword [ebp - 0x30], eax
jne 0x100056c7
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1000822b
mov esp, ebp
pop ebp
ret 4
Function at 0x100060d0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x10031004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x1000618c
cmp byte [esi + 0x3d], 0
je 0x1000618c
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x1000617a
mov ecx, dword [esi + 0x38]
mov eax, dword [ecx]
mov edx, dword [eax + 0x20]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call edx
sub eax, 0
je 0x10006142
sub eax, 1
je 0x10006146
sub eax, 2
jne 0x1000617a
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x10006163
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.1000ecfe
add esp, 0x10
cmp edi, eax
jne 0x1000617a
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.1000822b
mov esp, ebp
pop ebp
ret

Function at 0x100064a0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10020340
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x10031004]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x10], eax
push 8
mov dword [eax], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.10008239
mov esi, eax
xorps xmm0, xmm0
movq qword [esi], xmm0
push 1
mov dword [ebp - 4], 0
call fcn.1000945c
mov dword [esi + 4], eax
add esp, 8
mov eax, dword [ebp - 0x10]
lea edi, [eax + 0x14]
lea ecx, [eax + 0x18]
lea edx, [eax + 0x24]
mov dword [eax + 0x34], esi
lea ebx, [eax + 4]
mov dword [eax + 0xc], ebx
lea esi, [eax + 8]
mov dword [eax + 0x10], esi
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x2c], edx
add eax, 0x28
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 0x30], eax
mov ebx, dword [ebp - 0x14]
mov dword [esi], 0
mov dword [ecx], 0
mov dword [eax], 0
mov eax, dword [ebp - 0x10]
mov dword [ebx], 0
mov dword [edi], 0
mov dword [edx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10006b20
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
mov eax, dword [edi]
cmp eax, 0x270
jne 0x10006b7e
lea edx, [edi + 8]
mov esi, eax
nop dword [eax]
mov ecx, dword [edx - 4]
lea edx, [edx + 4]
xor ecx, dword [edx - 4]
and ecx, 0x7fffffff
xor ecx, dword [edx - 8]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x62c]
xor eax, ecx
mov dword [edx + 0x9b8], eax
sub esi, 1
jne 0x10006b40
mov eax, dword [edi]
jmp 0x10006c69
cmp eax, 0x4e0
jb 0x10006c69
mov eax, dword [edi + 0x9c4]
push ebx
lea ebx, [edi + 0x9c4]
mov edi, 0xe3
nop dword [eax + eax]
mov ecx, dword [ebx + 4]
lea edx, [ebx + 4]
xor ecx, eax
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx + 0x634]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x10006ba0
mov ebx, dword [ebp - 4]
mov edi, 0x18c
add ebx, 0xd50
mov eax, dword [ebx]
nop dword [eax]
mov ecx, eax
lea edx, [ebx + 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx - 0xd4c]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x10006bf0
mov edi, dword [ebp - 4]
pop ebx
mov ecx, dword [edi + 0x1380]
xor ecx, dword [edi + 4]
and ecx, 0x7fffffff
xor ecx, dword [edi + 0x1380]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edi + 0x634]
xor eax, ecx
mov dword [edi + 0x9c0], eax
xor eax, eax
mov dword [edi], 0
mov edx, dword [edi + eax*4 + 4]
inc eax
mov dword [edi], eax
mov ecx, edx
mov eax, dword [edi + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
pop edi
xor eax, edx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x10008050
Capabilities:
Create thread
Encode data using xor
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10020605
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x10031004]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movaps xmm0, xmmword [0x1002dea0]
xor ecx, ecx
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x30], 0xf
movups xmmword [ebp - 0x2c], xmm0
lea eax, [ecx - 0x6f]
xor byte [ebp + ecx - 0x2c], al
inc ecx
mov eax, dword [ebp - 0x30]
cmp ecx, eax
jb 0x10008094
mov byte [ebp + eax - 0x2c], 0
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp + 8]
mov edx, esi
push edi
call fcn.10007e20
movaps xmm0, xmmword [0x1002deb0]
add esp, 4
mov dword [ebp - 0x34], 0x13
xor ecx, ecx
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x20], 0xa483c6cf
nop dword [eax + eax]
lea eax, [ecx - 0x6f]
xor byte [ebp + ecx - 0x30], al
inc ecx
mov eax, dword [ebp - 0x34]
cmp ecx, eax
jb 0x100080e0
mov byte [ebp + eax - 0x30], 0
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 8
call fcn.10008239
mov ecx, dword [0x10032e7c]
mov dword [ebp - 0x1c], eax
mov dword [eax], ecx
mov dword [eax + 4], 0x10007ae0
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0
push ecx
push 0
push eax
push 0x100081c0
push 0
push 0
call fcn.1000f9cd
add esp, 0x1c
mov dword [ebp - 0x18], eax
test eax, eax
je 0x10008176
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x10008184
push ecx
push eax
call fcn.10009994
add esp, 8
test eax, eax
jne 0x1000818b
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1000822b
mov esp, ebp
pop ebp
ret 0xc
push 6
mov dword [ebp - 0x14], 0
call fcn.10009a49
push 1
call fcn.10009a49
push eax
call fcn.10009a1c
int3

Function at 0x10016b26
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.1001699c

Function at 0x40206c
Capabilities:
Allocate or change rwx memory

Disassembly:
sub ebp, 0x82
mov esi, eax
mov edx, dword [0x404080]
or dl, 1
imul edx, eax
mov eax, dword [0x404080]
sub eax, edx
mov ebx, esi
mov edx, eax
mov eax, 0x404084
call fcn.00401fe6
xor eax, eax
mov dword [ebp + 0x7e], eax
lea eax, [ebp + 0x7e]
push eax
mov eax, esi
jmp 0x4020ea
push ebx
push ecx
push edx
push esi
push edi
enter 0x84, 0
jmp 0x402010
or al, 0x40
mov edi, 0x40389b
push eax
sub edi, fcn.00403045
push edi
push fcn.00403045
call dword [sym.imp.KERNEL32.DLL_VirtualProtect]
cmp dword [ebp + 0x7e], 0
je 0x402129
mov eax, fcn.00403045
mov ebx, esi
mov edx, edi
call fcn.00401fe6
mov edx, 0x1c000
mov eax, 0x404084
mov ebx, esi
call fcn.00402630
lea edx, [ebp - 2]
mov eax, esi
mov dword [ebp - 2], 1
call fcn.00402bb7
lea edx, [esi + 0x1c000]
add edx, esi
lea eax, [esi - 1]
lea ebx, [ebp - 2]
and eax, 0x404084
call fcn.00403045
lea esp, [ebp + 0x82]
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
ret
Function at 0x40548b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
pushal
call 0x40549a
pop dword [ebp - 0x20]
mov eax, 0x2361cd0b
sub eax, 0x23217871
sub dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0x42f2e7a1
sub dword [ebp - 0x30], 0xf4a0a256
mov dword [ebp - 0x2c], 0xb6c36e74
add dword [ebp - 0x2c], 0x7b6fddd1
mov dword [ebp - 0x28], 0xcb2cfe0a
add dword [ebp - 0x28], 0x811f4624
mov dword [ebp - 0x24], 0x5e419175
sub dword [ebp - 0x24], 0x5e419175
lea eax, [ebp - 0x30]
push eax
mov eax, 0x1e5b56fa
add eax, 0xe1e51a12
add eax, dword [ebp - 0x20]
call dword [eax]
mov dword [ebp - 0x30], 0x29a5b1e2
sub dword [ebp - 0x30], 0xb533488c
mov dword [ebp - 0x2c], 0x30c7b909
sub dword [ebp - 0x2c], 0xef5b5794
mov dword [ebp - 0x28], 0x51a441df
sub dword [ebp - 0x28], 0xee34d573
mov dword [ebp - 0x24], 0xa7f89b17
sub dword [ebp - 0x24], 0xa7f89b17
lea ebx, [ebp - 0x30]
push ebx
push eax
mov eax, 0xd9139acd
sub eax, 0xd8d329b9
add eax, dword [ebp - 0x20]
call dword [eax]
push 0x40
push 0x1000
push 0x389e3
push 0
call eax
mov ecx, 0x50f287e4
sub ecx, 0x50f23900
mov edi, eax
mov ebx, 0x137a03b3
sub ebx, 0x1336ddb3
add ebx, dword [ebp - 0x20]
mov esi, 0x83ade88f
sub esi, 0xb2fd77b7
xor dword [ebp - 0x18], esi
mov edx, dword [ebx]
xor dword [ebp - 8], 0x294c1781
sub edx, esi
add dword [ebp - 0x14], 0xedf7b968
mov dword [edi], edx
xor dword [ebp - 4], eax
add edi, 0x29386b74
add edi, 0xd6c79490
add ebx, 4
loop 0x4055bc
add eax, 0x23372bcc
sub eax, 0x2335fd69
xor ebx, ebx
add ebx, eax
add eax, 5
mov ecx, 0x1add1f9e
sub ecx, 0x1a9d1f9e
add ecx, dword [ebp - 0x20]
call ebx
leave
ret

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

Disassembly:
push esi
push edi
push dword [esp + 0xc]
mov esi, 0x4218a8
push esi
call fcn.00405b66
push esi
call fcn.004056ed
mov edi, eax
test edi, edi
jne 0x40575b
xor eax, eax
jmp 0x4057ad
push edi
call fcn.00405dc8
test byte [0x423eb8], 0x80
je 0x405774
mov al, byte [edi]
test al, al
je 0x405757
cmp al, 0x5c
je 0x405757
sub edi, esi
jmp 0x40578c
call fcn.00405e61
test eax, eax
je 0x405786
test byte [eax], 0x10
je 0x405757
push esi
call fcn.004056a0
push esi
call sub.kernel32.dll_lstrlenA
cmp eax, edi
push esi
jg 0x405778
call fcn.00405659
push esi
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov eax, ecx
pop edi
pop esi
ret 4

Function at 0x40581e
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40583a
and al, 0xfe
push eax
push dword [esp + 8]
call dword [sym.imp.kernel32.dll_SetFileAttributesA]
ret 4

Function at 0x40583d
Capabilities:
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
mov ecx, eax
push 0
inc ecx
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push dword [esp + 0x14]
push 0
push 1
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call dword [sym.imp.kernel32.dll_CreateFileA]
ret 0xc
Function at 0x401000
Capabilities:
Accept command line arguments

Disassembly:
mov eax, dword [0x425634]
push ebx
push ebp
push esi
push edi
push str._JAVA_LAUNCHER_DEBUG
mov dword [0x425638], eax
call fcn.00408c7b
xor ebx, ebx
pop ecx
test eax, eax
je 0x401053
push str.Windows_original_main_args:_n
call fcn.00408b37
xor esi, esi
pop ecx
cmp dword [0x425628], ebx
jle 0x401053
mov eax, dword [0x42562c]
push dword [eax + esi*4]
push esi
push str.wwwd_args__d____s_n
call fcn.00408b37
add esp, 0xc
inc esi
cmp esi, dword [0x425628]
jl 0x401034
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
call fcn.00403882
call fcn.00403876
mov edi, eax
lea eax, [edi*4 + 4]
push eax
call fcn.004038f8
pop ecx
pop ecx
mov esi, eax
call fcn.0040387c
xor ecx, ecx
cmp edi, ebx
jle 0x40108d
mov edx, dword [eax + ecx*8]
mov dword [esi + ecx*4], edx
inc ecx
cmp ecx, edi
jl 0x401082
mov eax, dword [str.java]
mov dword [esi + ecx*4], ebx
mov edx, eax
cmp eax, ebx
jne 0x40109d
mov edx, dword [esi]
mov ebp, dword [0x42400c]
cmp ebp, ebx
jne 0x4010a9
mov ebp, dword [esi]
mov eax, dword [0x425420]
push ebx
xor ecx, ecx
inc ecx
push ecx
push ecx
cmp eax, ebx
setne bl
movzx ebx, bl
push ebx
push edx
push ebp
push 0x41c254
push 0x41c244
push dword [0x425424]
push ecx
push eax
push ecx
push esi
push edi
call fcn.004033ba
add esp, 0x38
pop edi
pop esi
pop ebp
pop ebx
ret 0x10
Function at 0x403d77
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x9c]
sub esp, 0x11c
mov eax, dword [0x424070]
xor eax, ebp
mov dword [ebp + 0x98], eax
mov eax, dword [ebp + 0xa4]
push ebx
push esi
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov esi, 0x104
push esi
lea ecx, [ebp - 0x6c]
push ecx
xor ebx, ebx
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0xa8]
push ebx
push eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ebx
call edi
test eax, eax
jne 0x403e1a
mov eax, dword [ebp - 0x80]
push dword [eax + 8]
inc dword [ebp - 0x74]
lea eax, [ebp - 0x6c]
push eax
call fcn.00406406
pop ecx
pop ecx
test eax, eax
je 0x403e03
test ebx, ebx
je 0x403df7
lea eax, [ebp - 0x6c]
push ebx
push eax
call fcn.004062cd
pop ecx
pop ecx
test eax, eax
jle 0x403e03
push ebx
call fcn.00403960
pop ecx
lea eax, [ebp - 0x6c]
push eax
call fcn.0040393f
pop ecx
mov ebx, eax
push esi
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x74]
push dword [ebp - 0x78]
call edi
test eax, eax
je 0x403dc4
xor edi, edi
cmp ebx, edi
jne 0x403e1e
xor eax, eax
jmp 0x403e8a
lea eax, [ebp - 0x70]
push eax
push 0x20019
push edi
push ebx
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push ebx
test eax, eax
je 0x403e4d
call fcn.00403960
pop ecx
cmp dword [ebp - 0x70], edi
je 0x403e1a
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403e1a
call fcn.00403960
pop ecx
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x6c]
push eax
push edi
push edi
push str.JavaHome
push dword [ebp - 0x70]
mov dword [ebp - 0x7c], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x403e3d
cmp dword [ebp - 0x70], edi
je 0x403e80
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x6c]
push eax
call fcn.0040393f
pop ecx
mov ecx, dword [ebp + 0x98]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004097a8
add ebp, 0x9c
leave
ret
Function at 0x404f63
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
lea eax, [ebp - 0xc]
push eax
push 0x10000
push dword [ebp + 0x14]
xor edi, edi
push dword [ebp + 8]
mov dword [ebp - 4], edi
push dword [ebp + 0xc]
push edi
call fcn.0040b01a
add esp, 0x18
mov dword [ebp - 8], eax
cmp eax, edi
jne 0x404fac
lea eax, [ebp - 0xc]
push eax
push edi
push dword [ebp + 0x14]
push dword [ebp + 8]
push dword [ebp + 0xc]
push edi
call fcn.0040b01a
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [0x424040], edi
je 0x405045
push str.J2D_D3D
call fcn.00408c7b
pop ecx
mov esi, str.false
cmp eax, edi
je 0x404fdf
push esi
push eax
call fcn.0041b479
pop ecx
pop ecx
test eax, eax
jne 0x404fdf
mov dword [0x424040], edi
push ebx
push str.J2D_D3D_PRELOAD
call fcn.00408c7b
mov ebx, eax
pop ecx
cmp ebx, edi
je 0x405004
push esi
push ebx
call fcn.0041b479
pop ecx
pop ecx
test eax, eax
jne 0x405004
mov dword [0x424040], edi
cmp dword [0x424040], edi
jge 0x405037
mov dword [0x424040], edi
cmp ebx, edi
je 0x405044
push str.true
push ebx
call fcn.0041b479
pop ecx
pop ecx
test eax, eax
jne 0x405031
mov dword [0x424040], 1
cmp dword [0x424040], edi
je 0x405044
push str.preloadD3D
call fcn.00404e2e
pop ecx
pop ebx
mov esi, dword [ebp - 8]
cmp esi, edi
je 0x405069
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 4]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x405072
push dword [ebp + 0x14]
call dword [ebp + 8]
mov dword [ebp - 4], eax
cmp dword [0x4254a0], edi
pop edi
pop esi
je 0x405081
call fcn.00404466
mov eax, dword [ebp - 4]
leave
ret
Function at 0x405219
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push 0x10
pop edi
call fcn.00405086
push 8
mov esi, eax
call fcn.004038f8
mov dword [esp], 0x4254c0
push dword [ebp + 8]
mov ebx, eax
mov dword [ebp - 0xc], ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
jne 0x405260
push ebx
call fcn.00403960
pop ecx
call fcn.004050aa
xor eax, eax
jmp 0x40535a
mov dword [ebx], eax
mov dword [ebx + 4], 0x4254ec
mov edi, dword [ebx + 4]
test edi, edi
je 0x405276
and dword [ebx + 4], 0
jmp 0x40528f
push 0x4254c0
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov edi, eax
neg edi
sbb edi, edi
and edi, 0x4254ec
test edi, edi
je 0x405340
push edi
call fcn.00409120
pop ecx
cmp eax, 4
jl 0x405269
add eax, edi
cmp byte [eax - 4], 0x2e
jne 0x405269
add eax, 0xfffffffd
push 0x41d9e4
push eax
mov dword [ebp - 4], eax
call fcn.004097c0
pop ecx
pop ecx
test eax, eax
je 0x4052d5
push 0x41d9e0
push dword [ebp - 4]
call fcn.004097c0
pop ecx
pop ecx
test eax, eax
jne 0x405269
push 0x3b
push edi
call fcn.0040ae00
pop ecx
pop ecx
test eax, eax
jne 0x405269
push dword [ebp + 8]
call fcn.00409120
push edi
mov ebx, eax
call fcn.00409120
mov dword [ebp - 4], eax
add eax, ebx
push eax
call fcn.004038f8
lea ecx, [ebx - 1]
push ecx
push dword [ebp + 8]
mov dword [ebp - 8], eax
push eax
call fcn.00409240
mov eax, dword [ebp - 4]
inc eax
push eax
push edi
mov edi, dword [ebp - 8]
lea eax, [edi + ebx - 1]
push eax
call fcn.00409240
mov ecx, dword [esi + 4]
add esp, 0x24
inc ecx
call fcn.004050dc
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov ebx, dword [ebp - 0xc]
mov dword [ecx + eax*4], edi
inc dword [esi + 4]
jmp 0x405269
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebx + 4]
call fcn.00403960
push ebx
call fcn.00403960
pop ecx
pop ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40558e
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
cmp dword [esi + 4], 0xffffffff
push ebx
push edi
je 0x4056bc
cmp dword [esi], 0xffffffff
je 0x4056bc
push 0
push dword [esi + 0xc]
push dword [esi + 8]
push dword [ebp + 8]
call fcn.0040b13f
add esp, 0x10
test edx, edx
jg 0x4055ce
jl 0x4056bc
test eax, eax
jb 0x4056bc
mov eax, dword [esi + 4]
inc eax
push eax
call fcn.0040a0e7
mov ebx, eax
pop ecx
test ebx, ebx
je 0x4056bc
mov edi, dword [esi + 4]
push edi
push ebx
push dword [ebp + 8]
call fcn.0041741b
add esp, 0xc
cmp eax, edi
jne 0x4056b5
mov eax, dword [esi + 0x10]
xor ecx, ecx
cmp eax, ecx
jne 0x40561a
mov eax, dword [ebp + 0xc]
mov byte [edi + ebx], cl
cmp eax, ecx
je 0x405613
mov ecx, dword [esi + 4]
mov dword [eax], ecx
mov eax, ebx
jmp 0x4056be
cmp eax, 8
jne 0x4056b5
push 0x38
push str.1.2.11
lea eax, [ebp - 0x3c]
push 0xfffffffffffffff1
push eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], edi
call fcn.0040670f
add esp, 0x10
test eax, eax
js 0x4056b5
mov edi, dword [esi]
lea eax, [edi + 1]
push eax
call fcn.0040a0e7
pop ecx
mov dword [ebp - 4], eax
test eax, eax
je 0x4056b5
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x3c]
push 1
push eax
mov dword [ebp - 0x2c], edi
call fcn.00406874
pop ecx
pop ecx
push ebx
test eax, eax
jns 0x405686
call fcn.00408e95
push dword [ebp - 4]
call fcn.00408e95
pop ecx
jmp 0x4056bb
mov eax, dword [esi]
mov edi, dword [ebp - 4]
mov byte [edi + eax], 0
call fcn.00408e95
lea eax, [ebp - 0x3c]
push eax
call fcn.00407bcc
pop ecx
pop ecx
test eax, eax
jns 0x4056a6
push edi
jmp 0x4056b6
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4056b1
mov ecx, dword [esi]
mov dword [eax], ecx
mov eax, edi
jmp 0x4056be
push ebx
call fcn.00408e95
pop ecx
xor eax, eax
pop edi
pop ebx
leave
ret

Function at 0x405735
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
push ebx
push edi
sub eax, 0x14
push 0
sbb ecx, 0
push ecx
push eax
push dword [esp + 0x18]
call fcn.0040b13f
mov edi, edx
add esp, 0x10
mov ebx, eax
test edi, edi
jg 0x405763
jl 0x4057a1
test ebx, ebx
jb 0x4057a1
push 0x14
push esi
push dword [esp + 0x14]
call fcn.0041741b
add esp, 0xc
test eax, eax
js 0x4057a1
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi]
shl eax, 8
or eax, ecx
cmp eax, 0x7064b50
jne 0x4057a1
mov eax, ebx
mov edx, edi
jmp 0x4057a6
or eax, 0xffffffff
or edx, eax
pop edi
pop ebx
ret