joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000a817
Capabilities:
Create process on windows
Get common file path
Set current directory

Disassembly:
push 0x89c
mov eax, 0x1000cea5
call fcn.1000b995
mov eax, dword [ebp + 8]
push 0x44
pop esi
xor ebx, ebx
push esi
mov dword [ebp - 0x854], eax
lea eax, [ebp - 0x8a8]
push ebx
push eax
mov dword [ebp - 0x850], ecx
mov byte [ebp - 0x849], bl
call sub.MSVCR100.dll_memset
xor eax, eax
push 0x10
mov word [ebp - 0x878], ax
lea eax, [ebp - 0x864]
push ebx
push eax
mov dword [ebp - 0x8a8], esi
mov dword [ebp - 0x87c], 1
call sub.MSVCR100.dll_memset
add esp, 0x18
push 7
pop edi
xor eax, eax
mov dword [ebp - 0x834], edi
mov dword [ebp - 0x838], ebx
mov word [ebp - 0x848], ax
push ebx
mov esi, 0x105
push esi
lea ecx, [ebp - 0x848]
mov dword [ebp - 4], ebx
call fcn.1000b3eb
cmp dword [ebp - 0x834], 8
mov eax, dword [ebp - 0x848]
jae 0x1000a8bb
lea eax, [ebp - 0x848]
push eax
push dword [ebp - 0x838]
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
cmp eax, ebx
je 0x1000aa62
cmp eax, dword [ebp - 0x838]
ja 0x1000aa62
xor eax, eax
mov dword [ebp - 0x818], edi
mov dword [ebp - 0x81c], ebx
mov word [ebp - 0x82c], ax
push ebx
push esi
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], 1
call fcn.1000b3eb
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1000a917
lea eax, [ebp - 0x82c]
push dword [ebp - 0x81c]
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryW]
cmp eax, ebx
je 0x1000aa51
cmp eax, dword [ebp - 0x81c]
ja 0x1000aa51
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1000a94d
lea eax, [ebp - 0x82c]
mov esi, dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
push eax
call esi
test eax, eax
je 0x1000aa51
cmp dword [ebp - 0x818], 8
mov eax, dword [ebp - 0x82c]
jae 0x1000a973
lea eax, [ebp - 0x82c]
lea ecx, [ebp - 0x864]
push ecx
lea ecx, [ebp - 0x8a8]
push ecx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x854]
push ebx
call dword [sym.imp.kernel32.dll_CreateProcessW]
cmp dword [ebp - 0x834], 8
mov edi, eax
mov eax, dword [ebp - 0x848]
jae 0x1000a9ab
lea eax, [ebp - 0x848]
push eax
call esi
cmp edi, ebx
je 0x1000a9df
push 0x186a0
push dword [ebp - 0x864]
call dword [sym.imp.USER32.dll_WaitForInputIdle]
test eax, eax
jne 0x1000aa17
mov eax, dword [ebp - 0x864]
mov ecx, dword [ebp - 0x850]
mov dword [ecx + 0x24], eax
mov byte [ebp - 0x849], 1
jmp 0x1000aa17
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x800
mov esi, eax
lea eax, [ebp - 0x810]
push ebx
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
push ebx
push 0x400
lea eax, [ebp - 0x810]
push eax
push ebx
push esi
push ebx
push 0x1000
call dword [sym.imp.kernel32.dll_FormatMessageW]
mov eax, dword [ebp - 0x85c]
mov ecx, dword [ebp - 0x850]
push ebx
mov dword [ecx + 0x28], eax
push 1
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], bl
call fcn.1000b3eb
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x848]
call fcn.1000b3eb
mov al, byte [ebp - 0x849]
jmp 0x1000aa76
push ebx
push 1
lea ecx, [ebp - 0x82c]
mov byte [ebp - 4], bl
call fcn.1000b3eb
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x848]
call fcn.1000b3eb
xor al, al
call fcn.1000ba18
ret 4
Function at 0x1000aa7e
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x258
mov eax, 0x1000cef0
call fcn.1000b995
mov edi, ecx
xor esi, esi
mov byte [ebp - 0x251], 0
cmp dword [edi + 0x20], esi
jne 0x1000acb5
mov eax, dword [edi]
xor ebx, ebx
inc ebx
sub eax, esi
mov dword [ebp - 0x25c], esi
mov dword [ebp - 0x260], ebx
je 0x1000aacd
dec eax
jne 0x1000acb5
lea eax, [ebp - 0x25c]
push eax
push ebx
push esi
push str.softwareMicrosoftWindowsCurrentVersionApp_PathsAcrobat.exe
jmp 0x1000aadb
lea eax, [ebp - 0x25c]
push eax
push ebx
push esi
push str.softwareMicrosoftWindowsCurrentVersionApp_PathsAcroRd32.exe
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp dword [ebp - 0x25c], esi
je 0x1000acb5
lea eax, [ebp - 0x264]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
push esi
push 0x1000f51c
push dword [ebp - 0x25c]
mov dword [ebp - 0x264], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, esi
jne 0x1000aca9
cmp dword [ebp - 0x260], ebx
je 0x1000ab40
cmp dword [ebp - 0x260], 2
jne 0x1000aca9
push 0x1c
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x258], eax
mov dword [ebp - 4], esi
cmp eax, esi
je 0x1000ab65
lea ecx, [ebp - 0x218]
push ecx
mov ecx, eax
call fcn.1000b3eb
jmp 0x1000ab67
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [edi + 0x20], eax
cmp byte [0x10015902], 0
je 0x1000aca2
mov edx, dword [eax + 0x14]
push 8
pop esi
cmp edx, esi
jb 0x1000ab8f
mov ecx, dword [eax]
mov dword [ebp - 0x258], ecx
jmp 0x1000ab95
mov dword [ebp - 0x258], eax
cmp edx, esi
jb 0x1000ab9d
mov ecx, dword [eax]
jmp 0x1000ab9f
mov ecx, eax
mov ebx, dword [eax + 0x10]
lea ecx, [ecx + ebx*2]
cmp edx, esi
jb 0x1000abab
mov eax, dword [eax]
push dword [sym.imp.MSVCR100.dll_towlower]
push dword [ebp - 0x258]
push ecx
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.1000b3eb
add esp, 0x14
push str.acrobat.exe
lea ecx, [ebp - 0x234]
call fcn.1000b3eb
push str.acrodbg.exe
lea ecx, [ebp - 0x250]
mov dword [ebp - 4], 1
call fcn.1000b3eb
mov eax, dword [ebp - 0x234]
mov byte [ebp - 4], 2
cmp dword [ebp - 0x220], esi
jae 0x1000ac07
lea eax, [ebp - 0x234]
mov esi, dword [ebp - 0x224]
mov edi, dword [edi + 0x20]
push esi
push 0xffffffffffffffff
push eax
mov ecx, edi
call fcn.1000b3eb
mov ebx, eax
test ebx, ebx
je 0x1000ac2e
mov dword [ebp - 0x258], esi
mov esi, str.acrord32.exe
jmp 0x1000ac64
cmp dword [ebp - 0x23c], 8
mov eax, dword [ebp - 0x250]
jae 0x1000ac43
lea eax, [ebp - 0x250]
push dword [ebp - 0x240]
mov ecx, edi
push 0xffffffffffffffff
push eax
call fcn.1000b3eb
mov ebx, eax
test ebx, ebx
je 0x1000ac7c
mov dword [ebp - 0x258], esi
mov esi, str.acrd32_d.exe
push esi
call dword [sym.imp.MSVCR100.dll_wcslen]
pop ecx
push eax
push esi
push dword [ebp - 0x258]
mov ecx, edi
push ebx
call fcn.1000b3eb
push 0
push 1
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 1
call fcn.1000b3eb
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x234]
call fcn.1000b3eb
mov byte [ebp - 0x251], 1
push dword [ebp - 0x25c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [ebp - 0x251]
call fcn.1000ba18
ret
Function at 0x1000b3eb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
pushal
call 0x1000b3fa
pop dword [ebp - 0x20]
mov eax, 0x1000b3fa
sub dword [ebp - 0x20], eax
mov dword [ebp - 0x30], 0x322c9d70
sub dword [ebp - 0x30], 0xe3da5825
mov dword [ebp - 0x2c], 0x61894c57
sub dword [ebp - 0x2c], 0x2f560012
mov dword [ebp - 0x28], 0xf63302f0
add dword [ebp - 0x28], 0x5619413e
mov dword [ebp - 0x24], 0x45ff9d1f
sub dword [ebp - 0x24], 0x45ff9d1f
lea eax, [ebp - 0x30]
push eax
mov eax, 0xd6a98a92
add eax, 0x395765fa
add eax, dword [ebp - 0x20]
call dword [eax]
mov dword [ebp - 0x30], 0xe1afd8da
sub dword [ebp - 0x30], 0x6d3d6f84
mov dword [ebp - 0x2c], 0x86b5ac3c
sub dword [ebp - 0x2c], 0x45494ac7
mov dword [ebp - 0x28], 0x5fa1fc17
add dword [ebp - 0x28], 0x3cd7055
mov dword [ebp - 0x24], 0x49993040
add dword [ebp - 0x24], 0xb666cfc0
lea ebx, [ebp - 0x30]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x20]
call dword [eax]
push 0x40
push 0x1000
push 0x37dd1
push 0
call eax
mov ecx, 0x447d
mov edi, eax
mov edx, 0x1001a400
add edx, dword [ebp - 0x20]
mov esi, 0xdd600e4e
xor dword [ebp - 4], 0x8618c68d
mov ebx, dword [edx]
xor dword [ebp - 8], 0x8b807f11
xor ebx, esi
sub dword [ebp - 0x18], 0xeab84910
mov dword [edi], ebx
sub dword [ebp - 0x14], ebx
add edi, 0xaa8c0528
add edi, 0x5573fadc
add edx, 0xb046d1d9
sub edx, 0xb046d1d5
loop 0x1000b500
add eax, 0x4dd929e5
sub eax, 0x4dd8251e
xor ebx, ebx
add ebx, eax
add eax, 0x1bcf857f
add eax, 0xe4307a86
mov ecx, 0x6a543923
add ecx, 0xa5abc6dd
add ecx, dword [ebp - 0x20]
call ebx
leave
ret

Function at 0x1000b904
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x10015820]
jne 0x1000b90e
repz ret
jmp fcn.1000c082
Function at 0x40110c
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x435030]
jne 0x401116
repz ret
jmp fcn.00401b11

Function at 0x408edc
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.004047d5
and dword [ebp - 4], 0
cmp dword [0x43778c], 0
mov ebx, eax
jne 0x408f8d
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x40903e
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x40903e
push eax
call fcn.00404763
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x43778c], eax
call esi
push eax
call fcn.00404763
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x437790], eax
call esi
push eax
call fcn.00404763
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x437794], eax
call esi
push eax
call fcn.00404763
pop ecx
mov dword [0x43779c], eax
test eax, eax
je 0x408f8d
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00404763
pop ecx
mov dword [0x437798], eax
mov eax, dword [0x437798]
cmp eax, ebx
je 0x408fe5
cmp dword [0x43779c], ebx
je 0x408fe5
push eax
call fcn.004047de
push dword [0x43779c]
mov esi, eax
call fcn.004047de
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x408fe5
test edi, edi
je 0x408fe5
call esi
test eax, eax
je 0x408fdc
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x408fdc
test byte [ebp - 0xc], 1
jne 0x408fe5
or dword [ebp + 0x10], 0x200000
jmp 0x40901e
mov eax, dword [0x437790]
cmp eax, ebx
je 0x40901e
push eax
call fcn.004047de
pop ecx
test eax, eax
je 0x40901e
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x40901e
mov eax, dword [0x437794]
cmp eax, ebx
je 0x40901e
push eax
call fcn.004047de
pop ecx
test eax, eax
je 0x40901e
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x43778c]
call fcn.004047de
pop ecx
test eax, eax
je 0x40903e
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x409040
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x40af90
Capabilities:
Set console window title

Disassembly:
sub esp, 0x428
mov eax, dword [0x435030]
xor eax, esp
mov dword [esp + 0x424], eax
mov eax, dword [0x2af009c]
push ebx
mov ebx, dword [0x2aefee8]
push esi
mov esi, dword [0x435f60]
push edi
mov edi, eax
cmp eax, 0x930
jne 0x40afd1
push str.lefovuweceh
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
mov eax, dword [0x2af009c]
mov dword [0x4378f4], esi
cmp eax, 0x114e
jne 0x40affb
push 0
call dword [sym.imp.KERNEL32.dll_HeapDestroy]
lea eax, [esp + 0x14]
push eax
push str.durinarusunavabaxomoyowev
call dword [sym.imp.KERNEL32.dll_BuildCommDCBA]
mov eax, dword [0x2af009c]
cmp eax, 0x2f
jne 0x40b01d
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x10]
push edx
push 0
lea eax, [esp + 0x3c]
push eax
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_ReadEventLogW]
call fcn.0040af00
mov ecx, dword [esp + 0x430]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040110c
add esp, 0x428
ret
Function at 0x40d21d
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x419c98]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.0040a511
mov dword [ebp - 0x14], eax
cmp dword [0x5d8584], esi
jne 0x40d310
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x40d29d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x40d3f0
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x40d3f0
push str.MessageBoxW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40d3f0
push eax
call ebx
push str.GetActiveWindow
push edi
mov dword [0x5d8584], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push edi
mov dword [0x5d8588], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x5d858c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x5d8594], eax
test eax, eax
je 0x40d30d
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x5d8590], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x40d335
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x40d328
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x40d34a
push 4
pop eax
jmp 0x40d3f2
cmp dword [ebp - 0x14], esi
je 0x40d34a
push dword [0x5d8584]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x40d32f
mov eax, dword [0x5d8590]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x40d3a8
cmp dword [0x5d8594], edi
je 0x40d3a8
push eax
call ebx
push dword [0x5d8594]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x40d3a8
test eax, eax
je 0x40d3a8
call ecx
test eax, eax
je 0x40d39d
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x40d39d
test byte [ebp - 8], 1
jne 0x40d3a8
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x40d3d8
mov eax, dword [0x5d8588]
cmp eax, edi
je 0x40d3d5
push eax
call ebx
test eax, eax
je 0x40d3d5
call eax
mov esi, eax
test esi, esi
je 0x40d3d5
mov eax, dword [0x5d858c]
cmp eax, edi
je 0x40d3d5
push eax
call ebx
test eax, eax
je 0x40d3d5
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x5d8584]
call ebx
test eax, eax
je 0x40d3f0
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x40d3f2
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004045d8
mov esp, ebp
pop ebp
ret
Function at 0x430002
Capabilities:
Encode data using xor

Disassembly:
pushal
nop
nop
nop
call 0x43000c
nop
nop
pop eax
nop
nop
nop
nop
add eax, 0x403d6f
sub eax, 0x403d15
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
nop
nop
popal
nop
jmp fcn.00401219
Function at 0x100346a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x100512d4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
cmp ebx, 0xffffffff
jne 0x100346d0
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003af70
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x10034700
mov edx, dword [esi + 0x30]
mov edx, dword [edx]
add edx, eax
cmp eax, edx
jae 0x10034700
call dword [sym.imp.MSVCP140.dll_protected:_char____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Pninc_void_]
pop esi
mov byte [eax], bl
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003af70
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x4c], 0
push edi
je 0x100347fa
mov edi, dword [esi + 0xc]
lea eax, [esi + 0x3c]
cmp dword [edi], eax
jne 0x10034729
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
sub edx, ecx
mov dword [edi], ecx
mov eax, dword [esi + 0x1c]
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x1003475d
push dword [esi + 0x4c]
movsx eax, bl
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
add esp, 8
or ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003af70
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x28], bl
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x27]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [esi + 0x40]
push eax
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet___char_const___char_const___char_const____char___char___char___const]
test eax, eax
js 0x100347fa
cmp eax, 1
jle 0x100347bb
cmp eax, 3
jne 0x100347fa
push dword [esi + 0x4c]
push dword [ebp - 0x28]
call fcn.100179e0
add esp, 8
or ecx, 0xffffffff
test al, al
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003af70
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x100347d9
push dword [esi + 0x4c]
push edi
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
cmp edi, eax
jne 0x100347fa
lea eax, [ebp - 0x28]
mov byte [esi + 0x3d], 1
cmp dword [ebp - 0x30], eax
je 0x100347fa
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003af70
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1003af70
mov esp, ebp
pop ebp
ret 4
Function at 0x100396b0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100412f8
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x100512d4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x1005128c]
cmp eax, 0xffffffff
jne 0x100396e6
xor ebx, ebx
jmp 0x100396ef
push eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], 0
test ebx, ebx
je 0x1003972f
mov eax, dword [ebx + 0x18]
mov esi, dword [ebx + 0xc]
test eax, eax
jne 0x1003976e
test esi, esi
jne 0x10039772
push 0x10038230
push 0x10052ad8
call fcn.100179e0
mov eax, dword [0x1005128c]
add esp, 8
cmp eax, 0xffffffff
je 0x1003972f
push esi
push eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
mov dword [ebp - 4], 1
test ebx, ebx
je 0x1003975c
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x1003975c
mov eax, dword [ebx]
mov ecx, ebx
push 0
call dword [eax]
push ebx
push 0
call dword [sym.imp.kernel32.dll_GetProcessHeap]
push eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x100397b4
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov ecx, dword [esi]
test ecx, ecx
je 0x1003979d
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esi]
mov ecx, edi
push 0
mov eax, dword [edi]
call dword [eax]
push edi
push 0
call dword [sym.imp.kernel32.dll_GetProcessHeap]
push eax
call dword [sym.imp.kernel32.dll_HeapFree]
push esi
push 0
call dword [sym.imp.kernel32.dll_GetProcessHeap]
push eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x10039772
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x10039700
nop
mov esi, dword [ebx + 0x14]
mov esi, dword [esi]
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x100397d9
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x100397d9
mov eax, dword [ecx]
push edx
call dword [eax + 4]
push esi
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebx + 0x14]
call fcn.100179e0
mov eax, dword [ebx + 0x18]
test eax, eax
jne 0x100397c0
jmp 0x10039700
Function at 0x402ed5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
pushal
call 0x402ee4
pop dword [ebp - 0x28]
mov eax, 0xa251d7d3
add eax, 0x5dee5711
sub dword [ebp - 0x28], eax
mov dword [ebp - 0x38], 0x114d67e2
sub dword [ebp - 0x38], 0xc2fb2297
mov dword [ebp - 0x34], 0x633c47d6
sub dword [ebp - 0x34], 0x3108fb91
mov dword [ebp - 0x30], 0x33d0245a
sub dword [ebp - 0x30], 0xe783e02c
mov dword [ebp - 0x2c], 0xf6f788d4
sub dword [ebp - 0x2c], 0xf6f788d4
lea eax, [ebp - 0x38]
push eax
mov eax, 0x791361b2
add eax, 0x872d1f52
add eax, dword [ebp - 0x28]
call dword [eax]
mov dword [ebp - 0x38], 0xb06e8f66
add dword [ebp - 0x38], 0xc403d9f0
mov dword [ebp - 0x34], 0x2b5ef997
sub dword [ebp - 0x34], 0xe9f29822
mov dword [ebp - 0x30], 0x3d9a245d
add dword [ebp - 0x30], 0x25d5480f
mov dword [ebp - 0x2c], 0x9be7fef9
sub dword [ebp - 0x2c], 0x9be7fef9
lea ebx, [ebp - 0x38]
push ebx
push eax
mov eax, 0x123a4a05
add eax, 0xee0636fb
add eax, dword [ebp - 0x28]
call dword [eax]
push 0x40
push 0x1000
push 0x36f87
push 0
call eax
mov ecx, 0xb6eafaec
sub ecx, 0xb6eab32f
mov edx, eax
mov esi, 0x46e400
add esi, dword [ebp - 0x28]
mov ebx, 0x4ec060a6
add dword [ebp - 0x1c], edx
mov edi, dword [esi]
xor dword [ebp - 0x14], 0xabe45879
sub edi, ebx
mov dword [ebp - 8], 0xb33665eb
mov dword [edx], edi
add edx, 0xe90e8319
sub edx, 0xe90e8315
add esi, 4
loop 0x402ffa
add eax, 0x62beaf00
sub eax, 0x62bd9d39
mov ebx, eax
add eax, 0x8687bf9b
add eax, 0x7978406a
mov ecx, 0x400000
add ecx, dword [ebp - 0x28]
call ebx
leave
ret

Function at 0x40317b
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
xor esi, esi
cmp eax, esi
jl 0x4031a6
mov ecx, dword [0x42a298]
push esi
add eax, ecx
push esi
push eax
mov dword [0x418ed4], eax
push dword [0x40a01c]
call dword [sym.imp.kernel32.dll_SetFilePointer]
push 4
call fcn.00403283
cmp eax, esi
jl 0x40327d
lea eax, [ebp + 8]
push 4
push eax
push dword [0x40a01c]
call fcn.00402ed5
test eax, eax
je 0x40326d
push dword [ebp + 8]
add dword [0x418ed4], 4
call fcn.00403283
mov ebx, eax
cmp ebx, esi
jl 0x40327b
cmp dword [ebp + 0x10], esi
jne 0x403249
cmp dword [ebp + 8], esi
jle 0x40327b
mov esi, 0x414ed0
cmp dword [ebp + 8], 0x4000
mov eax, dword [ebp + 8]
jl 0x40320b
mov eax, 0x4000
push eax
push esi
push dword [0x40a01c]
mov dword [ebp - 4], eax
call fcn.00402ed5
test eax, eax
je 0x40326d
push dword [ebp - 4]
push esi
push dword [ebp + 0xc]
call fcn.00402ed5
test eax, eax
je 0x403245
mov eax, dword [ebp - 4]
sub dword [ebp + 8], eax
add dword [0x418ed4], eax
add ebx, eax
cmp dword [ebp + 8], 0
jg 0x4031fa
jmp 0x40327b
push 0xfffffffffffffffe
jmp 0x40326f
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0x14]
jl 0x403254
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 4]
push esi
push ecx
push eax
push dword [ebp + 0x10]
push dword [0x40a01c]
call dword [sym.imp.kernel32.dll_ReadFile]
test eax, eax
jne 0x403272
push 0xfffffffffffffffd
pop eax
jmp 0x40327d
mov ebx, dword [ebp - 4]
add dword [0x418ed4], ebx
mov eax, ebx
pop esi
pop ebx
leave
ret 0x10