joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40be5e
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push 0x3c
lea eax, [ebp - 0x3c]
push 0
push eax
call fcn.0042fde0
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x3c]
add esp, 0xc
mov dword [ebp - 0x3c], 0x3c
push ecx
push 0
push 0
push dword [eax]
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x40be9a
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40bea4
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x30]
mov dword [ecx], eax
xor eax, eax
mov esp, ebp
pop ebp
ret 8

Function at 0x40cdee
Capabilities:
Hide graphical window

Disassembly:
push esi
mov esi, ecx
lea eax, [ecx - 0x20]
neg esi
sbb esi, esi
and esi, eax
cmp byte [ecx + 0x1c], 0
je 0x40ce30
push 0xe801
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp dword [esp + 0xc], 2
jne 0x40ce20
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x40ce37
cmp dword [esp + 0xc], 0
jne 0x40ce30
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [esp + 0xc], 1
je 0x40ce4e
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 0x10
cwde
push eax
movsx eax, cx
lea ecx, [esi + 0x20]
push eax
call fcn.0040ce54
xor eax, eax
pop esi
ret 0x10

Function at 0x40db63
Capabilities:
Create process on windows

Disassembly:
push 0x74
mov eax, 0x443c6f
call fcn.004420ed
mov edi, ecx
mov dword [ebp - 0x1c], edi
xor ebx, ebx
cmp dword [edi + 4], ebx
jle 0x40dc7f
push ebx
mov ecx, edi
call fcn.0040dc85
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.00401706
add eax, 0x10
mov dword [ebp - 0x10], eax
and dword [ebp - 4], 0
mov ecx, edi
push ebx
call fcn.0040dc85
mov ecx, dword [eax + 4]
sub ecx, 0x10
call fcn.00401706
mov dword [ebp - 0x18], eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x20], esi
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
lea edx, [ebp - 0x2c]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x10]
call fcn.0042912d
push ebx
mov ecx, edi
call fcn.0040dc85
mov edi, dword [ebp - 0x10]
cmp byte [eax + 0xc], 0
je 0x40dc43
cmp dword [ebp - 0x28], 0
jne 0x40dc43
call fcn.0040268c
push eax
lea ecx, [ebp - 0x14]
call fcn.004024c1
push esi
push edi
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 3
push str.__s___s
push eax
call fcn.00404020
push 0x44
xor esi, esi
lea eax, [ebp - 0x80]
push esi
push eax
call fcn.0042fde0
add esp, 0x1c
lea eax, [ebp - 0x3c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x3c], xmm0
push eax
lea eax, [ebp - 0x80]
push eax
push esi
push esi
push esi
push esi
push esi
push esi
mov esi, dword [ebp - 0x14]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
lea ecx, [esi - 0x10]
call fcn.00401759
cmp dword [ebp - 0x2c], 0
je 0x40dc56
push dword [ebp - 0x2c]
call fcn.004341b9
and dword [ebp - 0x2c], 0
pop ecx
mov ecx, dword [ebp - 0x18]
and dword [ebp - 0x28], 0
and dword [ebp - 0x24], 0
call fcn.00401759
or dword [ebp - 4], 0xffffffff
lea ecx, [edi - 0x10]
call fcn.00401759
mov edi, dword [ebp - 0x1c]
inc ebx
cmp ebx, dword [edi + 4]
jl 0x40db7f
call fcn.004420b6
ret
Function at 0x410479
Capabilities:
Delete directory
Delete file

Disassembly:
push ebx
push ebp
push esi
mov esi, ecx
xor ebp, ebp
push edi
mov edi, ebp
cmp dword [esi + 0x1c], ebp
jle 0x4104d5
cmp dword [esi + 0x24], ebp
je 0x4104a0
push edi
lea ecx, [esi + 0x18]
call fcn.00402bb2
mov ecx, dword [esi + 0x24]
push dword [eax]
mov edx, dword [ecx]
call dword [edx + 0x18]
push edi
lea ecx, [esi + 0x18]
call fcn.00402bb2
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x4104cf
mov eax, dword [ecx]
push 1
call dword [eax + 0x1c]
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x4104cf
mov eax, dword [ecx]
call dword [eax + 0x20]
test al, al
jne 0x410529
inc edi
cmp edi, dword [esi + 0x1c]
jl 0x410488
mov edi, ebp
cmp dword [esi + 0x10], ebp
jle 0x410529
cmp dword [esi + 0x24], ebp
je 0x4104f4
push edi
lea ecx, [esi + 0xc]
call fcn.00402bb2
mov ecx, dword [esi + 0x24]
push dword [eax]
mov edx, dword [ecx]
call dword [edx + 0x18]
push edi
lea ecx, [esi + 0xc]
call fcn.00402bb2
push dword [eax]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x410523
mov eax, dword [ecx]
push 1
call dword [eax + 0x1c]
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x410523
mov eax, dword [ecx]
call dword [eax + 0x20]
test al, al
jne 0x410529
inc edi
cmp edi, dword [esi + 0x10]
jl 0x4104dc
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret

Function at 0x410a78
Capabilities:
Read .ini file

Disassembly:
push 0xc
mov eax, 0x444227
call fcn.004420ed
mov edi, ecx
mov dword [ebp - 0x14], edi
call fcn.0040268c
push eax
lea ecx, [ebp - 0x10]
call fcn.004024c1
and dword [ebp - 4], 0
xor ecx, ecx
push 2
mov ebx, 0x100
pop edx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042e934
mov esi, eax
pop ecx
mov dword [ebp - 0x18], esi
mov eax, dword [ebp + 0xc]
mov byte [ebp - 4], 1
push dword [edi + 4]
mov edi, dword [ebp - 0x10]
push ebx
push esi
push edi
push dword [eax]
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp eax, 0xff
jne 0x410b2d
push esi
add ebx, ebx
mov byte [ebp - 4], 0
call fcn.0042e92f
xor ecx, ecx
mov eax, ebx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042e934
pop ecx
pop ecx
mov esi, eax
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 1
push dword [eax + 4]
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
push dword [eax]
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebx - 1]
cmp eax, ecx
je 0x410ae0
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp + 0x10]
push esi
call fcn.00402a22
push esi
call fcn.0042e92f
pop ecx
lea ecx, [edi - 0x10]
call fcn.00401759
call fcn.004420b6
ret 0xc
Function at 0x41450c
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
mov esi, ecx
call dword [sym.imp.USER32.dll_GetCapture]
push 4
test esi, esi
lea edx, [esi - 0x20]
pop ecx
cmove edx, ecx
cmp eax, dword [edx]
jne 0x414631
mov eax, dword [esp + 0x20]
sub eax, 0xd
je 0x414623
sub eax, 0xe
je 0x414629
push 0xa
pop edi
sub eax, edi
je 0x4145bf
sub eax, 1
je 0x41455d
sub eax, 1
je 0x4145bf
sub eax, 1
jne 0x414638
cmp byte [esi], 0
jne 0x414638
and dword [esp + 0x10], 0
lea eax, [esp + 0x10]
and dword [esp + 0x14], 0
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
cmp dword [esp + 0x20], 0x26
mov ebp, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
push 0xfffffffffffffff6
pop eax
cmove edi, eax
sub edx, dword [esi + 0x10]
add edi, ebx
lea eax, [ecx + ebp]
cmp edi, eax
jl 0x4145ac
sub edx, dword [esi + 0x2c]
sub edx, ecx
mov ecx, edi
sub edx, ebp
cmp edi, edx
cmovg ecx, edx
mov eax, dword [esp + 0x14]
sub ecx, ebx
add eax, ecx
push eax
push dword [esp + 0x14]
mov dword [esp + 0x1c], eax
jmp 0x41461b
cmp byte [esi], 0
je 0x414638
and dword [esp + 0x10], 0
lea eax, [esp + 0x10]
and dword [esp + 0x14], 0
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
cmp dword [esp + 0x20], 0x25
mov ebp, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov ebx, dword [esi + 0x1c]
mov edx, dword [esi + 0x14]
push 0xfffffffffffffff6
pop eax
cmove edi, eax
sub edx, dword [esi + 0xc]
add edi, ebx
lea eax, [ecx + ebp]
cmp edi, eax
jl 0x41460a
sub edx, dword [esi + 0x2c]
sub edx, ecx
mov ecx, edi
sub edx, ebp
cmp edi, edx
cmovg ecx, edx
mov eax, dword [esp + 0x10]
sub ecx, ebx
push dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x14], eax
push eax
call dword [sym.imp.USER32.dll_SetCursorPos]
jmp 0x414638
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x20], eax
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x414638
mov eax, dword [esp + 0x28]
and dword [eax], 0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
pop ecx
ret 0x10

Function at 0x414d70
Capabilities:
Hide graphical window

Disassembly:
push esi
mov esi, ecx
lea eax, [ecx - 0x50]
neg esi
sbb esi, esi
and esi, eax
cmp byte [ecx + 0x1c], 0
je 0x414db2
push 0xe801
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp dword [esp + 0xc], 2
jne 0x414da2
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x414db9
cmp dword [esp + 0xc], 0
jne 0x414db2
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [esp + 0xc], 1
je 0x414dd0
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 0x10
cwde
push eax
movsx eax, cx
lea ecx, [esi + 0x50]
push eax
call fcn.00415140
xor eax, eax
pop esi
ret 0x10
Function at 0x416cbe
Capabilities:
Hide graphical window

Disassembly:
push esi
mov esi, ecx
lea eax, [ecx - 0x54]
neg esi
sbb esi, esi
and esi, eax
cmp byte [ecx + 0x1c], 0
je 0x416d00
push 0xe801
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp dword [esp + 0xc], 2
jne 0x416cf0
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x416d07
cmp dword [esp + 0xc], 0
jne 0x416d00
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [esp + 0xc], 1
je 0x416d1e
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 0x10
cwde
push eax
movsx eax, cx
lea ecx, [esi + 0x54]
push eax
call fcn.00416f34
xor eax, eax
pop esi
ret 0x10
Function at 0x4186f7
Capabilities:
Hide graphical window

Disassembly:
push ecx
push ebx
mov ebx, ecx
xor eax, eax
push ebp
test ebx, ebx
lea ecx, [esp + 8]
push esi
lea ebp, [ebx + 4]
mov edx, ebp
push edi
cmove edx, eax
call fcn.00401daa
push dword [ebp]
mov eax, dword [eax]
mov dword [ebx + 0x13c], eax
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [ebx + 0x134]
mov ecx, dword [ecx + 8]
mov dword [ecx + 4], eax
mov ecx, dword [ecx]
test ecx, ecx
je 0x41873c
push eax
call fcn.0041bb2f
mov ecx, ebx
call fcn.0041894c
lea ecx, [ebx + 0x78]
call fcn.004299fe
mov eax, dword [ebx + 0x134]
test byte [eax + 0xc], 1
je 0x418762
push 0
push dword [ebp]
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x40e
push dword [ebp]
call edi
mov esi, 0x3f0
mov dword [ebx + 0x10c], eax
push esi
push dword [ebp]
call edi
push esi
push dword [ebp]
mov dword [ebx + 0x110], eax
call edi
push 0x40e
push dword [ebp]
mov esi, eax
call edi
push esi
push eax
lea ecx, [ebx + 0x88]
call fcn.00428644
push ecx
mov ecx, ebp
call fcn.0040d536
mov eax, dword [ebx + 0x134]
mov ecx, ebx
mov eax, dword [eax]
mov dword [ebx + 0x138], eax
call fcn.004187d6
and dword [ebx + 0xfc], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 8
Function at 0x4187d6
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x45800c]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push edi
mov edi, ecx
push 0x3ec
mov dword [esp + 0x10], edi
push dword [edi + 4]
call esi
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push eax
call ebx
push 0x41a
push dword [edi + 4]
call esi
push 0
push eax
call ebx
push 0x40f
push dword [edi + 4]
call esi
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
mov esi, eax
lea eax, [esp + 0x24]
xorps xmm0, xmm0
push eax
push esi
movups xmmword [esp + 0x2c], xmm0
call edi
lea eax, [esp + 0x34]
xorps xmm0, xmm0
push eax
mov eax, dword [esp + 0x10]
movups xmmword [esp + 0x38], xmm0
push dword [eax + 0x10c]
call edi
mov edi, dword [esp + 0x30]
sub edi, dword [esp + 0x28]
push 0
push esi
call ebx
mov esi, dword [esp + 0xc]
lea eax, [esp + 0x14]
push eax
xorps xmm0, xmm0
movups xmmword [esp + 0x18], xmm0
push dword [esi + 0x110]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ebx, dword [sym.imp.USER32.dll_MapWindowPoints]
lea eax, [esp + 0x14]
push 2
push eax
push dword [esi + 4]
push dword [esi + 0x110]
call ebx
neg edi
lea eax, [esp + 0x14]
push edi
push 0
mov dword [esp + 0x18], edi
mov edi, dword [sym.imp.USER32.dll_OffsetRect]
push eax
call edi
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
push 1
push eax
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
push eax
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esi + 0x110]
mov esi, dword [sym.imp.USER32.dll_MoveWindow]
call esi
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x10c]
call dword [sym.imp.USER32.dll_GetClientRect]
push 2
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 4]
push dword [eax + 0x10c]
call ebx
push dword [esp + 0x10]
lea eax, [esp + 0x18]
push 0
push eax
call edi
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
push 1
push eax
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
push eax
push dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x24]
push dword [eax + 0x10c]
call esi
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042e8fb
mov esp, ebp
pop ebp
ret

Function at 0x41a5d4
Capabilities:
Hide graphical window

Disassembly:
push esi
mov esi, ecx
lea eax, [ecx - 0x50]
neg esi
sbb esi, esi
and esi, eax
cmp byte [ecx + 0x1c], 0
je 0x41a616
push 0xe801
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
cmp dword [esp + 0xc], 2
jne 0x41a606
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x41a61d
cmp dword [esp + 0xc], 0
jne 0x41a616
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [esp + 0xc], 1
je 0x41a633
mov edx, dword [esp + 0x10]
mov ecx, esi
mov eax, edx
shr eax, 0x10
cwde
push eax
movsx eax, dx
push eax
call fcn.0041a0c7
xor eax, eax
pop esi
ret 0x10
Function at 0x41a95c
Capabilities:
Create process on windows
Delete file
Get common file path
Write and execute a file
Write file on windows

Disassembly:
push ebp
sub esp, 0x7f8
lea ebp, [esp - 4]
mov eax, dword [0x45800c]
xor eax, ebp
mov dword [ebp + 0x7f8], eax
push 0x10
mov eax, 0x444b1a
call fcn.004420ed
mov esi, ecx
lea eax, [ebp]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x41a9a0
or eax, 0xffffffff
jmp 0x41ab03
lea eax, [ebp + 0x5f0]
xor ebx, ebx
push eax
push ebx
push 0x44ce54
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x41a998
lea eax, [ebp + 0x5f0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, ebx
cmp word [ebp + 0x5f0], ax
je 0x41a9e0
inc eax
cmp word [ebp + eax*2 + 0x5f0], bx
jne 0x41a9d5
push 0x6c
pop ecx
push 0x72
mov word [ebp + eax*2 + 0x5ee], cx
pop ecx
push 0x75
mov word [ebp + eax*2 + 0x5ec], cx
pop ecx
push 0x2e
mov word [ebp + eax*2 + 0x5ea], cx
pop ecx
push ebx
push 0x80
push 2
push ebx
push ebx
mov word [ebp + eax*2 + 0x5e8], cx
lea eax, [ebp + 0x5f0]
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
or edi, 0xffffffff
mov dword [ebp - 0x10], eax
cmp eax, edi
je 0x41ab01
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
push 0xfde9
lea edx, [ebp - 0x18]
mov dword [ebp - 4], ebx
mov ecx, esi
call fcn.00409a2d
mov esi, dword [ebp - 0x14]
lea edx, [ebp + 0x208]
pop ecx
mov ebx, edx
mov ecx, str._InternetShortcut__r_nURL
sub ecx, ebx
mov al, 0x5b
mov ebx, esi
mov byte [edx], al
inc edx
mov al, byte [ecx + edx]
test al, al
jne 0x41aa65
mov byte [edx], al
mov al, byte [ebx]
jmp 0x41aa81
mov cl, al
inc esi
call fcn.0041a8e0
add edx, eax
mov al, byte [esi]
test al, al
jne 0x41aa75
mov word [edx], 0xa0d
add edx, 2
push 0
mov byte [edx], al
lea eax, [ebp + 0x208]
sub edx, eax
lea eax, [ebp - 0x1c]
push eax
push edx
lea eax, [ebp + 0x208]
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0x10]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x41aaf2
mov esi, dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea eax, [ebp + 0x5f0]
push 5
xor ecx, ecx
push ecx
push ecx
push eax
push str.open
push ecx
call esi
mov edi, eax
cmp edi, 0x20
ja 0x41aaf2
push 5
xor ecx, ecx
lea eax, [ebp + 0x5f0]
push ecx
push ecx
push eax
push ecx
push ecx
call esi
mov edi, eax
push ebx
call fcn.0042e92f
xor eax, eax
cmp edi, 0x20
pop ecx
cmova edi, eax
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x7f8]
xor ecx, ebp
call fcn.0042e8fb
lea esp, [ebp + 0x7fc]
pop ebp
ret
Function at 0x41bb42
Capabilities:
Create thread

Disassembly:
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
mov ebp, 0x41bf3a
mov eax, dword [esi + 0x10]
add eax, 4
push eax
push ebx
push esi
push ebp
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x1c], eax
mov ecx, dword [ecx + 4]
mov dword [esi + 0x20], ecx
test eax, eax
je 0x41bb99
mov esi, dword [esi]
test esi, esi
je 0x41bba2
mov eax, dword [esi + 0x10]
add eax, 4
push eax
push ebx
push esi
push ebp
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov dword [esi + 0x20], eax
cmp dword [esi + 0x1c], ebx
jne 0x41bb70
pop esi
pop ebp
pop ebx
jmp dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
pop ebp
xor eax, eax
pop ebx
ret

Function at 0x41c092
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0x18
mov eax, 0x444cd4
call fcn.004420ed
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0xa
push dword [esi + 4]
xor ebx, ebx
mov dword [ebp - 0x24], eax
mov byte [ebp - 0xd], bl
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edi, dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x41c11f
cmp byte [ebp - 0xd], 0
jne 0x41c100
push dword [esi + 0x18]
push ebx
push 0x1f0003
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov ebx, eax
test ebx, ebx
jne 0x41c0e4
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x41c0fe
push ebx
call edi
push ebx
test eax, eax
je 0x41c0f8
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0xd], 1
jmp 0x41c0fe
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x24]
cmp eax, 0xea60
ja 0x41c1dd
push 0xa
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x41c0c1
test eax, eax
jne 0x41c1cf
push dword [esi]
lea ecx, [ebp - 0x20]
call fcn.00402a4c
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x1c]
mov eax, dword [esi]
add eax, 0x820
push eax
call fcn.00402a4c
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
mov eax, dword [esi]
add eax, 0x1040
push eax
call fcn.00402a4c
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x14]
mov eax, dword [esi]
add eax, 0x1860
push eax
call fcn.00402a4c
mov byte [ebp - 4], 3
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x41c194
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
lea edx, [ebp - 0x18]
push edx
lea edx, [ebp - 0x1c]
push edx
lea edx, [ebp - 0x20]
push edx
call dword [eax]
mov ebx, eax
mov ecx, dword [esi]
mov dword [ecx + 0x2080], ebx
push dword [esi + 8]
call edi
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.00401759
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx - 0x10]
call fcn.00401759
mov ecx, dword [ebp - 0x1c]
lea ecx, [ecx - 0x10]
call fcn.00401759
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx - 0x10]
call fcn.00401759
jmp 0x41c1e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi]
mov dword [ecx + 0x2080], eax
push dword [esi + 8]
call edi
call fcn.004420b6
ret
Function at 0x41c639
Capabilities:
Read file via mapping

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x10]
mov esi, ecx
push eax
xor bl, bl
call fcn.0041cbea
push dword [esp + 0x10]
xor ebp, ebp
push ebp
push 4
call dword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov dword [esi + 0x1c], eax
test eax, eax
jne 0x41c679
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x10]
mov edi, eax
add ecx, 0xfffffff0
call fcn.00401759
jmp 0x41c69a
push ebp
push ebp
push ebp
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esi + 0x20], eax
test eax, eax
je 0x41c663
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffff0
call fcn.00401759
mov edi, ebp
test edi, edi
jne 0x41c6b8
mov eax, dword [esi + 0x20]
push ecx
add eax, 4
push eax
lea eax, [esi + 8]
push eax
call fcn.0041cd65
mov ecx, esi
call fcn.0041cad1
mov bl, 1
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.0041cc29
push dword [esp + 0x14]
push ebp
push 2
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov esi, eax
test esi, esi
je 0x41c6e5
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
call fcn.00401759
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
pop ecx
pop ecx
ret

Function at 0x41d08f
Capabilities:
Query environment variable

Disassembly:
push 4
mov eax, 0x444e6d
call fcn.004420ed
xor ecx, ecx
mov ebx, 0x104
push 2
pop edx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042e934
mov esi, eax
pop ecx
mov dword [ebp - 0x10], esi
xor edi, edi
jmp 0x41d0f2
cmp eax, ebx
jb 0x41d121
or dword [ebp - 4], 0xffffffff
add ebx, ebx
push 2
pop eax
push eax
push esi
call fcn.0042ee03
xor ecx, ecx
mov eax, ebx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042e934
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x10], esi
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 4], edi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x41d0c0
mov edi, 0xcb
push 2
pop eax
push eax
push esi
call fcn.0042ee03
pop ecx
pop ecx
mov eax, edi
call fcn.004420b6
ret 8
mov ecx, dword [ebp + 0xc]
push esi
call fcn.00402a22
jmp 0x41d10b
Function at 0x41da0a
Capabilities:
Query or enumerate registry value

Disassembly:
push 8
mov eax, 0x444f93
call fcn.004420ed
mov edi, ecx
cmp dword [edi + 4], 0
jne 0x41da22
xor al, al
jmp 0x41da91
xor ebx, ebx
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
push ebx
push ebx
push ebx
push dword [eax]
mov dword [ebp - 0x10], ebx
push dword [edi + 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x41da1e
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x41da1e
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0042e934
mov esi, eax
pop ecx
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x10]
mov dword [ebp - 4], ebx
push eax
mov eax, dword [ebp + 8]
push esi
push ebx
push ebx
push dword [eax]
push dword [edi + 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x41da88
mov ecx, dword [ebp + 0xc]
push esi
call fcn.00402a22
mov bl, 1
push esi
call fcn.0042e92f
pop ecx
mov al, bl
call fcn.004420b6
ret 8

Function at 0x41db4d
Capabilities:
Set registry value

Disassembly:
cmp dword [ecx + 4], 0
jne 0x41db57
xor al, al
jmp 0x41db76
mov eax, dword [esp + 4]
push 8
push dword [esp + 0xc]
push 3
push 0
push dword [eax]
push dword [ecx + 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
neg eax
sbb al, al
inc al
ret 0xc