joyce8/EMBER2024-capa huggingface dataset:
Function at 0x7880fb38
Capabilities:
Get thread local storage value

Disassembly:
call fcn.788072a6
test eax, eax
jne fcn.788075f1
push esi
lea esi, [ecx + 4]
push esi
call fcn.788fa97a
add eax, 8
mov dword [esi], eax
shr eax, 3
pop esi
ret

Function at 0x7881069d
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push esi
lea esi, [ecx + 4]
cmp dword [esi], 8
jb 0x788a3720
mov eax, dword [esi]
test al, 4
je 0x7881072a
add eax, 0xfffffff8
mov dword [esi], eax
shr eax, 3
pop esi
ret
push 0xfffffffffffffff8
push esi
call dword [0x7891e1e0]
sub eax, 8
jmp 0x788106b7
push 0x788a3738
call dword [sym.imp.kernel32.dll_OutputDebugStringW]
and dword [0], 0
jmp 0x788106ac

Function at 0x78810c6f
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push esi
mov esi, ecx
push edi
lea edi, [esi + 4]
mov ecx, edi
call fcn.788de13e
mov dword [edi], 0x78810dac
pop edi
mov dword [esi], 0x78810d70
mov dword [esi + 8], 0x78810d60
mov dword [esi + 0x10], 0x78810d5c
mov dword [esi + 0x1c], 0x78810d20
mov dword [esi + 0x20], 0x78810d00
mov dword [esi + 0x24], 0x78810cec
mov dword [esi + 0x28], 0x78810cd4
mov dword [esi + 0x2c], 0x78810cc8
mov dword [esi + 0x50], 1
mov eax, esi
pop esi
ret

Function at 0x78811159
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push esi
push dword [0x78918190]
mov esi, ecx
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov eax, dword [eax + 0x28]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
or eax, 8
mov dword [esi + 4], eax
mov eax, esi
pop esi
ret

Function at 0x78811dd0
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebx
push esi
push edi
mov esi, ecx
xor ebx, ebx
push ebx
lea ecx, [esi + 0x3c]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x40]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x44]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x4c]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x50]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x54]
call fcn.788fa97a
mov ecx, dword [esi + 0x58]
cmp ecx, ebx
jne 0x788a7350
push ebx
lea ecx, [esi + 0x5c]
mov dword [esi + 0x58], ebx
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x48]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x60]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x64]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x38]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x70]
call fcn.788fa97a
push ebx
lea ecx, [esi + 0x68]
call fcn.788fa97a
lea ecx, [esi + 0xc]
call fcn.78811db7
lea ecx, [esi + 0x1c]
call fcn.78811db7
mov byte [esi + 0x2c], bl
mov byte [esi + 0x2f], bl
mov byte [esi + 0x2d], bl
mov dword [esi + 0x6c], ebx
push dword [0x78918190]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
mov ecx, dword [edi + 0x50]
cmp ecx, ebx
je 0x78811e96
cmp dword [ecx + 0x10], esi
je 0x78862aa1
pop edi
pop esi
pop ebx
ret
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [edi + 0x50], ebx
jmp 0x78811e96
push 1
call fcn.788fa97a
jmp 0x78811e1a
Function at 0x788147ff
Capabilities:
Get thread local storage value

Disassembly:
push 0x3c
push 0x788148a0
call fcn.78801330
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
push dword [0x78918190]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov dword [ebp - 0x28], eax
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x4c]
call fcn.788fa97a
mov dword [ebp - 4], ebx
push dword [ebp - 0x28]
mov ecx, dword [0x7891e294]
call fcn.788fa97a
mov dword [ebp - 0x1c], edi
mov esi, dword [ebp + 8]
cmp esi, ebx
jne 0x788148ac
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x78890ac0
push dword [ebp + 0x10]
push eax
mov ecx, dword [0x7891e29c]
call fcn.78807a8e
mov dword [ebp - 0x20], eax
cmp eax, ebx
je 0x78814870
mov ecx, dword [0x7891e298]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x7891e294]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x20], ebx
je 0x788823ea
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.7880cf41
mov eax, dword [ebp - 0x20]
call fcn.78801370
ret 0xc
mov ecx, dword [0x7891e29c]
mov dword [ebp - 0x2c], ecx
push esi
call fcn.788fa97a
jmp 0x78814860
mov eax, dword [esi + 8]
mov dword [ebp - 0x30], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x34], ecx
push eax
push ebx
push ecx
call fcn.788fa97a
mov dword [ebp - 0x24], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x34]
jmp 0x78882401
cmp esi, ebx
jne 0x788824f4
push dword [ebp + 0x10]
push ebx
push dword [ebp + 0xc]
call fcn.788fa97a
mov dword [ebp - 0x24], eax
push 0x18
call fcn.788fa97a
mov esi, eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], esi
mov edi, dword [ebp - 0x24]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x20]
push eax
push edi
mov ecx, esi
call fcn.788fa97a
mov edi, eax
mov dword [ebp - 0x20], edi
push dword [ebp - 0x28]
mov ecx, dword [0x7891e294]
call fcn.788fa97a
mov dword [ebp - 0x1c], 2
push edi
push dword [ebp - 0x24]
mov ecx, dword [0x7891e29c]
call fcn.788fa97a
mov esi, eax
mov dword [ebp - 0x40], esi
mov eax, dword [0x7891e298]
mov dword [esi + 0xc], eax
mov ecx, dword [0x7891e294]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov dword [ebp - 0x1c], ebx
cmp esi, edi
jne 0x78890aca
mov dword [ebp - 0x20], esi
jmp 0x78814887
mov ecx, esi
call fcn.7880cf79
cmp eax, edi
jne 0x78837eb2
mov dword [ebp - 0x24], esi
jmp 0x78882401
mov eax, 0x78811004
jmp 0x78814851
push ebx
lea ecx, [edi + 0x10]
call fcn.788fa97a
mov ecx, edi
call fcn.788b0cb6
jmp 0x7888246f
Function at 0x788148d2
Capabilities:
Get thread local storage value

Disassembly:
push 0x38
push 0x78814970
call fcn.78801330
and dword [ebp - 0x1c], 0
push dword [0x78918190]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov dword [ebp - 0x20], eax
xor ebx, ebx
inc ebx
push ebx
lea ecx, [ebp - 0x48]
call fcn.788fa97a
and dword [ebp - 4], 0
mov edi, dword [ebp + 8]
mov dword [ebp - 0x3c], edi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x38], esi
push dword [ebp - 0x20]
mov ecx, dword [0x7891e290]
call fcn.788fa97a
mov dword [ebp - 0x1c], ebx
push 4
lea eax, [ebp - 0x3c]
push eax
mov ecx, dword [0x7891e2a0]
call fcn.78807a8e
mov ebx, eax
mov dword [ebp - 0x28], ebx
test ebx, ebx
je 0x78814940
mov eax, dword [0x7891e298]
mov dword [ebx + 0xc], eax
mov ecx, dword [0x7891e290]
mov eax, dword [ecx]
call dword [eax + 0x18]
and dword [ebp - 0x1c], 0
test ebx, ebx
je 0x78882477
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.7880cf41
mov eax, ebx
call fcn.78801370
ret 8
push 4
lea eax, [ebp - 0x3c]
push eax
call fcn.788fa97a
mov dword [ebp - 0x24], eax
push 0x1c
call fcn.788fa97a
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
push dword [ebp - 0x24]
push esi
push edi
mov ecx, eax
call fcn.788fa97a
mov edi, eax
mov dword [ebp - 0x28], edi
push dword [ebp - 0x20]
mov ecx, dword [0x7891e290]
call fcn.788fa97a
mov dword [ebp - 0x1c], 2
push edi
push dword [ebp - 0x24]
mov ecx, dword [0x7891e2a0]
call fcn.788fa97a
mov esi, eax
mov dword [ebp - 0x34], esi
mov eax, dword [0x7891e298]
mov dword [esi + 0xc], eax
mov ecx, dword [0x7891e290]
mov eax, dword [ecx]
call dword [eax + 0x10]
and dword [ebp - 0x1c], ebx
cmp esi, edi
jne 0x78890583
mov ebx, esi
mov dword [ebp - 0x28], ebx
jmp 0x78814957
push ebx
lea ecx, [edi + 0x18]
call fcn.788fa97a
mov ecx, edi
call fcn.788b0cb6
jmp 0x788824ea

Function at 0x788152e0
Capabilities:
Get thread local storage value

Disassembly:
call fcn.788072a6
test eax, eax
jne fcn.7880f880
push esi
lea esi, [ecx + 4]
push esi
call fcn.788fa97a
sub eax, 8
mov dword [esi], eax
shr eax, 3
pop esi
ret

Function at 0x788162a7
Capabilities:
Clear file content

Disassembly:
mov edi, edi
push esi
mov esi, ecx
mov eax, dword [esi + 0x54]
cmp eax, 0xffffffff
mov dword [esi], 0x78807fe8
mov dword [esi + 4], 0x78809f00
je 0x788162d8
cmp byte [esi + 0x58], 0
jne 0x788a4694
push dword [esi + 0x54]
call dword [sym.imp.kernel32.dll_CloseHandle]
or dword [esi + 0x54], 0xffffffff
mov ecx, esi
pop esi
push eax
call dword [sym.imp.kernel32.dll_SetEndOfFile]
push dword [esi + 0x54]
call dword [sym.imp.kernel32.dll_FlushFileBuffers]
jmp 0x788162cb
Function at 0x78821555
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push esi
push dword [0x78918190]
call dword [sym.imp.kernel32.dll_TlsGetValue]
push dword [0x7891e34c]
and dword [0x7891e360], 0
mov esi, eax
mov byte [0x7891e358], 1
call dword [sym.imp.kernel32.dll_ResetEvent]
push esi
mov dword [0x7891e1f0], 0x788b0c9a
mov dword [0x7891e1ec], 0x78821685
call fcn.78814c2e
mov esi, dword [0x7891e340]
test esi, esi
mov eax, dword [0x7891e348]
mov dword [0x7891e350], esi
mov dword [0x7891e1e8], eax
je 0x788215fa
push edi
cmp byte [esi + 0x44], 0
jne 0x7888f924
lea edi, [esi + 0xc]
push edi
call fcn.788fa97a
push esi
call fcn.788fa97a
cmp dword [esi + 0x2c], 0
mov dword [edi], eax
mov dword [esi + 4], esi
mov byte [esi + 0x18], 1
je 0x788215f2
inc dword [0x7891e360]
mov byte [esi + 0x19], 1
mov eax, dword [0x7891e348]
add dword [0x7891e1e8], eax
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x788215b5
pop edi
push dword [0x7891e34c]
mov dword [0x7891e1f0], 0x78809ed9
call dword [sym.imp.kernel32.dll_SetEvent]
pop esi
ret
push esi
call fcn.78814c2e
jmp 0x788215bf
Function at 0x7885541c
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push esi
mov esi, ecx
lea ecx, [esi + 0xdc]
call fcn.78880b79
test eax, eax
je fcn.788b10d1
lea ecx, [esi + 0xd8]
mov edx, dword [ecx]
and dword [eax + 4], 0
mov dword [eax], edx
mov ecx, dword [ecx]
cmp ecx, 0x15
jg 0x7885ced3
je 0x78863303
cmp ecx, 0xf
jg 0x7885683e
cmp ecx, 0xd
jge 0x78856d75
sub ecx, 5
je 0x7885cce7
sub ecx, 3
je 0x78872e0d
sub ecx, 3
je 0x78863587
dec ecx
je 0x7889f645
mov ecx, dword [esi + 0x54]
mov dword [eax + 4], ecx
mov eax, ecx
test eax, eax
pop esi
je 0x7889f650
jmp fcn.788075f1
sub ecx, 0x10
je 0x78872e18
dec ecx
dec ecx
je 0x7885ce72
dec ecx
jne 0x7885fcfe
mov ecx, dword [esi + 0x6c]
jmp 0x7885548a
mov ecx, dword [esi + 0xa0]
jmp 0x7885548a
mov ecx, dword [esi + 0x5c]
jmp 0x7885548a
mov ecx, dword [esi + 0x70]
jmp 0x7885548a
cmp ecx, 0x1a
jg 0x7886fcb1
jne 0x7885fe35
mov ecx, dword [esi + 0x94]
jmp 0x7885548a
dec ecx
jne 0x78855487
mov ecx, dword [esi + 0x74]
jmp 0x7885548a
sub ecx, 0x16
jne 0x78872df5
mov ecx, dword [esi + 0x78]
jmp 0x7885548a
mov ecx, dword [esi + 0x7c]
jmp 0x7885548a
mov ecx, dword [esi + 0x98]
jmp 0x7885548a
sub ecx, 0x1b
je 0x78870812
dec ecx
je 0x7887082e
sub ecx, 0x14
jne 0x78855487
mov ecx, dword [esi + 0xd4]
jmp 0x7885548a
mov ecx, dword [esi + 0x90]
jmp 0x7885548a
mov ecx, dword [esi + 0x8c]
jmp 0x7885548a
dec ecx
je 0x78872e2b
dec ecx
je 0x78872e20
dec ecx
jne 0x78855487
mov ecx, dword [esi + 0x84]
jmp 0x7885548a
mov ecx, dword [esi + 0xa8]
jmp 0x7885548a
mov ecx, dword [esi + 0x60]
jmp 0x7885548a
mov ecx, dword [esi + 0x88]
jmp 0x7885548a
mov ecx, dword [esi + 0x80]
jmp 0x7885548a
mov ecx, dword [esi + 0x9c]
jmp 0x7885548a
ret
Function at 0x7887e74c
Capabilities:
Get thread local storage value

Disassembly:
push 0x34
push 0x7887e850
call fcn.78801330
mov esi, ecx
mov byte [ebp - 0x1c], 0
mov edi, dword [esi + 0x34]
mov dword [ebp - 0x24], edi
mov ebx, dword [edi + 0xb4]
xor ecx, ecx
cmp dword [ebp + 8], ecx
jne 0x7887e781
mov ecx, edi
call fcn.78809024
mov dword [ebp + 8], eax
mov byte [ebp - 0x1c], 1
xor ecx, ecx
mov eax, dword [edi + 0xbc]
cmp eax, 4
jne 0x788a73f0
mov eax, dword [edi + 0x54]
shr eax, 0xa
test al, 1
jne 0x788a73fa
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x20], ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [edi + 0xbc], 2
and dword [ebp - 4], 0
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x7887e83f
test ebx, ebx
je 0x7887e7d9
mov byte [esi + 0x2f], 1
push edi
mov eax, dword [0x7891e2a4]
push eax
push eax
push ebx
mov ecx, esi
call fcn.788fa97a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
test al, 0x20
jne 0x788a744d
test al, 0x1f
jne 0x788a7477
cmp byte [ebp - 0x1c], 0
je 0x7887e814
push dword [0x78918190]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], ebx
mov ecx, dword [ebx + 0x50]
test ecx, ecx
jne 0x788a7459
push dword [ebp - 0x1c]
push edi
push dword [ebp + 8]
push esi
call fcn.7887e6c4
mov dword [edi + 0xbc], 4
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
call dword [eax + 0x10]
call fcn.78801370
ret 4
cmp byte [ebp - 0x1c], 0
je 0x7887e7d9
jmp 0x788a7417
push 0xc00ce212
call fcn.788fa97a
cmp dword [esi + 0x5c], ecx
je 0x7887e79e
push ecx
push ecx
push ecx
push ecx
push 0xc00ce23d
push 0x80004005
push ecx
call fcn.788fa97a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x2c], eax
push eax
mov ecx, esi
call fcn.788fa97a
push eax
mov ecx, esi
call fcn.788fa97a
mov eax, dword [esi + 0x54]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x7887e7d9
mov dword [ebp - 0x34], eax
mov ecx, eax
call fcn.78815218
jmp 0x7887e7d9
push ecx
push esi
call fcn.7890c629
jmp 0x7887e821
cmp dword [ecx + 0x10], esi
jne 0x7887e814
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [ecx]
push 1
call dword [eax]
and dword [ebx + 0x50], 0
jmp 0x7887e814
push ecx
call fcn.788fa97a
push 0
push dword [ebp - 0x14]
call fcn.788fa97a
ret

Function at 0x788ccafe
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x7891e1e4]
mov dword [ebp - 4], eax
mov eax, dword [0x7892a46c]
cmp eax, 0xffffffff
jne 0x788ccb67
lea eax, [ebp - 0x118]
push eax
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.kernel32.dll_GetVersionExW]
test eax, eax
je fcn.788b0842
xor eax, eax
inc eax
cmp dword [ebp - 0x108], 2
jne 0x788ccb4f
cmp dword [ebp - 0x114], 5
jae 0x788ccb62
cmp dword [ebp - 0x108], eax
jne 0x788ccb60
cmp dword [ebp - 0x110], 0x5a
jae 0x788ccb62
xor eax, eax
mov dword [0x7892a46c], eax
mov ecx, dword [ebp - 4]
call fcn.78809964
leave
ret
Function at 0x788fa97a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
pushal
call 0x788fa989
pop dword [ebp - 0x4c]
mov eax, 0x43b8bc7a
sub eax, 0xcb2912f1
sub dword [ebp - 0x4c], eax
push 0x40
push 0x1000
push 0x92e09
push 0
mov eax, 0x2eee46c1
sub eax, 0xb66e35d5
add eax, dword [ebp - 0x4c]
call dword [eax]
mov ecx, 0xb125501a
sub ecx, 0xb1251054
xor esi, esi
add esi, eax
mov edi, 0x5645f261
sub edi, 0xddb03261
add edi, dword [ebp - 0x4c]
mov edx, 0x8bf3cf33
add edx, 0xfbc93e0e
add dword [ebp - 4], eax
mov ebx, dword [edi]
xor dword [ebp - 0x48], 0x9e8255ee
xor ebx, edx
sub dword [ebp - 0x10], 0x296f5422
mov dword [esi], ebx
add esi, 4
add edi, 4
loop 0x788fa9ea
add eax, 0xbd0895f9
add eax, 0x42f85bf2
xor ebx, ebx
add ebx, eax
add eax, 5
mov ecx, 0x88c76451
add ecx, 0xefb89baf
add ecx, dword [ebp - 0x4c]
call ebx
leave
ret

Function at 0x78914aa1
Capabilities:
Encrypt data using dpapi

Disassembly:
push 0x18
push 0x78914b90
call fcn.78801330
xor esi, esi
mov dword [ebp - 0x24], esi
cmp byte [0x7892ccc8], 0
je 0x78914b35
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], esi
push dword [ebp + 0xc]
push 5
push esi
push esi
push esi
cmp byte [ebp + 0x10], 0
je 0x78914adf
push 0x78914b78
push dword [ebp + 8]
call dword [sym.imp.CRYPT32.dll_CryptProtectData]
jmp 0x78914aec
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 8]
call dword [sym.imp.CRYPT32.dll_CryptUnprotectData]
mov dword [ebp - 0x20], eax
cmp eax, esi
jne 0x78914b0d
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [ebp - 0x28], eax
cmp eax, esi
jle 0x78914b0a
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x24], eax
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], esi
je 0x78914b6b
push dword [ebp - 0x1c]
call dword [sym.imp.kernel32.dll_LocalFree]
jmp 0x78914b6b
mov ebx, dword [ebp + 8]
push dword [ebx]
push esi
call dword [sym.imp.kernel32.dll_LocalAlloc]
mov edx, dword [ebp + 0xc]
mov dword [edx + 4], eax
cmp eax, esi
jne 0x78914b52
mov eax, 0x8007000e
jmp 0x78914b6e
mov ecx, dword [ebx]
mov esi, dword [ebx + 4]
mov edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx]
mov dword [edx], eax
mov eax, dword [ebp - 0x24]
call fcn.78801370
ret 0xc
Function at 0x2a30e3b1
Capabilities:
Terminate thread

Disassembly:
push 0xc
mov eax, 0x2a3549f2
call fcn.2a30266e
mov ebx, ecx
xor ecx, ecx
cmp dword [ebx], 0xb
mov edi, ecx
mov dword [ebp - 0x14], edi
jne 0x2a30e4a2
push 0xea60
push dword [ebx + 0x2d8]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
or dword [ebx + 0x1a0], 0xffffffff
push 1
push dword [ebx + 0x2d4]
call dword [sym.imp.kernel32.dll_SetThreadPriority]
push dword [ebx + 0x2d8]
call dword [sym.imp.kernel32.dll_ReleaseMutex]
call dword [sym.imp.kernel32.dll_GetTickCount]
shr eax, 4
lea esi, [eax + 0x12c]
call dword [sym.imp.kernel32.dll_GetTickCount]
shr eax, 4
cmp eax, esi
jae 0x2a30e45b
mov edi, esi
push 0xea60
push dword [ebx + 0x2d8]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
push dword [ebx + 0x2d8]
mov esi, dword [ebx]
call dword [sym.imp.kernel32.dll_ReleaseMutex]
cmp esi, 0xb
jne 0x2a30e458
push 0x64
call dword [sym.imp.kernel32.dll_Sleep]
call dword [sym.imp.kernel32.dll_GetTickCount]
shr eax, 4
cmp eax, edi
jb 0x2a30e41f
mov edi, dword [ebp - 0x14]
push 0xea60
push dword [ebx + 0x2d8]
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
cmp dword [ebx], 0xb
jne 0x2a30e482
push 1
push dword [ebx + 0x2d4]
call dword [sym.imp.kernel32.dll_TerminateThread]
xor edi, edi
inc edi
push dword [ebx + 0x2d8]
call dword [sym.imp.kernel32.dll_ReleaseMutex]
push dword [ebx + 0x2d8]
call dword [sym.imp.kernel32.dll_CloseHandle]
xor ecx, ecx
mov dword [ebx + 0x2d8], ecx
cmp dword [ebx + 0x18], 0
lea esi, [ebx + 0x1a0]
mov dword [esi], ecx
je 0x2a30e4d7
test di, di
jne 0x2a30e4d4
push esi
push dword [ebx + 0x18]
call fcn.2a320665
xor ecx, ecx
cmp dword [esi], ecx
jne 0x2a30e4d7
push esi
push dword [ebx + 0x14]
mov dword [ebx + 0x18], ecx
call fcn.2a320665
xor ecx, ecx
jmp 0x2a30e4d7
mov dword [ebx + 0x18], ecx
cmp word [ebx + 0x144], cx
je 0x2a30e55e
push ecx
push ecx
lea ecx, [ebp - 0x18]
call fcn.2a320665
mov edi, dword [0x2a36db18]
xor eax, eax
push eax
mov dword [ebp - 4], eax
lea eax, [ebx + 0x40]
push eax
mov eax, dword [0x2a36db04]
push str.Cstring
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [str.Pv0]
call esi
mov esi, dword [edi + 0xd0]
pop ecx
movzx eax, ax
mov ecx, esi
push eax
push 0
call dword [str.Pv0]
call esi
add esp, 0x10
lea ecx, [ebp - 0x18]
push 0
push eax
call fcn.2a320665
cmp dword [ebp - 0x14], 0
je 0x2a30e550
lea ecx, [ebp - 0x18]
call fcn.2a320665
test al, al
je 0x2a30e550
lea ecx, [ebp - 0x18]
call fcn.2a33f665
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.2a320665
xor ecx, ecx
cmp dword [ebx + 0x34], 0
je 0x2a30e582
mov eax, dword [0x2a36d7bc]
push dword [ebx + 0x34]
mov esi, dword [eax + 0x284]
mov ecx, esi
call dword [str.Pv0]
call esi
pop ecx
xor ecx, ecx
mov dword [ebx + 0x34], ecx
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x2a30e5b6
push eax
mov eax, dword [0x2a36dabc]
cmp word [ebx + 0x196], cx
je 0x2a30e5a0
mov esi, dword [eax + 0x124]
jmp 0x2a30e5a6
mov esi, dword [eax + 0x11c]
mov ecx, esi
call dword [str.Pv0]
call esi
xor eax, eax
pop ecx
mov dword [ebx + 0x20], eax
mov dword [ebx], 2
call fcn.2a302b96
ret
Function at 0x2a320665
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
pushal
call 0x2a320674
pop dword [ebp - 8]
mov eax, 0xc61fd854
add eax, 0x64122e20
sub dword [ebp - 8], eax
mov dword [ebp - 0x18], 0xc24486ea
sub dword [ebp - 0x18], 0x73f2419f
mov dword [ebp - 0x14], 0x4374ebff
sub dword [ebp - 0x14], 0x11419fba
mov dword [ebp - 0x10], 0x49a26c
add dword [ebp - 0x10], 0x4c02a1c2
mov dword [ebp - 0xc], 0x14faa8f8
add dword [ebp - 0xc], 0xeb055708
lea eax, [ebp - 0x18]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 8]
call dword [eax]
mov dword [ebp - 0x18], 0x12beb462
add dword [ebp - 0x18], 0x61b3b4f4
mov dword [ebp - 0x14], 0x3a3c9e7c
add dword [ebp - 0x14], 0x72fc2f9
mov dword [ebp - 0x10], 0x517cec0e
sub dword [ebp - 0x10], 0xee0d7fa2
mov dword [ebp - 0xc], 0x4543bcea
add dword [ebp - 0xc], 0xbabc4316
lea ebx, [ebp - 0x18]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 8]
call dword [eax]
push 0x40
push 0x1000
push 0x4d837
push 0
call eax
mov ecx, 0x513dfee6
sub ecx, 0x513daaa1
mov edi, eax
mov ebx, 0x55770504
add ebx, 0xd4c110fc
add ebx, dword [ebp - 8]
mov edx, 0xaf25aeb8
add edx, 0x53af1e78
add dword [ebp - 4], edx
mov esi, dword [ebx]
add dword [ebp - 4], 0x9ca1f2eb
xor esi, edx
add dword [ebp - 4], edi
mov dword [edi], esi
add edi, 0xe3ce8c3
add edi, 0xf1c31741
add ebx, 0xe74af6b2
add ebx, 0x18b50952
loop 0x2a32078c
add eax, 0xdad56575
sub eax, 0xdad4218e
xor ebx, ebx
add ebx, eax
add eax, 0xad6aca2f
add eax, 0x529535d6
mov ecx, 0x2a300000
add ecx, dword [ebp - 8]
call ebx
leave
ret
Function at 0x2a32d61e
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0x428
mov eax, 0x2a35670e
call fcn.2a3041d5
mov edx, dword [ebp + 0xc]
xor ebx, ebx
mov eax, dword [ebp + 8]
mov esi, ebx
mov dword [ebp - 0x42c], edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x424], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x418], ebx
mov byte [ebp - 4], 1
test eax, eax
je 0x2a32d83f
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
inc eax
push 2
push eax
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x420]
push eax
call fcn.2a320665
add esp, 0x10
test eax, eax
js 0x2a32d839
mov edi, dword [ebp - 0x420]
cmp edi, 0x400
jg 0x2a32d6c2
push edi
call fcn.2a32eb0c
pop ecx
test al, al
je 0x2a32d6c2
mov eax, edi
call fcn.2a3534e0
mov dword [ebp - 0x10], esp
mov eax, esp
jmp 0x2a32d6d4
push edi
lea ecx, [ebp - 0x424]
call fcn.2a320665
mov esi, dword [ebp - 0x424]
push 3
push edi
push dword [ebp - 0x41c]
push eax
call fcn.2a320665
mov dword [ebp - 0x41c], eax
test eax, eax
je 0x2a32d839
push 0x60
push ebx
push eax
call fcn.2a32edc8
mov edi, eax
mov dword [ebp - 0x420], edi
test edi, edi
jne 0x2a32d72c
push 2
push ebx
push dword [ebp - 0x41c]
call fcn.2a32edc8
mov edi, eax
mov dword [ebp - 0x420], eax
test edi, edi
jne 0x2a32d72c
call fcn.2a32be19
mov ebx, eax
jmp 0x2a32d808
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push edi
call dword [sym.imp.kernel32.dll_FindResourceA]
mov dword [ebp - 0x42c], eax
test eax, eax
jne 0x2a32d753
call fcn.2a32be19
jmp 0x2a32d7fb
push eax
push edi
call dword [sym.imp.kernel32.dll_LoadResource]
mov dword [ebp - 0x428], eax
test eax, eax
je 0x2a32d749
push dword [ebp - 0x42c]
push edi
call dword [sym.imp.kernel32.dll_SizeofResource]
mov dword [ebp - 0x41c], eax
lea ecx, [eax + 1]
cmp ecx, eax
jae 0x2a32d786
mov ebx, 0x8007000e
jmp 0x2a32d7fd
push ecx
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.2a320665
jmp 0x2a32d7ac
cmp dword [ebp - 0x418], 0
mov dword [ebp - 4], 1
je 0x2a32d77f
mov eax, dword [ebp - 0x41c]
push eax
push dword [ebp - 0x428]
push eax
push dword [ebp - 0x418]
call fcn.2a320665
mov eax, dword [ebp - 0x418]
add esp, 0x10
mov ecx, dword [ebp - 0x41c]
push dword [ebp + 0x14]
mov byte [eax + ecx], bl
lea ecx, [ebp - 0x434]
push dword [ebp - 0x418]
call fcn.2a320665
mov ebx, eax
test edi, edi
je 0x2a32d808
push edi
call dword [sym.imp.kernel32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x2a32d821
lea ecx, [ebp - 0x418]
call fcn.2a32c4ed
or dword [ebp - 4], 0xffffffff
jmp 0x2a32d831
push esi
mov esi, dword [esi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test esi, esi
jne 0x2a32d827
mov eax, ebx
jmp 0x2a32d86d
mov ebx, dword [ebp - 0x418]
lea eax, [ebp - 0x414]
cmp ebx, eax
je 0x2a32d854
lea ecx, [ebp - 0x418]
call fcn.2a32c4ed
or dword [ebp - 4], 0xffffffff
jmp 0x2a32d864
push esi
mov esi, dword [esi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test esi, esi
jne 0x2a32d85a
mov eax, 0x8007000e
lea esp, [ebp - 0x444]
call fcn.2a30420f
ret 0x10