joyce8/EMBER2024-capa huggingface dataset:
Function at 0x432238
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov edi, edx
cmp dword [esi], ebx
jne 0x4322e5
lea ecx, [esi + 0x30]
call fcn.004372ef
test eax, eax
je 0x432261
push 0xc
pop eax
jmp 0x4322e7
lea ecx, [esi + 0x14]
mov dword [esi + 0x28], 1
call fcn.00437288
test eax, eax
jne 0x432259
lea ecx, [esi + 0x18]
call fcn.00437288
test eax, eax
jne 0x432259
lea ecx, [esi + 0x1c]
call fcn.00437288
test eax, eax
jne 0x432259
push dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
lea ecx, [esi + 0x20]
call fcn.004372aa
pop ecx
test eax, eax
jne 0x432259
push dword [ebp + 0xc]
lea ecx, [esi + 0x24]
xor edx, edx
call fcn.004372aa
pop ecx
test eax, eax
jne 0x432259
lea eax, [ebp - 4]
mov dword [esi + 4], 1
push eax
push ebx
push dword [ebp + 8]
push edi
push ebx
push ebx
call fcn.005f3950
add esp, 0x18
mov dword [esi + 0x10], eax
test eax, eax
jne 0x4322df
call fcn.00437218
test eax, eax
jne 0x432259
mov dword [esi], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x434964
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, edx
xor edi, edi
mov ebx, ecx
or esi, 0x100
mov ecx, esi
mov eax, esi
shr ecx, 7
add esi, esi
shr eax, 8
and ecx, 1
neg ecx
sar ecx, 4
and ecx, 0x7f
movzx edx, word [ebx + eax*2]
mov eax, dword [ebp + 8]
shr edx, 4
xor edx, ecx
add edi, dword [eax + edx*4]
cmp esi, 0x10000
jb 0x434976
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x4349ab
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov esi, 0x100
mov dword [ebp - 4], ecx
xor edi, edi
or edx, esi
add ebx, ebx
mov ecx, esi
and ecx, ebx
mov eax, edx
add ecx, esi
shr eax, 8
add eax, ecx
mov ecx, dword [ebp - 4]
movzx ecx, word [ecx + eax*2]
mov eax, edx
shr eax, 7
add edx, edx
and eax, 1
shr ecx, 4
neg eax
sar eax, 4
and eax, 0x7f
xor ecx, eax
mov eax, dword [ebp + 0xc]
add edi, dword [eax + ecx*4]
mov ecx, edx
xor ecx, ebx
not ecx
and esi, ecx
cmp edx, 0x10000
jb 0x4349c1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x434a99
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, eax
bts esi, edx
mov ebx, ecx
cmp esi, 1
je 0x434ad4
push edi
mov edi, dword [ebp + 0xc]
mov edx, esi
and esi, 1
shr edx, 1
neg esi
sar esi, 4
and esi, 0x7f
movzx ecx, word [ebx + edx*2]
shr ecx, 4
xor ecx, esi
mov esi, edx
add eax, dword [edi + ecx*4]
cmp esi, 1
jne 0x434ab1
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x434ad8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 4], ecx
mov ebx, edx
xor esi, esi
inc edi
test ebx, ebx
je 0x434b1f
mov eax, dword [ebp + 8]
mov edx, eax
movzx ecx, word [ecx + edi*2]
and edx, 1
shr eax, 1
add edi, edi
mov dword [ebp + 8], eax
or edi, edx
mov eax, edx
shr ecx, 4
neg eax
sar eax, 4
and eax, 0x7f
xor ecx, eax
mov eax, dword [ebp + 0xc]
add esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
sub ebx, 1
jne 0x434aed
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x43656c
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
xor eax, eax
mov esi, ecx
push edi
push 8
mov ebx, eax
lea ecx, [esi + 0x19c]
mov dword [esi + 0x3bcd4], eax
mov dword [esi + 0x3bcd0], eax
mov dword [ecx + 0x30], eax
mov dword [ecx + 0x4c], eax
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x58], eax
lea eax, [ecx + 0x70]
pop edi
mov dword [ecx + 0x2c], 0x20
mov dword [ecx + 0x54], 1
mov dword [ecx + 0x48], 4
mov dword [ebp - 4], eax
mov dword [ebp - 8], edi
mov edx, ebx
mov ecx, edi
mov eax, edx
shr edx, 1
and eax, 1
dec eax
not eax
and eax, 0xedb88320
xor edx, eax
sub ecx, 1
jne 0x4365be
mov eax, dword [ebp - 4]
inc ebx
mov dword [eax], edx
add eax, 4
mov dword [ebp - 4], eax
cmp ebx, 0x100
jb 0x4365ba
xor ebx, ebx
lea ecx, [esi + 0x19c]
mov dword [esi + 0x118], ebx
mov dword [esi + 0x148], ebx
mov dword [esi + 0x170], ebx
mov dword [esi + 0x174], ebx
mov dword [esi + 0x158], ebx
mov dword [esi + 0x15c], ebx
mov dword [esi + 0x160], ebx
mov dword [esi + 0x164], ebx
mov dword [esi + 0x168], ebx
mov dword [esi + 0x16c], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x198], ecx
lea ecx, [ebp - 0x38]
call fcn.004345ad
mov edx, ecx
mov ecx, esi
call fcn.004346aa
push 2
pop edi
mov word [esi + 0x306a0], 0x100
mov ebx, edi
mov ecx, ebx
xor edx, edx
sar ecx, 1
inc edx
dec ecx
shl edx, cl
mov dword [ebp - 4], edx
test edx, edx
je 0x436693
push edx
lea eax, [esi + 0x306a0]
add eax, edi
push ebx
push eax
call fcn.005e1720
add esp, 0xc
add edi, dword [ebp - 4]
inc ebx
cmp ebx, 0x16
jl 0x43666c
mov edi, dword [ebp - 8]
push 4
mov ecx, edi
xor edx, edx
pop ebx
imul ecx, ecx
mov eax, 0x10000
add edx, edx
jmp 0x4366b2
shr ecx, 1
inc edx
cmp ecx, eax
jae 0x4366af
sub ebx, 1
jne 0x4366a3
mov eax, edi
mov ecx, 0xa1
shr eax, 4
sub ecx, edx
add edi, 0x10
mov dword [esi + eax*4 + 0x30ea0], ecx
cmp edi, 0x800
jb 0x43669c
and dword [esi + 0x325ac], ebx
and dword [esi + 0x3bd14], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x439fcc
Capabilities:
Get number of processors

Disassembly:
mov eax, 0x60f48a
call fcn.0060bcd8
push ecx
push ecx
and dword [ebp - 0x10], 0
mov eax, 0x20e2
push ebx
mov ebx, ecx
push esi
push edi
push 8
mov word [ebx + 0x30], ax
lea ecx, [ebx + 4]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
call fcn.0041587b
push dword [ebp + 0xc]
mov ecx, ebx
call fcn.00415be7
push dword [ebp + 0x10]
mov ecx, ebx
call fcn.00415be7
push dword [ebp + 0x14]
mov ecx, ebx
call fcn.00415a0d
call fcn.00404f47
push eax
lea ecx, [ebp + 0xc]
call fcn.004065d8
push dword [ebp + 0x18]
and dword [ebp - 4], 0
lea eax, [ebp + 0xc]
push 0x6950ec
push eax
call fcn.00406cc8
mov esi, dword [ebp + 0xc]
add esp, 0xc
mov ecx, ebx
push esi
call fcn.00415be7
push 1
lea eax, [ebp + 8]
mov byte [ebp + 8], 0x64
push eax
lea ecx, [ebx + 4]
call fcn.0041587b
push dword [ebp + 0x1c]
mov ecx, ebx
call fcn.00415a0d
push dword [ebp + 0x20]
mov ecx, ebx
call fcn.00415a22
mov ecx, ebx
call fcn.00415bbd
lea ecx, [esi - 0x10]
call fcn.00404ea9
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x1c

Function at 0x43a8a7
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
cmp dword [ebp + 8], 0
push edi
mov edi, ecx
je 0x43a99a
cmp dword [ebp + 0xc], 0
je 0x43a99a
push esi
lea eax, [ebp + 0xc]
xor esi, esi
push eax
push dword [ebp + 0x10]
mov dword [ebp + 0xc], esi
push esi
push dword [edi + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x43a986
push 0x20a
lea eax, [ebp - 0x210]
mov dword [ebp + 8], esi
push esi
push eax
call fcn.005e1720
add esp, 0xc
mov dword [ebp - 4], 0x104
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp + 8]
push eax
push esi
push dword [edi + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x43a986
mov eax, dword [edi + 0x18]
cmp eax, dword [ebp + 8]
jne 0x43a986
cmp eax, 1
je 0x43a93a
cmp eax, 2
jne 0x43a960
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp + 0x10]
call fcn.00406173
mov eax, dword [ebp + 0x10]
lea ecx, [eax - 0x10]
cmp dword [eax - 0xc], esi
jne 0x43a95b
call fcn.00404ea9
jmp 0x43a986
call fcn.00404ea9
cmp dword [edi + 0x18], 4
jne 0x43a983
push 4
lea eax, [ebp - 0x210]
mov dword [ebp + 0x10], esi
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.005e0220
add esp, 0xc
cmp dword [ebp + 0x10], esi
jbe 0x43a986
xor esi, esi
inc esi
cmp dword [ebp + 0xc], 0
je 0x43a995
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
pop esi
jmp 0x43a99c
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x43aa56
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
mov eax, 0x60f4f2
call fcn.0060bcd8
sub esp, 0x218
cmp dword [ebp + 8], 0
push esi
mov esi, ecx
jne 0x43aa76
xor eax, eax
jmp 0x43ab76
call fcn.0043aa2d
test eax, eax
je 0x43aa6f
push ebx
lea eax, [ebp - 0x10]
xor ebx, ebx
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x10], ebx
push ebx
push dword [esi + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x43ab64
push edi
mov edi, dword [esi + 0x10]
cmp dword [edi - 0xc], ebx
jne 0x43aab0
inc ebx
jmp 0x43ab63
push 0x208
lea eax, [ebp - 0x224]
push ebx
push eax
call fcn.005e1720
add esp, 0xc
mov dword [ebp - 0x14], 0x208
lea eax, [ebp - 0x14]
mov dword [ebp - 0x18], ebx
push eax
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x18]
push eax
push ebx
push edi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x43ab63
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp + 8]
call fcn.00406173
lea ecx, [ebp + 8]
mov dword [ebp - 4], ebx
call fcn.0046e715
mov edx, dword [ebp + 8]
lea ecx, [ebp - 0x1c]
call fcn.0046f562
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 1
call fcn.00406123
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00404ea9
lea eax, [esi + 0x14]
push eax
lea edx, [ebp + 8]
lea ecx, [ebp + 0xc]
call fcn.0040b545
pop ecx
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
test eax, eax
je 0x43ab53
xor ebx, ebx
inc ebx
call fcn.00404ea9
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00404ea9
pop edi
cmp dword [ebp - 0x10], 0
je 0x43ab73
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8

Function at 0x43ad26
Capabilities:
Query environment variable

Disassembly:
push 0x10
push 0x6af780
call fcn.0060bd00
xor esi, esi
mov dword [ebp - 0x1c], esi
cmp dword [ebp + 8], esi
je 0x43adce
cmp dword [ebp + 0xc], esi
je 0x43adce
push esi
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov edi, eax
cmp edi, 1
jb 0x43adce
cmp edi, 0x103
ja 0x43adce
mov dword [ebp - 4], esi
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004998d3
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x43adca
lea eax, [edi + edi]
push eax
push esi
push ecx
call fcn.005e1720
add esp, 0xc
push edi
mov edi, dword [ebp - 0x1c]
push edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x43adca
mov ecx, 0x103
cmp eax, ecx
ja 0x43adca
push eax
push edi
push ecx
push dword [ebp + 0xc]
call fcn.005f3bcd
add esp, 0x10
inc esi
jmp 0x43adc7
mov dword [ebp - 0x20], esi
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], 0
je 0x43addd
push dword [ebp - 0x1c]
call fcn.004998ce
pop ecx
mov eax, esi
call fcn.0060bd3c
ret 0xc
Function at 0x43adf5
Capabilities:
Check if file exists

Disassembly:
mov eax, 0x60f59a
call fcn.0060bcd8
sub esp, 0x18
push ebx
push esi
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0x18], ebx
push dword [esi + 8]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43af3a
push edi
lea edi, [esi + 0xc]
mov eax, dword [edi]
cmp dword [eax - 0xc], ebx
jne 0x43ae1f
inc ebx
jmp 0x43af39
mov eax, dword [esi + 8]
sub eax, 0x10
push eax
call fcn.004067cf
pop ecx
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
push 1
lea eax, [ebp - 0x24]
mov dword [ebp - 4], ebx
push eax
lea ecx, [ebp - 0x14]
call fcn.00405d7f
mov byte [ebp - 4], 1
mov ecx, eax
push 0x693b58
mov dword [ebp - 0x18], 1
call fcn.004068fd
test eax, eax
je 0x43ae8d
push 1
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x14]
call fcn.00405d7f
mov dword [ebp - 4], 2
mov ecx, eax
push 0x6953b0
mov dword [ebp - 0x18], 3
call fcn.004068fd
mov byte [ebp - 0xd], bl
test eax, eax
jne 0x43ae91
mov byte [ebp - 0xd], 1
test byte [ebp - 0x18], 2
je 0x43aea2
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00404ea9
mov dword [ebp - 4], ebx
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.00404ea9
cmp byte [ebp - 0xd], 0
je 0x43aee5
mov eax, dword [esi - 0xc]
lea ecx, [ebp - 0x14]
dec eax
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00405d36
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 3
call fcn.00406123
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.00404ea9
mov esi, dword [ebp - 0x14]
push 0x693b58
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x24]
call fcn.0040aec1
push edi
mov edx, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1c]
call fcn.0040b545
pop ecx
pop ecx
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.00404ea9
push dword [ebp - 0x1c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, dword [ebp - 0x1c]
test eax, eax
jne 0x43af26
lea ecx, [ecx - 0x10]
jmp 0x43af2c
xor ebx, ebx
inc ebx
add ecx, 0xfffffff0
call fcn.00404ea9
lea ecx, [esi - 0x10]
call fcn.00404ea9
pop edi
mov ecx, dword [ebp - 0xc]
mov eax, ebx
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x43d8da
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov edx, dword [ebp + 0x10]
xor eax, eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
mov dword [ebp - 0xc], eax
push 1
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
sub edx, dword [edi + 0x14]
sub esi, dword [edi + 0x10]
mov eax, dword [edi]
push edx
push esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x10], edx
call dword [eax + 0x8c]
mov ebx, dword [edi + 0x174]
mov dword [ebp - 0x10], eax
test ebx, ebx
je 0x43d9f6
mov ecx, ebx
call fcn.0046a6ea
mov esi, eax
test esi, esi
je 0x43d983
mov eax, dword [esi + 0xc]
push 2
push 0
push esi
mov dword [ebp - 0xc], eax
call fcn.0043d526
movzx ecx, word [ebp + 0x10]
movzx eax, word [ebp + 0xc]
shl ecx, 0x10
or ecx, eax
push ecx
push dword [ebp + 8]
mov ecx, esi
push 0x202
call fcn.0046a733
mov eax, dword [ebp - 0x10]
cmp dword [edi + 0x174], eax
jne 0x43d9a5
mov eax, dword [esi + 0x3c]
xor ecx, ecx
test eax, eax
je 0x43d998
cmp word [eax], cx
je 0x43d998
push 1
push ecx
push ecx
push eax
push str.open
push ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [ebp - 4]
mov ecx, eax
xor edx, edx
mov dword [edi + 0x174], edx
test eax, eax
je 0x43d9d5
push 0x67
jmp 0x43d9ee
cmp dword [esi + 0xc], ecx
je 0x43d983
mov ecx, dword [ebp - 8]
xor eax, eax
inc eax
jmp 0x43d988
push 1
xor eax, eax
push eax
push esi
call fcn.0043d526
movzx ecx, word [ebp + 0x10]
movzx eax, word [ebp + 0xc]
shl ecx, 0x10
or ecx, eax
push ecx
push dword [ebp + 8]
mov ecx, esi
push 0x2a3
call fcn.0046a733
mov eax, dword [ebp - 4]
xor ecx, ecx
inc ecx
jmp 0x43d988
test ecx, ecx
je 0x43d9f6
cmp dword [ebp - 0xc], edx
je 0x43d9f6
cmp ebx, dword [edi + 0x170]
jne 0x43d9ec
mov dword [edi + 0x170], edx
push 0x6a
push esi
mov ecx, edi
call fcn.0043d555
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x43f63c
Capabilities:
Print debug messages

Disassembly:
mov eax, 0x60cb9f
call fcn.0060bcd8
sub esp, 0x10
push dword [ebp + 8]
lea ecx, [ebp + 8]
call fcn.00406173
and dword [ebp - 4], 0
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0xe]
push eax
movzx eax, word [ebp - 0x10]
push eax
movzx eax, word [ebp - 0x12]
push eax
movzx eax, word [ebp - 0x14]
push eax
lea eax, [ebp + 8]
push str.__02d__02d__02d__03d__n
push eax
call fcn.004090e5
add esp, 0x18
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00404ea9
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x441a9c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
push ebx
push esi
mov esi, 0x11c
lea eax, [ebp - 0x11c]
push esi
xor ebx, ebx
push ebx
push eax
call fcn.005e1720
add esp, 0xc
mov dword [ebp - 0x11c], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x11c]
push eax
call esi
test eax, eax
jne 0x441af3
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x11c], 0x114
push eax
call esi
test eax, eax
je 0x441b9a
mov eax, dword [ebp - 0x10c]
sub eax, 1
je 0x441b85
sub eax, 1
jne 0x441b9a
cmp dword [ebp - 0x118], 6
jne 0x441b4f
mov eax, dword [ebp - 0x114]
cmp eax, 1
jne 0x441b2c
xor ebx, ebx
cmp byte [ebp - 2], al
setne bl
add ebx, 8
jmp 0x441b9a
test eax, eax
jne 0x441b3f
cmp byte [ebp - 2], 1
push 9
pop ebx
push 7
pop eax
cmove ebx, eax
jmp 0x441b9a
cmp eax, 2
jne 0x441b9a
cmp byte [ebp - 2], 1
jne 0x441b9a
push 0xa
pop ebx
jmp 0x441b9a
cmp dword [ebp - 0x118], 5
jne 0x441b78
mov eax, dword [ebp - 0x114]
cmp eax, 2
jne 0x441b67
push 5
jmp 0x441b4c
cmp eax, 1
jne 0x441b70
push 6
jmp 0x441b4c
test eax, eax
jne 0x441b9a
push 3
jmp 0x441b4c
cmp dword [ebp - 0x118], 4
ja 0x441b9a
push 4
jmp 0x441b4c
mov eax, dword [ebp - 0x110]
and eax, 0xffff0000
cmp eax, 0x45a0000
sbb ebx, ebx
add ebx, 2
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4479b5
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, 0x60fdf1
call fcn.0060bcd8
push ecx
push ecx
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x10], edi
mov eax, dword [sym.imp.USER32.dll_DefWindowProcW]
mov dword [edi + 4], ebx
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi + 0x20], eax
mov dword [ebp - 4], ebx
lea ecx, [edi + 0x2c]
mov dword [edi + 0x28], ebx
mov dword [edi + 0x24], vtable.IContainer.0
call fcn.0046ae33
lea ecx, [edi + 0x188]
mov byte [ebp - 4], 1
call fcn.0046ae33
lea ecx, [edi + 0x2e4]
mov byte [ebp - 4], 2
call fcn.0046ae33
mov dword [edi + 0x444], ebx
mov dword [edi + 0x440], 0x699a5c
mov dword [edi + 0x450], ebx
mov dword [edi + 0x448], ebx
mov dword [edi + 0x44c], ebx
mov byte [ebp - 4], 4
call fcn.00404f47
push eax
lea ecx, [edi + 0x474]
call fcn.004065d8
mov dword [edi + 0x4b4], ebx
mov dword [edi + 0x4b8], ebx
mov byte [ebp - 4], 6
call fcn.00404f47
push eax
lea ecx, [edi + 0x4bc]
call fcn.004065d8
mov eax, dword [ebp + 8]
lea ecx, [edi + 0x4dc]
mov dword [edi + 0x4d8], eax
call fcn.004501ee
xor ecx, ecx
lea ebx, [edi + 0x518]
mov dword [ebx], vtable.CBkControlCreator.0
mov dword [ebx + 4], ecx
mov dword [ebx + 8], ecx
mov dword [edi + 0x524], ecx
mov dword [edi + 0x528], ecx
mov dword [edi + 0x52c], ecx
mov dword [edi + 0x530], ecx
mov dword [edi + 0x534], ecx
add edi, 0x538
mov dword [ebp + 8], edi
mov dword [edi], ecx
mov eax, vtable.KEvent.0
mov dword [edi + 8], ecx
mov dword [edi + 4], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ecx
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], ecx
mov dword [edi + 0x30], ecx
mov byte [ebp - 4], 0xd
lea esi, [edi + 0x34]
mov dword [ebp - 0x14], esi
mov dword [esi], ecx
mov dword [esi + 4], ecx
call fcn.004069f1
mov dword [esi], eax
xor edx, edx
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov dword [edi + 0x3c], edx
inc ecx
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], edx
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], edx
or dword [eax + 0x4c8], 0xffffffff
mov dword [eax + 0x51c], edi
pop edi
mov dword [eax + 0x500], ecx
mov dword [eax + 0x4b0], ecx
mov dword [eax + 0x470], ecx
mov dword [eax + 0x4c0], ecx
mov dword [eax + 0x4cc], ecx
mov dword [eax + 0x504], ecx
mov dword [eax + 0x510], ecx
mov ecx, dword [ebp - 0xc]
mov dword [eax + 0x184], ebx
mov dword [eax + 0x2e0], ebx
mov dword [eax + 0x43c], ebx
pop esi
mov dword [eax + 0x454], edx
mov dword [eax + 0x458], edx
mov dword [eax + 0x464], edx
mov dword [eax + 0x468], edx
mov dword [eax + 0x488], edx
mov dword [eax + 0x48c], edx
mov dword [eax + 0x490], edx
mov dword [eax + 0x494], edx
mov dword [eax + 0x498], edx
mov dword [eax + 0x4a8], edx
mov dword [eax + 0x46c], edx
mov dword [eax + 0x4a0], edx
mov dword [eax + 0x4ac], edx
mov dword [eax + 0x4a4], edx
mov dword [eax + 0x4c4], edx
mov dword [eax + 0x4d0], edx
mov dword [eax + 0x4d4], edx
mov dword [eax + 0x45c], edx
mov dword [eax + 0x508], edx
mov dword [eax + 0x50c], edx
mov dword [eax + 0x49c], edx
mov dword [eax + 0x514], 0xff
mov dword [eax + 0x460], edx
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x44c8ec
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, ecx
push 1
push dword [ebp + 0x10]
push dword [ebp + 0xc]
lea ecx, [edi + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0x44]
mov esi, eax
test esi, esi
jne 0x44c93b
push 1
push dword [ebp + 0x10]
lea ecx, [edi + 0x188]
mov eax, dword [ecx]
push dword [ebp + 0xc]
call dword [eax + 0x44]
mov esi, eax
test esi, esi
jne 0x44c93b
push 1
push dword [ebp + 0x10]
lea ecx, [edi + 0x2e4]
mov eax, dword [ecx]
push dword [ebp + 0xc]
call dword [eax + 0x44]
mov esi, eax
xor ebx, ebx
cmp dword [edi + 0x45c], ebx
je 0x44c9b3
cmp dword [edi + 0x46c], ebx
je 0x44c959
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov dword [edi + 0x46c], ebx
cmp dword [edi + 0x45c], esi
jne 0x44c9ad
mov ecx, esi
call fcn.0046a6ea
movzx edx, word [ebp + 0x10]
mov esi, eax
movzx ecx, word [ebp + 0xc]
shl edx, 0x10
or edx, ecx
mov ecx, esi
push edx
push dword [ebp + 8]
push 0x205
call fcn.0046a733
mov ecx, dword [edi + 4]
or dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0xc], 0xd
mov dword [ebp - 0x14], ecx
mov eax, dword [esi + 0xc]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x14]
push eax
push 0xffffffffffffffff
push 0x4e
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [edi + 0x45c], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x44f845
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push dword [ebp + 0xc]
movzx eax, dx
mov esi, ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
je 0x44f8c0
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
test ebx, ebx
je 0x44f88a
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
test esi, esi
je 0x44f88a
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
jne 0x44f88e
xor eax, eax
jmp 0x44f8bf
mov ecx, dword [ebp + 8]
lea eax, [ebx + 1]
push eax
call fcn.00406a4b
test eax, eax
je 0x44f8a9
push ebx
push edi
push eax
call fcn.005e0220
add esp, 0xc
mov ecx, dword [ebp + 8]
lea eax, [ebx + 1]
push eax
call fcn.00413e9a
push esi
call dword [sym.imp.KERNEL32.dll_FreeResource]
xor eax, eax
inc eax
pop ebx
pop edi
pop esi
pop ebp
ret