joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10001f00
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
cmp esi, 0x40
jae 0x10001f17
pop edi
xor al, al
pop esi
pop ebp
ret 8
mov ecx, dword [ebp + 8]
mov eax, 0x5a4d
mov dword [edi + 0xc], ecx
cmp word [ecx], ax
jne 0x10001f0f
mov edx, dword [ecx + 0x3c]
lea eax, [edx + 0xf8]
cmp esi, eax
jb 0x10001f0f
lea eax, [edx + ecx]
mov dword [edi + 0x10], eax
cmp dword [eax], 0x4550
jne 0x10001f0f
movzx ecx, word [eax + 0x16]
test ecx, 0x2000
je 0x10001f0f
test cl, 2
je 0x10001f0f
mov ecx, 0xe0
cmp word [eax + 0x14], cx
jne 0x10001f0f
lea ecx, [eax + 0xf8]
xor edx, edx
mov dword [edi + 0x14], ecx
movzx edi, word [eax + 6]
test edi, edi
je 0x10001f85
add ecx, 0x10
mov eax, dword [ecx + 4]
add eax, dword [ecx]
cmp eax, esi
ja 0x10001f0f
inc edx
add ecx, 0x28
cmp edx, edi
jl 0x10001f74
pop edi
mov al, 1
pop esi
pop ebp
ret 8

Function at 0x100023c0
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x10018054]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 8], eax
cmp dword [esi + 8], 0
je 0x100023f2
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10005215
mov esp, ebp
pop ebp
ret 8
push dword [ebp + 0xc]
push eax
call fcn.10001f00
test al, al
je 0x100023df
push ebx
mov ecx, esi
call fcn.10001e90
mov ebx, eax
test ebx, ebx
jne 0x10002421
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10005215
mov esp, ebp
pop ebp
ret 8
push edi
push 0x40
push 0x3000
push ebx
push 0
mov dword [esi + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test edi, edi
je 0x1000247d
push dword [ebp - 8]
mov ecx, esi
push edi
call fcn.10001f90
mov eax, dword [esi + 0x10]
cmp dword [eax + 0xa0], 0
jbe 0x10002463
cmp dword [eax + 0xa4], 0
jbe 0x10002463
push edi
mov ecx, esi
call fcn.10002020
push edi
mov ecx, esi
call fcn.100020b0
test al, al
jne 0x10002492
push 0x8000
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
pop edi
pop ebx
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10005215
mov esp, ebp
pop ebp
ret 8
push str.VirtualProtect
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1000247d
lea ecx, [ebp - 8]
push ecx
push 0x40
push ebx
push edi
call eax
mov eax, dword [esi + 0x10]
push 0
push 1
push edi
mov dword [eax + 0x34], edi
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x28]
add eax, edi
mov dword [esi + 4], eax
call eax
mov byte [esi], 1
mov dword [esi + 8], edi
test eax, eax
je 0x1000247d
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop ebx
xor ecx, ebp
pop esi
call fcn.10005215
mov esp, ebp
pop ebp
ret 8
Function at 0x10002730
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
sub esp, 0x10
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
push ebx
xor ebx, ebx
and eax, 7
cmp ecx, 5
jae 0x10002750
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
add dword [ebp + 0x10], 5
lea edx, [ecx - 4]
push esi
mov esi, dword [ebp + 8]
push edi
or edi, 0xffffffff
add edx, esi
mov dword [ebp - 4], edx
add esi, ebx
mov dword [ebp + 0xc], esi
cmp esi, edx
jae 0x10002782
nop dword [eax]
mov cl, byte [esi]
and cl, 0xfe
cmp cl, 0xe8
je 0x1000277f
inc esi
cmp esi, edx
jb 0x10002770
mov dword [ebp + 0xc], esi
mov ebx, esi
sub ebx, dword [ebp + 8]
mov ecx, ebx
sub ecx, edi
cmp esi, edx
jae 0x100028ac
cmp ecx, 3
jbe 0x100027c2
xor eax, eax
mov cl, byte [esi + 4]
mov edi, ebx
mov dword [ebp - 0x10], edi
test cl, cl
je 0x10002800
cmp cl, 0xff
je 0x10002800
mov edx, dword [ebp - 4]
and eax, 3
mov esi, dword [ebp + 8]
add eax, eax
mov ecx, 1
or eax, 1
add ebx, ecx
jmp 0x10002764
dec ecx
shl eax, cl
and eax, 7
je 0x1000279a
movzx ecx, byte [eax + 0x10011254]
mov edx, esi
sub edx, ecx
cmp byte [eax + 0x1001124c], 0
mov cl, byte [edx + 4]
je 0x100027ea
test cl, cl
je 0x100027ea
cmp cl, 0xff
jne 0x1000279a
mov edx, dword [ebp - 4]
and eax, 3
mov esi, dword [ebp + 8]
add eax, eax
mov edi, ebx
or eax, 1
inc ebx
jmp 0x10002764
movzx edi, cl
movzx ecx, byte [esi + 3]
shl edi, 8
or edi, ecx
movzx ecx, byte [esi + 2]
shl edi, 8
or edi, ecx
movzx ecx, byte [esi + 1]
mov esi, dword [ebp + 0x10]
shl edi, 8
or edi, ecx
cmp dword [ebp + 0x18], 0
je 0x1000282e
lea edx, [edi + ebx]
add edx, esi
jmp 0x10002834
mov edx, edi
sub edx, ebx
sub edx, esi
test eax, eax
je 0x10002872
movzx edi, byte [eax + 0x10011254]
mov ecx, 0x18
shl edi, 3
sub ecx, edi
mov dword [ebp - 0xc], edi
mov edi, edx
shr edi, cl
mov ecx, edi
mov dword [ebp - 8], edi
test cl, cl
je 0x1000285e
cmp cl, 0xff
jne 0x10002872
mov ecx, 0x20
mov edi, 1
sub ecx, dword [ebp - 0xc]
shl edi, cl
dec edi
xor edi, edx
jmp 0x10002821
mov esi, dword [ebp + 0xc]
mov ecx, edx
mov edi, dword [ebp - 0x10]
shr ecx, 0x18
and cl, 1
dec cl
mov byte [esi + 1], dl
not cl
mov byte [esi + 4], cl
mov ecx, edx
shr ecx, 0x10
mov byte [esi + 3], cl
mov ecx, edx
mov edx, dword [ebp - 4]
shr ecx, 8
mov byte [esi + 2], cl
mov ecx, 5
mov esi, dword [ebp + 8]
add ebx, ecx
jmp 0x10002764
pop edi
pop esi
cmp ecx, 3
jbe 0x100028c1
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov dword [ecx], eax
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
dec ecx
shl eax, cl
mov ecx, dword [ebp + 0x14]
and eax, 7
mov dword [ecx], eax
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10001d00
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xc0
mov eax, str.BIBCacheAddRemoveClientPurgeProcV2
mov dword [esp + 0x7c], eax
mov dword [esp + 0x84], eax
mov eax, 0x1001934b
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 0xc4]
push eax
push 0x10023d38
push str.BIBCacheInterface
lea ecx, [esp + 0xc]
push 0x17
push ecx
mov dword [esp + 0x14], str.NewCacheID
mov dword [esp + 0x18], str.BIBCacheNewCacheIDProc
mov dword [esp + 0x1c], str.AddRef
mov dword [esp + 0x20], str.BIBCacheAddRefProc
mov dword [esp + 0x24], str.Release
mov dword [esp + 0x28], str.BIBCacheReleaseProc
mov dword [esp + 0x2c], str.Attach
mov dword [esp + 0x30], str.BIBCacheAttachProcV2
mov dword [esp + 0x34], 0x100196ac
mov dword [esp + 0x38], str.BIBCacheAddProc
mov dword [esp + 0x3c], str.UpdateCost
mov dword [esp + 0x40], str.BIBCacheUpdateCostProc
mov dword [esp + 0x44], str.ReturnCost
mov dword [esp + 0x48], str.BIBCacheReturnCostProc
mov dword [esp + 0x4c], str.MarkNoPurge
mov dword [esp + 0x50], str.BIBCacheMarkNoPurgeProcV2
mov dword [esp + 0x54], str.MarkPurge
mov dword [esp + 0x58], str.BIBCacheMarkPurgeProc
mov dword [esp + 0x5c], str.GetCacheTime
mov dword [esp + 0x60], str.BIBCacheGetCacheTimeProc
mov dword [esp + 0x64], str.CurrentCacheSize
mov dword [esp + 0x68], str.BIBCurrentCacheSizeProc
mov dword [esp + 0x6c], str.NewCachePurge
mov dword [esp + 0x70], str.BIBCacheNewCachePurgeProc
mov dword [esp + 0x74], str.PurgeNextBlock
mov dword [esp + 0x78], str.BIBCachePurgeNextBlockProc
mov dword [esp + 0x7c], str.DeleteCachePurge
mov dword [esp + 0x80], str.BIBCacheDeleteCachePurgeProc
mov dword [esp + 0x84], str.PurgeAllStaticCaches
mov dword [esp + 0x88], str.BIBCachePurgeAllStaticCachesProc
mov dword [esp + 0x8c], str.AddClientPurge
mov dword [esp + 0x94], str.RemoveClientPurge
mov dword [esp + 0x9c], str.NewCacheSet
mov dword [esp + 0xa0], str.BIBCacheNewCacheSetProc
mov dword [esp + 0xa4], str.AddRefCacheSet
mov dword [esp + 0xa8], str.BIBCacheAddRefCacheSetProc
mov dword [esp + 0xac], str.DeleteCacheSet
mov dword [esp + 0xb0], str.BIBCacheDeleteCacheSetProc
mov dword [esp + 0xb4], str.SearchForID
mov dword [esp + 0xb8], str.BIBCacheSearchForIDProc
mov dword [esp + 0xbc], str.RemoveID
mov dword [esp + 0xc0], str.BIBCacheRemoveIDProc
mov dword [esp + 0xc4], str.RemoveIDs
mov dword [esp + 0xc8], str.BIBCacheRemoveIDsProc
call fcn.10001cb0
neg eax
sbb eax, eax
neg eax
add esp, 0xd4
ret
Function at 0x100021d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x88
mov eax, 0x1001934b
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
movzx eax, byte [esp + 0x8c]
push eax
push 0x10023c20
push str.BIBContainerInterface
lea ecx, [esp + 0xc]
push 0x10
push ecx
mov dword [esp + 0x14], str.NewFullContainer
mov dword [esp + 0x18], str.BIBNewFullContainerV5Proc
mov dword [esp + 0x1c], str.NewContainer
mov dword [esp + 0x20], str.BIBNewContainerV2Proc
mov dword [esp + 0x24], str.CloneContainer
mov dword [esp + 0x28], str.BIBCloneContainerProc
mov dword [esp + 0x2c], str.AddRef
mov dword [esp + 0x30], str.BIBAddRefContainerV2Proc
mov dword [esp + 0x34], str.Release
mov dword [esp + 0x38], str.BIBReleaseContainerProc
mov dword [esp + 0x3c], str.DecrementWithoutDelete
mov dword [esp + 0x40], str.BIBDecrementWithoutDeleteProc
mov dword [esp + 0x44], str.DeleteUnownedContainer
mov dword [esp + 0x48], str.BIBDeleteUnownedContainerProc
mov dword [esp + 0x4c], str.RegisterInterface
mov dword [esp + 0x50], str.BIBRegisterInterfaceV2Proc
mov dword [esp + 0x54], str.RegisterInstance
mov dword [esp + 0x58], str.BIBRegisterInstanceV2Proc
mov dword [esp + 0x5c], str.GetMethod
mov dword [esp + 0x60], str.BIBGetMethodV3Proc
mov dword [esp + 0x64], str.GetParentMethod
mov dword [esp + 0x68], str.BIBGetParentMethodV2Proc
mov dword [esp + 0x6c], str.GetInstance
mov dword [esp + 0x70], str.BIBGetInstanceProc
mov dword [esp + 0x74], str.NGetInstance
mov dword [esp + 0x78], str.BIBNGetInstanceProc
mov dword [esp + 0x7c], str.GetSignature
mov dword [esp + 0x80], str.BIBGetSignatureProc
mov dword [esp + 0x84], str.DebugGetRefCountAddr
mov dword [esp + 0x88], str.BIBGetRefCountAddrProc
mov dword [esp + 0x8c], str.GetOffsetToPrimaryInstance
mov dword [esp + 0x90], str.BIBGetOffsetToPrimaryInstProc
call fcn.10001cb0
neg eax
sbb eax, eax
neg eax
add esp, 0x9c
ret

Function at 0x100048f0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10015311
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
push edi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x10], 0
call fcn.10001560
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
push ecx
push eax
push edi
mov ecx, esi
mov dword [esp + 0x2c], 1
call fcn.10004660
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0xc], 1
mov byte [esp + 0x20], 0
je 0x10004966
push eax
call dword [0x10023c64]
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x18
ret 0xc
Function at 0x10004a10
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10015391
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
push edi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x10], 0
call fcn.10001560
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
push ecx
push eax
push edi
mov ecx, esi
mov dword [esp + 0x2c], 1
call fcn.10004770
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0xc], 1
mov byte [esp + 0x20], 0
je 0x10004a86
push eax
call dword [0x10023c64]
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x18
ret 0xc

Function at 0x10004aa0
Capabilities:
Access peb ldr_data
Get process heap flags
Get process heap force flags

Disassembly:
push 0xffffffffffffffff
push 0x10015410
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 8], esi
push str.POSObjectImpl
call fcn.10001560
push str.POSObjectInterface
lea ecx, [esi + 8]
mov dword [esp + 0x18], 0
call fcn.10001560
push str.POSDictIteratorImpl
lea ecx, [esi + 0x10]
mov byte [esp + 0x18], 1
call fcn.10001560
push str.POSDictIteratorInterface
lea ecx, [esi + 0x18]
mov byte [esp + 0x18], 2
call fcn.10001560
push str.POSStreamerImpl
lea ecx, [esi + 0x20]
mov byte [esp + 0x18], 3
call fcn.10001560
push str.POSStreamerInterface
lea ecx, [esi + 0x28]
mov byte [esp + 0x18], 4
call fcn.10001560
push str.POSValidatorImpl
lea ecx, [esi + 0x30]
mov byte [esp + 0x18], 5
call fcn.10001560
push str.POSValidatorInterface
lea ecx, [esi + 0x38]
mov byte [esp + 0x18], 6
call fcn.10001560
push str.BIBUtilsDir
lea ecx, [esi + 0x40]
mov byte [esp + 0x18], 7
call fcn.10001560
push str.BIBUtilsDirInterface
lea ecx, [esi + 0x48]
mov byte [esp + 0x18], 8
call fcn.10001560
mov eax, esi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret
Function at 0x1000c4f0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x10016693
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
xor ebx, ebx
mov byte [esi + 4], bl
mov byte [esi + 5], bl
mov dword [esi + 8], 0x1001b1c4
mov byte [esi + 0xc], 1
mov ebp, dword [esp + 0x28]
lea edi, [esi + 0x10]
push ebp
mov ecx, edi
mov dword [esp + 0x24], ebx
mov dword [esi], vtable.NPOSStreamerImpl::NTypeAImpl::OCharStream.0
call fcn.10002360
mov eax, dword [ebp + 4]
mov dword [edi + 4], eax
mov ecx, dword [ebp + 8]
mov dword [edi + 8], ecx
mov edx, dword [ebp + 0xc]
mov dword [edi + 0xc], edx
push ebx
push ebx
push ebx
push 0x200
mov byte [esp + 0x30], 1
call fcn.10003390
push eax
mov dword [esi + 0x20], eax
call dword [0x10023db4]
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], 0x200
mov eax, dword [esi + 0x24]
mov dword [esi + 0x2c], eax
add esp, 0x14
mov dword [esi + 0x30], ebx
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4

Function at 0x1000c5b0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x100166ce
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], esi
mov dword [esi], vtable.NPOSStreamerImpl::NTypeAImpl::OCharStream.0
mov edx, dword [esi + 0x30]
test edx, edx
mov dword [esp + 0x18], 2
je 0x1000c613
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
push edx
push eax
mov eax, dword [edi + 4]
push ecx
call eax
add esp, 0xc
test eax, eax
je 0x1000c60c
push eax
call fcn.100020b0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x20]
test eax, eax
mov byte [esp + 0x18], 1
je 0x1000c62f
mov ecx, dword [0x10023db0]
test ecx, ecx
je 0x1000c62f
push eax
call ecx
add esp, 4
lea ecx, [esi + 0x10]
mov byte [esp + 0x18], 0
call fcn.100017c0
mov dword [esi], vtable.NPOSStreamerImpl::NTypeAImpl::CharStream.0
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x10
ret
Function at 0x1000c680
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x10016703
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
xor ebx, ebx
mov byte [esi + 4], bl
mov byte [esi + 5], bl
mov dword [esi + 8], 0x1001b1c4
mov byte [esi + 0xc], 1
mov ebp, dword [esp + 0x28]
lea edi, [esi + 0x10]
push ebp
mov ecx, edi
mov dword [esp + 0x24], ebx
mov dword [esi], vtable.NPOSStreamerImpl::NTypeAImpl::ICharStream.0
call fcn.10002360
mov eax, dword [ebp + 4]
mov dword [edi + 4], eax
mov ecx, dword [ebp + 8]
mov dword [edi + 8], ecx
mov edx, dword [ebp + 0xc]
mov dword [edi + 0xc], edx
push ebx
push ebx
push ebx
push 0x200
mov byte [esp + 0x30], 1
call fcn.10003390
push eax
mov dword [esi + 0x20], eax
call dword [0x10023db4]
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], 0x200
add esp, 0x14
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4

Function at 0x1000de20
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10016a80
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
push eax
mov eax, dword [0x10023ecc]
mov ecx, dword [eax + 0xc]
xor esi, esi
call ecx
add esp, 4
test eax, eax
jbe 0x1000df64
lea esp, [esp]
push 0
push esi
lea edx, [esp + 0x2c]
push edx
mov ecx, ebx
call fcn.1000b140
mov edi, eax
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x3c], 0
call fcn.10002360
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
mov byte [esp + 0x38], 1
call fcn.10003e90
test eax, eax
mov dword [0x10023ebc], eax
je 0x1000df77
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 4]
push ecx
call edx
add esp, 4
test eax, eax
je 0x1000df77
mov eax, dword [esp + 0x14]
mov ecx, dword [0x10023ebc]
mov edx, dword [ecx + 8]
push eax
mov byte [esp + 0x3c], 2
call edx
mov ecx, dword [0x10023ebc]
mov edx, dword [ecx + 8]
mov edi, eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
call edx
push edi
push eax
lea eax, [esp + 0x2c]
push str._s__s
push eax
call fcn.1000dd20
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov edx, dword [0x10023ecc]
push eax
mov eax, dword [edx + 0x14]
push ecx
mov byte [esp + 0x58], 3
call eax
add esp, 0x20
lea ecx, [esp + 0x1c]
mov byte [esp + 0x38], 2
call fcn.100017c0
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 0
call fcn.100017c0
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], 0xffffffff
call fcn.100017c0
mov eax, dword [ebx]
mov ecx, dword [0x10023ecc]
mov edx, dword [ecx + 0xc]
push eax
add esi, 1
call edx
add esp, 4
cmp esi, eax
jb 0x1000de70
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.downcast_from_CPOSObject_to_CPOSString_failed
call fcn.100037d0
int3
Function at 0x100111b0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10017320
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esp + 0x44]
push eax
lea ecx, [esp + 0x10]
call fcn.10001590
xor ebx, ebx
lea ecx, [esp + 0xc]
push ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
call fcn.10001590
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esi + 0xc]
mov byte [esp + 0x40], 1
call fcn.10011120
mov eax, dword [esp + 0x24]
cmp eax, ebx
mov byte [esp + 0x3c], bl
je 0x10011241
push eax
call dword [0x10023c64]
add esp, 4
mov eax, dword [esp + 0xc]
cmp eax, ebx
mov dword [esp + 0x3c], 0xffffffff
je 0x1001125b
push eax
call dword [0x10023c64]
add esp, 4
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x34
ret 0xc
Function at 0x10013080
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x10017a4e
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x28]
xor ebx, ebx
push edi
lea ecx, [esi + 4]
mov dword [esp + 0x24], ebx
mov dword [esi], vtable.TempFileStream.0
call fcn.10012150
mov ebp, dword [esp + 0x2c]
push ebp
lea ecx, [esi + 8]
mov byte [esp + 0x24], 1
call fcn.10001590
mov eax, dword [esp + 0x30]
push eax
push ebp
lea ecx, [esi + 0x10]
push ecx
mov ecx, edi
mov byte [esp + 0x2c], 2
call fcn.10012490
mov dl, byte [esp + 0x34]
mov byte [esi + 0x20], dl
mov byte [esi + 0x21], bl
lea eax, [esi + 0x24]
mov dword [eax], vtable.double_linked_list_element_class_BIB_T_MT::LazyTerminate__class_BIBDLLEParent_.0
mov dword [eax + 0xc], 0x10023bac
mov ecx, dword [0x10023bac]
cmp ecx, ebx
mov dword [eax + 4], ecx
je 0x10013116
mov dword [ecx + 8], eax
mov ecx, dword [eax + 0xc]
mov dword [eax + 8], ebx
mov dword [ecx], eax
mov ecx, dword [eax + 0xc]
add dword [ecx + 4], 1
mov dword [eax], vtable.BIB_T_MT::TBIBLazyObjectPointer_class_BRVMutualExclusion_.0
mov dword [eax + 0x10], ebx
mov eax, esi
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10

Function at 0x100138b0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x10017c60
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x10023a8c]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x138]
mov dword fs:[0], eax
lea eax, [esp + 0x30]
push eax
xor ebx, ebx
push 0x104
mov dword [esp + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
add eax, 0xffffffff
cmp eax, 0x102
ja 0x100139bf
push 8
call dword [0x10023d94]
mov esi, eax
add esp, 4
test esi, esi
jne 0x10013923
call fcn.10001130
mov dword [esp + 0x1c], esi
test esi, esi
mov dword [esp + 0x140], 0
je 0x10013973
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x18]
call fcn.10001560
mov eax, dword [eax]
sub esp, 8
mov dword [esp + 0x18], esp
mov ecx, esp
push 0
mov ebx, 1
push eax
mov byte [esp + 0x150], 1
mov dword [esp + 0x1c], ebx
call fcn.100015c0
mov ecx, esi
call fcn.100122b0
mov esi, eax
jmp 0x10013975
xor esi, esi
test bl, 1
mov dword [esp + 0x140], 0xffffffff
je 0x10013997
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10013997
push eax
call dword [0x10023c64]
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.10014282
add esp, 0x138
ret
call dword [sym.imp.MSVCR80.dll__errno]
mov edx, dword [eax]
push 0
push 0
push edx
push str.BIBUtilsDir
push str.BIBUtilsDirImpl::GetTempDir:_Cannot_get_temp_dir
lea ecx, [esp + 0x34]
call fcn.10001660
push 0x1001db9c
lea eax, [esp + 0x24]
push eax
call sub.MSVCR80.dll__CxxThrowException
int3
Function at 0x100139f0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x10017cc0
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x10023a8c]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
mov eax, dword [0x10023a8c]
xor eax, esp
push eax
lea eax, [esp + 0x138]
mov dword fs:[0], eax
lea eax, [esp + 0x30]
push eax
xor ebx, ebx
push 0x104
mov dword [esp + 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
ja 0x10013a77
cmp eax, 0x104
jb 0x10013a77
call dword [sym.imp.MSVCR80.dll__errno]
mov ecx, dword [eax]
push ebx
push ebx
push ecx
push str.BIBUtilsDir
push str.BIBUtilsDirImpl::GetCurrent:_Cannot_get_current_dir
lea ecx, [esp + 0x34]
call fcn.10001660
push 0x1001db9c
lea edx, [esp + 0x24]
push edx
call sub.MSVCR80.dll__CxxThrowException
push 8
call dword [0x10023d94]
mov esi, eax
add esp, 4
test esi, esi
jne 0x10013a8d
call fcn.10001130
mov dword [esp + 0x1c], esi
test esi, esi
mov dword [esp + 0x140], 0
je 0x10013add
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x18]
call fcn.10001560
mov eax, dword [eax]
sub esp, 8
mov dword [esp + 0x18], esp
mov ecx, esp
push 0
mov ebx, 1
push eax
mov byte [esp + 0x150], 1
mov dword [esp + 0x1c], ebx
call fcn.100015c0
mov ecx, esi
call fcn.100122b0
mov esi, eax
jmp 0x10013adf
xor esi, esi
test bl, 1
mov dword [esp + 0x140], 0xffffffff
je 0x10013b01
mov eax, dword [esp + 0x14]
test eax, eax
je 0x10013b01
push eax
call dword [0x10023c64]
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.10014282
add esp, 0x138
ret