joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10078ac0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x1010b348
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 8], esi
mov eax, dword [esp + 0x30]
mov dword [esi + 4], eax
lea ecx, [esp + 0xc]
push ecx
mov dword [esp + 0x28], 0
mov dword [esi], vtable.std::ctype_wchar_t_.0
call fcn.1007159e
mov edx, dword [eax]
mov dword [esi + 8], edx
mov ecx, dword [eax + 4]
mov dword [esi + 0xc], ecx
mov edx, dword [eax + 8]
mov dword [esi + 0x10], edx
mov eax, dword [eax + 0xc]
add esp, 4
mov dword [esi + 0x14], eax
call fcn.10070be7
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov eax, esi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x20
ret 8

Function at 0x1007a930
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x1007a8ba
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x1007a8d8
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja 0x1007a936
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x1007a91d
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x1007a926
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je fcn.1007a930
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x1007a912
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x88]
mov cx, word [ebp + 0xc]
cmp cx, word [eax + 6]
jbe 0x1007a89c
mov dword [ebp + 8], esi
xor edi, edi
mov eax, dword [ebp + 0x18]
push 2
pop ecx
movzx eax, byte [edi + eax]
sub eax, ecx
je 0x1007a983
dec eax
je 0x1007a97a
sub eax, 3
je 0x1007a971
mov dword [ebp - 4], 0x40
jmp 0x1007a9a0
mov dword [ebp - 4], 4
jmp 0x1007a986
mov dword [ebp - 4], 0x20
jmp 0x1007a986
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebp - 0xac]
invalid
invalid
invalid
push dword [ebp + 8]
call dword [ebp - 0xbc]
test eax, eax
je 0x1007a9d2
mov eax, dword [ebp - 0xac]
add dword [ebp + 8], eax
inc edi
cmp edi, dword [ebp - 0x8c]
jbe 0x1007a952
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x28]
add edi, esi
call fcn.1007a1e3
cwde
adc byte [ebp + 0x1475ff55], bh
push 1
push esi
call edi
mov eax, esi
jmp 0x1007a9de
push 0x8000
push ebx
push esi
call dword [ebp - 8]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x1007b0f0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
xor eax, eax
lea edi, [ebp - 0x503]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.1007a1c1
or byte [eax + 0x2ff845c6], ah
mov byte [ebp - 0x24], 0x34
and byte [ebp - 0x36c], 0
and byte [ebp - 0x36b], 0
mov byte [ebp - 0x36a], 0xaa
and byte [ebp - 0x369], 0
mov byte [ebp - 0x368], 0x12
mov byte [ebp - 0x367], 0x30
mov byte [ebp - 0x366], 0x21
mov byte [ebp - 0x365], 6
mov byte [ebp - 0x364], 0x2c
mov byte [ebp - 0x363], 0x26
mov byte [ebp - 0x362], 0x21
mov byte [ebp - 0x361], 0x30
mov byte [ebp - 0x360], 0x38
mov byte [ebp - 0x35f], 0x11
mov byte [ebp - 0x35e], 0x3c
mov byte [ebp - 0x35d], 0x27
mov byte [ebp - 0x35c], 0x30
mov byte [ebp - 0x35b], 0x36
mov byte [ebp - 0x35a], 0x21
mov byte [ebp - 0x359], 0x3a
mov byte [ebp - 0x358], 0x27
mov byte [ebp - 0x357], 0x2c
mov byte [ebp - 0x356], 0x14
mov byte [ebp - 0x355], 0x55
lea eax, [ebp - 0x36c]
push eax
call fcn.1007a1f3
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.1007a1a8
add esp, 0xc
mov dword [ebp - 0x3d4], eax
call fcn.1007a1e3
push 0x32
int1
push 0x104
add al, 1
add byte [eax], al

Function at 0x100892c0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1010cdb8
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x20]
push edi
call fcn.10001890
mov dword [esi], vtable.boost::log::v2s_mt_nt5::conversion_error.0
mov dword [esp + 0x18], 0
test edi, edi
je 0x1008930a
add edi, 0x28
jmp 0x1008930c
xor edi, edi
mov dword [esi + 0x28], vtable.boost::exception.0
mov ecx, dword [edi + 4]
mov dword [esi + 0x2c], ecx
test ecx, ecx
je 0x10089324
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov eax, dword [edi + 8]
mov dword [esi + 0x30], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x34], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 0x38], edx
mov dword [esi], vtable.boost::exception_detail::error_info_injector_class_boost::log::v2s_mt_nt5::conversion_error_.1.0
mov dword [esi + 0x28], vtable.boost::exception_detail::error_info_injector_class_boost::log::v2s_mt_nt5::conversion_error_.0
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x10
ret 4
Function at 0x10089560
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1010ce78
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x20]
push edi
call fcn.10002300
mov dword [esi], vtable.boost::log::v2s_mt_nt5::setup_error.0
mov dword [esp + 0x18], 0
test edi, edi
je 0x100895aa
add edi, 0x28
jmp 0x100895ac
xor edi, edi
mov dword [esi + 0x28], vtable.boost::exception.0
mov ecx, dword [edi + 4]
mov dword [esi + 0x2c], ecx
test ecx, ecx
je 0x100895c4
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov eax, dword [edi + 8]
mov dword [esi + 0x30], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x34], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 0x38], edx
mov dword [esi], vtable.boost::exception_detail::error_info_injector_class_boost::log::v2s_mt_nt5::setup_error_.1.0
mov dword [esi + 0x28], vtable.boost::exception_detail::error_info_injector_class_boost::log::v2s_mt_nt5::setup_error_.0
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x10
ret 4

Function at 0x10089600
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1010cea8
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x20]
push edi
call fcn.10002300
mov dword [esi], vtable.boost::log::v2s_mt_nt5::limitation_error.0
mov dword [esp + 0x18], 0
test edi, edi
je 0x1008964a
add edi, 0x28
jmp 0x1008964c
xor edi, edi
mov dword [esi + 0x28], vtable.boost::exception.0
mov ecx, dword [edi + 4]
mov dword [esi + 0x2c], ecx
test ecx, ecx
je 0x10089664
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov eax, dword [edi + 8]
mov dword [esi + 0x30], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x34], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 0x38], edx
mov dword [esi], vtable.boost::exception_detail::error_info_injector_class_boost::log::v2s_mt_nt5::limitation_error_.1.0
mov dword [esi + 0x28], vtable.boost::exception_detail::error_info_injector_class_boost::log::v2s_mt_nt5::limitation_error_.0
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x10
ret 4
Function at 0x10094410
Capabilities:
Link many functions at runtime

Disassembly:
push 0xffffffffffffffff
push 0x1010f4e6
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x24]
mov dword fs:[0], eax
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
je 0x100944fb
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.InitializeSRWLock
push esi
call edi
mov dword [esp + 0x1c], eax
test eax, eax
je 0x100944fb
push str.AcquireSRWLockExclusive
push esi
call edi
mov dword [esp + 0x18], eax
test eax, eax
je 0x100944fb
push str.ReleaseSRWLockExclusive
push esi
call edi
mov dword [esp + 0x14], eax
test eax, eax
je 0x100944fb
push str.InitializeConditionVariable
push esi
call edi
mov ebp, eax
test ebp, ebp
je 0x100944fb
push str.SleepConditionVariableSRW
push esi
call edi
mov ebx, eax
test ebx, ebx
je 0x100944fb
push str.WakeAllConditionVariable
push esi
call edi
mov esi, eax
test esi, esi
je 0x100944fb
push 0x1c
call fcn.100d54f6
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], 0
test eax, eax
je 0x10094530
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push esi
push ebx
push ebp
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push ecx
mov ecx, eax
call fcn.100929a0
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
push 0x38
call fcn.100d54f6
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], 1
test eax, eax
je 0x10094530
mov ecx, eax
call fcn.10093040
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
xor eax, eax
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret

Function at 0x10095ef0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1010f7e8
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x10159df0]
xor eax, esp
mov dword [esp + 0x20], eax
push esi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov esi, ecx
mov ecx, dword [esp + 8]
push ecx
push edx
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
call fcn.10095930
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0xc]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x48], 0
call fcn.10095c70
cmp dword [esp + 0x24], 0x10
jb 0x10095f8a
mov edx, dword [esp + 0x10]
push edx
call fcn.100d541a
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100d4541
add esp, 0x30
ret 0x1c
Function at 0x10095fb0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1010f818
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x10159df0]
xor eax, esp
mov dword [esp + 0x20], eax
push esi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
mov esi, ecx
mov ecx, dword [esp + 8]
push ecx
push edx
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
call fcn.10095a00
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0xc]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
push ecx
mov ecx, esi
mov dword [esp + 0x48], 0
call fcn.10095c70
cmp dword [esp + 0x24], 0x10
jb 0x1009604a
mov edx, dword [esp + 0x10]
push edx
call fcn.100d541a
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100d4541
add esp, 0x30
ret 0x1c

Function at 0x10096070
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1010f848
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x10159df0]
xor eax, esp
mov dword [esp + 0x20], eax
push esi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x4c]
mov esi, ecx
xor ecx, ecx
mov word [esp + 0x10], cx
mov ecx, dword [esp + 0x50]
push edx
push ecx
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
call fcn.10095ad0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xc]
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
mov ecx, esi
mov dword [esp + 0x48], 0
call fcn.10095d40
cmp dword [esp + 0x24], 8
jb 0x1009610c
mov ecx, dword [esp + 0x10]
push ecx
call fcn.100d541a
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100d4541
add esp, 0x30
ret 0x1c
Function at 0x10096130
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1010f878
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x10159df0]
xor eax, esp
mov dword [esp + 0x20], eax
push esi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x4c]
mov esi, ecx
xor ecx, ecx
mov word [esp + 0x10], cx
mov ecx, dword [esp + 0x50]
push edx
push ecx
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
call fcn.10095ba0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xc]
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
mov ecx, esi
mov dword [esp + 0x48], 0
call fcn.10095d40
cmp dword [esp + 0x24], 8
jb 0x100961cc
mov ecx, dword [esp + 0x10]
push ecx
call fcn.100d541a
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.100d4541
add esp, 0x30
ret 0x1c

Function at 0x100a86f0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10110553
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov edx, 7
xor ecx, ecx
xor esi, esi
mov dword [eax + 0x18], edx
mov dword [eax + 0x14], ecx
mov word [eax + 4], si
mov dword [eax + 0x34], edx
xor edx, edx
mov dword [eax + 0x30], ecx
mov word [eax + 0x20], dx
mov dword [eax + 0x50], 0xf
mov dword [eax + 0x4c], ecx
mov byte [eax + 0x3c], cl
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret

Function at 0x100aca90
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10110b68
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], esi
mov edi, dword [esp + 0x20]
push edi
call fcn.10002300
mov dword [esi], vtable.std::out_of_range.0
mov dword [esp + 0x18], 0
test edi, edi
je 0x100acada
add edi, 0x28
jmp 0x100acadc
xor edi, edi
mov dword [esi + 0x28], vtable.boost::exception.0
mov ecx, dword [edi + 4]
mov dword [esi + 0x2c], ecx
test ecx, ecx
je 0x100acaf4
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
mov eax, dword [edi + 8]
mov dword [esi + 0x30], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x34], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 0x38], edx
mov dword [esi], vtable.boost::exception_detail::error_info_injector_class_std::out_of_range_.1.0
mov dword [esi + 0x28], vtable.boost::exception_detail::error_info_injector_class_std::out_of_range_.0
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x10
ret 4
Function at 0x100b0c00
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x101116ea
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebp
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x10], esi
xor ebp, ebp
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
mov dword [esi + 0x10], ebp
mov eax, dword [esp + 0x40]
mov dword [esi], vtable.file_collector.0
mov ecx, dword [eax]
mov dword [esi + 0x14], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x38], ebp
mov dword [esi + 0x18], eax
cmp eax, ebp
je 0x100b0c61
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x20], ebp
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esi + 0x28], edx
mov edx, dword [esp + 0x54]
mov dword [esi + 0x34], edx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0x30], ecx
mov ecx, dword [esp + 0x5c]
lea edx, [esi + 0x40]
push edx
mov byte [esp + 0x3c], 2
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
call fcn.100a8760
add esp, 4
lea edi, [esi + 0x5c]
xor eax, eax
mov dword [edi + 0x18], 7
mov dword [edi + 0x14], ebp
mov word [edi + 4], ax
lea ecx, [esi + 0x78]
mov byte [esp + 0x38], 4
call fcn.100aa6f0
mov ecx, dword [esp + 0x44]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, esi
mov byte [esp + 0x40], 5
mov dword [esi + 0x98], ebp
mov dword [esi + 0x9c], ebp
call fcn.100a8950
push 0xffffffffffffffff
push ebp
push eax
mov ecx, edi
mov byte [esp + 0x44], 6
call fcn.1003d5c0
cmp dword [esp + 0x2c], 8
mov byte [esp + 0x38], 5
jb 0x100b0d0d
mov eax, dword [esp + 0x18]
push eax
call fcn.100d541a
add esp, 4
push ebp
push edi
call fcn.100cbe50
add esp, 8
mov eax, esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x2c
ret 0x20
Function at 0x100c80e0
Capabilities:
Query environment variable

Disassembly:
push 0xffffffffffffffff
push 0x10114053
mov eax, dword fs:[0]
push eax
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov edi, dword [esp + 0x7c]
xor ebp, ebp
push ebp
push ebp
mov dword [esp + 0x1c], ebp
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
push edi
call ebx
push eax
lea ecx, [esp + 0x1c]
call fcn.100c8070
mov esi, dword [esp + 0x28]
sub esi, dword [esp + 0x24]
mov dword [esp + 0x70], 1
sar esi, 1
je 0x100c817e
cmp esi, ebp
ja 0x100c8143
call fcn.100d4f3d
mov eax, dword [esp + 0x24]
push esi
push eax
push edi
call ebx
test eax, eax
je 0x100c817e
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x24]
sar ecx, 1
jne 0x100c8161
call fcn.100d4f3d
mov edx, dword [esp + 0x24]
push edx
lea ecx, [esp + 0x50]
call fcn.1007ba30
mov ebx, 1
mov byte [esp + 0x70], 2
lea edi, [ebx + 6]
jmp 0x100c81a3
mov edi, 7
xor eax, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebp
mov word [esp + 0x34], ax
lea eax, [esp + 0x30]
mov dword [esp + 0x70], 3
mov ebx, 2
mov esi, dword [esp + 0x78]
push 0xffffffffffffffff
xor ecx, ecx
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], ebp
push ebp
mov word [esi + 4], cx
push eax
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.1003d5c0
or ebx, 4
test bl, 2
je 0x100c81f0
and ebx, 0xfffffffd
cmp dword [esp + 0x48], 8
jb 0x100c81e1
mov edx, dword [esp + 0x34]
push edx
call fcn.100d541a
add esp, 4
xor eax, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebp
mov word [esp + 0x34], ax
test bl, 1
je 0x100c8218
cmp dword [esp + 0x64], 8
jb 0x100c8209
mov ecx, dword [esp + 0x50]
push ecx
call fcn.100d541a
add esp, 4
xor edx, edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebp
mov word [esp + 0x50], dx
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x100c8229
push eax
call fcn.100d541a
add esp, 4
mov eax, dword [esp + 0x18]
push eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
call fcn.100d541a
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret
Function at 0x100c8b60
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x101141b8
mov eax, dword fs:[0]
push eax
push ecx
push ebp
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
push 0
mov dword [esp + 0x14], 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0
call ebp
mov esi, eax
test esi, esi
jne 0x100c8ba3
mov esi, 1
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10071486
mov edi, eax
add esp, 4
mov dword [esp + 0x10], edi
push edi
push esi
mov dword [esp + 0x24], 0
call ebp
test eax, eax
jne 0x100c8bdc
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x100c8bde
xor eax, eax
mov ecx, dword [esp + 0x28]
push str.boost::filesystem::current_path
push ecx
push eax
call fcn.100c8400
mov esi, dword [esp + 0x30]
add esp, 0xc
xor edx, edx
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], 0
mov eax, edi
mov word [esi + 4], dx
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x100c8c10
sub eax, edx
sar eax, 1
push eax
push edi
mov ecx, esi
call fcn.1007b0f0
push edi
call fcn.100d53b1
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x10
ret
Function at 0x100c9b80
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x10114390
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x10159df0]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov edi, dword [esp + 0x48]
cmp dword [edi + 0x18], 8
lea esi, [edi + 4]
jb 0x100c9bb7
mov eax, dword [esi]
jmp 0x100c9bb9
mov eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x100c9bef
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
push eax
push edi
push esi
call fcn.100c8740
add esp, 0xc
mov eax, esi
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x30
ret
test ebx, 0x400
je 0x100c9cd0
cmp dword [edi + 0x18], 8
jb 0x100c9c03
mov esi, dword [esi]
push esi
lea ecx, [esp + 0x1c]
call fcn.100c3530
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], 0
jae 0x100c9c24
lea eax, [esp + 0x1c]
push 0
push 0x2000000
push 3
push 0
push 7
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [esp + 0x48], esi
cmp dword [esp + 0x30], 8
mov byte [esp + 0x3c], 2
jb 0x100c9c59
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.100d541a
add esp, 4
xor edx, edx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], dx
cmp esi, 0xffffffff
je 0x100c9bc7
push edi
call fcn.100c71b0
add esp, 4
test al, al
jne 0x100c9cc1
push ebx
push edi
call fcn.100c7610
mov edi, dword [esp + 0x4c]
add esp, 8
push esi
mov dword [edi], 9
mov dword [edi + 4], eax
mov dword [esp + 0x40], 0xffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x30
ret
push esi
mov dword [esp + 0x40], 0xffffffff
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x100c9ce6
mov dword [esi], 0
call fcn.100c0fe0
mov dword [esi + 4], eax
push ebx
push edi
mov dword [esp + 0x18], 3
test bl, 0x10
jne 0x100c9cfd
mov dword [esp + 0x18], 2
call fcn.100c7610
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edx, dword [ecx]
mov eax, dword [esp + 0x4c]
mov ecx, dword [ecx + 4]
add esp, 8
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x30
ret