joyce8/EMBER2024-capa huggingface dataset:
Function at 0x102d15c
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push esi
xor esi, esi
push edi
mov edi, ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [edi + 0x1c8], esi
jne 0x102d17e
xor eax, eax
jmp 0x102d27b
push ebx
push 0xc
lea eax, [ebp - 0x10]
push esi
push eax
call sub.ole32.dll_CoInitialize
add esp, 0xc
lea eax, [ebp - 0x10]
mov dword [ebp - 4], esi
push eax
lea eax, [ebp - 4]
push eax
push dword [edi + 0x1c8]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push 0xffffffffffffffff
push 0x1002a08
mov ecx, edi
mov ebx, eax
call fcn.01039de1
cmp dword [ebp - 4], esi
je 0x102d278
lea ecx, [ebp - 0x2c]
call fcn.01037a1e
push dword [ebp - 4]
lea eax, [ebp - 0x2c]
push 0x10029ec
push eax
call fcn.01038351
add esp, 0xc
test byte [ebp - 4], 0x10
je 0x102d1ed
push 0x10029e0
lea ecx, [ebp - 0x2c]
call fcn.01037dec
test byte [ebp - 4], 8
je 0x102d200
push 0x10029d4
lea ecx, [ebp - 0x2c]
call fcn.01037dec
test byte [ebp - 3], 0x80
je 0x102d213
push 0x10029c8
lea ecx, [ebp - 0x2c]
call fcn.01037dec
test byte [ebp - 4], 2
je 0x102d226
push 0x10029bc
lea ecx, [ebp - 0x2c]
call fcn.01037dec
test byte [ebp - 4], 1
je 0x102d239
push 0x10029b0
lea ecx, [ebp - 0x2c]
call fcn.01037dec
test byte [ebp - 4], 4
je 0x102d24c
push 0x10029a0
lea ecx, [ebp - 0x2c]
call fcn.01037dec
test byte [ebp - 3], 1
je 0x102d25f
push 0x1002994
lea ecx, [ebp - 0x2c]
call fcn.01037dec
push dword [ebp - 0x28]
push 0xff
push edi
call fcn.01039fe8
add esp, 0xc
lea ecx, [ebp - 0x2c]
call fcn.01037a70
mov eax, ebx
pop ebx
pop edi
pop esi
leave
ret
Function at 0x102d794
Capabilities:
Create process on windows

Disassembly:
push esi
push edi
mov esi, ecx
xor edi, edi
push 0x101f108
mov dword [esi + 0x854], edi
mov dword [esi + 0x858], edi
mov dword [esi + 0x85c], edi
mov dword [esi + 0x860], edi
mov dword [esi + 0x864], edi
mov dword [esi + 0x868], edi
mov dword [esi + 0x86c], edi
mov dword [esi + 0x870], edi
mov dword [esi + 0x874], edi
mov dword [esi + 0x878], edi
mov dword [esi + 0x87c], edi
mov dword [esi + 0x880], edi
mov dword [esi + 0x884], edi
mov dword [esi + 0x888], edi
mov dword [esi + 0x88c], edi
mov dword [esi + 0x890], edi
mov dword [esi + 0x894], edi
mov dword [esi + 0x898], edi
mov dword [esi + 0x89c], edi
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
cmp eax, edi
mov dword [esi + 0x854], eax
je 0x102d97c
mov edi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0x1003168
push eax
call edi
push 0x10032ac
mov dword [esi + 0x858], eax
push dword [esi + 0x854]
call edi
push 0x100329c
mov dword [esi + 0x85c], eax
push dword [esi + 0x854]
call edi
push 0x1003290
mov dword [esi + 0x860], eax
push dword [esi + 0x854]
call edi
push 0x1003280
mov dword [esi + 0x864], eax
push dword [esi + 0x854]
call edi
push 0x1003274
mov dword [esi + 0x868], eax
push dword [esi + 0x854]
call edi
push 0x1003264
mov dword [esi + 0x86c], eax
push dword [esi + 0x854]
call edi
push 0x100324c
mov dword [esi + 0x870], eax
push dword [esi + 0x854]
call edi
push 0x100323c
mov dword [esi + 0x874], eax
push dword [esi + 0x854]
call edi
push 0x1003220
mov dword [esi + 0x878], eax
push dword [esi + 0x854]
call edi
push 0x1003210
mov dword [esi + 0x87c], eax
push dword [esi + 0x854]
call edi
push 0x10031f8
mov dword [esi + 0x880], eax
push dword [esi + 0x854]
call edi
push 0x10031e4
mov dword [esi + 0x884], eax
push dword [esi + 0x854]
call edi
push 0x10031c8
mov dword [esi + 0x888], eax
push dword [esi + 0x854]
call edi
push 0x10031b8
mov dword [esi + 0x88c], eax
push dword [esi + 0x854]
call edi
push 0x10031a0
mov dword [esi + 0x890], eax
push dword [esi + 0x854]
call edi
push 0x1003190
mov dword [esi + 0x894], eax
push dword [esi + 0x854]
call edi
push 0x1003180
mov dword [esi + 0x898], eax
push dword [esi + 0x854]
call edi
mov dword [esi + 0x89c], eax
pop edi
pop esi
ret
Function at 0x102e692
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0x1c]
call fcn.01037a1e
mov eax, dword [ebp + 8]
xor ebx, ebx
cmp eax, ebx
jne 0x102e6b3
mov eax, 0x10015b4
push eax
lea eax, [ebp - 0x1c]
push 0x1003364
push eax
call fcn.010383ab
mov edi, dword [ebp + 0xc]
add esp, 0xc
cmp edi, 0x4e20
jb 0x102e6e9
cmp edi, 0x4e34
ja 0x102e6e9
push dword [edi*4 + 0x100b9f4]
lea ecx, [ebp - 0x1c]
call fcn.01037dec
jmp 0x102e74b
push ebx
lea eax, [ebp + 8]
push ebx
push eax
push 0x409
push edi
push ebx
push 0x1100
mov dword [ebp + 8], ebx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp dword [ebp + 8], ebx
je 0x102e74b
push dword [ebp + 8]
lea ecx, [ebp - 0x1c]
call fcn.01037dec
mov eax, dword [ebp - 0x10]
cmp eax, 2
jb 0x102e742
mov ecx, dword [ebp - 0x18]
push 0x1003360
lea eax, [eax + ecx - 2]
push eax
call dword [sym.imp.KERNEL32.dll_GetStringTypeA]
test eax, eax
jne 0x102e742
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
add eax, 0xfffffffe
push eax
call fcn.01037dcf
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_RtlUnwind]
push edi
lea eax, [ebp - 0x1c]
push 0x1003354
push eax
call fcn.01038351
add esp, 0xc
mov ebx, 0x3e5
test edi, edi
je 0x102e77f
cmp edi, ebx
je 0x102e77f
push dword [ebp - 0x18]
push 0x1001f20
push 0xff
push esi
call fcn.01039fe8
jmp 0x102e792
push dword [ebp - 0x18]
push 0x1001f20
push 0xff00ff
push esi
call fcn.0103a027
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
add esp, 0x10
mov dword [esi + 0xc], eax
test ecx, ecx
je 0x102e805
test edi, edi
je 0x102e805
cmp edi, ebx
je 0x102e805
mov eax, dword [esi + 0x1c]
cmp eax, 6
jb 0x102e805
cmp eax, 7
jbe 0x102e7f3
cmp eax, 8
je 0x102e7e9
cmp eax, 9
je 0x102e7df
cmp eax, 0xa
je 0x102e7d5
cmp eax, 0xe
jne 0x102e805
push dword [ebp - 0x18]
call fcn.0102e52e
jmp 0x102e805
push dword [ebp - 0x18]
call fcn.0102e88c
jmp 0x102e805
push dword [ebp - 0x18]
call fcn.0102e814
jmp 0x102e805
push dword [ebp - 0x18]
call fcn.0102e850
jmp 0x102e805
push 1
call fcn.0102e904
push dword [ebp - 0x18]
mov ecx, dword [esi + 0x14]
call fcn.0102e8c8
lea ecx, [ebp - 0x1c]
call fcn.01037a70
pop edi
pop esi
pop ebx
leave
ret 8

Function at 0x102efdf
Capabilities:
Set file attributes

Disassembly:
push esi
push edi
xor edi, edi
mov esi, ecx
push edi
push edi
push 1
push edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
cmp eax, edi
mov dword [esi + 0x28], eax
jne 0x102f014
push 0xffffffffffffffff
push 0x10036f0
mov ecx, esi
call fcn.01039de1
pop edi
pop esi
ret
Function at 0x1032b96
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
xor eax, eax
cmp dword [edi + 0x208], ebx
mov dword [ebp - 4], ebx
sete al
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x1032bbc
mov dword [eax], ebx
cmp dword [edi + 0x208], ebx
jne 0x1032be5
mov eax, dword [edi]
mov ebx, dword [edi + 0x210]
lea esi, [edi + 0x210]
mov ecx, edi
mov dword [esi], 1
call dword [eax + 0x60]
test eax, eax
mov dword [esi], ebx
je 0x1032c42
xor ebx, ebx
push 0x101f540
mov ecx, edi
call fcn.01032cd6
mov esi, eax
cmp esi, ebx
je 0x1032c33
cmp dword [esi + 0x10], ebx
jbe 0x1032c1f
cmp dword [ebp + 8], ebx
je 0x1032c1f
cmp dword [ebp + 0xc], ebx
jbe 0x1032c1f
mov eax, dword [esi + 0x14]
push dword [ebp + 0xc]
add eax, esi
mov dword [ebp - 4], 1
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x1032c2b
mov ecx, dword [esi + 0x10]
mov dword [eax], ecx
push ebx
push ebx
push esi
call fcn.0102bdaf
cmp dword [ebp - 8], ebx
je 0x1032c3f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 0xc

Function at 0x1033bc4
Capabilities:
Create process on windows

Disassembly:
push esi
mov esi, ecx
push 0x1005744
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
and dword [esi + 0x1c8], 0
lea ecx, [esi + 0x1cc]
mov dword [esi + 0x1c4], eax
call fcn.0102f038
pop esi
ret
Function at 0x1033c09
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0x1c]
call fcn.01037a1e
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x1033c27
mov eax, 0x10015b4
push eax
lea eax, [ebp - 0x1c]
push 0x1003364
push eax
call fcn.010383ab
mov edi, dword [ebp + 8]
add esp, 0xc
test edi, edi
mov dword [esi + 4], edi
je 0x1033d49
and dword [ebp + 0xc], 0
cmp edi, 0xffff0000
jbe 0x1033c5c
mov eax, edi
and eax, 0xffff
jmp 0x1033c70
test edi, 0x10000000
lea eax, [edi + 0x7000f000]
jne 0x1033c70
lea eax, [edi - 0x7fff2000]
push 0
lea ecx, [ebp + 0xc]
push 0
push ecx
push 0x400
push eax
push dword [esi + 0x1c4]
push 0x1900
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp dword [ebp + 0xc], 0
je 0x1033cd7
push dword [ebp + 0xc]
lea ecx, [ebp - 0x1c]
call fcn.01037dec
mov eax, dword [ebp - 0x10]
cmp eax, 2
jb 0x1033cce
mov ecx, dword [ebp - 0x18]
push 0x1003360
lea eax, [eax + ecx - 2]
push eax
call dword [sym.imp.KERNEL32.dll_GetStringTypeA]
test eax, eax
jne 0x1033cce
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
add eax, 0xfffffffe
push eax
call fcn.01037dcf
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_RtlUnwind]
push edi
lea eax, [ebp - 0x1c]
push 0x1003354
push eax
call fcn.01038351
add esp, 0xc
test edi, edi
push dword [ebp - 0x18]
push 0xff
push esi
jl 0x1033cfd
call fcn.0103a027
jmp 0x1033d02
call fcn.01039fe8
add esp, 0xc
test edi, edi
jge 0x1033d49
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x1033d49
mov esi, dword [esi + 0x1c]
sub esi, 8
je 0x1033d41
dec esi
je 0x1033d37
dec esi
je 0x1033d2d
sub esi, 4
jne 0x1033d49
push dword [ebp - 0x18]
call fcn.0102e52e
jmp 0x1033d49
push dword [ebp - 0x18]
call fcn.0102e88c
jmp 0x1033d49
push dword [ebp - 0x18]
call fcn.0102e814
jmp 0x1033d49
push dword [ebp - 0x18]
call fcn.0102e850
lea ecx, [ebp - 0x1c]
call fcn.01037a70
xor eax, eax
test edi, edi
pop edi
pop esi
sete al
leave
ret 8

Function at 0x1033d5e
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, dword [ebp + 8]
test edi, edi
mov dword [ecx + 4], edi
je 0x1033e11
and dword [ebp + 8], 0
cmp edi, 0xffff0000
push esi
jbe 0x1033d86
mov eax, edi
and eax, 0xffff
jmp 0x1033d9a
test edi, 0x10000000
lea eax, [edi + 0x7000f000]
jne 0x1033d9a
lea eax, [edi - 0x7fff2000]
push 0
lea edx, [ebp + 8]
push 0
push edx
push 0x400
push eax
push dword [ecx + 0x1c4]
push 0x1900
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp dword [ebp + 8], 0
mov esi, dword [ebp + 0xc]
je 0x1033e01
push dword [ebp + 8]
mov ecx, esi
call fcn.01037cb7
mov eax, dword [esi + 0xc]
cmp eax, 2
jb 0x1033df8
mov ecx, dword [esi + 4]
push 0x1003360
lea eax, [ecx + eax - 2]
push eax
call dword [sym.imp.KERNEL32.dll_GetStringTypeA]
test eax, eax
jne 0x1033df8
mov eax, dword [esi + 0xc]
mov ecx, esi
dec eax
dec eax
push eax
call fcn.01037dcf
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_RtlUnwind]
push edi
push 0x1003354
push esi
call fcn.01038351
add esp, 0xc
pop esi
xor eax, eax
test edi, edi
sete al
pop edi
pop ebp
ret 8
Function at 0x1037922
Capabilities:
Read .ini file

Disassembly:
push ebx
push esi
mov esi, 0x10074b0
push edi
mov ebx, ecx
push esi
push 0xff00ff
push ebx
call fcn.0103a027
add esp, 0xc
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, eax
test edi, edi
je 0x103795c
push edi
push esi
mov ecx, ebx
call fcn.01037032
mov eax, edi
pop edi
pop esi
pop ebx
ret 0xc

Function at 0x1037ce5
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push esi
push edi
test ebx, ebx
mov esi, ecx
jne 0x1037cfc
mov eax, dword [esi + 4]
and byte [eax], bl
and dword [esi + 0xc], ebx
jmp 0x1037d34
mov edi, dword [sym.imp.KERNEL32.dll_HeapAlloc]
push ebx
call edi
cmp eax, dword [esp + 0x14]
jae 0x1037d12
push ebx
call edi
mov edi, eax
jmp 0x1037d16
mov edi, dword [esp + 0x14]
push edi
mov ecx, esi
call fcn.01037b4f
mov eax, dword [esi + 4]
test eax, eax
je 0x1037d34
lea ecx, [edi + 1]
push ecx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [esi + 0xc], edi
mov eax, esi
pop edi
pop esi
pop ebx
ret 8

Function at 0x1037e11
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push esi
push edi
test ebx, ebx
mov esi, ecx
je 0x1037e60
mov edi, dword [sym.imp.KERNEL32.dll_HeapAlloc]
push ebx
call edi
cmp eax, dword [esp + 0x14]
jae 0x1037e34
push ebx
call edi
mov edi, eax
jmp 0x1037e38
mov edi, dword [esp + 0x14]
mov eax, edi
mov ecx, esi
add eax, dword [esi + 0xc]
push eax
call fcn.01037b4f
mov eax, dword [esi + 4]
test eax, eax
je 0x1037e60
lea ecx, [edi + 1]
push ecx
mov ecx, dword [esi + 0xc]
add ecx, eax
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
add dword [esi + 0xc], edi
mov eax, esi
pop edi
pop esi
pop ebx
ret 8

Function at 0x1037ed6
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
mov esi, ecx
je 0x1037f5f
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_HeapAlloc]
call edi
mov ebx, dword [ebp + 0xc]
cmp eax, ebx
jae 0x1037efd
push dword [ebp + 8]
call edi
mov ebx, eax
mov eax, dword [esi + 0xc]
mov ecx, ebx
cmp ebx, eax
ja 0x1037f08
mov ecx, eax
lea eax, [eax + ecx + 1]
mov ecx, esi
push eax
call fcn.01037b4f
mov eax, dword [esi + 4]
test eax, eax
je 0x1037f5f
mov ecx, dword [esi + 0xc]
mov edx, ebx
cmp ebx, ecx
ja 0x1037f26
mov edx, ecx
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
inc ecx
push ecx
push eax
lea eax, [eax + edx + 1]
push eax
call edi
lea eax, [ebx + 1]
push eax
push dword [ebp + 8]
push dword [esi + 4]
call edi
mov ecx, dword [esi + 0xc]
mov edx, ebx
cmp ebx, ecx
ja 0x1037f4d
mov edx, ecx
mov eax, dword [esi + 4]
inc ecx
push ecx
lea ecx, [eax + edx + 1]
add eax, ebx
push ecx
push eax
call edi
add dword [esi + 0xc], ebx
mov eax, esi
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x1037f68
Capabilities:
Get common file path

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
mov ecx, edi
cmp edi, eax
ja 0x1037f7c
mov ecx, eax
lea eax, [eax + ecx + 1]
mov ecx, esi
push eax
call fcn.01037b4f
mov eax, dword [esi + 4]
test eax, eax
je 0x1037fdc
mov ecx, dword [esi + 0xc]
mov edx, edi
cmp edi, ecx
ja 0x1037f9a
mov edx, ecx
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
inc ecx
push ecx
push eax
lea eax, [eax + edx + 1]
push eax
call ebx
xor eax, eax
test edi, edi
jbe 0x1037fbf
mov ecx, dword [esi + 4]
mov dl, byte [esp + 0x10]
mov byte [eax + ecx], dl
inc eax
cmp eax, edi
jb 0x1037fb0
mov ecx, dword [esi + 0xc]
mov edx, edi
cmp edi, ecx
ja 0x1037fca
mov edx, ecx
mov eax, dword [esi + 4]
inc ecx
push ecx
lea ecx, [eax + edx + 1]
add eax, edi
push ecx
push eax
call ebx
add dword [esi + 0xc], edi
mov eax, esi
pop edi
pop esi
pop ebx
ret 8

Function at 0x1038553
Capabilities:
Get common file path

Disassembly:
push esi
push edi
xor edi, edi
mov esi, ecx
push edi
push edi
push dword [esi + 0x40]
mov dword [esi + 0x60], edi
call fcn.0102bdaf
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], edi
cmp eax, edi
je 0x1038591
cmp eax, 0xffffffff
je 0x1038591
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x103858e
push 0xffffffffffffffff
push 0x10027cc
mov ecx, esi
call fcn.0103859e
mov dword [esi + 0x3c], edi
add esi, 0x64
push esi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
pop edi
pop esi
ret

Function at 0x103859e
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
push esi
cmp eax, 0xffffffff
push edi
mov esi, ecx
jne 0x10385b6
call dword [sym.imp.KERNEL32.dll_VirtualFree]
xor edi, edi
mov dword [esi + 4], eax
cmp eax, edi
je 0x103867e
lea ecx, [ebp - 0x1c]
call fcn.01037a1e
mov eax, dword [ebp + 8]
mov dword [ebp + 0xc], edi
cmp eax, edi
jne 0x10385da
mov eax, 0x10015b4
push dword [esi + 4]
push eax
lea eax, [ebp - 0x1c]
push 0x1007574
push eax
call fcn.010383ab
add esp, 0x10
lea eax, [ebp + 0xc]
push edi
push edi
push eax
push 0x409
push dword [esi + 4]
push edi
push 0x1100
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp dword [ebp + 0xc], edi
je 0x1038650
push dword [ebp + 0xc]
lea ecx, [ebp - 0x1c]
call fcn.01037dec
mov eax, dword [ebp - 0x10]
cmp eax, 2
jb 0x1038647
mov ecx, dword [ebp - 0x18]
push 0x1003360
lea eax, [eax + ecx - 2]
push eax
call dword [sym.imp.KERNEL32.dll_GetStringTypeA]
test eax, eax
jne 0x1038647
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
add eax, 0xfffffffe
push eax
call fcn.01037dcf
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_RtlUnwind]
mov ecx, esi
call fcn.01038bf5
push dword [ebp - 0x18]
mov dword [esi + 0x30], 0xff
push esi
call fcn.01038b2a
mov eax, dword [esi + 0x34]
pop ecx
pop ecx
mov dword [esi + 0x30], eax
mov ecx, esi
call fcn.01038c00
lea ecx, [ebp - 0x1c]
call fcn.01037a70
xor eax, eax
cmp dword [esi + 4], edi
pop edi
pop esi
sete al
leave
ret 8
Function at 0x103868c
Capabilities:
Extract resource via kernel32 functions
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0x1c]
call fcn.01037a1e
mov eax, dword [esi + 0x40]
xor ebx, ebx
push ebx
push ebx
push eax
call fcn.0102bdaf
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x40], ebx
cmp eax, ebx
je 0x10386da
cmp eax, 0xffffffff
je 0x10386da
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x10386d7
push 0xffffffffffffffff
push 0x10027cc
mov ecx, esi
call fcn.0103859e
mov dword [esi + 0x3c], ebx
mov edi, dword [ebp + 8]
cmp edi, ebx
je 0x10387e8
push 2
push 0x10075cc
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0xc
test eax, eax
jne 0x10386fd
add edi, 2
push edi
lea ecx, [ebp - 0x1c]
call fcn.01037cb7
mov edi, dword [0x10011c8]
push 0x5c
push dword [ebp - 0x18]
call edi
pop ecx
test eax, eax
pop ecx
jne 0x1038763
lea eax, [ebp - 0x120]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
lea eax, [ebp - 0x120]
push 0x5c
push eax
call edi
pop ecx
cmp eax, ebx
pop ecx
je 0x1038740
mov byte [eax + 1], bl
cmp byte [ebp - 0x120], bl
je 0x1038763
push 1
push 0x5c
lea ecx, [ebp - 0x1c]
call fcn.01037f68
lea eax, [ebp - 0x120]
lea ecx, [ebp - 0x1c]
push eax
call fcn.01037eb1
mov eax, dword [ebp - 0x10]
push 0x154
push 0x1007594
inc eax
push 0x40
push eax
call fcn.0102bb5a
cmp eax, ebx
mov dword [esi + 0x40], eax
je 0x10387e8
push dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov eax, dword [ebp + 0xc]
push ebx
neg eax
sbb eax, eax
push 0x80
and eax, 2
inc eax
inc eax
push eax
push ebx
push 3
push 0xc0000000
push dword [esi + 0x40]
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
or edi, 0xffffffff
mov dword [esi + 0x3c], eax
cmp eax, edi
je 0x10387d8
cmp eax, ebx
je 0x10387d8
cmp dword [ebp + 0xc], ebx
je 0x10387e8
push 2
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, edi
jne 0x10387e8
push edi
push 0x1007584
jmp 0x10387e1
push edi
mov dword [esi + 0x3c], ebx
push 0x10027f0
mov ecx, esi
call fcn.0103859e
lea ecx, [ebp - 0x1c]
call fcn.01037a70
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x1038ec7
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
xor ebx, ebx
push 8
lea edi, [esi + 4]
lea eax, [esi + 0x38]
push ebx
push eax
mov dword [edi], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x10], 1
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], 0xf003f
call sub.ole32.dll_CoInitialize
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, ebx
je 0x1038f51
cmp byte [eax], bl
je 0x1038f51
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0x36
inc eax
push 0x1007790
push 0x40
push eax
call fcn.0102bb5a
cmp eax, ebx
mov dword [esi + 8], eax
je 0x1038fc6
push dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [ebp + 8]
cmp ecx, ebx
je 0x1039013
cmp ecx, 0xffffffff
je 0x1039013
mov eax, dword [esi + 8]
cmp eax, ebx
jne 0x1038f70
mov dword [edi], ecx
jmp 0x1038f8c
push edi
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp eax, ebx
mov dword [esi + 0x40], eax
jne 0x103901a
cmp dword [edi], ebx
je 0x103901a
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 4]
push ebx
push eax
push ebx
push dword [edi]
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
cmp eax, ebx
mov dword [esi + 0x40], eax
jne 0x103901a
mov eax, dword [ebp - 4]
push 0x64
push 0x1007790
inc eax
push 0x40
push eax
call fcn.0102bb5a
cmp eax, ebx
mov dword [esi + 0xc], eax
jne 0x1038fcf
mov dword [esi + 0x40], 8
jmp 0x103901a
mov ecx, dword [ebp - 4]
inc ecx
push ecx
push ebx
push eax
call sub.ole32.dll_CoInitialize
add esp, 0xc
lea eax, [esi + 0x38]
push eax
lea eax, [esi + 0x34]
push eax
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x2c]
push eax
lea eax, [esi + 0x28]
push eax
lea eax, [esi + 0x24]
push eax
lea eax, [esi + 0x20]
push eax
lea eax, [esi + 0x1c]
push eax
lea eax, [ebp - 4]
push ebx
push eax
push dword [esi + 0xc]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [esi + 0x40], eax
jmp 0x103901a
mov dword [esi + 0x40], 0x3f2
pop edi
pop esi
pop ebx
leave
ret 8