joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41e1b2
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
cmp dword [0x4454b4], 0
push esi
push edi
jne 0x41e128
call fcn.0041e094
test eax, eax
je 0x41e16d
mov eax, dword [0x4454b4]
cmp eax, 1
jne 0x41e149
push 0xd
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x41e16d
jmp 0x41e1af
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedPopEntrySList]
push eax
call edi
test eax, eax
jne 0x41e1af
push 0x40
mov eax, 0x1000
push eax
push eax
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov esi, eax
test esi, esi
jne 0x41e171
xor eax, eax
jmp 0x41e1af
mov eax, dword [esi]
push dword [0x4454b4]
call edi
mov edi, eax
test edi, edi
je 0x41e193
push 0x8000
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, edi
jmp 0x41e1af
lea edi, [esi + 0xff0]
push esi
push dword [0x4454b4]
call dword [sym.imp.KERNEL32.dll_InterlockedPushEntrySList]
add esi, 0x10
cmp esi, edi
jb 0x41e199
mov eax, esi
pop edi
pop esi
ret
jmp 0x41e114

Function at 0x41e568
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
cmp dword [ebp + 8], 0
jne 0x41e590
call fcn.0040c32f
and dword [eax], 0
call fcn.0040c31c
mov dword [eax], 0x16
call fcn.0040f9d2
or eax, 0xffffffff
pop ebp
ret
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x41e5ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0040c342
pop ecx
jmp 0x41e58b
test byte [ebp + 0xc], 0x80
je 0x41e5b8
and eax, 0xfffffffe
jmp 0x41e5bb
or eax, 1
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x41e59e
xor eax, eax
pop ebp
ret

Function at 0x42192e
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, dword [ebp + 0xc]
imul edi, dword [ebp + 0x10]
cmp byte [esi], 0
je 0x42195e
push 0
lea eax, [ebp + 0x10]
push eax
push edi
push dword [ebp + 8]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x421959
mov byte [esi + 8], 1
mov eax, dword [ebp + 0x10]
jmp 0x421986
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
lea edx, [ecx + edi]
cmp edx, eax
jbe 0x42196f
sub eax, ecx
mov edi, eax
mov eax, dword [esi + 0x10]
push edi
add eax, ecx
push eax
push dword [ebp + 8]
call fcn.00417180
add esp, 0xc
add dword [esi + 0x18], edi
mov eax, edi
xor edx, edx
div dword [ebp + 0xc]
pop edi
pop ebp
ret
Function at 0x421c2b
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push edi
mov edi, edx
test ecx, ecx
jne 0x421c36
xor eax, eax
pop edi
ret
push esi
not eax
mov edx, 0xff
cmp edi, 8
jb 0x421cea
mov esi, edi
shr esi, 3
push ebx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
movzx ebx, byte [ecx + 1]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
movzx ebx, byte [ecx + 2]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
movzx ebx, byte [ecx + 3]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
movzx ebx, byte [ecx + 4]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
movzx ebx, byte [ecx + 5]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
movzx ebx, byte [ecx + 6]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
movzx ebx, byte [ecx + 7]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x437190]
add ecx, 8
sub edi, 8
dec esi
jne 0x421c4d
pop ebx
test edi, edi
je 0x421d03
movzx esi, byte [ecx]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x437190]
inc ecx
dec edi
jne 0x421cee
pop esi
not eax
pop edi
ret

Function at 0x42250c
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
push edi
push dword [ebp + 8]
lea eax, [ebp - 0x208]
push 0x104
push eax
call fcn.0040eb40
xor edi, edi
add esp, 0xc
cmp dword [ebp + 0xc], edi
je 0x422544
push dword [ebp + 0xc]
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42255a
xor eax, eax
inc eax
jmp 0x4225bf
lea eax, [ebp - 0x208]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x422563
sub eax, edx
sar eax, 1
push ebx
mov ebx, eax
push esi
cmp ebx, edi
jbe 0x4225ba
lea esi, [ebp + edi*2 - 0x208]
cmp word [esi], 0x5c
jne 0x4225b5
xor eax, eax
mov word [esi], ax
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4225af
push eax
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x4225c2
push 0x5c
pop eax
mov word [esi], ax
inc edi
cmp edi, ebx
jb 0x42257a
xor eax, eax
inc eax
pop esi
pop ebx
pop edi
leave
ret
xor eax, eax
jmp 0x4225bd

Function at 0x4247a6
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [ebx], 0
push esi
push edi
jne 0x424807
cmp dword [ebx + 4], 0xffffffff
jne 0x424807
lea esi, [ebx + 0x138]
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
sub esi, 2
mov ax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4247cc
lea eax, [ebp + 8]
push eax
push dword [ebp + 8]
mov edi, esi
mov esi, 0x437600
movsd dword es:[edi], dword [esi]
call fcn.00421a42
pop ecx
pop ecx
test eax, eax
jne 0x4247f7
mov eax, dword [ebp + 8]
jmp 0x42480c
push eax
call fcn.00424206
mov dword [ebx], eax
mov eax, dword [0x4578c4]
pop ecx
jmp 0x42480c
mov eax, 0x1000000
pop edi
pop esi
pop ecx
pop ebp
ret 4
Function at 0x424a4d
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4344
call fcn.0041cfb0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [edi + 4], 0xffffffff
mov ebx, ecx
je 0x424a70
push dword [edi]
call fcn.00423f77
pop ecx
mov esi, dword [edi]
or dword [edi + 4], 0xffffffff
cmp ebx, dword [esi + 4]
jl 0x424a85
mov eax, 0x10000
jmp 0x424c09
cmp ebx, dword [esi + 0x10]
jge 0x424a98
call fcn.0042418a
jmp 0x424a98
mov esi, dword [edi]
call fcn.00424139
mov eax, dword [edi]
cmp dword [eax + 0x10], ebx
jl 0x424a91
push ebx
push edi
lea ebx, [ebp - 0x138]
call fcn.00424450
test byte [ebp - 0x30], 0x10
je 0x424ae9
lea eax, [ebp - 0x340]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.00421acb
lea esi, [ebp - 0x340]
call fcn.004218ba
mov eax, esi
push eax
add edi, 0x138
push edi
call fcn.0042250c
add esp, 0x10
xor eax, eax
jmp 0x424c09
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
je 0x424b23
lea eax, [edi + 0x138]
push eax
lea eax, [ebp - 0x340]
push 0x104
push eax
call fcn.0040eb40
add esp, 0xc
push dword [ebp + 0xc]
lea eax, [ebp - 0x340]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
jmp 0x424b3a
push dword [ebp + 0xc]
lea eax, [ebp - 0x340]
push 0x104
push eax
call fcn.0040eb40
add esp, 0xc
lea esi, [ebp - 0x340]
call fcn.004218ba
xor ebx, ebx
mov eax, esi
push ebx
push eax
call fcn.0042250c
pop ecx
pop ecx
push ebx
push dword [ebp - 0x30]
mov eax, esi
push 2
push ebx
push ebx
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
jne 0x424b7a
mov eax, 0x200
jmp 0x424c09
mov edi, dword [edi]
call fcn.00424813
mov esi, dword [ebp + 8]
mov byte [ebp + 0xf], bl
mov edi, 0x4000
jmp 0x424baa
je 0x424bc3
push ebx
lea ecx, [ebp + 8]
push ecx
push eax
lea eax, [ebp - 0x4340]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x424bbf
lea eax, [ebp - 0x4340]
push eax
mov eax, dword [esi]
mov ecx, edi
call fcn.00423fe5
pop ecx
cmp eax, ebx
jge 0x424b8e
mov byte [ebp + 0xf], 1
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
jne 0x424beb
cmp byte [ebp + 0xf], bl
jne 0x424beb
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esi]
call fcn.00423f77
movzx eax, byte [ebp + 0xf]
neg eax
sbb eax, eax
pop ecx
and eax, 0x400
pop edi
pop esi
pop ebx
leave
ret 8

Function at 0x424c6e
Capabilities:
Create thread

Disassembly:
cmp dword [esi + 8], 0
jne 0x424c99
lea eax, [esi + 0xc]
push eax
push 0
push esi
push dword [esi + 4]
push 0
push 0
call fcn.0040f207
add esp, 0x18
test eax, eax
mov dword [esi + 8], eax
setne al
or dword [esi + 0x14], 0xffffffff
mov byte [esi + 0x10], al
ret
Function at 0x425d1d
Capabilities:
Read file via mapping

Disassembly:
push esi
push edi
push str.com.qihoo.root.main
xor esi, esi
push esi
push 4
call dword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov edi, eax
cmp edi, esi
je 0x425d56
push 8
push esi
push esi
push 4
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, esi
je 0x425d4f
mov esi, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, esi
pop esi
ret
Function at 0x426594
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x214
push esi
push 0x425a32
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
xor esi, esi
cmp dword [ebp + 0x10], esi
je 0x4265d0
push str._zhushou
push dword [ebp + 0x10]
call fcn.0040f07d
pop ecx
pop ecx
mov dword [0x4578c0], 2
test eax, eax
jne 0x4265da
mov dword [0x4578c0], 1
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [esp + 8]
push eax
mov dword [esp + 0xc], 8
mov dword [esp + 0x10], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
call fcn.004051f6
call fcn.004087d6
push 0x204
lea eax, [esp + 0x18]
push esi
push eax
mov dword [esp + 0x1c], esi
call fcn.004182f0
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push esi
push esi
push 0x1c
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x42665b
push str.OneKeyRoot
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42665b
lea eax, [esp + 0x10]
push eax
call fcn.0040f04b
pop ecx
push dword [ebp + 0x14]
lea eax, [esp + 0x14]
push eax
call fcn.00426385
pop ecx
pop ecx
mov esi, eax
call fcn.0040529c
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x426f7e
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1014
call fcn.0041cfb0
push esi
push edi
xor esi, esi
push esi
push 0x8000000
push 3
push esi
push 1
push closesocket
push dword [ebp + 8]
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x10], edi
cmp edi, 0xffffffff
jne 0x426fc2
mov eax, 0x80030002
jmp 0x427088
push 0xf0000000
push 1
push esi
push esi
lea eax, [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x426fea
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x80004005
jmp 0x427088
lea eax, [ebp - 4]
push eax
push esi
push esi
push dword [ebp + 0xc]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
jne 0x427013
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x426fe0
push ebx
push esi
lea eax, [ebp - 0xc]
push eax
mov ebx, 0x1000
push ebx
lea eax, [ebp - 0x1014]
push eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0xc], esi
jmp 0x42705f
cmp dword [ebp - 0xc], esi
je 0x42708c
push esi
push dword [ebp - 0xc]
lea eax, [ebp - 0x1014]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
push esi
test eax, eax
je 0x427067
lea eax, [ebp - 0xc]
push eax
push ebx
lea eax, [ebp - 0x1014]
push eax
push dword [ebp - 0x10]
call edi
cmp eax, esi
jne 0x427032
jmp 0x427090
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x80004005
pop ebx
pop edi
pop esi
leave
ret
cmp eax, esi
jne 0x4270b5
push esi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov edi, 0x80004005
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x427087
mov eax, dword [ebp + 0x14]
push esi
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0x10]
mov edi, 0x80004005
push 2
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
test eax, eax
je 0x4270d9
xor edi, edi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
push esi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x4270a8
Function at 0x4273e9
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push esi
mov esi, eax
push str.TmpD
push esi
call fcn.00402346
test al, al
je 0x42741f
push dword [ebp + 0xc]
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
jmp 0x427519
push str.CurWorkD
push esi
call fcn.00402346
test al, al
je 0x42748b
lea eax, [ebp - 0x100]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp + 8]
push 3
add eax, 8
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.00402ae9
push dword [ebp - 0x104]
push 0x105
push dword [ebp + 0xc]
call fcn.0040eb40
add esp, 0xc
neg eax
sbb esi, esi
lea eax, [ebp - 0x100]
cmp dword [ebp - 0x104], eax
je 0x427483
push dword [ebp - 0x104]
call fcn.0040be45
pop ecx
lea eax, [esi + 1]
jmp 0x427519
push str.Desk
push esi
call fcn.00402346
test al, al
je 0x42749e
xor eax, eax
jmp 0x4274fc
push str.WinD
push esi
call fcn.00402346
test al, al
je 0x4274b1
push 0x24
jmp 0x4274fb
push str.ProgF
push esi
call fcn.00402346
test al, al
je 0x4274c4
push 0x26
jmp 0x4274fb
push str.AppData
push esi
call fcn.00402346
test al, al
je 0x4274d7
push 0x1a
jmp 0x4274fb
push str.LocalAppData
push esi
call fcn.00402346
test al, al
je 0x4274ea
push 0x1c
jmp 0x4274fb
push str.SysD
push esi
call fcn.00402346
test al, al
je 0x427517
push 0x25
pop eax
push dword [ebp + 0xc]
push 0
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xor ecx, ecx
test eax, eax
setns cl
mov eax, ecx
jmp 0x427519
xor eax, eax
pop esi
leave
ret 8

Function at 0x427b18
Capabilities:
Get local ipv4 addresses
Get mac address on windows

Disassembly:
mov eax, 0x432038
call fcn.00430fb0
push ecx
push ecx
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push esi
push edi
push 0x178
push 0x40
call ebx
mov esi, eax
xor eax, eax
cmp esi, eax
je 0x427b78
mov edi, dword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
lea ecx, [ebp - 0x10]
push ecx
push esi
push eax
push eax
push 2
mov dword [ebp - 0x10], eax
call edi
cmp eax, 0x6f
jne 0x427b67
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push dword [ebp - 0x10]
push 0x40
call ebx
mov esi, eax
lea eax, [ebp - 0x10]
push eax
push esi
xor ebx, ebx
push ebx
push ebx
push 2
call edi
test eax, eax
je 0x427b9d
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
cmp dword [esi + 0x44], 1
jne 0x427b9a
cmp dword [esi + 0x40], 0x18
je 0x427b9a
cmp dword [esi + 0x34], ebx
ja 0x427ba3
mov esi, dword [esi + 8]
cmp esi, ebx
jne 0x427b89
jmp 0x427b78
mov eax, dword [0x4420b0]
mov ecx, 0x4420b0
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], ebx
cmp dword [esi + 0x34], 0
jbe 0x427be9
movzx eax, byte [esi + ebx + 0x2c]
push eax
push str._02X
lea eax, [ebp - 0x14]
call fcn.00402e9a
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
pop ecx
pop ecx
push dword [edi - 0xc]
push edi
call fcn.00402960
inc ebx
cmp ebx, dword [esi + 0x34]
jb 0x427bbf
lea eax, [edi - 0x10]
call fcn.0040258e
xor eax, eax
inc eax
jmp 0x427b7a
Function at 0x42bdae
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x10]
push 0
push dword [ebp + 0xc]
call fcn.0040d851
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor ecx, ecx
add esp, 0xc
cmp eax, 0xffffffff
setne cl
lea eax, [ecx - 1]
pop ebp
ret

Function at 0x42c82b
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
xor ebx, ebx
push ebx
push ebx
push 3
push ebx
push 1
push closesocket
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
jne 0x42c854
xor eax, eax
jmp 0x42c8ac
push esi
push edi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
xor edi, edi
cmp esi, ebx
jbe 0x42c89a
lea eax, [esi + 1]
push eax
call fcn.0040be7f
mov edi, eax
pop ecx
cmp edi, ebx
je 0x42c898
push ebx
lea eax, [ebp - 8]
push eax
push esi
push edi
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42c88f
cmp dword [ebp - 8], esi
je 0x42c89a
push edi
call fcn.0040be45
pop ecx
xor edi, edi
xor esi, esi
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret

Function at 0x42ce3b
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ecx
call fcn.0042c802
test eax, eax
je 0x42ce63
cmp dword [eax], 0x439eec
jne 0x42ce63
push 4
lea ecx, [ebp - 4]
push ecx
push 1
push 6
push dword [eax + 0xc]
call dword [sym.imp.WS2_32.dll_setsockopt]
leave
ret

Function at 0x42ce65
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x190
cmp dword [0x455524], 0
jne 0x42ceac
lea eax, [ebp - 0x190]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x42ce97
push str.adb:_could_not_initialize_Winsock_n
call fcn.0042f70e
push 0x42c613
call fcn.0040d6c6
pop ecx
mov dword [0x455524], 1
leave
ret
Function at 0x42d28f
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push edi
mov edi, 0x439eec
call fcn.0042cf72
mov esi, eax
test esi, esi
jne 0x42d2af
or eax, 0xffffffff
jmp 0x42d365
cmp dword [0x455524], 0
jne 0x42d2bd
call fcn.0042ce65
xor eax, eax
lea edi, [ebp - 0x18]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 2
stosd dword es:[edi], eax
pop eax
push dword [ebp + 8]
mov word [ebp - 0x18], ax
call dword [sym.imp.WS2_32.dll_htons]
push 0
mov word [ebp - 0x16], ax
call dword [sym.imp.WS2_32.dll_htonl]
push 0
push 1
push 2
mov dword [ebp - 0x14], eax
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
cmp edi, 0xffffffff
jne 0x42d2ff
call fcn.0042c7bd
jmp 0x42d2a7
push 4
lea eax, [ebp - 8]
push eax
push 0xfffffffffffffffb
push 0xffff
mov dword [esi + 0xc], edi
push edi
mov dword [ebp - 8], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
push 0x10
lea eax, [ebp - 0x18]
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
js 0x42d2f8
push 4
push edi
call dword [sym.imp.WS2_32.dll_listen]
test eax, eax
js 0x42d2f8
push dword [ebp + 8]
mov eax, esi
push 0x457878
call fcn.0042c7d8
push eax
push str._d_any_server:_s_d_
lea eax, [esi + 0x18]
push 0x20
push eax
call fcn.0040c22e
add esp, 0x18
mov eax, esi
call fcn.0042c7d8
pop edi
pop esi
leave
ret

Function at 0x42d369
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
push esi
push edi
mov edi, 0x439eec
call fcn.0042cf72
mov esi, eax
test esi, esi
jne 0x42d38c
or eax, 0xffffffff
jmp 0x42d421
cmp dword [0x455524], 0
jne 0x42d39a
call fcn.0042ce65
xor eax, eax
lea edi, [esp + 8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 2
pop eax
mov edi, 0x13ad
push edi
mov word [esp + 0xc], ax
call dword [sym.imp.WS2_32.dll_htons]
push 0x7f000001
mov word [esp + 0xe], ax
call dword [sym.imp.WS2_32.dll_htonl]
push 0
push 1
push 2
mov dword [esp + 0x18], eax
call dword [sym.imp.WS2_32.dll_socket]
cmp eax, 0xffffffff
jne 0x42d3e4
call fcn.0042c7bd
jmp 0x42d384
push 0x10
lea ecx, [esp + 0xc]
push ecx
push eax
mov dword [esi + 0xc], eax
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
js 0x42d3dd
push edi
push 0x457775
mov eax, esi
call fcn.0042c7d8
push eax
push str._d_lo_client:_s_d_
lea eax, [esi + 0x18]
push 0x20
push eax
call fcn.0040c22e
add esp, 0x18
mov eax, esi
call fcn.0042c7d8
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x42f70e
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1000
call fcn.0041cfb0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str._Fatal_Error:
call esi
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x1000]
push 0x1000
push eax
call fcn.0041141b
add esp, 0x10
lea eax, [ebp - 0x1000]
push eax
call esi
push 0x443384
call esi
push 0xffffffffffffffff
call fcn.0040c8fc
int3
Function at 0x42fbd7
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
sub esp, 0x24
push esi
mov esi, ecx
test eax, eax
je 0x42fbea
and dword [eax], 0
cmp dword [esi + 4], 0
jne 0x42fbff
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor al, al
jmp 0x42fd02
mov edx, dword [ebp + 0x18]
mov cl, byte [ebp + 8]
test edx, edx
setne al
push ebx
test cl, cl
setne bl
push edi
dec bl
and bl, al
xor eax, eax
lea edi, [ebp - 0x24]
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 eax, eax
mov byte [ebp + 0xb], bl
mov dword [ebp + 0x18], eax
cmp edx, eax
jne 0x42fc50
mov eax, dword [esi + 0x18]
test cl, cl
lea ecx, [ebp - 0x24]
push ecx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
je 0x42fc48
call dword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x42fcb7
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x42fcb7
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x10], edx
movzx edx, cl
neg edx
sbb edx, edx
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
not edx
and edx, edi
movzx eax, cl
neg eax
sbb eax, eax
mov dword [ebp - 0xc], edx
mov edx, dword [ebp + 0xc]
not eax
and eax, edx
mov dword [ebp - 8], eax
test cl, cl
jne 0x42fc85
push 4
pop edi
lea edx, [ebp + 0x18]
mov eax, dword [esi + 0x18]
lea ebx, [ebp - 0x24]
push ebx
lea ebx, [ebp + 0xc]
push ebx
push edi
push edx
push 0x10
lea edx, [ebp - 0x10]
push edx
xor edx, edx
test cl, cl
sete dl
dec edx
and edx, 0xffffbffe
add edx, 0x22803c
push edx
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov bl, byte [ebp + 0xb]
test eax, eax
jne 0x42fccc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x42fccc
xor al, al
jmp 0x42fd00
mov esi, dword [esi + 0x18]
and dword [ebp + 0x10], 0
push 1
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x24]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x42fcfd
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x42fcfb
mov ecx, dword [ebp + 0x18]
test bl, bl
jne 0x42fcf9
mov ecx, dword [ebp + 0x10]
mov dword [edx], ecx
test eax, eax
setne al
pop edi
pop ebx
pop esi
leave
ret 0x14