joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4360f0
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0xb20
mov eax, dword [0x448dd0]
push ebx
mov eax, dword [eax + 0x630]
push esi
cmp eax, 4
push edi
push ebp
je 0x43611f
cmp eax, 0x10
je 0x43611f
mov eax, dword [esp + 0xb34]
push eax
call fcn.0043ee5c
add esp, 4
mov eax, dword [esp + 0xb34]
push eax
call fcn.00437d80
test eax, eax
je 0x43615c
cmp dword [esp + 0xb3c], 0
jne 0x436152
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0
push 0x36
push 0
call fcn.0043cd20
add esp, 0x14
mov eax, 1
jmp 0x436345
mov eax, dword [esp + 0xb34]
push 0
push pe_nt_image_headers32
push 3
push 0
push 1
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov ebx, eax
jne 0x436196
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0x2e
push 0xffffffffffffffff
jmp 0x43633e
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov ebp, eax
je 0x436331
cmp ebp, 0xffff
ja 0x436331
cmp ebp, 0xb1a
jb 0x436331
lea eax, [esp + 0x10]
push 0
lea ecx, [esp + 0x18]
push eax
push 0xb1a
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4361ef
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0x31
jmp 0x43633d
cmp dword [esp + 0x10], 0xb1a
je 0x43620a
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0x31
jmp 0x43633d
lea esi, [esp + 0x14]
mov edi, str.pfeTEM
mov ecx, 8
repe cmpsb byte [esi], byte es:[edi]
je 0x43622f
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0x30
push 0xffffffffffffffff
jmp 0x43633e
cmp word [esp + 0x26], 0x40
jle 0x43624d
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0x11d
push 0xffffffffffffffff
jmp 0x43633e
mov eax, dword [esp + 0x28]
and eax, 0xffff
sub eax, ebp
cmp eax, 0xfffff4e6
je 0x436275
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0x11e
push 0xffffffffffffffff
jmp 0x43633e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xb34]
push eax
push ecx
call fcn.00437e50
mov ebp, eax
test ebp, ebp
je 0x436328
lea esi, [esp + 0x14]
lea edi, [ebp + 0x117]
mov ecx, 0x2c6
push 0
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x14]
lea ecx, [ebp + 0xc31]
push eax
xor eax, eax
movsw word es:[edi], word [esi]
mov ax, word [ebp + 0x12b]
push eax
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ax, word [ebp + 0x12b]
cmp eax, dword [esp + 0x10]
je 0x4362e8
mov eax, dword [esp + 0xb34]
push eax
push ebp
push 0x31
push 0xffffffffffffffff
jmp 0x43633e
mov eax, dword [esp + 0xb38]
mov dword [ebp + 0x111], eax
mov ecx, dword [0x448dd0]
mov dword [ecx + 0x3460], ebp
cmp dword [0x448e30], 0
je 0x436321
mov eax, dword [0x448e30]
test byte [eax + 0xe60], 1
jne 0x436321
push 1
push 9
call fcn.0043b1e0
mov eax, 1
jmp 0x436345
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x436343
mov eax, dword [esp + 0xb34]
push eax
push 0
push 0x2f
push ebx
call fcn.00436a70
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xb20
ret 0xc
Function at 0x436f90
Capabilities:
Get graphical window text

Disassembly:
mov ecx, dword [esp + 8]
push esi
movzx eax, cx
push edi
cmp eax, 0x64
jg 0x436fac
je 0x436fe9
cmp eax, 2
je 0x436fd2
xor eax, eax
pop edi
pop esi
ret 0xc
cmp eax, 0x70
je 0x43708b
cmp eax, 0x6a5
je 0x4370b1
cmp eax, 0x6a6
je 0x4370f0
xor eax, eax
pop edi
pop esi
ret 0xc
mov edi, dword [esp + 0xc]
push 0
push edi
call dword [sym.imp.USER32.dll_EndDialog]
mov eax, 1
pop edi
pop esi
ret 0xc
mov eax, dword [0x448dd0]
mov ecx, dword [0x448e30]
mov edx, dword [eax + 0x3460]
mov dword [ecx + 0xe7c], edx
mov ecx, dword [0x448e30]
mov eax, dword [ecx + 0xe7c]
cmp dword [eax + 0x111], 0
je 0x437033
add eax, 8
push eax
push 0
push 0x24
push 0x41
push 0
call fcn.0043cd20
add esp, 0x14
cmp eax, 6
je 0x43706a
cmp eax, 7
je 0x437081
push 0x10
mov eax, dword [0x448e30]
add eax, 0x216
mov edi, dword [esp + 0x10]
push eax
push 0x6a6
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
push 1
push edi
call dword [sym.imp.USER32.dll_EndDialog]
mov eax, 1
pop edi
pop esi
ret 0xc
mov eax, dword [0x448e30]
mov ecx, dword [eax + 0xe7c]
mov dword [ecx + 0x111], 0
jmp 0x437033
mov eax, 1
pop edi
pop esi
ret 0xc
push 0x11
mov eax, dword [0x448dd0]
push 1
add eax, 0x20a
push eax
mov ecx, dword [0x448dc8]
push ecx
call dword [sym.imp.USER32.dll_WinHelpA]
mov eax, 1
pop edi
pop esi
ret 0xc
shr ecx, 0x10
cmp cx, 1
je 0x4370c1
xor eax, eax
pop edi
pop esi
ret 0xc
mov edi, dword [esp + 0xc]
push 1
push 0x64
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push edi
call esi
push eax
push 0x6a6
push edi
call esi
push eax
mov eax, dword [esp + 0x20]
push eax
call fcn.00437c30
mov eax, 1
pop edi
pop esi
ret 0xc
shr ecx, 0x10
movzx eax, cx
cmp eax, 1
je 0x437107
cmp eax, 5
je 0x437127
xor eax, eax
pop edi
pop esi
ret 0xc
mov edi, dword [esp + 0xc]
push 1
push 0x64
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, 1
pop edi
pop esi
ret 0xc
mov edi, dword [esp + 0xc]
push 0x6a6
push edi
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
test eax, eax
je 0x43715c
push 1
push 0x64
push edi
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, 1
pop edi
pop esi
ret 0xc
push 0
push 0x64
push edi
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, 1
pop edi
pop esi
ret 0xc

Function at 0x4392c0
Capabilities:
Get graphical window text

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0xc
lea eax, [esp + 4]
push 8
push eax
push 0xdb0
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea ecx, [esp]
lea edx, [esp + 4]
push ecx
push edx
call fcn.0043d270
test eax, eax
je 0x43930f
cmp dword [esp], 0
je 0x43930f
cmp dword [esp], 0xff
jg 0x43930f
mov eax, dword [esp]
add esp, 0xc
ret 4
mov eax, 0xffffffff
add esp, 0xc
ret 4
Function at 0x43a940
Capabilities:
Hide graphical window

Disassembly:
push esi
push edi
mov esi, dword [0x448dd0]
push 0
mov eax, dword [esi + 0x920]
add esi, 0x920
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call edi
mov ax, word [esp + 0xc]
mov ecx, dword [0x448dd0]
mov dword [ecx + 0x348c], 0
mov ecx, dword [0x448dd0]
mov word [ecx + 0x3490], ax
xor ecx, ecx
mov edx, dword [0x448dd0]
mov cx, word [edx + 0x3490]
cmp ecx, 0x10
je 0x43a99a
mov eax, dword [esi + 4]
jmp 0x43a99d
mov eax, dword [esi + 8]
cmp dword [esp + 0x10], 0
mov dword [esi], eax
je 0x43a9bc
mov eax, dword [0x448dd0]
push 8
mov dword [eax + 0x348c], 1
mov ecx, dword [esi]
push ecx
call edi
call fcn.004140d0
call fcn.0043acc0
pop edi
pop esi
ret 8

Function at 0x43d960
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x43d97c
test al, 0x10
je 0x43d97c
mov eax, 1
ret 4
xor eax, eax
ret 4

Function at 0x43d990
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x43d9ac
test al, 0x10
jne 0x43d9ac
mov eax, 1
ret 4
xor eax, eax
ret 4

Function at 0x43de60
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x2c
lea eax, [esp]
push esi
push edi
push eax
push 0x20019
push 0
push str.Keyboard_Layout
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x43de8d
xor eax, eax
pop edi
pop esi
add esp, 0x2c
ret
lea eax, [esp + 0x10]
lea ecx, [esp + 0x14]
lea edx, [esp + 0xc]
push eax
mov eax, dword [esp + 0xc]
push ecx
mov dword [esp + 0x18], 0x20
push edx
push 0
push str.Active
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov esi, eax
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x43deeb
cmp dword [esp + 0xc], 1
jne 0x43deeb
lea esi, [esp + 0x14]
mov edi, str.00000409
mov ecx, 9
repe cmpsb byte [esi], byte es:[edi]
jne 0x43deeb
mov eax, 1
pop edi
pop esi
add esp, 0x2c
ret
xor eax, eax
pop edi
pop esi
add esp, 0x2c
ret

Function at 0x43dfe0
Capabilities:
Get file attributes

Disassembly:
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
inc eax
cmp eax, 1
sbb eax, eax
inc eax
ret 4
Function at 0x43eb00
Capabilities:
Get graphical window text

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
push edi
push ebp
push 0xd48
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, eax
push 0
push 0
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0xb
push edi
call ebx
push 0
push 0
push 0x184
push edi
call ebx
mov eax, dword [0x448dd0]
mov esi, dword [eax + 0x6a4]
test esi, esi
je 0x43eba2
xor ebp, ebp
mov eax, dword [esi + 0x18]
cmp dword [0x448c00], ebp
je 0x43eb55
cmp dword [eax + 0xe64], ebp
je 0x43eb9b
mov eax, dword [eax + 0x228]
test dword [0x44c9e0], eax
je 0x43eb9b
push 0x400
mov eax, dword [0x448dd0]
add eax, 0x77e8
mov ecx, dword [esi + 0x20]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov eax, dword [0x448dd0]
add eax, 0x77e8
push eax
push ebp
push 0x180
push edi
call ebx
push esi
push eax
push 0x19a
push edi
call ebx
mov esi, dword [esi + 8]
test esi, esi
jne 0x43eb42
push 0
push 1
push 0xb
push edi
call ebx
push 1
push 0
push edi
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esp + 0x14]
push 0
push 0x64
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
pop ebp
pop edi
pop esi
pop ebx
ret 4

Function at 0x43ebd3
Capabilities:
Accept command line arguments
Query environment variable
Terminate process

Disassembly:
mov eax, dword fs:[0]
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44a058
push 0x440ba8
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [0x44ca0c], eax
mov al, ah
and eax, 0xff
mov dword [0x44ca18], eax
mov eax, dword [0x44ca0c]
shr dword [0x44ca0c], 0x10
and eax, 0xff
mov dword [0x44ca14], eax
shl eax, 8
add eax, dword [0x44ca18]
mov dword [0x44ca10], eax
call fcn.00440a99
mov dword [ebp - 4], 0
call fcn.004409ab
call fcn.004409a0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x4496e0], eax
call fcn.0044050e
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
mov dword [0x44c9e4], eax
call fcn.00440443
call fcn.0043f583
mov esi, dword [0x4496e0]
mov al, byte [esi]
cmp al, 0x22
je 0x43ec87
cmp al, 0x20
jbe 0x43ecb3
inc esi
cmp byte [esi], 0x20
ja 0x43ec7f
jmp 0x43ecb3
inc esi
cmp byte [esi], 0x22
je 0x43ecb2
mov bl, byte [ebp - 0x28]
mov bl, byte [esi]
test bl, bl
je 0x43ecad
movzx eax, bl
push eax
call fcn.004403cd
add esp, 4
test eax, eax
je 0x43eca7
inc esi
inc esi
cmp byte [esi], 0x22
jne 0x43ec90
cmp byte [esi], 0x22
jne 0x43ecb3
inc esi
cmp byte [esi], 0
je 0x43ecc3
cmp byte [esi], 0x20
ja 0x43ecc3
inc esi
cmp byte [esi], 0
jne 0x43ecb8
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
test byte [ebp - 0x44], 1
mov eax, 0xa
je 0x43ece3
movzx eax, word [ebp - 0x40]
push eax
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call main
push eax
call fcn.0043f5b3
jmp 0x43ed1f
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
pop edi
mov dword fs:[0], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x43f5f3
Capabilities:
Terminate process

Disassembly:
mov dword [0x44ca44], 1
cmp dword [esp + 8], 0
push ebx
push esi
mov ebx, dword [esp + 0x14]
mov byte [0x44ca40], bl
jne 0x43f64f
cmp dword [0x4496dc], 0
je 0x43f63d
mov esi, dword [0x4496d4]
sub esi, 4
cmp dword [0x4496dc], esi
ja 0x43f63d
mov eax, dword [esi]
test eax, eax
je 0x43f632
call eax
sub esi, 4
cmp dword [0x4496dc], esi
jbe 0x43f62a
push 0x44d87c
push 0x44d878
call fcn.0043f672
add esp, 8
push 0x44d884
push 0x44d880
call fcn.0043f672
add esp, 8
test ebx, ebx
jne 0x43f66f
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_ExitProcess]
pop esi
pop ebx
ret
Function at 0x43fac9
Capabilities:
Move file

Disassembly:
push dword [esp + 8]
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
mov eax, 0
jne 0x43fae6
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x43fafa
push eax
call fcn.0044196a
add esp, 4
mov eax, 0xffffffff
jmp 0x43fafc
xor eax, eax
ret

Function at 0x441426
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x44148d
push ebx
call fcn.00441519
add esp, 4
test eax, eax
jne 0x44145f
mov dword [0x44ca04], 0xf
mov dword [0x44ca00], 0xd
jmp 0x441510
add bl, 0x40
lea eax, [ebp - 8]
push eax
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x10c]
lea ebx, [ebp - 4]
mov byte [ebp - 3], 0x3a
mov byte [ebp - 2], 0x2e
mov byte [ebp - 1], 0
push ecx
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
jmp 0x44149f
lea eax, [ebp - 0x10c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x441510
inc eax
cmp eax, 0x104
ja 0x441510
mov edx, dword [ebp + 0xc]
test edx, edx
jne 0x4414d6
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
jg 0x4414bb
mov eax, ecx
push eax
call fcn.00441274
add esp, 4
mov edx, eax
test edx, edx
jne 0x4414e7
mov dword [0x44ca00], 0xc
jmp 0x441510
cmp eax, dword [ebp + 0x10]
jle 0x4414e7
mov dword [0x44ca00], 0x22
jmp 0x441510
lea edi, [ebp - 0x10c]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, edx
jmp 0x441512
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x441571
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push esi
lea eax, [ebp - 0x104]
xor esi, esi
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x4415af
cmp byte [ebp - 0x103], 0x3a
jne 0x4415af
movzx eax, byte [ebp - 0x104]
push eax
call fcn.0043fb80
add esp, 4
lea esi, [eax - 0x40]
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x443042
Capabilities:
Set environment variable

Disassembly:
sub esp, 4
push ebx
push esi
mov esi, dword [esp + 0x10]
push edi
push ebp
test esi, esi
je 0x443232
push 0x3d
push esi
call fcn.004438f0
add esp, 8
mov ebp, eax
test ebp, ebp
je 0x443232
cmp ebp, esi
je 0x443232
cmp byte [ebp + 1], 1
sbb eax, eax
mov ecx, dword [0x44ca2c]
neg eax
mov dword [esp + 0x10], eax
cmp dword [0x44ca28], ecx
jne 0x44309f
mov eax, dword [0x44ca28]
push eax
call fcn.0044329c
add esp, 4
mov dword [0x44ca28], eax
cmp dword [0x44ca28], 0
jne 0x44312e
cmp dword [esp + 0x1c], 0
je 0x4430ca
cmp dword [0x44ca30], 0
je 0x4430ca
call fcn.00442309
test eax, eax
je 0x44312e
jmp 0x443232
cmp dword [esp + 0x10], 0
je 0x4430d8
xor eax, eax
jmp 0x443237
cmp dword [0x44ca28], 0
jne 0x443103
push 4
call fcn.00441274
add esp, 4
mov dword [0x44ca28], eax
test eax, eax
je 0x443232
mov eax, dword [0x44ca28]
mov dword [eax], 0
cmp dword [0x44ca30], 0
jne 0x44312e
push 4
call fcn.00441274
add esp, 4
mov dword [0x44ca30], eax
test eax, eax
je 0x443232
mov eax, dword [0x44ca30]
mov dword [eax], 0
mov edi, dword [0x44ca28]
sub ebp, esi
push ebp
push esi
call fcn.0044323f
add esp, 8
mov ebx, eax
test ebx, ebx
jl 0x443184
cmp dword [edi], 0
je 0x443184
cmp dword [esp + 0x10], 0
je 0x44317f
lea eax, [edi + ebx*4]
cmp dword [eax], 0
je 0x443168
mov ecx, dword [eax + 4]
inc ebx
mov dword [eax], ecx
add eax, 4
cmp dword [eax], 0
jne 0x44315a
lea eax, [ebx*4]
push eax
push edi
call fcn.004436b2
add esp, 8
test eax, eax
je 0x4431bf
jmp 0x4431ba
mov dword [edi + ebx*4], esi
jmp 0x4431bf
cmp dword [esp + 0x10], 0
jne 0x44322e
test ebx, ebx
jge 0x443195
neg ebx
lea eax, [ebx*4 + 8]
push eax
push edi
call fcn.004436b2
add esp, 8
test eax, eax
je 0x443232
lea ecx, [eax + ebx*4]
mov dword [ecx], esi
mov dword [ecx + 4], 0
mov dword [0x44ca28], eax
cmp dword [esp + 0x1c], 0
je 0x44322a
mov edi, esi
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
inc ecx
push ecx
call fcn.00441274
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x44322a
mov edi, esi
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [esp + 0x10], 1
sbb eax, eax
lea ecx, [ebp + ebx]
mov ebp, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov byte [ecx], 0
lea ecx, [ecx + 1]
and eax, ecx
push eax
push ebx
call ebp
push ebx
call fcn.00440d24
add esp, 4
xor eax, eax
jmp 0x443237
xor eax, eax
jmp 0x443237
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 4
ret
Function at 0x446f60
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
push 0xf00021
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [esi + 0xc]
sub eax, edx
push eax
mov eax, dword [esi + 8]
sub eax, ecx
push eax
push edx
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.GDI32.dll_PatBlt]
mov edi, dword [ebp + 8]
push edi
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov ebx, eax
lea eax, [eax*2 + 0xd]
and eax, 0xfffffffc
call fcn.004475d4
mov dword [ebp - 4], esp
cmp dword [ebp - 4], 0
je 0x447030
add ebx, 4
mov eax, dword [ebp - 4]
push ebx
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowTextW]
test eax, eax
je 0x447030
mov bx, 0x140
mov edi, dword [ebp + 0x14]
mov eax, edi
and al, 0xf
cmp al, 0xc
je 0x446fdf
mov ebx, edi
and bx, 0xf
or bx, 0x150
test edi, 0x80
je 0x446fea
or bh, 8
and edi, 0x8000000
je 0x447005
mov eax, dword [0x449740]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov dword [ebp - 8], eax
mov eax, ebx
mov ecx, dword [ebp - 4]
and eax, 0xffff
mov edx, dword [ebp + 0xc]
push eax
push esi
push 0xffffffffffffffff
push ecx
push edx
call dword [sym.imp.USER32.dll_DrawTextW]
test edi, edi
je 0x447030
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
lea esp, [ebp - 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4473f0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword [esp + 8]
push ebx
push esi
push edi
mov esi, dword [esp + 0x10]
push ebp
push 2
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x447415
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
ret 0x20
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
test esi, esi
jne 0x447436
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
ret 0x20
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebp, eax
test ebp, ebp
jne 0x44744e
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
ret 0x20
mov edi, ebp
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov cl, dh
mov eax, edx
shl ecx, 8
xor ebx, ebx
shr eax, 0x10
mov bl, al
xor eax, eax
or ecx, ebx
mov al, dl
shl eax, 0x10
mov edx, dword [esp + 0x24]
or ecx, eax
mov eax, edx
shr eax, 0x10
xor ebx, ebx
mov bl, al
mov dword [ebp + 0x28], ecx
xor ecx, ecx
xor eax, eax
mov cl, dh
mov al, dl
shl ecx, 8
shl eax, 0x10
or ecx, ebx
or ecx, eax
mov eax, dword [esp + 0x20]
mov dx, ax
xor ebx, ebx
shr eax, 0x10
mov dword [ebp + 0x44], ecx
xor ecx, ecx
mov bl, al
mov cl, dh
xor eax, eax
shl ecx, 8
mov al, dl
shl eax, 0x10
or ecx, ebx
or ecx, eax
mov eax, dword [esp + 0x28]
mov dx, ax
xor ebx, ebx
shr eax, 0x10
mov dword [ebp + 0x48], ecx
xor ecx, ecx
mov bl, al
mov cl, dh
shl ecx, 8
or ecx, ebx
xor eax, eax
mov al, dl
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x2c]
mov dx, ax
xor ebx, ebx
shr eax, 0x10
mov dword [ebp + 0x64], ecx
xor ecx, ecx
mov bl, al
mov cl, dh
xor eax, eax
shl ecx, 8
mov al, dl
shl eax, 0x10
or ecx, ebx
or ecx, eax
mov eax, dword [esp + 0x30]
mov dx, ax
xor ebx, ebx
shr eax, 0x10
mov dword [ebp + 0x54], ecx
xor ecx, ecx
mov bl, al
mov cl, dh
xor eax, eax
shl ecx, 8
mov al, dl
shl eax, 0x10
or ecx, ebx
or ecx, eax
push 0
mov dword [ebp + 0x50], ecx
call dword [sym.imp.USER32.dll_GetDC]
mov edi, eax
push 0
push ebp
lea eax, [ebp + 0x68]
push eax
push 4
push ebp
push edi
call dword [sym.imp.GDI32.dll_CreateDIBitmap]
mov esi, eax
push edi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, esi
pop ebp
pop edi
pop esi
pop ebx
ret 0x20

Function at 0x447564
Capabilities:
Delete file

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
mov eax, 0
jne 0x44757d
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x447591
push eax
call fcn.0044196a
add esp, 4
mov eax, 0xffffffff
jmp 0x447593
xor eax, eax
ret

Function at 0x4475a1
Capabilities:
Create directory

Disassembly:
push 0
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
mov eax, 0
jne 0x4475bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4475d0
push eax
call fcn.0044196a
add esp, 4
mov eax, 0xffffffff
jmp 0x4475d2
xor eax, eax
ret
Function at 0x408935
Capabilities:
Encode data using xor

Disassembly:
push 0x4085d8
mov ebx, dword [esp]
add esp, 4
call fcn.00408950
and esi, esi
xor dword [edx], ebx
inc edx
cmp edx, edi
jne fcn.00408935
dec esi
ret