joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1005b2d0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x102c3220
push 0x1010ff97
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x102d4008]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], 0
xor esi, esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x2c], esi
xor ebx, ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x24], ebx
mov word [ebp - 0x20], 0x100
mov eax, dword [ecx]
mov edi, dword [eax + 0x28]
mov dword [ebp - 0x40], edi
test edi, edi
jne 0x1005b339
xor eax, eax
jmp 0x1005b4af
mov dword [ebp - 4], ebx
push str.InitializeSecurityDescriptor
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1005b47a
push 1
push dword [ebp - 0x34]
call eax
test eax, eax
je 0x1005b47a
push str.AllocateAndInitializeSid
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1005b47a
lea ecx, [ebp - 0x28]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x24]
push ecx
call eax
test eax, eax
je 0x1005b47a
push str.GetLengthSid
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1005b47a
push dword [ebp - 0x28]
call eax
add eax, 0x10
mov dword [ebp - 0x30], eax
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x1005b47a
push str.InitializeAcl
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1005b47a
push 2
push dword [ebp - 0x30]
push esi
call eax
test eax, eax
je 0x1005b47a
push str.AddAccessAllowedAce
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1005b47a
push dword [ebp - 0x28]
push 0x10000000
push 2
push esi
call eax
test eax, eax
je 0x1005b47a
push str.SetSecurityDescriptorDacl
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x1005b47a
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x1005b463
push 0
push ecx
push 1
push dword [ebp - 0x34]
call eax
test eax, eax
je 0x1005b450
mov ebx, 1
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x2c], 0
je 0x1005b460
jmp 0x1005b47a
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 0x30]
push 0
push esi
push 1
push dword [ebp - 0x34]
call eax
mov ecx, 1
test eax, eax
cmovne ebx, ecx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 4], 0xfffffffe
call fcn.1005b4d6
test ebx, ebx
jne 0x1005b4ad
test esi, esi
je 0x1005b49f
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x1005b4ad
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, esi
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.1010f56f
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1005b500
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10233358
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x102d4008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
call fcn.1004b000
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x1005b57d
lea ecx, [ebp - 0x28]
call fcn.1004d830
mov dword [ebp - 4], 0
mov edx, ecx
mov ecx, ebx
call fcn.1005bd50
test al, al
je 0x1005b56c
lea ecx, [ebp - 0x28]
call fcn.1004b000
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.1004b010
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1010f56f
mov esp, ebp
pop ebp
ret

Function at 0x1005b6b0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10233b38
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x102d4008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
push 0xb
mov ecx, esi
call fcn.1004b000
push eax
mov ecx, edi
call fcn.1004b000
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x1005b702
mov al, 1
jmp 0x1005b7ee
lea ecx, [ebp - 0x58]
xor bl, bl
call fcn.1004d830
mov dword [ebp - 4], 0
mov edx, ecx
mov ecx, edi
call fcn.1005bd50
test al, al
movzx ebx, bl
mov ecx, 1
cmovne ebx, ecx
lea ecx, [ebp - 0x40]
call fcn.1004d830
mov byte [ebp - 4], 1
mov edx, ecx
mov ecx, esi
call fcn.1005bd50
test al, al
jne 0x1005b746
test bl, bl
je 0x1005b764
push 0xb
lea ecx, [ebp - 0x40]
call fcn.1004b000
push eax
lea ecx, [ebp - 0x58]
call fcn.1004b000
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x1005b7b8
mov ecx, esi
call fcn.1005b500
cmp eax, 0xffffffff
je 0x1005b7cf
push esi
lea ecx, [ebp - 0x28]
call fcn.1004d850
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.1005bb10
test al, al
je 0x1005b7c3
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.1005b5a0
test al, al
je 0x1005b7c3
mov edx, esi
mov ecx, edi
call fcn.1005b5a0
lea ecx, [ebp - 0x28]
test al, al
je 0x1005b7bc
call fcn.1005b910
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.1004b010
mov bl, 1
jmp 0x1005b7d1
mov edx, esi
call fcn.1005b5a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.1004b010
xor bl, bl
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.1004b010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.1004b010
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1010f56f
mov esp, ebp
pop ebp
ret
Function at 0x1005b910
Capabilities:
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10233b90
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x102d4008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.1004b000
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x1005b954
mov al, 1
jmp 0x1005baea
mov ecx, esi
call fcn.1004b000
push eax
lea ecx, [ebp - 0x40]
call fcn.1004b020
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.1005b500
mov edi, eax
mov dword [ebp - 0x44], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.1004b010
cmp edi, 0xffffffff
jne 0x1005b993
xor al, al
jmp 0x1005baea
mov ecx, esi
call fcn.1004b000
push eax
lea ecx, [ebp - 0x5c]
call fcn.1004b020
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x5c]
push 0
call fcn.1004b000
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push eax
call edi
test eax, eax
je 0x1005b9c5
xor bl, bl
jmp 0x1005ba0e
lea ecx, [ebp - 0x28]
call fcn.1004d830
mov byte [ebp - 4], 2
mov edx, ecx
lea ecx, [ebp - 0x5c]
call fcn.1005bd50
test al, al
je 0x1005ba00
push 0
lea ecx, [ebp - 0x28]
call fcn.1004b000
push eax
call edi
test eax, eax
je 0x1005ba00
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.1004b010
xor bl, bl
jmp 0x1005ba0e
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.1004b010
mov bl, 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.1004b010
test bl, bl
jne 0x1005b98c
mov ecx, esi
call fcn.1004b000
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call ebx
test eax, eax
jne 0x1005b94d
lea ecx, [ebp - 0x40]
call fcn.1004d830
mov dword [ebp - 4], 3
mov edx, ecx
mov ecx, esi
call fcn.1005bd50
test al, al
je 0x1005ba6c
lea ecx, [ebp - 0x40]
call fcn.1004b000
push eax
call ebx
test eax, eax
je 0x1005ba6c
mov bl, 1
jmp 0x1005bad9
mov ecx, esi
call fcn.1004b000
push eax
lea ecx, [ebp - 0x5c]
call fcn.1004b020
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x5c]
mov ebx, dword [ebp - 0x44]
and ebx, 0xffffb1af
push ebx
call fcn.1004b000
push eax
call edi
test eax, eax
jne 0x1005bacb
lea ecx, [ebp - 0x28]
call fcn.1004d830
mov byte [ebp - 4], 5
mov edx, ecx
lea ecx, [ebp - 0x5c]
call fcn.1005bd50
test al, al
je 0x1005babf
push ebx
lea ecx, [ebp - 0x28]
call fcn.1004b000
push eax
call edi
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x28]
call fcn.1004b010
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x5c]
call fcn.1004b010
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.1004b010
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1010f56f
mov esp, ebp
pop ebp
ret
Function at 0x1005dd60
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10234120
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x102d4008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi]
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x30], ecx
test esi, esi
je 0x1005dee8
cmp byte [esi + 0x54], 0
je 0x1005dee8
add esi, 0x1c
xor bl, bl
mov dword [ebp - 0x40], esi
mov byte [ebp - 0x3c], bl
test esi, esi
je 0x1005dde0
mov eax, dword [esi]
test eax, eax
je 0x1005dddd
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1005ddd4
cmp eax, 0x80
je 0x1005ddd4
xor bl, bl
jmp 0x1005ddda
mov byte [esi + 4], 1
mov bl, 1
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 0x3c], bl
mov edx, ecx
mov dword [ebp - 4], 0
push 0
lea ecx, [ebp - 0x2c]
call fcn.10059a30
add esp, 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x38], eax
call fcn.1004b070
mov dword [ebp - 0x30], eax
cmp dword [eax + 0x14], 0x10
jb 0x1005de16
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov ecx, dword [edi]
cmp dword [ecx + 0x14], 8
jb 0x1005de20
mov ecx, dword [ecx]
push 0
push 0x80
push 4
push 0
push 3
push 0x40000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x1005de6e
push 2
push 0
push 0
push edi
mov dword [ebp - 0x34], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x30]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x18]
cmp edx, 0x10
jb 0x1005dea8
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1005de9e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1005de9e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.1010f5b0
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 6
test esi, esi
je 0x1005deda
test bl, bl
je 0x1005deda
mov eax, dword [esi]
test eax, eax
je 0x1005ded6
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov byte [esi + 4], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1010f56f
mov esp, ebp
pop ebp
ret 4
Function at 0x10060eb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, edx
push edi
xor edi, edi
mov dword [ebp - 0xc], ebx
xor edx, edx
mov dword [ebp - 0x10], ecx
test esi, esi
jle 0x10060fa6
cmp esi, 8
jb 0x10060f87
mov eax, esi
and eax, 0x80000007
jns 0x10060ee7
dec eax
or eax, 0xfffffff8
inc eax
mov edi, esi
xorps xmm4, xmm4
mov esi, ebx
sub edi, eax
sub esi, ecx
mov eax, ecx
mov dword [ebp - 4], esi
xorps xmm3, xmm3
lea esi, [ebx + 4]
mov ebx, dword [ebp - 4]
mov dword [ebp - 8], esi
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 8]
nop dword [eax]
movd xmm2, dword [ebx + eax]
lea eax, [eax + 8]
movd xmm1, dword [eax - 8]
xorps xmm0, xmm0
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm2, xmm0
punpcklwd xmm1, xmm0
pxor xmm2, xmm1
movd xmm1, dword [eax - 4]
por xmm4, xmm2
punpcklbw xmm1, xmm0
movd xmm2, dword [ecx + edx]
add edx, 8
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklwd xmm1, xmm0
pxor xmm2, xmm1
por xmm3, xmm2
cmp edx, edi
jl 0x10060f10
mov ebx, dword [ebp - 0xc]
por xmm3, xmm4
mov ecx, dword [ebp - 0x10]
movaps xmm0, xmm3
psrldq xmm0, 8
por xmm3, xmm0
movups xmm0, xmm3
psrldq xmm0, 4
por xmm3, xmm0
movd edi, xmm3
cmp edx, esi
jge 0x10060fa6
sub ebx, ecx
lea eax, [edx + ecx]
sub esi, edx
movzx edx, byte [eax + ebx]
lea eax, [eax + 1]
movzx ecx, byte [eax - 1]
xor edx, ecx
or edi, edx
sub esi, 1
jne 0x10060f92
xor eax, eax
test edi, edi
pop edi
pop esi
setne al
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10078770
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x14], esi
mov al, byte [esi + 0x44]
test al, al
js 0x1007886a
xor ebx, ebx
test al, al
jle 0x10078807
lea ecx, [esi + 0x78]
mov dword [esp + 0x10], ecx
nop word [eax + eax]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x100787ee
mov eax, dword [ecx + 0x14]
dec dword [eax + 0x78]
mov edx, dword [eax + 0x88]
mov dword [ecx + 0x10], edx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], ecx
push dword [ecx + 4]
mov eax, dword [eax + 0x98]
mov ecx, dword [ecx + 0x18]
mov edi, dword [esi]
dec ecx
cdq
push edx
push eax
push 0
push ecx
call fcn.10181160
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [esp + 0x24]
add esp, 0x10
jmp 0x100787f3
call fcn.1006ea70
mov ecx, dword [esp + 0x10]
inc ebx
movsx eax, byte [esi + 0x44]
add ecx, 4
mov dword [esp + 0x10], ecx
cmp ebx, eax
jl 0x100787a0
mov eax, dword [esi + 0x74]
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x1007885f
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.10181160
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [esp + 0x24]
add esp, 0x10
mov byte [esi + 0x44], 0xff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.1006ea70
mov byte [esi + 0x44], 0xff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1007ce10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x102d4008]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
push esi
mov esi, ecx
mov eax, edx
mov ecx, dword [ebp + 8]
push edi
mov dword [esp + 0x18], ecx
xor edi, edi
cmp byte [esi + 0x11], 0
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], ecx
je 0x1007cefa
mov edi, dword [esp + 0x10]
lea esi, [eax + 1]
lea ebx, [esi - 2]
cmp esi, 2
jae 0x1007ce60
xor edx, edx
jmp 0x1007ce8f
mov eax, 0xcccccccd
mul dword [edi + 0x28]
mov eax, ebx
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
mov eax, dword [0x102d69fc]
mov ecx, ebx
sub ecx, edx
xor edx, edx
div dword [edi + 0x24]
xor edx, edx
dec eax
cmp ecx, eax
sete dl
add edx, 2
add edx, ecx
cmp edx, esi
je 0x1007cea2
mov eax, dword [0x102d69fc]
xor edx, edx
div dword [edi + 0x24]
inc eax
cmp esi, eax
jne 0x1007cea6
inc esi
inc ebx
jmp 0x1007ce57
cmp esi, dword [edi + 0x30]
mov edi, 0
ja 0x1007cef0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x13]
mov edx, esi
push eax
call fcn.10078d20
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x1007cf62
cmp byte [esp + 0xf], 4
mov edx, dword [esp + 0x14]
jne 0x1007ceea
cmp dword [esp + 0x20], edx
jne 0x1007ceea
mov eax, esi
lea ebx, [edi + 0x65]
jmp 0x1007cf64
mov esi, dword [esp + 0x10]
jmp 0x1007cefc
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x1007cefc
mov edx, eax
mov ecx, dword [esi]
xor eax, eax
cmp dword [esp + 0x18], eax
mov ebx, 2
cmove eax, ebx
push eax
lea eax, [esp + 0x24]
push eax
mov eax, dword [ecx + 0xcc]
push edx
push ecx
call eax
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x1007cf62
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edi, dword [edx + 8]
cmp eax, dword [edi + 4]
je 0x1007cf57
mov ecx, dword [edx + 4]
cmp eax, 1
mov dword [edi + 4], eax
setne al
mov dword [edi + 0x38], ecx
dec al
mov dword [edi + 0x48], edx
and al, 0x64
mov dword [edi + 0x34], esi
mov byte [edi + 9], al
mov eax, dword [ecx]
bswap eax
jmp 0x1007cf64
mov ecx, dword [edi + 0x38]
xor ebx, ebx
mov eax, dword [ecx]
bswap eax
jmp 0x1007cf64
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1007cf76
mov dword [eax], edi
jmp 0x1007cfc9
test edi, edi
je 0x1007cfc9
mov edx, dword [edi + 0x48]
test byte [edx + 0x1c], 0x20
je 0x1007cfc2
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.10181160
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x1007cfc9
mov ecx, edx
call fcn.1006ea70
mov ecx, dword [esp + 0x24]
xor eax, eax
cmp ebx, 0x65
pop edi
cmove ebx, eax
pop esi
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.1010f56f
mov esp, ebp
pop ebp
ret
Function at 0x10081510
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x18], edx
push edi
xor edi, edi
mov dword [esp + 0x18], edi
mov ecx, dword [esi + 0x48]
mov ebx, dword [esi + 0x34]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x10081553
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x10081553
cmp dword [edx + 0x60], edi
je 0x10081586
call fcn.10072f40
jmp 0x10081578
mov ebx, dword [edx + 0x28]
test ebx, ebx
jne 0x10081642
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x10081573
call fcn.10074850
jmp 0x10081578
call fcn.10074620
mov ebx, eax
test ebx, ebx
jne 0x10081642
mov ebx, dword [esp + 0x10]
push 0
push dword [esi + 4]
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
lea edx, [esp + 0x24]
call fcn.1007e060
mov edi, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x10], eax
mov edx, edi
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.1007fff0
add esp, 4
cmp byte [ebx + 0x11], 0
je 0x100815d5
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push dword [esi + 4]
mov ecx, ebx
push 5
call fcn.10078be0
add esp, 0xc
mov ebx, dword [esp + 0x10]
test ebx, ebx
jne 0x10081642
movzx eax, byte [esi + 0xc]
add eax, eax
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [edi + 0x1c]
push eax
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [esi + 0xc]
add esp, 0xc
shl eax, 2
push eax
lea eax, [esi + 0x24]
push eax
lea eax, [edi + 0x24]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov al, byte [esi + 0xc]
add esp, 0xc
mov byte [edi + 0xc], al
mov ecx, esi
mov eax, dword [edi + 0x38]
movzx edx, byte [eax]
and edx, 0xfffffff7
call fcn.10079f20
mov eax, dword [esi + 0x38]
movzx ecx, byte [esi + 9]
mov edx, dword [esp + 0x14]
bswap edx
mov dword [ecx + eax + 8], edx
mov eax, dword [esp + 0x1c]
mov dword [eax], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
test edi, edi
je 0x100816a4
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x1008169f
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x78]
mov eax, dword [edx + 0x88]
mov dword [ecx + 0x10], eax
mov esi, dword [edx + 0x3c]
mov eax, dword [edx + 0x98]
mov dword [edx + 0x88], ecx
push dword [ecx + 4]
mov ecx, dword [ecx + 0x18]
mov edi, dword [esi]
dec ecx
cdq
push edx
push eax
push 0
push ecx
call fcn.10181160
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1006ea70
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100969c0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 4], edx
push 0
push 0x14
mov dword [ebx], 0
call fcn.10065db0
mov esi, eax
add esp, 8
test esi, esi
jne 0x100969f0
lea eax, [esi + 7]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [0x102d5524], 0
mov edi, dword [ebp + 8]
je 0x10096a3b
mov eax, dword [0x102d5614]
test eax, eax
je 0x10096a13
push 0xc8
call eax
add esp, 4
test eax, eax
jne 0x10096a3b
mov eax, dword [ebp - 4]
mov dword [esi + 8], eax
lea eax, [esi + 4]
push eax
push 0
push esi
push 0x10068bb0
push 0
push 0
mov dword [esi + 0xc], edi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
add esp, 0x18
mov dword [esi], eax
test eax, eax
jne 0x10096a48
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
cmp dword [esi + 8], 0
jne 0x10096a61
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push edi
mov dword [esi + 4], eax
call dword [ebp - 4]
add esp, 4
mov dword [esi + 0x10], eax
pop edi
mov dword [ebx], esi
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100a3ab0
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push dword [ebp + 8]
mov edi, edx
mov ebx, ecx
push edi
push str.sqlite_master
push edi
push str.SELECT_1_FROM___w_._s_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name___d_NULL
push ebx
call fcn.100a8bc0
add esp, 0x18
cmp dword [ebp + 8], 0
jne 0x100a3aeb
push edi
push str.sqlite_master
push str.SELECT_1_FROM_temp._s_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name__1_NULL
push ebx
call fcn.100a8bc0
add esp, 0x10
pop edi
pop ebx
pop ebp
ret

Function at 0x100a8ce0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], ecx
mov eax, dword [ebp + 8]
xor esi, esi
cmp dword [ecx + 0x14], esi
jle 0x100a8d7b
jmp 0x100a8d04
mov eax, dword [ebp + 8]
mov edi, esi
xor edi, 1
cmp esi, 2
cmovge edi, esi
test eax, eax
je 0x100a8d35
mov ecx, dword [ecx + 0x10]
mov edx, edi
add edx, edx
mov ebx, dword [ecx + edx*8]
sub ebx, dword [ebp + 8]
movzx edx, byte [eax]
movzx ecx, byte [ebx + eax]
cmp edx, ecx
jne 0x100a8d5a
test edx, edx
jne 0x100a8d6c
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x10]
add edi, edi
push 0
mov edx, ebx
mov ecx, dword [eax + edi*8 + 0xc]
add ecx, 8
call fcn.1006a4d0
add esp, 4
mov eax, dword [eax + 8]
test eax, eax
jne 0x100a8ddf
jmp 0x100a8d72
movzx ecx, byte [ecx + 0x102aac18]
movzx edx, byte [edx + 0x102aac18]
sub edx, ecx
jne 0x100a8d6f
inc eax
jmp 0x100a8d20
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
inc esi
cmp esi, dword [ecx + 0x14]
jl 0x100a8d01
mov edx, str.sqlite_master
sub edx, ebx
movzx ecx, byte [ebx]
movzx eax, byte [edx + ebx]
cmp ecx, eax
jne 0x100a8da7
test ecx, ecx
jne 0x100a8db9
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0x10]
test ebx, ebx
jne 0x100a8dbc
neg eax
sbb eax, eax
jmp 0x100a8dcc
movzx eax, byte [eax + 0x102aac18]
movzx ecx, byte [ecx + 0x102aac18]
sub ecx, eax
jne 0x100a8ddd
inc ebx
jmp 0x100a8d82
test eax, eax
je 0x100a8ddd
mov edx, eax
mov ecx, ebx
call fcn.10069030
mov ecx, dword [ebp - 4]
test eax, eax
jne 0x100a8ddd
mov ebx, str.sqlite_temp_master
mov dword [ebp - 8], ebx
jmp 0x100a8cf1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret