joyce8/EMBER2024-capa huggingface dataset:
Function at 0x58a272
Capabilities:
Enumerate files on windows

Disassembly:
push 0x4ec
mov eax, 0x6b8a67
call fcn.0066d8f7
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x268], esi
mov dword [ebp - 0x264], eax
call fcn.005b9bd7
test al, al
jne 0x58a2d4
push 0x4245b4
lea eax, [ebp - 0x4f8]
push 0x22
push eax
call fcn.005b9bd7
add esp, 0xc
push 0x43
pop ecx
mov esi, eax
push 0x6c2560
lea eax, [ebp - 0x3ec]
lea edi, [ebp - 0x3ec]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.005b9bd7
mov ecx, esi
call fcn.005b9bd7
lea ecx, [ebp - 0x2b8]
call fcn.005761e7
and dword [ebp - 4], 0
push edi
lea ecx, [ebp - 0x2b8]
call fcn.005b9bd7
mov esi, 0x402e78
push esi
lea ecx, [ebp - 0x290]
call fcn.0057706c
push 1
push eax
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.005b9bd7
mov bl, al
neg bl
sbb bl, bl
lea ecx, [ebp - 0x290]
inc bl
mov byte [ebp - 4], 0
call fcn.00576231
test bl, bl
je 0x58a35b
push esi
lea ecx, [ebp - 0x290]
call fcn.0057706c
push eax
lea ecx, [ebp - 0x2b8]
mov byte [ebp - 4], 2
call fcn.005b9bd7
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0
call fcn.00576231
push dword [ebp - 0x264]
lea ecx, [ebp - 0x2b8]
call fcn.005b9bd7
lea eax, [ebp - 0x260]
push eax
lea ecx, [ebp - 0x2b8]
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x264], eax
jne 0x58a3bf
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 3
je 0x58a4c9
cmp eax, 2
je 0x58a4c9
push 0x4245c8
push eax
lea eax, [ebp - 0x4f8]
push eax
call fcn.005b9bd7
jmp 0x58a2b3
mov ecx, edi
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
lea ecx, [ebp - 0x2e0]
call fcn.0057706c
push esi
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 3
call fcn.0057706c
push 1
push eax
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 4
call fcn.005b9bd7
mov bl, al
neg bl
sbb bl, bl
lea ecx, [ebp - 0x290]
inc bl
mov byte [ebp - 4], 3
call fcn.00576231
test bl, bl
je 0x58a43a
push esi
lea ecx, [ebp - 0x290]
call fcn.0057706c
push eax
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 5
call fcn.005b9bd7
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 3
call fcn.00576231
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x290]
call fcn.0057706c
lea eax, [ebp - 0x290]
push eax
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 6
call fcn.005b9bd7
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 3
call fcn.00576231
lea eax, [ebp - 0x2e0]
push eax
call fcn.005b9bd7
test al, al
je 0x58a493
mov ecx, dword [ebp - 0x268]
lea eax, [ebp - 0x2e0]
push eax
call fcn.005b9bd7
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 0
call fcn.00576231
lea eax, [ebp - 0x260]
push eax
push dword [ebp - 0x264]
call dword [sym.imp.kernel32.dll_FindNextFileW]
test eax, eax
jne 0x58a3bf
push dword [ebp - 0x264]
call dword [sym.imp.kernel32.dll_FindClose]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2b8]
call fcn.00576231
call fcn.0066d97a
ret 0xc
Function at 0x58dabb
Capabilities:
Get disk information

Disassembly:
push 0x220
mov eax, 0x6b93f9
call fcn.0066d88e
xor esi, esi
mov dword [ebp - 0x14], esi
mov edi, dword [ebp + 8]
mov ecx, edi
mov dword [ebp - 4], esi
call fcn.0056ab15
push 5
mov ecx, edi
mov dword [ebp - 4], esi
mov dword [ebp - 0x14], 1
call fcn.005b9bd7
mov ecx, eax
call fcn.005b9bd7
mov ecx, edi
call fcn.005b9bd7
mov ecx, eax
call fcn.0057605c
push eax
mov ecx, edi
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
mov ecx, dword [ebp + 0xc]
push eax
push esi
push esi
push esi
push esi
push esi
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
mov ebx, dword [sym.imp.kernel32.dll_GetVolumeInformationW]
jmp 0x58db88
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0xea
mov dword [ebp - 0x10], eax
je 0x58db3e
cmp eax, 0x18
jne 0x58db99
mov ecx, edi
call fcn.005b9bd7
mov ecx, eax
call fcn.0057605c
add eax, eax
push eax
mov ecx, edi
call fcn.005b9bd7
mov ecx, eax
call fcn.005b9bd7
mov ecx, edi
call fcn.005b9bd7
mov ecx, eax
call fcn.0057605c
push eax
mov ecx, edi
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
mov ecx, dword [ebp + 0xc]
push eax
push esi
push esi
push esi
push esi
push esi
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
call ebx
test eax, eax
je 0x58db29
mov eax, edi
call fcn.0066d966
ret 8
mov ecx, dword [ebp + 0xc]
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
push 0x4272b4
push dword [ebp - 0x10]
lea eax, [ebp - 0x22c]
push eax
call fcn.005b9bd7
add esp, 0x10
push 0x43
pop ecx
mov esi, eax
push 0x6c2560
lea eax, [ebp - 0x120]
lea edi, [ebp - 0x120]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.005b9bd7
int3
Function at 0x58e87c
Capabilities:
Get disk information

Disassembly:
push 0x1c
mov eax, 0x6b9610
call fcn.0066d88e
mov esi, dword [ebp + 8]
push esi
lea eax, [ebp - 0x28]
push eax
call fcn.0058e488
xor ebx, ebx
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.005b9bd7
mov ecx, eax
call fcn.00576275
test al, al
je 0x58e8bc
lea ecx, [ebp - 0x28]
call fcn.005b9bd7
push eax
push esi
call fcn.005b9bd7
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x28]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
call dword [sym.imp.kernel32.dll_GetVolumeInformationW]
test eax, eax
jne 0x58e91c
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
call fcn.00577e6f
test al, al
je 0x58e906
push edi
mov ecx, esi
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
push 0x4280b0
push 1
call fcn.00578284
add esp, 0x10
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00520932
mov al, bl
call fcn.0066d966
ret 4
call fcn.00577e6f
test al, al
je 0x58e93c
mov ecx, esi
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
push 0x428040
push 2
call fcn.00578284
add esp, 0xc
mov bl, 1
jmp 0x58e906
Function at 0x58e9fb
Capabilities:
Check if file exists

Disassembly:
push 0x24
mov eax, 0x6b9656
call fcn.0066d88e
push dword [ebp + 8]
call fcn.0058e649
push dword [ebp + 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x30]
push eax
mov esi, edx
call fcn.0058e5a0
and dword [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x58ea6f
call fcn.00577e6f
test al, al
je 0x58eb35
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
push 0x428398
push 2
call fcn.00578284
add esp, 0xc
jmp 0x58eb35
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
push eax
call fcn.005b9bd7
mov edi, edx
cmp edi, esi
mov ebx, eax
jb 0x58eaf8
ja 0x58ea8c
cmp ebx, dword [ebp - 0x14]
jb 0x58eaf8
call fcn.00577e6f
test al, al
je 0x58eac9
shrd ebx, edi, 0x14
shr edi, 0x14
push edi
push ebx
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
mov eax, dword [ebp - 0x14]
shrd eax, esi, 0x14
shr esi, 0x14
push esi
push eax
push 0x4282f8
push 2
call fcn.00578284
add esp, 0x1c
call fcn.00577e6f
test al, al
je 0x58eae0
push 0x428290
push 2
call fcn.00578284
pop ecx
pop ecx
mov bl, 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00520932
mov al, bl
call fcn.0066d966
ret 4
call fcn.00577e6f
test al, al
je 0x58eb35
shrd ebx, edi, 0x14
shr edi, 0x14
push edi
push ebx
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
mov eax, dword [ebp - 0x14]
shrd eax, esi, 0x14
shr esi, 0x14
push esi
push eax
push 0x4282f8
push 2
call fcn.00578284
add esp, 0x1c
call fcn.00577e6f
test al, al
je 0x58eb4c
push 0x428228
push 1
call fcn.00578284
pop ecx
pop ecx
xor bl, bl
jmp 0x58eae2
Function at 0x58eb50
Capabilities:
Check if file exists

Disassembly:
push 0x24
mov eax, 0x6b9679
call fcn.0066d88e
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0058e73c
push dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x30]
push eax
mov esi, edx
call fcn.0058e5a0
and dword [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x58ebc7
call fcn.00577e6f
test al, al
je 0x58ec8d
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
push 0x428398
push 2
call fcn.00578284
add esp, 0xc
jmp 0x58ec8d
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
push eax
call fcn.005b9bd7
mov edi, edx
cmp edi, esi
mov ebx, eax
jb 0x58ec50
ja 0x58ebe4
cmp ebx, dword [ebp - 0x14]
jb 0x58ec50
call fcn.00577e6f
test al, al
je 0x58ec21
shrd ebx, edi, 0x14
shr edi, 0x14
push edi
push ebx
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
mov eax, dword [ebp - 0x14]
shrd eax, esi, 0x14
shr esi, 0x14
push esi
push eax
push 0x4284e8
push 2
call fcn.00578284
add esp, 0x1c
call fcn.00577e6f
test al, al
je 0x58ec38
push 0x428468
push 2
call fcn.00578284
pop ecx
pop ecx
mov bl, 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00520932
mov al, bl
call fcn.0066d966
ret 8
call fcn.00577e6f
test al, al
je 0x58ec8d
shrd ebx, edi, 0x14
shr edi, 0x14
push edi
push ebx
lea ecx, [ebp - 0x30]
call fcn.005b9bd7
mov ecx, eax
call sym.osetup.dll_public:_struct_FlexUI::IDataSource____thiscall_FlexUI::FlexValue::GetDataSource_void_const
push eax
mov eax, dword [ebp - 0x14]
shrd eax, esi, 0x14
shr esi, 0x14
push esi
push eax
push 0x4284e8
push 2
call fcn.00578284
add esp, 0x1c
call fcn.00577e6f
test al, al
je 0x58eca4
push 0x4283e8
push 1
call fcn.00578284
pop ecx
pop ecx
xor bl, bl
jmp 0x58ec3a
Function at 0x5adec9
Capabilities:
Get thread local storage value

Disassembly:
push dword [0x717aec]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
jne 0x5adeda
ret
mov eax, dword [eax + 0xc]
ret

Function at 0x5adfc4
Capabilities:
Allocate thread local storage

Disassembly:
cmp dword [0x72dbfc], 0
jbe 0x5adfd6
inc dword [0x72dbfc]
xor eax, eax
ret
call fcn.005f8a4f
call fcn.005f8825
test eax, eax
jne 0x5adfea
mov eax, 0x80004005
ret
push esi
mov dword [0x717d24], 2
mov dword [0x717d28], 0x8d
call dword [sym.imp.kernel32.dll_TlsAlloc]
cmp eax, 0xffffffff
mov dword [0x717aec], eax
jne 0x5ae016
mov esi, 0x80040001
jmp 0x5ae05b
call fcn.005f7bf6
call fcn.005f1973
mov esi, eax
test esi, esi
jl 0x5ae05b
call fcn.005bddf0
mov esi, eax
test esi, esi
jl 0x5ae05b
call fcn.005f1b2f
mov esi, eax
test esi, esi
jl 0x5ae05b
call fcn.0063ad57
mov esi, eax
test esi, esi
jl 0x5ae05b
push 0x72dc00
push 0x40
push 0x18
call fcn.005b9bd7
mov esi, eax
test esi, esi
jge 0x5ae081
call fcn.005f1845
call fcn.005be51a
mov eax, dword [0x717aec]
cmp eax, 0xffffffff
je 0x5ae07d
push eax
call dword [sym.imp.kernel32.dll_TlsFree]
or dword [0x717aec], 0xffffffff
mov eax, esi
pop esi
ret
mov dword [0x72dbfc], 1
xor eax, eax
pop esi
ret
Function at 0x5ae5ed
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
xor ebx, ebx
cmp dword [0x72dc10], ebx
push esi
push edi
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
jne 0x5ae61a
mov ebx, 0x80004005
lea ecx, [ebp - 4]
call fcn.005ae08f
mov eax, ebx
jmp 0x5ae75c
lea ecx, [ebp - 4]
call fcn.005ae301
mov eax, dword [0x717aec]
cmp eax, 0xffffffff
mov esi, dword [sym.imp.kernel32.dll_TlsGetValue]
je 0x5ae639
push eax
call esi
cmp eax, ebx
jne 0x5ae64f
call fcn.005adfc4
mov edi, eax
cmp edi, ebx
jl 0x5ae732
mov dword [ebp - 8], 1
push dword [0x717aec]
call esi
cmp eax, ebx
je 0x5ae660
inc dword [eax + 4]
jmp 0x5ae60b
push 0x34
call fcn.005b9bd7
mov esi, eax
cmp esi, ebx
jne 0x5ae674
mov edi, 0x8007000e
jmp 0x5ae6ec
push esi
push dword [0x717aec]
call dword [sym.imp.kernel32.dll_TlsSetValue]
lea eax, [esi + 8]
push eax
call fcn.005b9bd7
mov edi, eax
cmp edi, ebx
jl 0x5ae6ec
lea eax, [esi + 0xc]
push eax
push 8
call fcn.005b9bd7
mov edi, eax
cmp edi, ebx
jl 0x5ae6ec
mov dword [esi + 4], 1
mov byte [esi + 0x10], bl
mov byte [esi + 0x11], bl
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
xor eax, eax
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edi, edi
lea eax, [ebp - 0x1c]
inc edi
push eax
mov dword [ebp - 0x1c], 0x14
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], ebx
call fcn.005b9bd7
cmp eax, ebx
mov dword [esi], eax
jne 0x5ae73e
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
cmp esi, ebx
je 0x5ae728
mov ecx, dword [esi + 0xc]
cmp ecx, ebx
je 0x5ae6fc
call fcn.005fc30d
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x5ae709
push eax
call fcn.005b9bd7
mov eax, dword [esi]
cmp eax, ebx
je 0x5ae715
push eax
call fcn.005b9bd7
push esi
call fcn.005b9bd7
push ebx
push dword [0x717aec]
call dword [sym.imp.kernel32.dll_TlsSetValue]
cmp dword [ebp - 8], ebx
je 0x5ae732
call fcn.005ae541
lea ecx, [ebp - 4]
call fcn.005ae08f
mov eax, edi
jmp 0x5ae75c
cmp dword [0x72dbfc], edi
jne 0x5ae752
mov eax, dword [0x72dc14]
cmp eax, ebx
je 0x5ae752
push ebx
call eax
lea ecx, [ebp - 4]
call fcn.005ae08f
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x5cfd15
Capabilities:
Hide graphical window

Disassembly:
push esi
mov esi, ecx
push 0
lea ecx, [esi + 0x94]
call fcn.005b9bd7
mov ecx, esi
pop esi
jmp fcn.005cf8f0
Function at 0x62d577
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov esi, ecx
call fcn.005b87e0
cmp byte [esi + 0xb4], 0
mov ecx, esi
je 0x62d5f2
xor edi, edi
inc edi
push edi
call fcn.005b9bd7
push 3
mov ecx, esi
call fcn.005b9bd7
mov ecx, dword [esi + 0x9c]
push edi
push edi
call fcn.005b9bd7
mov ecx, dword [esi + 0x8c]
push edi
push 2
call fcn.005b9bd7
push edi
lea ebx, [esi + 0xa0]
mov ecx, dword [ebx]
push 3
call fcn.005b9bd7
mov ecx, dword [esi + 0x9c]
push 0x10
call fcn.005b9bd7
mov ecx, dword [ebx]
push 0x11
call fcn.005b9bd7
push 0x4ebc94
mov ecx, esi
call fcn.005b9bd7
push 0x403e1c
jmp 0x62d656
push 3
call fcn.005b9bd7
xor edi, edi
inc edi
push edi
mov ecx, esi
call fcn.005b9bd7
mov ecx, dword [esi + 0x9c]
push edi
push edi
call fcn.005b9bd7
mov ecx, dword [esi + 0x8c]
push 2
push edi
call fcn.005b9bd7
push 3
lea ebx, [esi + 0xa0]
mov ecx, dword [ebx]
push edi
call fcn.005b9bd7
mov ecx, dword [esi + 0x9c]
push 0xc
call fcn.005b9bd7
mov ecx, dword [ebx]
push 0xd
call fcn.005b9bd7
push 0x403e1c
mov ecx, esi
call fcn.005b9bd7
push 0x4ebc94
mov ecx, esi
call fcn.005b9bd7
pop edi
pop esi
pop ebx
jmp fcn.005b9bd7

Function at 0x63a033
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
lea esi, [edi + 0x1000]
mov eax, dword [esi]
test eax, eax
jg 0x63a069
push dword [0x71e8c0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edx, dword [eax]
push 0x50
push 0x200
push edi
push esi
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esi]
test eax, eax
jne 0x63a069
xor edi, edi
jmp 0x63a087
dec eax
push 0x50
mov dword [esi], eax
mov edi, dword [edi + eax*4]
push 0
push edi
call fcn.0066e181
add esp, 0xc
test edi, edi
je 0x63a087
mov ecx, edi
call fcn.00639f37
mov eax, edi
pop edi
pop esi
ret

Function at 0x63aac3
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
push 2
mov dword [edi], 0x4ef0f4
lea esi, [edi + 0x20]
pop ebx
mov eax, dword [esi]
test eax, eax
je 0x63aae3
push eax
call fcn.005b9bd7
and dword [esi], 0
add esi, 4
dec ebx
jne 0x63aad4
mov eax, dword [edi + 0xc]
test eax, eax
je 0x63aaf6
push eax
call fcn.005b9bd7
push dword [0x728f98]
call dword [sym.imp.kernel32.dll_TlsGetValue]
and dword [eax + 0x16c], 0
mov ecx, edi
pop edi
pop esi
pop ebx
jmp fcn.00646cb1

Function at 0x646ad0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
lea ecx, [esi + 0x40]
call fcn.00646a31
lea ecx, [esi + 0x20]
call fcn.00646a31
mov ecx, esi
pop esi
jmp fcn.00646a31
push esi
mov esi, ecx
mov ecx, dword [esi + 0x16c]
or dword [esi + 0x194], 2
test ecx, ecx
je 0x646b01
push esi
push 0x6469e1
call fcn.005b9bd7
test eax, eax
je 0x646afa
mov ecx, esi
call fcn.00646997
and dword [esi + 0x16c], 0
mov eax, dword [esi + 8]
test eax, eax
je 0x646b0f
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 1
lea ecx, [esi + 0x170]
call fcn.005b9bd7
lea ecx, [esi + 0x168]
call fcn.0064998f
lea ecx, [esi + 0x6c]
call fcn.00647ac3
lea ecx, [esi + 0xc]
pop esi
jmp 0x646ab5
Function at 0x653ebd
Capabilities:
Set thread local storage value

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, edx
jb 0x653ede
mov eax, dword [eax + 8]
cmp ecx, eax
jb 0x653ede
cmp edx, eax
jb 0x653ede
add eax, 0x10000
cmp eax, ecx
jae 0x653f09
mov eax, dword [0x729f74]
push 0
push eax
call dword [sym.imp.kernel32.dll_TlsSetValue]
push 0
push 0x35636561
call fcn.005b9bd7
push 0
push 0
push 1
push 0xe0000001
call dword [sym.imp.kernel32.dll_RaiseException]
ret
Function at 0x66d880
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x72acfc]
jne 0x67324a
repz ret
push ebp
mov ebp, esp
sub esp, 0x328
mov dword [0x734d28], eax
mov dword [0x734d24], ecx
mov dword [0x734d20], edx
mov dword [0x734d1c], ebx
mov dword [0x734d18], esi
mov dword [0x734d14], edi
mov word [0x734d40], ss
mov word [0x734d34], cs
mov word [0x734d10], ds
mov word [0x734d0c], es
mov word [0x734d08], fs
mov word [0x734d04], gs
pushfd
pop dword [0x734d38]
mov eax, dword [ebp]
mov dword [0x734d2c], eax
mov eax, dword [ebp + 4]
mov dword [0x734d30], eax
lea eax, [ebp + 8]
mov dword [0x734d3c], eax
mov eax, dword [ebp - 0x320]
mov dword [0x734c78], 0x10001
mov eax, dword [0x734d30]
mov dword [0x734c2c], eax
mov dword [0x734c20], 0xc0000409
mov dword [0x734c24], 1
mov eax, dword [0x72acfc]
mov dword [ebp - 0x328], eax
mov eax, dword [0x72ad00]
mov dword [ebp - 0x324], eax
call dword [sym.imp.kernel32.dll_IsDebuggerPresent]
mov dword [0x734c70], eax
push 1
call fcn.006724d4
pop ecx
push 0
call dword [sym.imp.kernel32.dll_SetUnhandledExceptionFilter]
push 0x5015e0
call dword [sym.imp.kernel32.dll_UnhandledExceptionFilter]
cmp dword [0x734c70], 0
jne 0x67333a
push 1
call fcn.006724d4
pop ecx
push 0xc0000409
call dword [sym.imp.kernel32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.kernel32.dll_TerminateProcess]
leave
ret

Function at 0x683608
Capabilities:
Write file on windows

Disassembly:
push 0x10c
mov eax, 0x6bb3b5
call fcn.0066d8f7
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xc0], eax
call fcn.00683506
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 4]
push dword [0x72c3f0]
lea ecx, [ebp - 0x118]
mov esi, eax
call fcn.00685221
mov eax, dword [esi]
push 1
push 1
xor edi, edi
push edi
lea ecx, [ebp - 0x118]
push ecx
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, esi
mov dword [ebp - 4], edi
call dword [eax + 0x24]
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 2
call fcn.0055b7f8
lea ecx, [ebp - 0xb8]
call fcn.006845f7
test al, al
je 0x68368b
cmp dword [ebp - 0xc0], edi
je 0x683729
lea eax, [ebp - 0xb9]
push eax
lea ecx, [ebp - 0x64]
call fcn.005b9bd7
push ebx
lea eax, [ebp - 0x64]
push eax
mov byte [ebp - 4], 3
call fcn.0068d88a
lea ecx, [ebp - 0xb8]
call fcn.006845f7
test al, al
jne 0x68370e
push edi
push 0x80
push 2
push edi
push 1
push 0x40000000
lea ecx, [ebp - 0xb8]
call fcn.0068484c
push eax
call dword [sym.imp.kernel32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x68370e
push edi
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x64]
mov dword [ebp - 0xc4], edi
call fcn.006409a9
push eax
lea ecx, [ebp - 0x64]
call fcn.0068484c
push eax
push esi
call dword [sym.imp.kernel32.dll_WriteFile]
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov ecx, dword [ebp - 0xc0]
cmp ecx, edi
je 0x683721
lea eax, [ebp - 0x64]
push eax
call fcn.005b9bd7
lea ecx, [ebp - 0x64]
call fcn.0055b7f8
lea ecx, [ebp - 0xb8]
call fcn.0055b7f8
call fcn.0066d97a
ret 8
Function at 0x6948e9
Capabilities:
Get common file path

Disassembly:
push 0x210
mov eax, 0x6be7d1
call fcn.0066d8f7
mov edi, dword [ebp + 8]
xor ebx, ebx
cmp byte [0x735f90], bl
mov esi, 0x735f90
jne 0x694a5e
push 0x103
lea eax, [ebp - 0x113]
push ebx
push eax
mov byte [ebp - 0x114], bl
call fcn.0066e181
add esp, 0xc
push 0x104
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.kernel32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x69497f
push 0x5c
call fcn.005b9bd7
pop ecx
mov ecx, eax
mov dword [ebp - 0x16c], ecx
cmp ecx, ebx
mov dword [ebp - 4], ebx
je 0x694962
push 0x80004005
call fcn.005b9bd7
jmp 0x694964
xor eax, eax
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x170], eax
push 0x6d914c
lea eax, [ebp - 0x170]
push eax
call fcn.005b9bd7
push 0x50a694
lea ecx, [ebp - 0x21c]
call fcn.00685221
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 4], 1
call fcn.00685221
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x1c8]
push eax
lea eax, [ebp - 0x168]
push eax
mov byte [ebp - 4], 2
call fcn.006947c8
lea ecx, [ebp - 0x1c8]
call fcn.0055b7f8
lea ecx, [ebp - 0x21c]
mov byte [ebp - 4], 5
call fcn.0055b7f8
push ebx
push ebx
lea eax, [ebp - 0x174]
push eax
push esi
lea ecx, [ebp - 0x168]
mov dword [ebp - 0x174], 0x84
call fcn.0068484c
push eax
call sub.msi.dll_MsiMessageBoxA
test eax, eax
je 0x694a4f
push 0x5c
mov byte [0x735f90], bl
call fcn.005b9bd7
pop ecx
mov ecx, eax
mov dword [ebp - 0x170], ecx
cmp ecx, ebx
mov byte [ebp - 4], 6
je 0x694a33
push 0x80004005
call fcn.005b9bd7
jmp 0x694a35
xor eax, eax
mov dword [ebp - 0x16c], eax
mov byte [ebp - 4], 5
push 0x6d914c
lea eax, [ebp - 0x16c]
jmp 0x694979
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x168]
call fcn.0055b7f8
push esi
mov ecx, edi
call fcn.005b9bd7
call fcn.0066d97a
ret 4