joyce8/EMBER2024-capa huggingface dataset:
Function at 0x469110
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4a5260
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.0049d142
mov edi, dword [eax + 0xc]
xor ebp, ebp
cmp edi, ebp
jne 0x469143
xor al, al
jmp 0x46926f
mov ebx, dword [esp + 0x28]
push 0xf1
and ebx, 0xffff
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, ebp
jne 0x469165
xor al, al
jmp 0x46926f
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebp
jne 0x469178
xor al, al
jmp 0x46926f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
cmp edi, ebp
jne 0x46918c
xor al, al
jmp 0x46926f
xor eax, eax
xor ecx, ecx
mov ax, word [edi + 2]
push ebp
mov dword [esi + 0x14], eax
xor eax, eax
mov ax, word [edi + 4]
mov edx, dword [esi + 0x14]
mov dword [esi + 0x18], eax
mov cx, word [edi + 6]
push ecx
push 5
push eax
push edx
lea ecx, [esi + 0x1c]
call fcn.00491010
test eax, eax
jne 0x4691c0
xor al, al
jmp 0x46926f
mov eax, dword [esi + 0x34]
push eax
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_SetBkColor]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], 0x4b1624
mov dword [esp + 0x20], ebp
call fcn.0049d142
mov eax, dword [eax + 0xc]
push ebx
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
push eax
lea ecx, [esp + 0x14]
call fcn.00499ef9
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x10]
push 0xc0c0c0
neg eax
sbb eax, eax
and eax, edx
push eax
push ecx
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
lea ecx, [esp + 0x10]
call fcn.00499f50
xor ecx, ecx
lea ebx, [edi + 8]
cmp word [edi + 6], cx
jbe 0x469254
mov ax, word [ebx]
test ax, ax
je 0x469246
mov edx, ecx
inc ecx
mov dword [esp + 0x28], ecx
push eax
push edx
mov ecx, esi
call fcn.00469290
mov ecx, dword [esp + 0x28]
xor edx, edx
inc ebp
mov dx, word [edi + 6]
add ebx, 2
cmp ebp, edx
jl 0x46922a
mov dword [esp + 0x10], method.CGdiObject.virtual_0
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 1
call fcn.00499f50
mov al, 1
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret 4

Function at 0x4697d0
Capabilities:
Get graphical window text

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x50
push esi
mov esi, dword [esp + 0x58]
push edi
push eax
mov ecx, esi
call fcn.0049b5e5
mov edi, eax
mov eax, dword [esi]
test eax, eax
je 0x469816
lea ecx, [esp + 8]
push 0x50
push ecx
push edi
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea edx, [esp + 8]
push edx
call fcn.004821c4
mov ecx, dword [esp + 0x68]
add esp, 4
pop edi
mov dword [ecx], eax
pop esi
add esp, 0x50
ret 0xc
mov edx, dword [esp + 0x64]
lea ecx, [esp + 8]
mov eax, dword [edx]
push eax
push 0x4d0834
push ecx
call fcn.00483861
add esp, 0xc
lea edx, [esp + 8]
push edx
push edi
call dword [sym.imp.USER32.dll_SetWindowTextA]
pop edi
pop esi
add esp, 0x50
ret 0xc
Function at 0x46ae60
Capabilities:
Capture webcam image

Disassembly:
mov eax, dword [esp + 8]
push ebx
push esi
mov esi, ecx
mov eax, dword [eax + 4]
cmp dword [esi + 0xec], 1
jne 0x46af03
test eax, eax
jbe 0x46af03
mov ecx, dword [esi + 0xbc]
test ecx, ecx
jle 0x46af03
mov ecx, dword [esi + 0x1c]
push edi
push 0
push eax
push 0x419
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
mov eax, dword [esi + 0xbc]
inc edi
test eax, eax
jne 0x46aeae
xor esi, esi
jmp 0x46aeb4
mov esi, dword [esi + 0xb4]
add esi, 4
xor ebx, ebx
test edi, edi
jbe 0x46aedf
push ebp
mov ebp, edi
add esi, 6
push esi
call fcn.004099b0
add esi, eax
push esi
mov ebx, esi
call fcn.004099b0
add esp, 8
add esi, eax
dec edi
dec ebp
jne 0x46aec0
pop ebp
test edi, edi
pop edi
jne 0x46af03
test ebx, ebx
je 0x46af03
mov edx, dword [esp + 0x10]
push 0x4e
add edx, 0x10
push ebx
push edx
call fcn.00482cd0
add esp, 0xc
mov eax, 1
pop esi
pop ebx
ret 0xc
pop esi
xor eax, eax
pop ebx
ret 0xc

Function at 0x46b045
Capabilities:
Capture webcam image

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x46b15d
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46b15d
mov eax, dword [esi + 0x3c]
push eax
call fcn.00494a42
mov esi, eax
test esi, esi
je 0x46b15d
mov ebx, dword [esp + 0x58]
mov ecx, dword [esi + 0x1c]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push ebx
push 0x419
push ecx
call ebp
mov edi, eax
test edi, edi
jl 0x46b15d
mov ecx, esi
call fcn.0046afb0
cmp edi, eax
jge 0x46b15d
mov eax, dword [esi + 0xc4]
mov edx, dword [esi + 0xc0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 0x28], edx
cmp eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], edi
jne 0x46b0e3
mov dword [esp + 0x34], 1
jmp 0x46b13e
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x18]
push ecx
push ebx
push 0x433
push edx
call ebp
test eax, eax
je 0x46b15d
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
mov dword [eax], 0
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0x10]
add edx, 2
push eax
push ecx
mov dword [esp + 0x1c], edx
call dword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], 3
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
xor ecx, ecx
push ecx
lea ecx, [esp + 0x2c]
push ecx
push 0x7d8
call fcn.00469870
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret 0xc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x44
ret 0xc
Function at 0x4742e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x13c]
push edi
test eax, eax
jle 0x47432c
mov eax, dword [ebx + 0x140]
test eax, eax
jle 0x47432c
mov ebp, dword [sym.imp.USER32.dll_GetKeyState]
xor esi, esi
lea edi, [ebx + 0x150]
mov eax, dword [edi]
test eax, eax
je 0x474316
push eax
call ebp
test ax, ax
jl 0x474324
inc esi
add edi, 4
cmp esi, 6
jb 0x474308
pop edi
pop esi
pop ebp
pop ebx
ret
push esi
mov ecx, ebx
call fcn.00473fe0
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x477e80
Capabilities:
Create thread

Disassembly:
push ecx
cmp dword [ecx + 0xcc], 1
je 0x477ee0
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x477ee0
mov eax, dword [ecx + 0xb0]
test eax, eax
je 0x477ee0
push esi
mov edx, 5
mov esi, dword [ecx + 0xbc]
cmp esi, edx
pop esi
je 0x477ee0
mov dword [ecx + 0xb4], eax
mov dword [ecx + 0x94], 0
mov dword [ecx + 0xbc], edx
lea eax, [esp]
push eax
push 0
push ecx
push 0x477ef0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ecx
ret
Function at 0x4953e5
Capabilities:
Get graphical window text

Disassembly:
push esi
mov esi, ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x49541d
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [esp + 0xc]
push eax
call fcn.00493460
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 8]
push 0xffffffffffffffff
call fcn.00493438
jmp 0x495429
mov eax, dword [ecx]
push dword [esp + 8]
call dword [eax + 0x88]
pop esi
ret 4

Function at 0x496be3
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
push esi
push edi
xor edi, edi
cmp dword [esp + 0x10], edi
mov ebx, ecx
je 0x496c25
call fcn.0049d142
mov esi, dword [eax + 0xc]
push 0xf0
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, edi
je 0x496c25
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, edi
jne 0x496c1c
xor eax, eax
jmp 0x496c2d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
push edi
mov ecx, ebx
call fcn.00496c33
pop edi
pop esi
pop ebx
ret 4

Function at 0x49d672
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x49d6a0
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x49d6be
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.0049d5d8
jmp 0x49d6be
mov eax, dword [esi + 0x14]
test eax, eax
je 0x49d6be
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
mov ecx, esi
push eax
call fcn.0049d5d8
test edi, edi
mov eax, edi
jne 0x49d6a8
pop edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebx
ret 8
Function at 0x234c18c5
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xcc
push esi
xor esi, esi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, 9
mov dword [ebp - 4], eax
jl 0x234c6456
lea eax, [ebp - 0xcc]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.234c1931
add esp, 0xc
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xcc]
push eax
push esi
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
test eax, eax
jne 0x234c192c
push dword [ebp + 0x10]
lea eax, [ebp - 0xcc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov eax, esi
pop esi
leave
ret
xor eax, eax
jmp 0x234c192e

Function at 0x234c1931
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 8]
push ebx
xor ebx, ebx
push esi
cmp byte [ecx], bl
push edi
mov dword [ebp - 4], ebx
mov edx, ecx
je 0x234c194b
inc edx
cmp byte [edx], bl
jne 0x234c1946
mov esi, dword [ebp + 0x10]
dec edx
mov edi, esi
cmp edx, ecx
jb 0x234c195d
mov al, byte [edx]
dec edx
mov byte [edi], al
inc edi
jmp 0x234c1951
mov byte [edi], bl
cmp byte [esi], bl
mov edx, esi
je 0x234c196a
inc edx
cmp byte [edx], bl
jne 0x234c1965
dec edx
cmp byte [ecx], bl
mov dword [ebp + 8], edx
mov edi, ecx
je 0x234c1979
inc edi
cmp byte [edi], bl
jne 0x234c1974
dec edi
cmp ecx, edi
jae 0x234c1998
mov edx, esi
sub edx, ecx
mov al, byte [ecx]
xor byte [ecx + edx], al
movsx eax, byte [ecx + edx]
add dword [ebp - 4], eax
inc ecx
cmp ecx, edi
jb 0x234c1982
mov edx, dword [ebp + 8]
xor ebx, ebx
cmp esi, edx
mov ecx, esi
jae 0x234c19a4
inc ecx
dec edx
cmp ecx, edx
jb 0x234c199e
mov eax, dword [ebp - 4]
push 0xa
lea edi, [ecx - 1]
xor edx, edx
pop ecx
div ecx
mov eax, dword [ebp + 0xc]
add dl, 0x61
cmp esi, edi
ja 0x234c19d2
mov cl, byte [esi]
and cl, 0xf
add cl, dl
mov byte [eax], cl
mov cl, byte [esi]
sar cl, 4
inc eax
add cl, dl
mov byte [eax], cl
inc eax
inc esi
jmp 0x234c19b7
pop edi
mov byte [eax], bl
pop esi
pop ebx
leave
ret
Function at 0x234c9ff4
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 8], ebx
je 0x234ca090
mov dword [ebp - 4], eax
cmp dword [esi + 0x154], ebx
jne 0x234ca03c
push ebx
push 0x1f4
push 0x9d3
push dword [esi + 0x144]
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [esi + 0x154], eax
mov eax, dword [ebp + 8]
inc word [esi + 0x158]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x14c]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 4], 0xffffffff
je 0x234ca063
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 8]
mov dword [ebp - 4], eax
mov edi, dword [sym.imp.USER32.dll_PeekMessageA]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x30]
push ebx
push eax
call edi
test eax, eax
je 0x234ca096
mov ecx, esi
call fcn.234ca19c
test eax, eax
je 0x234ca194
push ebx
push ebx
push ebx
lea eax, [ebp - 0x30]
push ebx
push eax
jmp 0x234ca071
or dword [ebp - 4], 0xffffffff
jmp 0x234ca017
push 0xff
lea eax, [ebp - 0x14]
push dword [ebp - 4]
push ebx
push eax
push 2
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
mov edi, eax
cmp edi, 0xffffffff
je 0x234ca150
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [ebp - 4], 0xffffffff
je 0x234ca0d3
cmp eax, dword [ebp - 0xc]
jae 0x234ca12d
mov ecx, dword [ebp - 0xc]
not ecx
lea eax, [eax + ecx + 1]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, dword [ebp + 0xc]
jae 0x234ca14c
mov eax, dword [esi + 0x134]
cmp eax, 0xa
je 0x234ca132
cmp eax, 9
je 0x234ca132
push ebx
lea eax, [ebp - 0x14]
push ebx
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, ebx
je 0x234ca198
cmp eax, 1
je 0x234ca18b
cmp edi, 2
jne 0x234ca140
mov ecx, esi
call fcn.234ca19c
test eax, eax
je 0x234ca194
mov eax, dword [esi + 0x134]
cmp eax, dword [ebp + 0x14]
je 0x234ca054
push 3
jmp 0x234ca152
sub eax, dword [ebp - 0xc]
jmp 0x234ca0d0
mov eax, dword [ebp + 8]
push ebx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x234ca0f9
cmp edi, 0x102
jne 0x234ca054
push 2
jmp 0x234ca152
push 5
cmp dword [esi + 0x154], ebx
pop edi
je 0x234ca182
dec word [esi + 0x158]
cmp word [esi + 0x158], bx
jne 0x234ca182
push 0x9d3
push dword [esi + 0x144]
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [esi + 0x154], ebx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0x10
mov eax, dword [esi]
push esi
call dword [eax + 0x84]
push 4
jmp 0x234ca152
push 1
jmp 0x234ca152
Function at 0x234caba9
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push edi
push dword [eax]
lea eax, [ebp - 4]
xor edi, edi
push eax
mov dword [ebp - 4], edi
push dword [ebx]
call fcn.234caf6f
cmp eax, edi
mov dword [ebp - 8], eax
jl 0x234cac3c
mov ecx, dword [ebp - 4]
push esi
cmp ecx, edi
je 0x234cac40
cmp word [ecx], di
je 0x234cac40
push 1
mov dword [ebp - 0x44], 0x3c
pop eax
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x44]
push eax
push edi
push edi
push ecx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], edi
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
test eax, eax
jne 0x234cac40
mov dword [ebp - 8], 0x8ba8
cmp dword [ebp - 4], edi
je 0x234cac38
push dword [ebp - 4]
push edi
push dword [0x234d2030]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 8]
pop esi
pop edi
pop ebx
leave
ret
mov eax, dword [ebx]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp eax, edi
je 0x234cac51
push eax
call esi
mov dword [ebx], edi
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx]
cmp eax, edi
je 0x234cac5f
push eax
call esi
mov dword [ebx], edi
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebx]
cmp eax, edi
je 0x234cac6d
push eax
call esi
mov dword [ebx], edi
mov ebx, dword [ebp + 0x1c]
mov eax, dword [ebx]
cmp eax, edi
je 0x234cac7b
push eax
call esi
mov dword [ebx], edi
mov ebx, dword [ebp + 0x20]
mov eax, dword [ebx]
cmp eax, edi
je 0x234cac89
push eax
call esi
mov dword [ebx], edi
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x234cac23
cmp word [eax], di
je 0x234cac23
push 0xffffffffffffffff
push eax
call fcn.234c4738
pop ecx
cmp eax, edi
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
jne 0x234cacb4
mov dword [ebp - 8], 7
jmp 0x234cac23
push dword [ebp - 0x38]
call fcn.234cb0eb
pop ecx
push dword [ebp - 0x30]
mov ecx, dword [ebp + 0xc]
push dword [ebp - 0x34]
mov dword [ecx], eax
call fcn.234c4738
pop ecx
pop ecx
mov ecx, dword [ebp + 0x10]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp + 0x14]
mov cx, word [ebp - 0x2c]
mov word [eax], cx
call fcn.234c4738
pop ecx
pop ecx
push dword [ebp - 0x24]
mov ecx, dword [ebp + 0x18]
push dword [ebp - 0x28]
mov dword [ecx], eax
call fcn.234c4738
pop ecx
pop ecx
push dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x1c]
push dword [ebp - 0x20]
mov dword [ecx], eax
call fcn.234c4738
pop ecx
mov dword [ebx], eax
pop ecx
jmp 0x234cac23
Function at 0x234cb70b
Capabilities:
Delete registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
push ebx
push esi
push edi
xor esi, esi
push dword [ebp + 0x10]
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
call fcn.234cc698
test eax, eax
pop ecx
jne 0x234cb737
push esi
push dword [ebp + 0x10]
call fcn.234cc0f6
pop ecx
pop ecx
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 0x10]
call fcn.234cb6c0
pop ecx
test eax, eax
pop ecx
je 0x234cb851
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x138]
push 0x234d2438
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0xc]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
push eax
lea eax, [ebp - 8]
push eax
push esi
push 0x2001f
push esi
push 0x234d26dc
lea eax, [ebp - 0x138]
push esi
push eax
push SysReAllocStringLen
call ebx
cmp eax, esi
jne 0x234cb851
cmp dword [ebp + 0xc], esi
jne 0x234cb872
push dword [ebp + 8]
lea eax, [ebp - 0x138]
push 0x234d2444
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push eax
lea eax, [ebp - 0x138]
push eax
push 1
push esi
push esi
push dword [ebp - 8]
call edi
cmp eax, esi
jne 0x234cb851
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 4]
push eax
push esi
push 0x2001f
push esi
push 0x234d26e0
push esi
push 0x234d2450
push dword [ebp - 8]
call ebx
cmp eax, esi
jne 0x234cb851
lea eax, [ebp - 0x138]
push 0x104
push eax
push dword [0x234d2008]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp eax, esi
je 0x234cb851
inc eax
push eax
lea eax, [ebp - 0x138]
push eax
push 1
push esi
push esi
push dword [ebp - 4]
call edi
cmp eax, esi
jne 0x234cb851
cmp dword [ebp + 0x14], esi
je 0x234cb887
push 0xa
push str.Apartment
push 1
push esi
push 0x234d246c
push dword [ebp - 4]
call edi
cmp eax, esi
je 0x234cb895
cmp dword [ebp - 8], esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x234cb861
push dword [ebp - 8]
call edi
cmp dword [ebp - 4], esi
je 0x234cb86b
push dword [ebp - 4]
call edi
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
push dword [ebp + 0xc]
lea eax, [ebp - 0x138]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x234cb7b6
push str.ThreadingModel
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp - 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 8]
call esi
push 1
pop eax
jmp 0x234cb86d
Function at 0x234cc194
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
push esi
lea eax, [ebp - 0xc]
push edi
push eax
push dword [ebp + 0x14]
call fcn.234cc0f6
pop ecx
test eax, eax
pop ecx
je 0x234cc249
cmp dword [ebp - 0xc], 0
je 0x234cc300
push dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x114]
push ebx
push dword [ebp + 8]
push 0x234d2580
push eax
call esi
add esp, 0x14
lea eax, [ebp - 0x114]
mov edi, SysReAllocStringLen
push eax
push edi
call fcn.234cc308
pop ecx
test eax, eax
pop ecx
je 0x234cc249
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call fcn.234cc38c
add esp, 0x14
test eax, eax
jne 0x234cc250
cmp dword [ebp - 8], eax
jne 0x234cc300
push ebx
lea eax, [ebp - 0x114]
push dword [ebp + 8]
push 0x234d258c
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x114]
push eax
push edi
call fcn.234cc308
pop ecx
test eax, eax
pop ecx
jne 0x234cc300
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
push dword [ebp - 4]
push ebx
push dword [ebp + 8]
call fcn.234cc44e
add esp, 0xc
lea eax, [ebp - 0x114]
push ebx
push dword [ebp + 8]
push str._s._sCurVer
push eax
call esi
add esp, 0x10
lea eax, [ebp + 0x14]
push eax
push 0xf003f
lea eax, [ebp - 0x114]
push 0
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
xor ecx, ecx
cmp eax, ecx
je 0x234cc2f7
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x14]
push eax
push ecx
push 0x2001f
push ecx
push 0x234d271c
lea eax, [ebp - 0x114]
push ecx
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x234cc300
push dword [ebp - 4]
lea eax, [ebp - 0x114]
push ebx
push dword [ebp + 8]
push 0x234d25a4
push eax
call esi
add esp, 0x14
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp - 0x114]
push eax
push 1
push 0
push 0
push dword [ebp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 1
pop eax
jmp 0x234cc24b

Function at 0x234cc308
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
lea eax, [ebp - 4]
push esi
push eax
xor esi, esi
push 0xf003f
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, esi
je 0x234cc333
xor eax, eax
pop esi
leave
ret
push esi
push esi
push esi
lea eax, [ebp - 8]
push esi
push eax
lea eax, [ebp - 0x10c]
mov dword [ebp - 8], 0x104
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
cmp eax, esi
jne 0x234cc36c
lea eax, [ebp - 0x10c]
push eax
push dword [ebp - 4]
call fcn.234cc308
pop ecx
cmp eax, esi
pop ecx
jne 0x234cc333
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
xor ecx, ecx
cmp eax, esi
sete cl
mov eax, ecx
jmp 0x234cc330
Function at 0x234cc525
Capabilities:
Query or enumerate registry key
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
push ebx
push esi
lea eax, [ebp - 4]
push edi
push eax
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x18]
xor esi, esi
push eax
push esi
push esi
push dword [ebp + 8]
mov dword [ebp - 4], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, esi
jne 0x234cc577
push dword [ebp - 4]
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0x18]
push esi
push esi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp eax, esi
mov dword [ebp - 0x10], eax
je 0x234cc57e
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
lea eax, [ebp - 0x24]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
push eax
push esi
push esi
lea eax, [ebp - 4]
push esi
push eax
lea eax, [ebp - 0x128]
mov dword [ebp - 8], esi
push eax
push esi
push dword [ebp + 8]
call ebx
test eax, eax
jne 0x234cc636
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0xc]
push eax
push 0xf003f
lea eax, [ebp - 0x128]
push esi
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, esi
mov dword [ebp - 0x10], eax
jne 0x234cc636
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
push esi
push 0x2001f
push esi
push 0x234d2728
lea eax, [ebp - 0x128]
push esi
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, esi
mov dword [ebp - 0x10], eax
jne 0x234cc643
push dword [ebp - 0x14]
push dword [ebp - 0xc]
call fcn.234cc525
pop ecx
pop ecx
push dword [ebp - 0xc]
call edi
push dword [ebp - 0x14]
call edi
lea eax, [ebp - 0x24]
inc dword [ebp - 8]
push eax
push esi
push esi
lea eax, [ebp - 4]
push esi
push eax
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 8]
push dword [ebp + 8]
call ebx
test eax, eax
je 0x234cc5ad
xor eax, eax
cmp dword [ebp - 0x10], esi
sete al
jmp 0x234cc579
push dword [ebp - 0xc]
call edi
jmp 0x234cc636

Function at 0x234cc64a
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
cmp dword [ebp + 0xc], 0
push edi
mov esi, str.HELP
lea edi, [ebp - 8]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jne 0x234cc668
xor eax, eax
pop edi
pop esi
leave
ret
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov esi, eax
lea eax, [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add esi, eax
cmp esi, dword [ebp + 0xc]
jae 0x234cc694
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, esi
jmp 0x234cc664