joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10047b2
Capabilities:
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
je 0x1004832
cmp dword [ebp + 0x14], ebx
je 0x1004832
push esi
push edi
mov esi, 0x104
push esi
call sub.cmutil.dll_CmMalloc
mov edi, eax
cmp edi, ebx
je 0x100482c
push dword [ebp + 0x14]
push esi
push edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esi - 2]
cmp eax, ecx
jne 0x10047fc
cmp dword [ebp + 8], ebx
je 0x100480d
cmp dword [ebp + 0xc], ebx
je 0x100480d
lea ecx, [esi - 1]
cmp eax, ecx
jne 0x1004820
cmp dword [ebp + 8], ebx
je 0x1004820
cmp dword [ebp + 0xc], ebx
je 0x1004820
add esi, esi
cmp esi, 0x100000
ja 0x100482c
push esi
push edi
call sub.cmutil.dll_CmRealloc
jmp 0x10047d1
cmp eax, ebx
jne 0x100482c
push edi
call sub.cmutil.dll_CmFree
xor edi, edi
mov eax, edi
pop edi
pop esi
jmp 0x1004834
xor eax, eax
pop ebx
pop ebp
ret 0x10
Function at 0x1004a11
Capabilities:
Copy file
Delete file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x1004add
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x1004add
cmp byte [eax], 0
je 0x1004add
cmp byte [ecx], 0
je 0x1004add
and dword [ebp - 4], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push edi
push eax
call esi
mov edi, 0x10016d4
push edi
mov ebx, eax
call esi
lea eax, [ebx + eax + 1]
push eax
call sub.cmutil.dll_CmMalloc
mov ebx, eax
test ebx, ebx
je 0x1004acf
push edi
push dword [ebp + 8]
push 0x10016cc
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
cmp byte [ebx], 0
je 0x1004acf
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0
push ebx
push dword [ebp + 8]
call esi
test eax, eax
je 0x1004ac9
push 0
push dword [ebp + 8]
push dword [ebp + 0xc]
call esi
test eax, eax
je 0x1004aaa
mov dword [ebp - 4], 1
jmp 0x1004ac0
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push 0
push dword [ebp + 8]
push ebx
call esi
test eax, eax
jne 0x1004ac0
call edi
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x1004acf
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
call sub.cmutil.dll_CmFree
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
jmp 0x1004adf
xor eax, eax
leave
ret 8

Function at 0x1004c08
Capabilities:
Check mutex on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
push esi
push edi
push dword [ebp + 8]
xor edi, edi
inc edi
xor ebx, ebx
push edi
mov esi, ecx
push ebx
mov dword [esi + 4], ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp eax, ebx
mov dword [esi], eax
je 0x1004c6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1004c6e
cmp dword [ebp + 0xc], ebx
je 0x1004c60
push dword [ebp + 0x10]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, ebx
je 0x1004c6e
cmp eax, 0x80
jne 0x1004c60
cmp dword [ebp + 0x14], ebx
je 0x1004c6e
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi], ebx
xor eax, eax
jmp 0x1004c73
mov dword [esi + 4], edi
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
Function at 0x1004cad
Capabilities:
Get file size
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push edi
xor ebx, ebx
xor edi, edi
cmp dword [ebp + 8], ebx
jne 0x1004cc5
xor eax, eax
jmp 0x1004d45
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp + 8], eax
je 0x1004d43
push esi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0x7fff
jae 0x1004d39
push esi
call sub.cmutil.dll_CmMalloc
mov edi, eax
cmp edi, ebx
je 0x1004d39
push ebx
lea eax, [ebp - 4]
push eax
push esi
push edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1004d39
cmp byte [edi], bl
mov eax, edi
je 0x1004d39
mov cl, byte [eax]
cmp cl, 9
je 0x1004d37
cmp cl, 0xa
je 0x1004d37
cmp cl, 0xd
je 0x1004d37
inc eax
cmp byte [eax], bl
jne 0x1004d1f
jmp 0x1004d39
mov byte [eax], bl
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
mov eax, edi
pop edi
pop ebx
leave
ret 4
Function at 0x100508d
Capabilities:
Parse pe header

Disassembly:
push 0x70
push 0x10016e0
call fcn.01005290
xor ebx, ebx
push ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x10050ca
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x10050ca
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x10050e2
cmp eax, 0x20b
je 0x10050cf
mov dword [ebp - 0x1c], ebx
jmp 0x10050f6
cmp dword [ecx + 0x84], 0xe
jbe 0x10050ca
xor eax, eax
cmp dword [ecx + 0xf8], ebx
jmp 0x10050f0
cmp dword [ecx + 0x74], 0xe
jbe 0x10050ca
xor eax, eax
cmp dword [ecx + 0xe8], ebx
setne al
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ebx
push 2
call dword [sym.imp.msvcrt.dll___set_app_type]
pop ecx
or dword [0x10070a0], 0xffffffff
or dword [0x10070a4], 0xffffffff
call dword [sym.imp.msvcrt.dll___p__fmode]
mov ecx, dword [0x100709c]
mov dword [eax], ecx
call dword [sym.imp.msvcrt.dll___p__commode]
mov ecx, dword [0x1007098]
mov dword [eax], ecx
mov eax, dword [sym.imp.msvcrt.dll__adjust_fdiv]
mov eax, dword [eax]
mov dword [0x10070a8], eax
call fcn.01005286
cmp dword [0x1007088], ebx
jne 0x1005151
push fcn.01005286
call dword [sym.imp.msvcrt.dll___setusermatherr]
pop ecx
call fcn.0100526f
push 0x1007010
push 0x100700c
call sub.msvcrt.dll__initterm
mov eax, dword [0x1007094]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
push dword [0x1007090]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
call dword [sym.imp.msvcrt.dll___getmainargs]
mov dword [ebp - 0x38], eax
push 0x1007008
push section..data
call sub.msvcrt.dll__initterm
add esp, 0x24
mov eax, dword [sym.imp.msvcrt.dll__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
cmp byte [esi], 0x22
jne 0x10051e7
inc esi
mov dword [ebp - 0x20], esi
mov al, byte [esi]
cmp al, bl
je 0x10051bb
cmp al, 0x22
jne 0x10051ad
cmp byte [esi], 0x22
jne 0x10051c4
inc esi
mov dword [ebp - 0x20], esi
mov al, byte [esi]
cmp al, bl
je 0x10051ce
cmp al, 0x20
jbe 0x10051c0
mov dword [ebp - 0x54], ebx
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
test byte [ebp - 0x54], 1
je 0x10051f2
movzx eax, word [ebp - 0x50]
jmp 0x10051f5
cmp byte [esi], 0x20
jbe 0x10051c4
inc esi
mov dword [ebp - 0x20], esi
jmp 0x10051e7
push 0xa
pop eax
push eax
push esi
push ebx
push ebx
call edi
push eax
call main
mov esi, eax
mov dword [ebp - 0x3c], esi
cmp dword [ebp - 0x1c], ebx
jne 0x1005212
push esi
call dword [sym.imp.msvcrt.dll_exit]
call dword [sym.imp.msvcrt.dll__cexit]
jmp 0x1005247
or dword [ebp - 4], 0xffffffff
mov eax, esi
call fcn.010052cb
ret
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x42e00c
nop
nop
pop eax
nop
nop
nop
add eax, 0x403ac5
nop
sub eax, 0x403a6b
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
cmp ebx, ecx
nop
nop
jl 0x42e030
nop
nop
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x42e01e
nop
nop
nop
nop
nop
nop
nop
nop
popal
jmp fcn.00401219
Function at 0x10015870
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x10030004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
push str._5_3
push edi
push str._s_s
push esi
mov dword [ebp - 0x118], edx
mov dword [ebp - 0x114], eax
call sym.lua53.dll_lua_pushfstring
push eax
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x100158cb
push edi
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x1001593e
mov edx, dword [esi + 0x10]
mov ecx, esi
add edx, 0x28
push str.LUA_NOENV
call fcn.100023c0
mov ecx, dword [esi + 0xc]
lea edi, [esi + 0xc]
add ecx, 0xfffffff0
add esp, 4
mov eax, dword [ecx + 8]
test eax, eax
je 0x10015901
cmp eax, 1
jne 0x100158fa
cmp dword [ecx], 0
je 0x10015901
mov eax, 1
jmp 0x10015903
xor eax, eax
mov dword [edi], ecx
test eax, eax
jne 0x1001593e
push 0x1002cdc4
push 0x1002cdc8
push ebx
push esi
call sym.lua53.dll_luaL_gsub
push dword [ebp - 0x114]
push 0x1002cdcc
push eax
push esi
call sym.lua53.dll_luaL_gsub
push 0xffffffffffffffff
push 0xfffffffffffffffe
push esi
call sym.lua53.dll_lua_rotate
add esp, 0x2c
add dword [edi], 0xfffffff0
jmp 0x10015980
mov eax, dword [ebp - 0x114]
lea edi, [esi + 0xc]
test eax, eax
jne 0x10015956
mov eax, dword [edi]
mov dword [eax + 8], 0
jmp 0x1001596d
mov edx, eax
mov ecx, esi
call fcn.1001de30
mov ecx, dword [edi]
mov dword [ecx], eax
movzx eax, byte [eax + 4]
or eax, 0x40
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x10]
add dword [edi], 0x10
cmp dword [eax + 0xc], 0
jle 0x10015980
mov ecx, esi
call fcn.1000fd40
push 0x105
lea eax, [ebp - 0x110]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x10015a53
cmp eax, 0x105
je 0x10015a53
lea eax, [ebp - 0x110]
push 0x5c
push eax
call dword [sym.imp.VCRUNTIME140.dll_strrchr]
add esp, 8
test eax, eax
je 0x10015a53
mov byte [eax], 0
mov eax, dword [edi]
sub eax, 0x10
mov ecx, dword [eax + 8]
and ecx, 0xf
cmp ecx, 4
je 0x10015a00
cmp ecx, 3
je 0x100159dd
xor eax, eax
jmp 0x10015a05
mov edx, eax
mov ecx, esi
call fcn.100177d0
mov eax, dword [esi + 0x10]
cmp dword [eax + 0xc], 0
jle 0x100159f6
mov ecx, esi
call fcn.1000fd40
or edx, 0xffffffff
mov ecx, esi
call fcn.10001000
mov eax, dword [eax]
add eax, 0x10
lea ecx, [ebp - 0x110]
push ecx
push 0x1002cd90
push eax
push esi
call sym.lua53.dll_luaL_gsub
push 0xffffffffffffffff
push 0xfffffffffffffffe
push esi
call sym.lua53.dll_lua_rotate
mov edx, dword [edi]
add esp, 0x1c
mov ecx, esi
push dword [ebp - 0x118]
lea eax, [edx - 0x10]
add edx, 0xffffffc0
mov dword [edi], eax
call fcn.10002ac0
add dword [edi], 0xfffffff0
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.10029730
mov esp, ebp
pop ebp
ret
push str.unable_to_get_ModuleFileName
push esi
call sym.lua53.dll_luaL_error
int3
Function at 0x10017250
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x20
push esi
push edi
mov dword [ebp - 0x10], edx
mov esi, ecx
call dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_localeconv]
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0xc], ecx
xorps xmm1, xmm1
mov eax, dword [eax]
movsx eax, byte [eax]
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov dword [eax], esi
mov cl, byte [esi]
movzx eax, cl
test byte [eax + 0x1002b3b1], 8
je 0x100172b0
mov cl, byte [esi + 1]
inc esi
movzx eax, cl
test byte [eax + 0x1002b3b1], 8
jne 0x100172a0
lea edx, [esi + 1]
cmp cl, 0x2d
jne 0x100172c1
mov dword [ebp - 0x14], 1
jmp 0x100172ca
cmp cl, 0x2b
mov dword [ebp - 0x14], edi
cmovne edx, esi
cmp byte [edx], 0x30
jne 0x10017412
mov al, byte [edx + 1]
cmp al, 0x78
je 0x100172e2
cmp al, 0x58
jne 0x10017412
movsd xmm2, qword [0x1002dfa8]
add edx, 2
xor esi, esi
nop
mov al, byte [edx]
movsx ecx, al
mov dword [ebp - 0x1c], edx
mov byte [ebp - 1], al
cmp ecx, dword [ebp - 0x18]
jne 0x1001730c
test esi, esi
jne 0x10017362
mov esi, 1
inc edx
jmp 0x100172f0
movzx eax, al
test byte [eax + 0x1002b3b1], 0x10
je 0x10017362
mov eax, dword [ebp - 8]
test eax, eax
jne 0x1001732a
cmp byte [ebp - 1], 0x30
jne 0x1001732a
inc dword [ebp - 0xc]
jmp 0x1001735a
inc eax
mov dword [ebp - 8], eax
cmp eax, 0x1e
jg 0x10017359
test byte [ecx + 0x1002b3b1], 2
je 0x10017341
add ecx, 0xffffffd0
jmp 0x10017347
or ecx, 0x20
sub ecx, 0x57
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm1, xmm0
jmp 0x1001735a
inc edi
test esi, esi
je 0x1001735f
dec edi
inc edx
jmp 0x100172f0
mov eax, dword [ebp - 8]
add eax, dword [ebp - 0xc]
je 0x10017412
mov eax, dword [ebp - 0x10]
shl edi, 2
mov dword [eax], edx
mov al, byte [edx]
cmp al, 0x70
je 0x10017380
cmp al, 0x50
jne 0x100173e2
inc edx
xor ecx, ecx
mov dl, byte [edx]
cmp dl, 0x2d
jne 0x10017392
lea esi, [ecx + 1]
lea eax, [ecx + 2]
jmp 0x1001739d
xor eax, eax
xor esi, esi
cmp dl, 0x2b
sete al
inc eax
mov edx, dword [ebp - 0x1c]
add edx, eax
mov al, byte [edx]
mov byte [ebp - 1], al
movzx eax, al
test byte [eax + 0x1002b3b1], 2
je 0x10017412
movsx eax, byte [ebp - 1]
lea ecx, [ecx + ecx*4]
inc edx
lea ecx, [ecx - 0x18]
lea ecx, [eax + ecx*2]
mov al, byte [edx]
mov byte [ebp - 1], al
movzx eax, al
test byte [eax + 0x1002b3b1], 2
jne 0x100173b3
mov eax, ecx
neg eax
test esi, esi
cmove eax, ecx
add edi, eax
mov eax, dword [ebp - 0x10]
mov dword [eax], edx
cmp dword [ebp - 0x14], 0
je 0x100173ef
xorps xmm1, xmmword [0x1002e010]
push edi
sub esp, 8
movsd qword [esp], xmm1
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_ldexp]
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
pop edi
xorps xmm0, xmm0
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
Function at 0x10017660
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf4
mov eax, dword [0x10030004]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
push esi
mov ebx, edx
mov esi, ecx
push edi
lea edx, [esp + 0x10]
call fcn.100174b0
mov edx, eax
test edx, edx
je 0x100176bf
mov ecx, dword [esp + 0x10]
sub edx, esi
mov dword [ebx], ecx
mov eax, 0x13
mov ecx, dword [esp + 0x14]
mov dword [ebx + 4], ecx
mov dword [ebx + 8], eax
lea eax, [edx + 1]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.10029730
mov esp, ebp
pop ebp
ret
push str..xXnN
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strpbrk]
add esp, 8
test eax, eax
je 0x100176f4
movzx edi, byte [eax]
or edi, 0x20
cmp edi, 0x6e
jne 0x100176f6
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.10029730
mov esp, ebp
pop ebp
ret
xor edi, edi
push edi
lea edx, [esp + 0x24]
mov ecx, esi
call fcn.10017420
mov edx, eax
add esp, 4
test edx, edx
jne 0x10017795
push 0x2e
push esi
call dword [sym.imp.VCRUNTIME140.dll_strchr]
mov edx, esi
mov dword [esp + 0x18], eax
add esp, 8
lea ecx, [edx + 1]
mov dword [esp + 0x1c], ecx
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x10017728
sub edx, dword [esp + 0x1c]
cmp edx, 0xc8
ja 0x100176dd
test eax, eax
je 0x100176dd
lea edx, [esp + 0x28]
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x10017747
call dword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_localeconv]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x20]
sub ecx, esi
push edi
mov eax, dword [eax]
mov al, byte [eax]
mov byte [esp + ecx + 0x2c], al
lea ecx, [esp + 0x2c]
call fcn.10017420
mov edx, eax
add esp, 4
test edx, edx
je 0x100176dd
mov eax, esi
lea ecx, [esp + 0x28]
sub eax, ecx
add edx, eax
test edx, edx
je 0x100176dd
movsd xmm0, qword [esp + 0x20]
sub edx, esi
mov ecx, dword [esp + 0xfc]
mov eax, 3
pop edi
movsd qword [ebx], xmm0
mov dword [ebx + 8], eax
lea eax, [edx + 1]
pop esi
pop ebx
xor ecx, esp
call fcn.10029730
mov esp, ebp
pop ebp
ret
Function at 0x1001d8a0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x10030004]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
push 0x338
push 8
push 0
push ebx
call edi
mov ecx, eax
add esp, 0x10
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x1001d8e8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.10029730
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 4]
mov dword [esp + 0x1c], 0x1002b870
lea esi, [ecx + 0x80]
mov dword [eax], 0
xor ecx, ecx
mov byte [eax + 4], 8
mov byte [esi + 0x3c], 1
mov word [eax + 6], cx
mov dword [eax + 0x60], ecx
mov dword [eax + 0x30], ecx
mov word [eax + 0x6e], cx
mov byte [eax + 5], 1
mov dword [eax + 0x10], esi
mov dword [eax + 0x20], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x2c], eax
mov dword [eax + 0x58], ecx
mov dword [eax + 0x70], ecx
mov dword [eax + 0x64], ecx
mov dword [eax + 0x68], ecx
mov dword [eax + 0x24], ecx
mov ecx, 1
mov byte [eax + 0x74], 1
mov word [eax + 0x6c], cx
mov byte [eax + 8], 0
mov dword [eax + 0x5c], 0
mov dword [esi + 0x7c], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
mov dword [esi + 4], ebx
lea ebx, [ecx + 0xf]
push 0
mov dword [esi], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], sym.lua53.dll_lua_newstate
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov edi, eax
add esp, 4
xor edi, ebx
movzx edx, byte [esp + ebx + 0x13]
mov ecx, edi
shl ecx, 5
mov eax, edi
add edx, ecx
shr eax, 2
add edx, eax
dec ebx
xor edi, edx
cmp ebx, 1
jae 0x1001d984
mov dword [esi + 0x38], edi
mov edx, 0x1001d390
mov word [esi + 0x3e], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x80], 0
mov byte [esi + 0x3d], 7
mov dword [esi + 0x64], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x68], 0
mov dword [esi + 8], 0x338
mov dword [esi + 0xc], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], 0xc8
mov dword [esi + 0x74], 0xc8
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0x108], 0
mov esi, dword [esp + 0xc]
add esi, 4
push 0
mov ecx, esi
call fcn.1000cca0
add esp, 4
test eax, eax
je 0x1001dacf
mov ecx, esi
call fcn.1001d660
xor esi, esi
mov ecx, dword [esp + 0x24]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10029730
mov esp, ebp
pop ebp
ret
Function at 0x1001dc10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov eax, ecx
mov dword [ebp - 0xc], edx
push esi
push edi
mov dword [ebp - 8], eax
mov edi, dword [eax + 0x10]
mov eax, dword [ebp + 8]
mov esi, eax
mov edx, eax
mov dword [ebp - 4], edi
shr edx, 5
mov ebx, dword [edi + 0x38]
inc edx
xor ebx, eax
cmp eax, edx
jb 0x1001dc5e
mov edi, dword [ebp - 0xc]
nop
movzx ecx, byte [edi + esi - 1]
mov eax, ebx
shl eax, 5
sub esi, edx
add ecx, eax
mov eax, ebx
shr eax, 2
add ecx, eax
xor ebx, ecx
cmp esi, edx
jae 0x1001dc40
mov edi, dword [ebp - 4]
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x18]
lea ecx, [edx - 1]
and ecx, ebx
mov edi, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x10], eax
test edi, edi
je 0x1001dd0c
mov ecx, dword [ebp + 8]
nop dword [eax]
movzx eax, byte [edi + 7]
cmp ecx, eax
jne 0x1001dcdb
mov edx, dword [ebp - 0xc]
lea eax, [edi + 0x10]
mov esi, ecx
sub esi, 4
jb 0x1001dca6
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x1001dcab
add edx, 4
add eax, 4
sub esi, 4
jae 0x1001dc95
cmp esi, 0xfffffffc
je 0x1001dcea
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x1001dcd8
cmp esi, 0xfffffffd
je 0x1001dcea
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x1001dcd8
cmp esi, 0xfffffffe
je 0x1001dcea
mov cl, byte [edx + 2]
cmp cl, byte [eax + 2]
jne 0x1001dcd8
cmp esi, 0xffffffff
je 0x1001dcea
mov cl, byte [edx + 3]
cmp cl, byte [eax + 3]
je 0x1001dcea
mov ecx, dword [ebp + 8]
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x1001dc80
mov esi, dword [ebp - 4]
mov edx, dword [esi + 0x20]
jmp 0x1001dd0f
mov ecx, dword [ebp - 4]
mov al, byte [edi + 5]
xor al, 3
mov cl, byte [ecx + 0x3c]
xor cl, 3
test al, cl
jne 0x1001dd95
mov byte [edi + 5], al
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
cmp dword [esi + 0x1c], edx
jl 0x1001dd37
cmp edx, 0x3fffffff
jg 0x1001dd37
add edx, edx
mov ecx, edi
call fcn.1001db10
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
dec ecx
and ecx, ebx
lea eax, [eax + ecx*4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
xor edx, edx
mov esi, dword [edi + 0x10]
add eax, 0x11
push eax
push 4
mov ecx, edi
call fcn.10015750
mov cl, byte [esi + 0x3c]
mov edi, eax
and cl, 3
mov byte [edi + 5], cl
lea eax, [edi + 0x10]
mov byte [edi + 4], 4
mov ecx, dword [esi + 0x40]
mov dword [edi], ecx
mov dword [esi + 0x40], edi
mov dword [edi + 8], ebx
mov ebx, dword [ebp + 8]
push ebx
push dword [ebp - 0xc]
mov byte [edi + 6], 0
push eax
mov byte [edi + ebx + 0x10], 0
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x10]
add esp, 0x14
mov byte [edi + 7], bl
mov eax, dword [ecx]
mov dword [edi + 0xc], eax
mov dword [ecx], edi
mov ecx, dword [ebp - 4]
inc dword [ecx + 0x1c]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10021efb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x10030004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, edx
push esi
push edi
mov edi, ecx
mov eax, dword [ebx + 8]
and eax, 0x3f
mov dword [ebp - 0xc], edi
dec eax
cmp eax, 0x15
ja case.0x10021e51.2
movzx eax, byte [eax + 0x10021fb4]
jmp dword [eax*4 + 0x10021f9c]
mov cl, byte [edi + 7]
mov eax, 1
shl eax, cl
dec eax
and eax, dword [ebx]
shl eax, 5
add eax, dword [edi + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10029730
mov esp, ebp
pop ebp
ret
movsd xmm0, qword [ebx]
lea eax, [ebp - 8]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_frexp]
fmul qword [0x1002dfd0]
add esp, 0xc
fstp qword [ebp - 0x10]
movsd xmm0, qword [ebp - 0x10]
comisd xmm0, xmmword [0x1002dfe8]
jb 0x10021ece
movsd xmm1, qword [0x1002dfd8]
comisd xmm1, xmm0
jbe 0x10021ece
call fcn.1002a88f
add eax, dword [ebp - 8]
cmp eax, 0x7fffffff
jbe 0x10021ed0
not eax
jmp 0x10021ed0
xor eax, eax
mov cl, byte [edi + 7]
mov esi, 1
shl esi, cl
dec esi
cdq
or esi, 1
idiv esi
jmp 0x10021f80
mov cl, byte [edi + 7]
mov edx, 1
mov eax, dword [ebx]
shl edx, cl
dec edx
and edx, dword [eax + 8]
jmp 0x10021f80
mov eax, dword [ebx]
mov dword [ebp - 8], eax
cmp byte [eax + 6], 0
mov edx, dword [eax + 8]
jne 0x10021f48
mov esi, dword [eax + 0xc]
mov ebx, esi
shr ebx, 5
xor edx, esi
inc ebx
cmp esi, ebx
jb 0x10021f41
mov edi, eax
nop word [eax + eax]
movzx ecx, byte [edi + esi + 0xf]
mov eax, edx
shl eax, 5
sub esi, ebx
add ecx, eax
mov eax, edx
shr eax, 2
add ecx, eax
xor edx, ecx
cmp esi, ebx
jae 0x10021f20
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov dword [eax + 8], edx
mov byte [eax + 6], 1
mov cl, byte [edi + 7]
mov eax, 1
shl eax, cl
dec eax
and eax, edx
shl eax, 5
add eax, dword [edi + 0x10]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10029730
mov esp, ebp
pop ebp
ret
mov cl, byte [edi + 7]
mov esi, 1
mov eax, dword [ebx]
xor edx, edx
shl esi, cl
dec esi
or esi, 1
div esi
mov ecx, dword [ebp - 4]
shl edx, 5
xor ecx, ebp
add edx, dword [edi + 0x10]
pop edi
pop esi
mov eax, edx
pop ebx
call fcn.10029730
mov esp, ebp
pop ebp
ret