joyce8/EMBER2024-capa huggingface dataset:
Function at 0x438ff1
Capabilities:
Terminate thread

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 8], 0
je 0x439005
push 0
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov byte [esi + 8], 0
pop esi
ret

Function at 0x439143
Capabilities:
Create thread

Disassembly:
push ebx
push esi
mov esi, ecx
xor ebx, ebx
cmp byte [esi + 8], bl
jne 0x439161
push ebx
push ebx
push esi
push 0x439120
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 4], eax
mov dword [esi + 0x10], ebx
mov byte [esi + 8], 1
pop esi
pop ebx
ret

Function at 0x43b8a4
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push 0x44
xor ebx, ebx
lea eax, [ebp - 0x44]
push ebx
push eax
call fcn.004645c0
add esp, 0xc
mov dword [ebp - 0x44], 0x44
cmp byte [ebp + 0x10], bl
je 0x43b8d6
push 0xb
pop eax
mov dword [ebp - 0x18], 1
mov word [ebp - 0x14], ax
push dword [ebp + 0xc]
lea eax, [ebp - 0x44]
push eax
push ebx
push ebx
push 0x8000008
push ebx
push ebx
push ebx
push dword [ebp + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
setne al
pop ebx
leave
ret 0xc

Function at 0x43b8fb
Capabilities:
Create process on windows

Disassembly:
push 1
xor eax, eax
push eax
push eax
push dword [esp + 0x14]
push dword [esp + 0x14]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
test eax, eax
setne al
ret 8

Function at 0x43b918
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 8]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [ebp + 8]
push 1
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x43b94b
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop ebp
ret 4
Function at 0x442f33
Capabilities:
Get graphical window text

Disassembly:
push 4
mov eax, 0x487b40
call fcn.00464d37
mov esi, ecx
cmp dword [esi + 0x50], 0
jne 0x442f58
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowTextA]
jmp 0x442f9e
lea ecx, [ebp - 0x10]
call fcn.0040362e
mov ecx, dword [esi + 0x50]
mov eax, dword [ecx]
and dword [ebp - 4], 0
lea edx, [ebp - 0x10]
push edx
call dword [eax + 0x8c]
push 0xffffffffffffffff
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004408fa
add esp, 0x10
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov esi, eax
call fcn.00401000
mov eax, esi
call fcn.00464e0f
ret 8

Function at 0x445926
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
xor ebx, ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], ebx
cmp dword [ebp + 0xc], ebx
je 0x44596e
call fcn.0044157a
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x44596e
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 4], eax
test eax, eax
je 0x4459b1
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
mov esi, dword [ebp + 8]
mov dword [ebp + 0xc], 1
test ebx, ebx
je 0x44599a
push dword [ebp + 0x10]
mov eax, dword [edi]
push ebx
push esi
mov ecx, edi
call dword [eax + 0x20]
cmp dword [ebp - 4], 0
mov dword [ebp + 0xc], eax
je 0x44599a
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FreeResource]
cmp dword [esi + 0x4c], 0
je 0x4459ae
mov ecx, dword [esi + 0x4c]
push dword [ebp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 0xc

Function at 0x44cf0f
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov dword [ebp - 4], ecx
cmp dword [ebp + 8], ebx
je 0x44cf56
call fcn.0044157a
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x44cf56
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
test ebx, ebx
je 0x44cf72
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov ecx, dword [ebp - 4]
push edi
call fcn.0044ca89
mov esi, eax
test edi, edi
je 0x44cf70
test ebx, ebx
je 0x44cf70
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x44e311
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [edi + 0x58], ebx
test ebx, 0xffff0000
jne 0x44e335
cmp dword [edi + 0x54], 0
jne 0x44e335
movzx eax, bx
mov dword [edi + 0x54], eax
call fcn.0044157a
mov esi, dword [eax + 0xc]
push 5
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push dword [ebp + 0xc]
mov ebx, eax
push ebx
mov ecx, edi
call fcn.0044e2d2
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x451e44
Capabilities:
Create http request

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
push esi
mov esi, ecx
and dword [esi + 0x10], 0
and dword [esi + 0xc], 0
mov dword [esi + 4], eax
mov eax, dword [ebp + 8]
mov dword [esi], vtable.CInternetSession.0
test eax, eax
jne 0x451e6f
call fcn.0044157a
mov eax, dword [eax + 0x10]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [esi + 8], eax
test eax, eax
jne 0x451e92
push eax
push dword [esi + 4]
call fcn.00451dca
push esi
push eax
mov ecx, 0x4bc738
call fcn.00451a3e
mov eax, esi
pop esi
pop ebp
ret 0x18

Function at 0x4526f8
Capabilities:
Connect to http server

Disassembly:
push 4
mov eax, 0x48acf8
call fcn.00464d37
mov esi, ecx
mov dword [ebp - 0x10], esi
push dword [ebp + 0x1c]
mov edi, dword [ebp + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call fcn.004526b8
and dword [ebp - 4], 0
lea ecx, [esi + 0x18]
mov dword [esi], vtable.CHttpConnection.0
call fcn.0040362e
push dword [esi + 8]
mov edi, dword [edi + 8]
push 0
push 3
push dword [ebp + 0x18]
mov byte [ebp - 4], 1
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [esi + 4], eax
test eax, eax
jne 0x45275e
push eax
push dword [esi + 8]
call fcn.00451dca
push dword [esi + 0xc]
mov ecx, 0x4bc738
push eax
call fcn.00451a3e
mov eax, esi
call fcn.00464e0f
ret 0x18
Function at 0x464d28
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x4b82fc]
jne 0x464d32
repz ret
jmp fcn.0046f3ac

Function at 0x47c694
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.0046d384
and dword [ebp - 4], 0
cmp dword [0x4bd508], 0
mov ebx, eax
jne 0x47c745
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x47c7f6
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4a1220
push edi
call esi
test eax, eax
je 0x47c7f6
push eax
call fcn.0046d312
mov dword [esp], 0x4a1210
push edi
mov dword [0x4bd508], eax
call esi
push eax
call fcn.0046d312
mov dword [esp], 0x4a11fc
push edi
mov dword [0x4bd50c], eax
call esi
push eax
call fcn.0046d312
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x4bd510], eax
call esi
push eax
call fcn.0046d312
pop ecx
mov dword [0x4bd518], eax
test eax, eax
je 0x47c745
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.0046d312
pop ecx
mov dword [0x4bd514], eax
mov eax, dword [0x4bd514]
cmp eax, ebx
je 0x47c79d
cmp dword [0x4bd518], ebx
je 0x47c79d
push eax
call fcn.0046d38d
push dword [0x4bd518]
mov esi, eax
call fcn.0046d38d
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x47c79d
test edi, edi
je 0x47c79d
call esi
test eax, eax
je 0x47c794
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x47c794
test byte [ebp - 0xc], 1
jne 0x47c79d
or dword [ebp + 0x10], 0x200000
jmp 0x47c7d6
mov eax, dword [0x4bd50c]
cmp eax, ebx
je 0x47c7d6
push eax
call fcn.0046d38d
pop ecx
test eax, eax
je 0x47c7d6
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x47c7d6
mov eax, dword [0x4bd510]
cmp eax, ebx
je 0x47c7d6
push eax
call fcn.0046d38d
pop ecx
test eax, eax
je 0x47c7d6
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x4bd508]
call fcn.0046d38d
pop ecx
test eax, eax
je 0x47c7f6
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x47c7f8
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4011b0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
push 0x40abbc
push 0x66
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x40126e
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x40126e
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 8], eax
test eax, eax
je 0x40126e
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
mov dword [ebp - 4], esi
test esi, esi
je 0x40126e
mov eax, dword [ebp + 8]
push ebx
push 0
push 0x80
push 2
push 0
push 0
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
push esi
push 0
push 4
mov ebx, eax
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, eax
test esi, esi
je 0x40126d
push edi
push 0
push 0
push 0
push 2
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
push ecx
mov edi, eax
push edx
push edi
call fcn.00405c80
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push ebx
call esi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x401280
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x40c004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 0x20c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, 0x104
ja 0x4012d3
test eax, eax
je 0x4012d3
push 0x40dc40
push 0
push str.bhsad
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov esi, 0x40dc40
test eax, eax
jne 0x4012d8
mov esi, str.bhsad
push esi
call fcn.004011b0
add esp, 4
call fcn.00401180
test al, al
push esi
mov eax, str.v4.0.30319
jne 0x4012f5
mov eax, 0x40ac84
call section..text
add esp, 4
call fcn.004013d8
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
pop esi
call fcn.00401315
mov esp, ebp
pop ebp
ret 0x10

Function at 0x401315
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x40c004]
jne 0x40131f
repz ret
jmp fcn.0040157d
Function at 0x40590c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x40c004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.004037a5
and dword [ebp - 0x14], 0
cmp dword [0x40dc1c], 0
mov dword [ebp - 0x18], eax
jne 0x4059bf
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x405a67
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x405a67
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x40dc1c], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x40dc20], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x40dc24], eax
call edi
push eax
call esi
mov dword [0x40dc2c], eax
test eax, eax
je 0x4059bf
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x40dc28], eax
mov eax, dword [0x40dc28]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x405a18
cmp dword [0x40dc2c], ecx
je 0x405a18
push eax
call esi
push dword [0x40dc2c]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x405a18
test ebx, ebx
je 0x405a18
call edi
test eax, eax
je 0x405a0f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x405a0f
test byte [ebp - 8], 1
jne 0x405a18
or dword [ebp + 0x10], 0x200000
jmp 0x405a4b
mov eax, dword [0x40dc20]
cmp eax, dword [ebp - 0x18]
je 0x405a4b
push eax
call esi
test eax, eax
je 0x405a4b
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x405a4b
mov eax, dword [0x40dc24]
cmp eax, dword [ebp - 0x18]
je 0x405a4b
push eax
call esi
test eax, eax
je 0x405a4b
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x40dc1c]
call esi
test eax, eax
je 0x405a67
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x405a69
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401315
leave
ret
Function at 0x40164c
Capabilities:
Encode data using xor
Encrypt data using blowfish

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, ecx
mov dword [edi + 8], eax
xor eax, eax
mov ecx, dword [edi]
mov edx, dword [eax + 0x41f030]
mov dword [eax + ecx], edx
add eax, 4
cmp eax, 0x48
jl 0x40165d
xor eax, eax
mov ecx, 0x100
mov edx, dword [edi + 4]
mov esi, dword [eax + 0x41f078]
mov dword [eax + edx], esi
add eax, 4
dec ecx
jne 0x401677
cmp eax, 0x1000
jl 0x401672
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xor ecx, ecx
and dword [ebp - 4], ecx
mov al, byte [ecx + esi]
mov byte [ebp + 0x13], al
lea eax, [ecx + 1]
cdq
idiv ebx
mov al, byte [edx + esi]
mov byte [ebp + 0x12], al
lea eax, [ecx + 2]
cdq
idiv ebx
mov al, byte [edx + esi]
mov byte [ebp + 0x11], al
lea eax, [ecx + 3]
cdq
idiv ebx
mov al, byte [edx + esi]
mov edx, dword [ebp - 4]
mov byte [ebp + 0x10], al
mov eax, dword [edi]
add eax, edx
mov edx, dword [ebp + 0x10]
add dword [ebp - 4], 4
xor dword [eax], edx
lea eax, [ecx + 4]
cdq
idiv ebx
cmp dword [ebp - 4], 0x48
mov ecx, edx
jl 0x40169b
xor esi, esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x10], esi
lea eax, [ebp + 0xc]
mov ecx, edi
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.00401036
mov eax, dword [edi]
mov ecx, dword [ebp + 0x10]
mov dword [esi + eax], ecx
mov eax, dword [edi]
mov ecx, dword [ebp + 0xc]
mov dword [esi + eax + 4], ecx
add esi, 8
cmp esi, 0x48
jl 0x4016eb
push 4
pop esi
mov ebx, 0x80
lea eax, [ebp + 0xc]
mov ecx, edi
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.00401036
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x10]
mov dword [eax + esi - 4], ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0xc]
mov dword [esi + eax], ecx
add esi, 8
dec ebx
jne 0x40171b
cmp esi, 0x1004
jl 0x401716
pop edi
pop esi
pop ebx
leave
ret 0xc
Function at 0x40465d
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov al, byte [0x424380]
push ebx
push esi
push edi
push 0x40
mov ebx, ecx
mov byte [ebp - 0x110], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x10f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x214]
mov esi, 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x110]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 4
jb 0x4046c4
lea eax, [ebp - 0x110]
push str.Media
push eax
call fcn.00417120
pop ecx
pop ecx
and dword [ebp - 8], 0
and dword [ebp - 4], 0
lea eax, [ebp - 0x110]
lea ecx, [ebp - 0xc]
push eax
push str.SoundFile_.wav_
push 0x4209f4
push 0x433
mov dword [ebp - 0xc], ebx
call fcn.0040b782
mov esi, eax
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret

Function at 0x4049e8
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, ecx
push dword [ebp + 8]
xor ebx, ebx
call fcn.004173a0
mov edi, eax
mov eax, dword [esi]
pop ecx
cmp dword [eax + 0x64], ebx
je 0x404a52
add eax, 0x68
cmp byte [eax], bl
je 0x404a52
push ebx
push 0x80
push 4
push ebx
push 3
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x404a4e
push 2
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp - 4]
push ebx
push eax
push edi
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x404a55
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x406100
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
push 0
push 0x80
push 3
push 0
push 3
push connect
mov edi, ecx
push dword [ebp + 8]
mov dword [ebp - 8], edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, dword [ebp + 0xc]
cmp eax, 0xffffffff
mov dword [esi + 0x34], eax
je 0x4061f4
lea ecx, [ebp + 8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, dword [ebp + 8]
xor ecx, ecx
xor ebx, ebx
or ecx, eax
or edx, ebx
mov dword [esi + 0x20], ecx
or ecx, edx
mov dword [esi + 0x24], edx
jne 0x40615f
xor eax, eax
inc eax
jmp 0x4061fc
push 0
push eax
push dword [ebp + 8]
push 2
push 0
push dword [esi + 0x34]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 0x98]
mov ebx, dword [esi + 0x24]
mov dword [ebp - 4], eax
mov edi, dword [ecx + 0x2f8]
mov eax, edi
cdq
cmp ebx, edx
jl 0x40619a
jg 0x406195
cmp dword [esi + 0x20], eax
jbe 0x40619a
mov dword [ebp + 0xc], edi
jmp 0x4061a0
mov eax, dword [esi + 0x20]
mov dword [ebp + 0xc], eax
mov edi, dword [esi + 0x2c]
mov eax, edi
mov dword [ebp + 8], edi
mov ebx, dword [ecx + 0x2f8]
sar eax, 0x1f
mov eax, ebx
cdq
push edx
push eax
push edi
push dword [esi + 0x28]
call fcn.00417590
imul eax, ebx
push dword [ebp + 0xc]
push eax
push edi
push 4
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
mov dword [esi + 0x30], eax
je 0x4061f4
push 1
push eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
cmp eax, 1
jne 0x4061f4
mov ecx, dword [ebp - 8]
push esi
call fcn.00406203
xor eax, eax
jmp 0x4061fc
xor eax, eax
cmp dword [esi + 0x30], eax
setne al
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x40689a
Capabilities:
Check for time delay via gettickcount
Read and send data from client to server
Read file via mapping
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, ecx
test esi, esi
push edi
mov dword [ebp - 4], ebx
je 0x4069cc
cmp dword [esi + 0x34], 0xffffffff
je 0x4069cc
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x2c]
xor eax, eax
sub edi, ecx
mov ecx, dword [esi + 0x24]
sbb ecx, edx
js 0x406924
jg 0x4068d6
test edi, edi
jbe 0x406924
mov ebx, dword [ebx + 0x98]
mov eax, dword [ebx + 0x2fc]
cdq
cmp ecx, edx
jl 0x4068f3
jg 0x4068ed
cmp edi, eax
jbe 0x4068f3
mov edi, dword [ebx + 0x2fc]
mov eax, dword [ebx + 0x2f8]
push 0
cdq
push edi
push edx
push eax
push dword [esi + 0x2c]
push dword [esi + 0x28]
call fcn.00417640
add eax, dword [esi + 0x30]
push eax
mov eax, dword [esi + 8]
push dword [eax + 8]
call sub.WSOCK32.dll_send
test eax, eax
jl 0x4069cc
mov ebx, dword [ebp - 4]
cdq
add dword [esi + 0x28], eax
mov ecx, dword [esi + 0x28]
adc dword [esi + 0x2c], edx
cmp ecx, dword [esi + 0x20]
mov edi, dword [esi + 0x2c]
jne 0x40694c
cmp edi, dword [esi + 0x24]
jne 0x40694c
xor eax, eax
cmp dword [esi + 0x18], 0x62
setne al
add eax, 7
mov dword [esi + 0x48], eax
jmp 0x4069bb
mov eax, dword [ebx + 0x98]
mov eax, dword [eax + 0x2f8]
cdq
push edx
push eax
push edi
push ecx
call fcn.00417640
or eax, edx
jne 0x4069bb
push dword [esi + 0x30]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x24]
sub edi, eax
mov eax, dword [ebx + 0x98]
sbb ecx, edx
mov eax, dword [eax + 0x2f8]
cdq
cmp ecx, edx
jl 0x40699b
jg 0x406996
cmp edi, eax
jbe 0x40699b
mov dword [ebp - 4], edx
jmp 0x4069a0
mov eax, edi
mov dword [ebp - 4], ecx
push eax
mov eax, dword [esi + 0x2c]
push dword [esi + 0x28]
mov ecx, eax
sar ecx, 0x1f
push eax
push 4
push dword [esi + 0x38]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esi + 0x30], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 8]
mov dword [ecx + 0x20], eax
xor eax, eax
inc eax
jmp 0x4069ce
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x406f98
Capabilities:
Set socket configuration

Disassembly:
cmp dword [ecx + 0xb4], 0
je 0x406fa6
jmp fcn.00408539
ret 4

Function at 0x408748
Capabilities:
Create process on windows

Disassembly:
push esi
mov esi, ecx
push edi
xor edi, edi
mov eax, dword [esi + 0x98]
push 5
push edi
add eax, 0x68
push edi
push eax
push edi
push edi
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 0x1f
jg 0x408795
cmp eax, 0x1b
je 0x408780
cmp eax, 0x1f
je 0x408780
push edi
push 0x420890
push str.Cant_open_log_file
jmp 0x40878b
push edi
push 0x420890
push str.Invalid_file_extention_link
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x90]
pop edi
pop esi
ret