joyce8/EMBER2024-capa huggingface dataset:
Function at 0x608b20
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
call fcn.006085c0
mov edx, dword [esp + 0xc]
shl ecx, 4
test eax, eax
jne 0x608b91
lea eax, [edx + ecx + 0x10]
movups xmm0, xmmword [edx]
movups xmm1, xmmword [eax]
movups xmmword [eax], xmm0
movups xmmword [edx], xmm1
lea edx, [edx + 0x10]
lea eax, [eax - 0x10]
movups xmm0, xmmword [edx]
movups xmm1, xmmword [eax]
aesimc xmm0, xmm0
aesimc xmm1, xmm1
lea edx, [edx + 0x10]
lea eax, [eax - 0x10]
movups xmmword [eax + 0x10], xmm0
movups xmmword [edx - 0x10], xmm1
cmp eax, edx
ja 0x608b56
movups xmm0, xmmword [edx]
aesimc xmm0, xmm0
movups xmmword [edx], xmm0
pxor xmm0, xmm0
pxor xmm1, xmm1
xor eax, eax
ret

Function at 0x60a280
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x7a8498]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
cmp eax, 3
jne 0x60a37d
mov dword [ebp - 0x14], 0x60a420
lea eax, [ebp - 0x14]
push 0
push eax
push 0x60a210
push 0x7c09d0
call dword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
test eax, eax
je 0x60a391
cmp dword [0x7c09d4], 0
jne 0x60a37d
push dword [0x7c09d8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x60a37d
mov esi, eax
push 0x7c09dc
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov ebx, dword [0x7c09e0]
mov edi, dword [0x7c09e4]
mov eax, dword [0x7c09e8]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x7c09ec]
mov dword [ebp - 0x20], eax
push 0x7c09dc
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
je 0x60a333
mov eax, dword [esi]
mov dword [ebp - 0x18], eax
mov ecx, ebx
call dword [section..00cfg]
push dword [ebp - 0x18]
call ebx
add esp, 4
test edi, edi
je 0x60a348
mov ebx, dword [esi + 4]
mov ecx, edi
call dword [section..00cfg]
push ebx
call edi
add esp, 4
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x60a35e
mov edi, dword [esi + 8]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x60a374
mov edi, dword [esi + 0xc]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
push esi
call fcn.004c9be0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006c9121
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
call fcn.006dfb20
int3
Function at 0x60a3a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 0x60a420
lea eax, [ebp - 0x14]
push 0
push eax
push 0x60a210
push 0x7c09d0
call dword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
test eax, eax
je 0x60a41a
xor esi, esi
cmp dword [0x7c09d4], 0
jne 0x60a406
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push dword [0x7c09d8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
je 0x60a406
mov eax, dword [ebp + 8]
mov esi, dword [edi + eax*4]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.006dfb20
int3

Function at 0x60a440
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 0x60a420
lea eax, [ebp - 0x14]
push 0
push eax
push 0x60a210
push 0x7c09d0
call dword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
test eax, eax
je 0x60a531
mov esi, dword [ebp + 0x10]
cmp dword [0x7c09d4], 0
je 0x60a498
mov ecx, esi
call dword [section..00cfg]
push dword [ebp + 0xc]
call esi
add esp, 4
xor esi, esi
jmp 0x60a4e4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push dword [0x7c09d8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
je 0x60a4f8
mov ebx, dword [ebp + 8]
push 0x7c09dc
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov dword [ebx*4 + 0x7c09e0], esi
push 0x7c09dc
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [ebp + 0xc]
mov dword [edi + ebx*4], eax
mov esi, 1
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x10
call fcn.004c9bb0
add esp, 4
test eax, eax
je 0x60a484
mov edi, eax
xorps xmm0, xmm0
movups xmmword [eax], xmm0
push eax
push dword [0x7c09d8]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
jne 0x60a4b9
push edi
call fcn.004c9be0
add esp, 4
jmp 0x60a484
call fcn.006dfb20
int3
Function at 0x61b200
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [0x7c0a80]
mov ecx, dword [0x7bafb8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 0x14]
jg 0x61b273
mov ecx, 0x7c0a78
call fcn.0046cea0
test eax, eax
jne 0x61b266
push 4
call fcn.006c90b6
add esp, 4
mov edi, eax
mov dword [eax], 0
mov ecx, 0x7c0a78
call fcn.0046cea0
mov esi, eax
mov ecx, 0x7c0a78
push edi
call fcn.0046ced0
test esi, esi
je 0x61b266
push esi
call fcn.006c90e6
add esp, 4
mov ecx, 0x7c0a78
pop esi
pop edi
pop ebp
jmp fcn.0046cea0
push 0x7c0a80
call fcn.006c9157
add esp, 4
cmp dword [0x7c0a80], 0xffffffff
jne 0x61b222
mov dword [0x7c0a7c], 0
mov dword [0x7c0a78], 0
mov ecx, 0x7c0a78
push 0x4085a0
call fcn.0046cf10
push 0x7c0a80
call fcn.006c91cd
add esp, 4
jmp 0x61b222

Function at 0x61f870
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x61f8e9
mov ecx, dword [ebp + 0xc]
cmp ebx, 1
jne 0x61f88c
xor esi, esi
jmp 0x61f8ce
and ebx, 0xfffffffe
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx edi, al
movzx edx, byte [ecx + esi]
xor edx, edi
shr eax, 8
xor eax, dword [edx*4 + 0x755294]
movzx edx, al
movzx edi, byte [ecx + esi + 1]
xor edi, edx
shr eax, 8
xor eax, dword [edi*4 + 0x755294]
add esi, 2
cmp ebx, esi
jne 0x61f8a0
mov edx, dword [ebp + 0x10]
test dl, 1
je 0x61f8e9
movzx edx, al
movzx ecx, byte [ecx + esi]
xor ecx, edx
shr eax, 8
xor eax, dword [ecx*4 + 0x755294]
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x61ff8c
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edi, dword [ebp + 8]
mov dword [ebp - 0x20], ecx
cmp byte [ecx + 0x54], 0
je 0x62007d
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ecx
mov eax, edx
and eax, 7
mov dword [ebx], eax
cmp edx, 8
jb 0x62006e
shr edx, 3
mov dword [ebp - 0x1c], edx
mov edx, dword [edi + ecx*8]
mov dword [ebp - 0x24], ecx
mov eax, dword [edi + ecx*8 + 4]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ecx + 4]
mov dword [ebp - 0x34], esi
mov esi, dword [ecx + 8]
mov dword [ebp - 0x30], esi
mov esi, dword [ecx + 0xc]
mov dword [ebp - 0x2c], esi
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x28], ecx
mov esi, 0x10
mov ecx, 0x9e3779b9
mov ebx, eax
shl eax, 4
add eax, dword [ebp - 0x34]
lea edi, [ebx + ecx]
xor edi, eax
mov eax, ebx
shr eax, 5
add eax, dword [ebp - 0x30]
xor eax, edi
add edx, eax
mov eax, edx
shl eax, 4
add eax, dword [ebp - 0x2c]
lea edi, [ecx + edx]
xor edi, eax
mov eax, edx
shr eax, 5
add eax, dword [ebp - 0x28]
xor eax, edi
add eax, ebx
add ecx, 0x9e3779b9
dec esi
jne 0x620005
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov esi, dword [ebp + 0x10]
mov ecx, esi
push 8
lea eax, [ebp - 0x18]
push eax
call fcn.00454f4c
mov ecx, dword [ebp - 0x24]
inc ecx
cmp ecx, dword [ebp - 0x1c]
mov edi, dword [ebp + 8]
jne 0x61ffd6
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov edx, dword [ebp + 0xc]
add edi, edx
sub edi, eax
mov ecx, esi
push eax
push edi
call fcn.00454f4c
jmp 0x62008c
mov ecx, esi
push edx
push edi
call fcn.00454d02
mov dword [ebx], 0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006c9121
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
Function at 0x62f130
Capabilities:
Encrypt data using openssl rsa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov edi, edx
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
lea esi, [ebp - 0x18]
push 6
push esi
push ecx
call fcn.0062b620
add esp, 0xc
test eax, eax
je 0x62f2dc
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], edi
push esi
call fcn.005407a0
add esp, 4
movzx ebx, byte [0x77a975]
cmp eax, ebx
jne 0x62f1bc
mov edi, eax
push esi
call fcn.0053cb10
add esp, 4
mov ecx, 0x77a968
test bl, bl
je 0x62f2cc
push edi
push 0x77a96c
push eax
call fcn.006cbb2d
mov ecx, 0x77a968
add esp, 0xc
test eax, eax
je 0x62f2cc
push esi
call fcn.005407a0
add esp, 4
movzx ebx, byte [0x77a8ed]
cmp eax, ebx
jne 0x62f204
mov edi, eax
push esi
call fcn.0053cb10
add esp, 4
mov ecx, 0x77a8e0
test bl, bl
je 0x62f2cc
push edi
push 0x77a8e4
push eax
call fcn.006cbb2d
mov ecx, 0x77a8e0
add esp, 0xc
test eax, eax
je 0x62f2cc
push esi
call fcn.005407a0
add esp, 4
movzx ebx, byte [0x77a9fd]
cmp eax, ebx
jne 0x62f24c
mov edi, eax
push esi
call fcn.0053cb10
add esp, 4
mov ecx, 0x77a9f0
test bl, bl
je 0x62f2cc
push edi
push 0x77a9f4
push eax
call fcn.006cbb2d
mov ecx, 0x77a9f0
add esp, 0xc
test eax, eax
je 0x62f2cc
push esi
call fcn.005407a0
add esp, 4
movzx ebx, byte [0x77aa85]
cmp eax, ebx
jne 0x62f28c
mov edi, eax
push esi
call fcn.0053cb10
add esp, 4
mov ecx, 0x77aa78
test bl, bl
je 0x62f2cc
push edi
push 0x77aa7c
push eax
call fcn.006cbb2d
mov ecx, 0x77aa78
add esp, 0xc
test eax, eax
je 0x62f2cc
push esi
call fcn.005407a0
add esp, 4
movzx ebx, byte [0x77ab11]
cmp eax, ebx
jne 0x62f2e3
mov edi, eax
push esi
call fcn.0053cb10
add esp, 4
mov ecx, 0x77ab04
test bl, bl
je 0x62f2cc
push edi
push 0x77ab08
push eax
call fcn.006cbb2d
mov ecx, 0x77ab04
add esp, 0xc
test eax, eax
jne 0x62f2e3
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov dword [ebp - 0x1c], 1
jmp 0x62f2e3
mov dword [ebp - 0x1c], 0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006c9121
mov eax, dword [ebp - 0x1c]
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x6301d0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
xor edi, edi
inc edi
xor ebx, ebx
mov ecx, dword [fcn.00474db0]
call dword [section..00cfg]
push edi
push ebx
call ecx
add esp, 8
test eax, eax
je 0x630227
mov esi, eax
push edi
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x630218
cmp eax, edi
je 0x630218
cmp eax, 0x8001
jae 0x630218
mov ebx, esi
cmp eax, edi
mov edi, eax
jae 0x6301db
jmp 0x63023b
mov ecx, dword [fcn.00474d80]
call dword [section..00cfg]
push esi
jmp 0x630234
mov ecx, dword [fcn.00474d80]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
xor esi, esi
mov eax, esi
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x630e4a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1b0
mov edi, ecx
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0xa8]
push 0x100
push 0xff
push eax
call fcn.006ccfc0
add esp, 0xc
xor esi, esi
cmp byte [0x7c0b34], 0
jne 0x630e9e
call fcn.004214f0
test eax, eax
je 0x630eb6
mov byte [0x7c0b34], 1
mov ecx, dword [esp + 0x1a8]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edi + 0x59c]
test eax, eax
je 0x630ed7
push 0x400
push eax
call fcn.00684460
add esp, 8
call fcn.004214f0
test eax, eax
jne 0x630e9e
mov dword [esp + 4], edi
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x60]
lea edi, [esp + 0x50]
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
mov ecx, 0x40000
mov ebx, 3
mov dword [esp + 0xc], ecx
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x50], xmm0
push edi
call fcn.005b80e8
add esp, 4
push 0
push 1
call fcn.005be044
add esp, 8
lea ecx, [ebx - 2]
mov edi, dword [esp + 0x54]
mov eax, ecx
mul dword [esp + 0x50]
imul edi, ecx
add edx, edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
lea eax, [ebx - 1]
imul eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x40]
push eax
call fcn.005b80e8
add esp, 4
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
lea eax, [esp + 0x30]
push eax
call fcn.005b80e8
add esp, 4
mov eax, dword [esp + 0x38]
mov ecx, eax
sar ecx, 0x1f
add edi, eax
adc ecx, dword [esp + 8]
mov eax, ebx
mul edi
imul ecx, ebx
add ecx, edx
shld ecx, eax, 8
shl eax, 8
xor dword [esp + 0x50], eax
xor dword [esp + 0x54], ecx
lea eax, [esp + 0x20]
push eax
call fcn.005b80e8
add esp, 4
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
call fcn.005b80e8
mov ecx, dword [esp + 0x10]
add esp, 4
add edi, dword [esp + 0x18]
imul edi, ecx
xor dword [esp + 0x58], edi
lea edi, [esp + 0x50]
movdqa xmm0, xmmword [esp + 0x50]
movdqu xmmword [esi], xmm0
add ecx, 0x10000
inc ebx
add esi, 0x10
cmp ebx, 7
jne 0x630f0f
push 0x40400000
push 0
push 0x40
lea esi, [esp + 0x6c]
push esi
call fcn.00405540
add esp, 0x10
call fcn.004214f0
test eax, eax
pcmpeqd xmm0, xmm0
je 0x630ee7
mov byte [esp + 0xa8], 0
push 0x100
lea edi, [esp + 0xac]
push edi
call fcn.00406420
add esp, 8
cmp byte [esp + 0xa8], 0
mov esi, 0
je 0x631061
push 0x400
push edi
call fcn.00684460
add esp, 8
call fcn.004214f0
test eax, eax
jne 0x630e9e
push str.libcurl_is_now_using_a_weak_random_seed__n
push dword [esp + 8]
call fcn.005ae893
add esp, 8
call fcn.004214f0
xor ecx, ecx
test eax, eax
mov esi, 0x23
cmovne esi, ecx
jmp 0x630e9e
Function at 0x635054
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
xor esi, esi
push esi
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
push esi
push esi
call fcn.006d7d0c
add esp, 0x18
cmp eax, 0xffffffff
cmovne esi, eax
test eax, eax
cmovne eax, esi
pop esi
pop ebp
ret

Function at 0x63516b
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov esi, dword [0x7a8498]
xor esi, ebp
mov dword [ebp - 0x10], esi
lea esi, [ebp - 0x14]
mov dword [esi], 0xffffffff
mov dword [edi], 0
push esi
push edx
push ecx
push eax
call dword [sym.imp.WS2_32.dll_getaddrinfo]
mov esi, eax
test eax, eax
jne 0x6352d4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x6352bd
xor edi, edi
mov dword [ebp - 0x18], 0
mov eax, dword [ebx + 0x14]
mov esi, 0
test eax, eax
je 0x6351da
push eax
call fcn.006e65e0
add esp, 4
mov esi, eax
inc esi
mov eax, dword [ebx + 4]
cmp eax, 2
je 0x6351f2
cmp eax, 0x17
jne 0x63529b
mov eax, 0x1c
jmp 0x6351f7
mov eax, 0x10
cmp dword [ebx + 0x18], 0
je 0x63529b
cmp dword [ebx + 0x10], eax
jb 0x63529b
mov dword [ebp - 0x24], edi
mov ecx, dword [fcn.00474d30]
lea edi, [esi + eax]
add edi, 0x20
mov dword [ebp - 0x1c], eax
call dword [section..00cfg]
push edi
call ecx
add esp, 4
test eax, eax
je 0x6352e8
mov edi, eax
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x10], ecx
xor eax, eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x1c], eax
lea eax, [edi + 0x20]
mov dword [edi + 0x18], eax
push ecx
push dword [ebx + 0x18]
mov dword [ebp - 0x20], eax
push eax
call fcn.006cca40
add esp, 0xc
test esi, esi
je 0x635286
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x1c]
mov dword [edi + 0x14], eax
push esi
push dword [ebx + 0x14]
push eax
call fcn.006cca40
add esp, 0xc
mov eax, dword [ebp - 0x18]
test eax, eax
cmove eax, edi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x63529b
mov dword [eax + 0x1c], edi
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
jne 0x6351c2
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x6352b4
push eax
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
xor esi, esi
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x6352cf
push 0x2af9
call dword [sym.imp.WS2_32.dll_WSASetLastError]
mov esi, 0x2af9
xor ecx, ecx
mov eax, dword [ebp + 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x6352f6
push eax
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
mov esi, 8
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x6352cd
mov edi, dword [ebx + 0x1c]
mov ecx, dword [fcn.00474d80]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
mov ebx, edi
test edi, edi
jne 0x635302
jmp 0x6352cd
Function at 0x637878
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x30
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [esp + 0x28], eax
pcmpeqd xmm0, xmm0
lea eax, [esp + 0x10]
movdqa xmmword [eax], xmm0
push eax
call fcn.005b80e8
add esp, 4
push edi
call fcn.00630244
add esp, 4
mov ebx, eax
push esi
call fcn.00630244
add esp, 4
mov esi, eax
push 1
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x637917
xor edi, edi
inc edi
mov eax, esp
push eax
call fcn.005b80e8
sub esp, 0x1c
movaps xmm0, xmmword [esp + 0x30]
movups xmmword [esp + 0x10], xmm0
movdqu xmm0, xmmword [esp + 0x20]
movdqu xmmword [esp], xmm0
call fcn.005b81db
add esp, 0x20
cmp eax, 0x3e9
sbb edx, 0
jae 0x637948
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x6378d1
test ebx, ebx
je 0x637924
push ebx
call fcn.00474d80
add esp, 4
xor edi, edi
test esi, esi
je 0x637933
push esi
call fcn.00474d80
add esp, 4
mov ecx, dword [esp + 0x28]
xor ecx, ebp
call fcn.006c9121
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test ebx, ebx
je 0x637926
push ebx
call fcn.00474d80
add esp, 4
jmp 0x637926
Function at 0x6405b4
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov esi, dword [ebp + 0x10]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00640294
add esp, 0xc
test eax, eax
js 0x6407e8
mov ebx, dword [esi + 0xf0]
xor eax, eax
test ebx, ebx
jle 0x6407e8
shl ebx, 2
mov ecx, 4
mov edx, dword [esi + ecx*4 - 0x10]
mov edi, dword [esi + ebx*4]
mov dword [esi + ecx*4 - 0x10], edi
mov dword [esi + ebx*4], edx
mov edx, dword [esi + ecx*4 - 0xc]
mov edi, dword [esi + ebx*4 + 4]
mov dword [esi + ecx*4 - 0xc], edi
mov dword [esi + ebx*4 + 4], edx
mov edx, dword [esi + ecx*4 - 8]
mov edi, dword [esi + ebx*4 + 8]
mov dword [esi + ecx*4 - 8], edi
mov dword [esi + ebx*4 + 8], edx
mov edx, dword [esi + ecx*4 - 4]
mov edi, dword [esi + ebx*4 + 0xc]
mov dword [esi + ecx*4 - 4], edi
mov dword [esi + ebx*4 + 0xc], edx
add ebx, 0xfffffffc
lea edx, [ecx + 4]
cmp ecx, ebx
mov ecx, edx
jl 0x6405ed
cmp dword [esi + 0xf0], 2
jl 0x6407e8
lea ecx, [esi + 0x1c]
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov ebx, dword [ecx - 0xc]
mov edi, dword [ecx - 8]
mov eax, ebx
shr eax, 0x18
movzx esi, byte [eax*4 + 0x7725a4]
mov eax, ebx
shr eax, 0xe
mov edx, 0x3fc
and eax, edx
movzx eax, byte [eax + 0x7725a4]
mov eax, dword [eax*4 + 0x772dcc]
xor eax, dword [esi*4 + 0x7729cc]
mov edx, ebx
shr edx, 8
mov esi, 0xff
and edx, esi
movzx edx, byte [edx*4 + 0x7725a4]
xor eax, dword [edx*4 + 0x7731cc]
and ebx, esi
movzx edx, byte [ebx*4 + 0x7725a4]
xor eax, dword [edx*4 + 0x7735cc]
mov edx, edi
shr edx, 0x18
movzx esi, byte [edx*4 + 0x7725a4]
mov ebx, edi
shr ebx, 0xe
mov edx, 0x3fc
and ebx, edx
movzx ebx, byte [ebx + 0x7725a4]
mov ebx, dword [ebx*4 + 0x772dcc]
xor ebx, dword [esi*4 + 0x7729cc]
mov edx, edi
shr edx, 8
mov esi, 0xff
and edx, esi
mov esi, dword [ebp + 0x10]
movzx edx, byte [edx*4 + 0x7725a4]
xor ebx, dword [edx*4 + 0x7731cc]
mov edx, 0xff
and edi, edx
movzx edx, byte [edi*4 + 0x7725a4]
xor ebx, dword [edx*4 + 0x7735cc]
mov dword [ecx - 0xc], eax
mov dword [ecx - 8], ebx
mov eax, dword [ecx - 4]
mov edx, eax
shr edx, 0x18
movzx edx, byte [edx*4 + 0x7725a4]
mov edi, eax
shr edi, 0xe
mov ebx, 0x3fc
and edi, ebx
movzx edi, byte [edi + 0x7725a4]
mov edi, dword [edi*4 + 0x772dcc]
xor edi, dword [edx*4 + 0x7729cc]
mov edx, eax
shr edx, 8
mov ebx, 0xff
and edx, ebx
movzx edx, byte [edx*4 + 0x7725a4]
xor edi, dword [edx*4 + 0x7731cc]
and eax, ebx
movzx eax, byte [eax*4 + 0x7725a4]
xor edi, dword [eax*4 + 0x7735cc]
mov dword [ecx - 4], edi
mov eax, dword [ecx]
mov edx, eax
shr edx, 0x18
movzx edx, byte [edx*4 + 0x7725a4]
mov edi, eax
shr edi, 0xe
mov ebx, 0x3fc
and edi, ebx
movzx edi, byte [edi + 0x7725a4]
mov edi, dword [edi*4 + 0x772dcc]
xor edi, dword [edx*4 + 0x7729cc]
mov edx, eax
shr edx, 8
mov ebx, 0xff
and edx, ebx
movzx edx, byte [edx*4 + 0x7725a4]
xor edi, dword [edx*4 + 0x7731cc]
and eax, ebx
movzx eax, byte [eax*4 + 0x7725a4]
xor edi, dword [eax*4 + 0x7735cc]
mov eax, dword [ebp - 0x10]
mov dword [ecx], edi
inc eax
add ecx, 0x10
cmp eax, dword [esi + 0xf0]
jl 0x64064a
xor eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret