joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000f830
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
je 0x1000f912
movzx eax, byte [ecx]
imul edx, eax, 0x13cee4d1
movzx eax, byte [ecx + 1]
imul eax, eax, 0x13cee4d1
push ebx
push esi
rol edx, 5
xor edx, eax
movzx eax, byte [ecx + 2]
imul eax, eax, 0x13cee4d1
rol edx, 5
xor edx, eax
movzx eax, byte [ecx + 3]
imul eax, eax, 0x13cee4d1
rol edx, 5
xor edx, eax
movzx eax, byte [ecx + 4]
imul eax, eax, 0x13cee4d1
rol edx, 5
xor edx, eax
movzx eax, byte [ecx + 5]
imul eax, eax, 0x13cee4d1
rol edx, 5
xor edx, eax
movzx eax, byte [ecx + 6]
imul eax, eax, 0x13cee4d1
rol edx, 5
xor edx, eax
movzx eax, byte [ecx + 7]
mov ecx, dword [ebp + 0x10]
mov esi, ecx
imul eax, eax, 0x13cee4d1
rol edx, 5
xor edx, eax
mov eax, 0x13cee4d1
cmove edx, eax
shr esi, 2
mov eax, edx
mov ebx, edx
shr eax, 0x10
mov dword [ebp + 8], eax
mov eax, edx
shr eax, 0x18
shr ebx, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
test esi, esi
jle 0x1000f901
mov ecx, dword [ebp + 8]
xor byte [eax], dl
dec esi
xor byte [eax + 1], bl
xor byte [eax + 2], cl
mov ecx, dword [ebp - 4]
xor byte [eax + 3], cl
add eax, 4
mov ecx, dword [ebp + 8]
test esi, esi
jg 0x1000f8e5
mov ecx, dword [ebp + 0x10]
pop esi
pop ebx
and ecx, 3
jle 0x1000f912
xor byte [eax], dl
lea eax, [eax + 1]
dec ecx
test ecx, ecx
jg 0x1000f908
mov esp, ebp
pop ebp
ret
Function at 0x41c500
Capabilities:
Query environment variable

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
cmp dword [0x427850], 0
jne 0x41c581
cmp dword [0x427870], 0
jne 0x41c530
call sub.KERNEL32.DLL_GetEnvironmentStrings
mov dword [0x427870], eax
test eax, eax
jne 0x41c530
push str.GetEnvironmentStrings_failed
call fcn.0041bd1c
pop ecx
xor ebp, ebp
xor esi, esi
mov ebx, dword [0x427870]
jmp 0x41c544
lea eax, [edi + 1]
inc esi
add ebp, eax
add ebx, eax
push ebx
call fcn.004168a4
pop ecx
mov edi, eax
test eax, eax
jne 0x41c53c
lea edi, [ebp + 1]
push edi
call fcn.004161a8
pop ecx
mov ebx, eax
mov dword [0x427854], ebx
test ebx, ebx
jne 0x41c56e
xor eax, eax
jmp 0x41c644
push edi
mov edx, dword [0x427870]
push edx
push ebx
call fcn.00416754
add esp, 0xc
jmp 0x41c5a1
xor esi, esi
mov ebx, dword [0x427850]
jmp 0x41c59b
push eax
call fcn.004168a4
pop ecx
test eax, eax
jne 0x41c597
dec esi
inc esi
add ebx, 4
mov eax, dword [ebx]
test eax, eax
jne 0x41c58b
lea ebx, [esi + 4]
push 4
mov dword [0x427858], ebx
inc ebx
push ebx
call fcn.00415c80
add esp, 8
test eax, eax
mov dword [esp], eax
jne 0x41c5c4
xor eax, eax
jmp 0x41c644
cmp dword [0x427850], 0
jne 0x41c5f5
xor esi, esi
mov ebx, dword [0x427854]
mov eax, dword [esp]
mov ebp, eax
jmp 0x41c5e6
mov dword [ebp], ebx
add ebp, 4
inc esi
inc edi
add ebx, edi
push ebx
call fcn.004168a4
pop ecx
mov edi, eax
test eax, eax
jne 0x41c5dc
jmp 0x41c626
xor esi, esi
mov ebx, dword [0x427850]
mov eax, dword [esp]
mov edi, eax
jmp 0x41c620
push eax
call fcn.004168a4
pop ecx
test eax, eax
je 0x41c615
mov eax, dword [ebx]
mov dword [edi], eax
jmp 0x41c619
dec esi
add edi, 0xfffffffc
add edi, 4
inc esi
add ebx, 4
mov eax, dword [ebx]
test eax, eax
jne 0x41c604
mov eax, dword [0x427850]
test eax, eax
je 0x41c636
push eax
call fcn.004161b8
pop ecx
mov edx, dword [esp]
mov eax, 1
mov dword [0x427850], edx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x401000
Capabilities:
Check mutex on windows
Write file on windows

Disassembly:
mov ebp, esp
sub esp, 4
push 0xfffffffffffffff5
call sub.KERNEL32.dll_GetStdHandle
mov ebx, eax
push 0x40104a
push 0
push 0x100000
call sub.KERNEL32.dll_OpenMutexA
mov ecx, eax
test eax, eax
je 0x40102f
push 0xffffffffffffffff
push ecx
call sub.KERNEL32.dll_WaitForSingleObject
jmp 0x401042
push 0
lea eax, [ebp - 4]
push eax
push 0x2c
push 0x40105f
push ebx
call sub.KERNEL32.dll_WriteFile
push 0
call sub.KERNEL32.dll_ExitProcess
hlt
Function at 0x4034c6
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x408310]
jne 0x4034d0
repz ret
jmp fcn.004046b5

Function at 0xe79058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.00e791a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, 0x80
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0xe7907e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xe7906a
add dl, dl
jne 0xe79089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xe790dc
xor eax, eax
add dl, dl
jne 0xe79096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xe7917d
add dl, dl
jne 0xe790a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xe790b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xe790bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xe790c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0xe790d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0xe79075
mov eax, 1
add dl, dl
jne 0xe790ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xe790f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xe790e1
sub eax, ebx
mov ebx, 1
jne 0xe79128
mov ecx, 1
add dl, dl
jne 0xe7910e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xe79119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xe79105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xe79075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0xe7913f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xe7914a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xe79136
cmp eax, 0x7d00
jae 0xe7916d
cmp eax, 0x500
jb 0xe79168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xe79075
cmp eax, 0x7f
ja 0xe79170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xe79075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0xe7919e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0xe79075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x1000f010
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a636b
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
push 9
mov dword [ebp - 4], 0
call fcn.1000eeb0
push dword [ebp + 8]
lea ecx, [ebx + 0x18]
mov byte [ebp - 4], 1
mov dword [ebx], vtable.hikvision::video_control::GraphicsBreakline.0
call fcn.1000aa40
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov dword [ebx + 0x24], eax
movq xmm0, qword [ecx + 4]
movq qword [ebx + 0x28], xmm0
mov ax, word [ecx + 0xc]
lea ecx, [ebx + 0x34]
mov word [ebx + 0x30], ax
lea eax, [ebp + 0x10]
push eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov al, byte [ebp + 0x14]
mov byte [ebx + 0x38], al
mov al, byte [ebp + 0x18]
mov byte [ebx + 0x39], al
mov al, byte [ebp + 0x1c]
mov byte [ebx + 0x3a], al
mov al, byte [ebp + 0x20]
mov byte [ebx + 0x44], al
mov eax, dword [ebp + 0x24]
mov dword [ebx + 0x3c], 3
mov dword [ebx + 0x40], 0xffffffff
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
lea ecx, [ebx + 0x60]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_void_]
mov al, byte [ebp + 0x28]
lea ecx, [ebx + 0x68]
mov byte [ebx + 0x64], al
mov al, byte [ebp + 0x2c]
mov byte [ebx + 0x65], al
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_void_]
movsd xmm0, qword [0x100bc5a0]
lea ecx, [ebx + 0x60]
push str.below
mov byte [ebp - 4], 6
movsd qword [ebx + 0x58], xmm0
call dword [0x100bb614]
push str.number
lea ecx, [ebx + 0x68]
call dword [0x100bb614]
lea ecx, [ebp + 0x10]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28
Function at 0x1001f570
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a8075
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
push 5
mov dword [ebp - 4], 1
call fcn.1000eeb0
push dword [ebp + 8]
lea ecx, [esi + 0x18]
mov byte [ebp - 4], 2
mov dword [esi], vtable.hikvision::video_control::GraphicsPolygon.0
call fcn.1000aa40
mov ecx, dword [ebp + 0xc]
mov byte [ebp - 4], 3
mov eax, dword [ecx]
mov dword [esi + 0x24], eax
movq xmm0, qword [ecx + 4]
movq qword [esi + 0x28], xmm0
mov ax, word [ecx + 0xc]
lea ecx, [esi + 0x38]
mov word [esi + 0x30], ax
lea eax, [ebp + 0x10]
push eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QVariant::constructor_class_QVariant_const__]
lea eax, [ebp + 0x20]
push eax
lea ecx, [esi + 0x48]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov al, byte [ebp + 0x24]
lea ecx, [ebp + 0x10]
mov byte [esi + 0x4c], al
mov al, byte [ebp + 0x28]
mov byte [esi + 0x4d], al
mov al, byte [ebp + 0x2c]
mov byte [esi + 0x4e], al
mov al, byte [ebp + 0x30]
mov dword [esi + 0x50], 3
mov dword [esi + 0x54], 0xffffffff
mov byte [esi + 0x58], al
mov byte [esi + 0x59], 0
mov byte [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [ebp + 0x20]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x2c
Function at 0x10028f90
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a9490
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x14], ebx
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], 0
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul ecx, edx, 0x1000193
mov edx, dword [ebx + 0x14]
xor ecx, eax
movzx eax, byte [edi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edx
and ecx, eax
cmp dword [ebx + 0x18], ecx
ja 0x10029011
shr edx, 1
or eax, 0xffffffff
sub eax, edx
add ecx, eax
mov edx, dword [ebx + 8]
lea eax, [ecx*8]
mov esi, dword [ebx]
mov dword [ebp - 0x18], eax
add eax, edx
mov dword [ebp + 0xc], eax
mov eax, dword [eax]
cmp esi, eax
je 0x1002904d
mov esi, dword [ebp + 0xc]
mov esi, dword [esi + 4]
mov esi, dword [esi]
cmp esi, eax
je 0x1002904d
mov eax, dword [edi]
lea esp, [esp]
mov esi, dword [esi + 4]
cmp dword [esi + 8], eax
je 0x10029097
cmp esi, dword [edx + ecx*8]
jne 0x10029040
mov edi, dword [ebp + 0x10]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [edi]
cmp esi, eax
je 0x1002907e
mov ecx, dword [edi + 4]
mov dword [ecx], eax
mov ecx, dword [eax + 4]
mov dword [ecx], esi
mov ecx, dword [esi + 4]
mov dword [ecx], edi
mov ecx, dword [eax + 4]
mov edx, dword [esi + 4]
mov dword [esi + 4], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov dword [edi + 4], edx
mov ecx, dword [ebx + 8]
mov edx, dword [ebp - 0x18]
add ecx, edx
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x100290da
mov dword [ecx], edi
mov eax, dword [ebx + 8]
mov dword [eax + edx + 4], edi
jmp 0x100290fc
push dword [ebp + 0x10]
lea eax, [ebp + 0xc]
mov ecx, ebx
push eax
call fcn.100378e0
mov eax, dword [ebp + 8]
mov dword [eax], esi
mov byte [eax + 4], 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 0xc
cmp eax, esi
jne 0x100290e2
mov dword [ecx], edi
jmp 0x100290fc
mov eax, dword [ecx + 4]
mov eax, dword [eax]
mov dword [ecx + 4], eax
cmp eax, edi
je 0x100290fc
mov ecx, dword [ebx + 8]
mov eax, dword [ecx + edx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + edx + 4], eax
mov ecx, ebx
call fcn.10033610
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov byte [eax + 4], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1002f5b0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a9ef2
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 4
push str.Line
mov dword [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_private:_static_struct_QTypedArrayData_unsigned_short_int_____cdecl_QString::fromAscii_helper_char_const___int_]
add esp, 8
mov dword [ebp - 0x10], eax
push 0
mov ecx, esi
mov byte [ebp - 4], 1
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QObject::constructor_class_QObject__]
lea eax, [ebp - 0x10]
mov dword [esi], vtable.hikvision::video_control::ToolBase.0
push eax
lea ecx, [esi + 0xc]
mov dword [esi + 8], 3
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov eax, dword [ebp + 0x20]
lea ecx, [ebp - 0x10]
mov dword [esi + 0x10], eax
mov al, byte [ebp + 0x28]
mov byte [esi + 0x14], al
mov byte [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 0x2c]
movq xmm0, qword [ebp + 0x10]
mov dword [esi], vtable.hikvision::video_control::ToolLine.0
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 0x18]
movq qword [esi + 0x1c], xmm0
mov word [esi + 0x24], ax
mov eax, dword [ebp + 8]
mov dword [esi + 0x28], eax
lea eax, [ebp + 0x1c]
push eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp + 0x24]
mov dword [esi + 0x38], ecx
mov cl, byte [ebp + 0x34]
mov byte [esi + 0x3c], cl
mov cl, byte [ebp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [ebp + 0x2c]
mov byte [esi + 0x3d], cl
lea ecx, [ebp + 0x1c]
mov dword [esi + 0x34], eax
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x34
Function at 0x1002f750
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a9f52
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 5
push str.Point
mov dword [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_private:_static_struct_QTypedArrayData_unsigned_short_int_____cdecl_QString::fromAscii_helper_char_const___int_]
add esp, 8
mov dword [ebp - 0x10], eax
push 0
mov ecx, esi
mov byte [ebp - 4], 1
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QObject::constructor_class_QObject__]
lea eax, [ebp - 0x10]
mov dword [esi], vtable.hikvision::video_control::ToolBase.0
push eax
lea ecx, [esi + 0xc]
mov dword [esi + 8], 6
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov eax, dword [ebp + 0x20]
lea ecx, [ebp - 0x10]
mov dword [esi + 0x10], eax
mov al, byte [ebp + 0x28]
mov byte [esi + 0x14], al
mov byte [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 0x2c]
movq xmm0, qword [ebp + 0x10]
mov dword [esi], vtable.hikvision::video_control::ToolPoint.0
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 0x18]
movq qword [esi + 0x1c], xmm0
mov word [esi + 0x24], ax
mov eax, dword [ebp + 8]
mov dword [esi + 0x28], eax
lea eax, [ebp + 0x1c]
push eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov ecx, dword [ebp + 0x24]
mov dword [esi + 0x30], ecx
mov cl, byte [ebp + 0x2c]
mov byte [esi + 0x34], cl
mov cl, byte [ebp + 0x30]
mov byte [esi + 0x35], cl
lea ecx, [ebp + 0x1c]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x2c
Function at 0x1002f8e0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a9fc3
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
push 7
push str.Polygon
mov dword [ebp - 4], 1
call dword [sym.imp.Qt5Core.dll_private:_static_struct_QTypedArrayData_unsigned_short_int_____cdecl_QString::fromAscii_helper_char_const___int_]
add esp, 8
mov dword [ebp - 0x10], eax
push 0
mov ecx, esi
mov byte [ebp - 4], 2
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QObject::constructor_class_QObject__]
lea eax, [ebp - 0x10]
mov dword [esi], vtable.hikvision::video_control::ToolBase.0
push eax
lea ecx, [esi + 0xc]
mov dword [esi + 8], 5
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov eax, dword [ebp + 0x38]
lea ecx, [ebp - 0x10]
mov dword [esi + 0x10], eax
mov al, byte [ebp + 0x3c]
mov byte [esi + 0x14], al
mov byte [ebp - 4], 1
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [ebp + 8]
lea ecx, [esi + 0x30]
movq xmm0, qword [ebp + 0x14]
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 0x10]
mov dword [esi], vtable.hikvision::video_control::ToolPolygon.0
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x1c]
movq qword [esi + 0x24], xmm0
mov word [esi + 0x2c], ax
lea eax, [ebp + 0x20]
push eax
mov byte [ebp - 4], 3
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QVariant::constructor_class_QVariant_const__]
mov eax, dword [ebp + 0x30]
lea ecx, [esi + 0x44]
mov dword [esi + 0x40], eax
lea eax, [ebp + 0x34]
push eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov cl, byte [ebp + 0x44]
mov al, byte [ebp + 0x40]
mov byte [esi + 0x49], cl
lea ecx, [ebp + 0x20]
mov byte [esi + 0x48], al
mov byte [esi + 0x4a], 0
mov byte [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [ebp + 0x34]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x40
Function at 0x10032040
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100aa49d
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
lea ecx, [esi + 0x44]
mov dword [ebp - 4], 1
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QVariant::destructor_void_]
lea ecx, [esi + 0xc]
mov dword [ebp - 4], 2
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov ecx, esi
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.Qt5Core.dll_public_virtual:_void___thiscall_QObject::destructor_void_]
test byte [ebp + 8], 1
je 0x100320b4
push esi
call sub.MSVCR120.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x100384b0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, ecx
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor edx, eax
movzx eax, byte [edi + 2]
imul edx, edx, 0x1000193
xor edx, eax
movzx eax, byte [edi + 3]
imul ecx, edx, 0x1000193
mov edx, dword [esi + 0x14]
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edx
and ecx, eax
cmp dword [esi + 0x18], ecx
ja 0x10038502
shr edx, 1
or eax, 0xffffffff
sub eax, edx
add ecx, eax
mov edx, dword [esi + 8]
mov esi, dword [esi]
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov ebx, dword [edx + ecx*4]
lea edx, [edx + ecx*4]
cmp ebx, esi
jne 0x1003851a
mov ecx, esi
jmp 0x1003851f
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1003854c
mov ecx, dword [eax + 8]
cmp ecx, dword [edi]
je 0x1003852e
mov eax, dword [eax]
jmp 0x10038512
mov ecx, dword [edi]
cmp ecx, dword [eax + 8]
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], esi
jne 0x1003853e
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ecx]
pop edi
pop esi
mov dword [eax], ecx
pop ebx
pop ebp
ret 8
mov eax, dword [ebp + 8]
pop edi
mov dword [eax], esi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x100467b0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ac55c
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x100e4618]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
lea ecx, [edi + 0x10]
mov eax, dword [esi]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0xc], eax
lea eax, [esi + 0x10]
push eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
mov eax, dword [esi + 0x14]
lea ecx, [edi + 0x38]
mov dword [edi + 0x14], eax
movq xmm0, qword [esi + 0x18]
movq qword [edi + 0x18], xmm0
movzx eax, word [esi + 0x20]
mov word [edi + 0x20], ax
mov eax, dword [esi + 0x24]
mov dword [edi + 0x24], eax
movq xmm0, qword [esi + 0x28]
movq qword [edi + 0x28], xmm0
movzx eax, word [esi + 0x30]
mov word [edi + 0x30], ax
lea eax, [esi + 0x38]
push eax
mov dword [ebp - 4], 0
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QVariant::constructor_class_QVariant_const__]
movsd xmm0, qword [esi + 0x48]
movsd qword [edi + 0x48], xmm0
movsd xmm0, qword [esi + 0x50]
movsd qword [edi + 0x50], xmm0
movsd xmm0, qword [esi + 0x58]
movsd qword [edi + 0x58], xmm0
movsd xmm0, qword [esi + 0x60]
movsd qword [edi + 0x60], xmm0
mov eax, dword [esi + 0x68]
mov dword [edi + 0x68], eax
mov al, byte [esi + 0x6c]
mov byte [edi + 0x6c], al
mov eax, dword [esi + 0x70]
mov dword [edi + 0x70], eax
mov eax, dword [esi + 0x74]
mov dword [edi + 0x74], eax
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4