joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14f5690
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x1575910
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push esi
mov eax, dword [0x15b0648]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
push eax
push esi
lea ecx, [esp + 0x1c]
call fcn.014f5560
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x3c]
push ecx
push 1
push 0
push esi
lea ecx, [esp + 0x18]
call fcn.014f54f0
mov byte [esp + 0x28], 1
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
push esi
call dword [sym.imp.GDI32.dll_Rectangle]
mov byte [esp + 0x28], 0
lea ecx, [esp + 8]
call fcn.014f5530
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.014f5590
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x24
ret

Function at 0x14fa650
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push esi
call edi
cmp eax, 0xffffffff
jne 0x14fa68c
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
push esi
call ebx
test eax, eax
jne 0x14fa684
call ebp
cmp eax, 0xb7
jne 0x14fa694
push esi
call edi
cmp eax, 0xffffffff
je 0x14fa672
pop edi
pop esi
pop ebp
and eax, 0x10
pop ebx
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
Function at 0x14faf80
Capabilities:
Get common file path

Disassembly:
sub esp, 0x110
mov eax, dword [0x15b0648]
xor eax, esp
mov dword [esp + 0x10c], eax
push esi
mov esi, dword [esp + 0x118]
push 0x1588120
push 0x104
push esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call fcn.014d6940
test eax, eax
je 0x14fafc5
call fcn.014fbaa0
push str._NT_SYMBOL_PATH
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc]
push ecx
call fcn.015434f5
add esp, 0xc
test eax, eax
je 0x14fb012
push 0x158810c
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14faff9
call fcn.014fbaa0
mov edx, dword [esp + 4]
push edx
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb012
call fcn.014fbaa0
push str._NT_ALT_SYMBOL_PATH
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc]
push ecx
call fcn.015434f5
add esp, 0xc
test eax, eax
je 0x14fb05f
push 0x158810c
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb046
call fcn.014fbaa0
mov edx, dword [esp + 4]
push edx
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb05f
call fcn.014fbaa0
push str.SYSTEMROOT
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc]
push ecx
call fcn.015434f5
add esp, 0xc
test eax, eax
je 0x14fb0e8
push 0x158810c
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb093
call fcn.014fbaa0
mov edx, dword [esp + 4]
push edx
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb0ac
call fcn.014fbaa0
push 0x158810c
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb0c5
call fcn.014fbaa0
mov eax, dword [esp + 4]
push eax
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb0de
call fcn.014fbaa0
push str.System32
jmp 0x14fb17e
push 0x103
lea ecx, [esp + 0x11]
push 0
push ecx
mov byte [esp + 0x18], 0
call fcn.0153ecd0
add esp, 0xc
push 0x103
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x14fb192
push 0x158810c
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb12e
call fcn.014fbaa0
lea eax, [esp + 0xc]
push eax
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb147
call fcn.014fbaa0
push 0x158810c
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb160
call fcn.014fbaa0
lea ecx, [esp + 0xc]
push ecx
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb179
call fcn.014fbaa0
push str.System
push 0x104
push esi
call fcn.014d6940
test eax, eax
je 0x14fb192
call fcn.014fbaa0
mov ecx, dword [esp + 0x110]
pop esi
xor ecx, esp
call fcn.0153eb33
add esp, 0x110
ret
Function at 0x14fba40
Capabilities:
Create thread

Disassembly:
sub esp, 0x10
push esi
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x14fba95
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [esi]
push 0
push 0
lea edx, [esp + 0xc]
push edx
push fcn.014fb480
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 4]
push 0
push 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop esi
add esp, 0x10
ret

Function at 0x14fbda0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x404
mov eax, dword [0x15b0648]
xor eax, esp
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x408]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x400
jge 0x14fbe76
push 0x3ff
lea ecx, [esp + 5]
push 0
push ecx
mov byte [esp + 0xc], 0
call fcn.0153ecd0
mov eax, dword [esp + 0x414]
lea edx, [esp + 0x418]
push edx
push eax
lea ecx, [esp + 0x14]
push 0x3ff
push ecx
call fcn.01541836
add esp, 0x1c
test eax, eax
jl 0x14fbe1c
cmp eax, 0x3ff
ja 0x14fbe1c
jne 0x14fbe29
mov byte [esp + 0x3ff], 0
jmp 0x14fbe29
mov byte [esp + 0x3ff], 0
call fcn.014fbaa0
call fcn.014fa6a0
test al, al
je 0x14fbe62
lea edx, [esp]
push edx
push 0x2000001
call fcn.01509090
add esp, 8
lea eax, [esp]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [esp + 0x400]
xor ecx, esp
call fcn.0153eb33
add esp, 0x404
ret
push 0
push str.BSObj_Plugin
lea ecx, [esp + 8]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0x400]
xor ecx, esp
call fcn.0153eb33
add esp, 0x404
ret
Function at 0x14fc170
Capabilities:
Terminate process

Disassembly:
mov eax, 0x1004
call fcn.0153ed50
mov eax, dword [0x15b0648]
xor eax, esp
mov dword [esp + 0x1000], eax
push ebx
mov ebx, dword [esp + 0x1018]
test ebx, 0x400
push ebp
mov ebp, dword [esp + 0x1010]
push esi
mov esi, dword [esp + 0x1018]
push edi
mov edi, dword [esp + 0x1020]
je 0x14fc1bc
push edi
push esi
push ebp
call dword [0x15d5f5c]
add esp, 0xc
and ebx, 2
jne 0x14fc1cf
test byte [esp + 0x1024], 4
je 0x14fc2f1
push 0xfff
lea eax, [esp + 0x15]
push 0
push eax
mov byte [esp + 0x1c], 0
call fcn.0153ecd0
push esi
push ebp
push edi
push str.Debug_Assertion_Failed._n_nExpression_:__s_nLine_:__d_nFile_:__s_n_n
lea ecx, [esp + 0x2c]
push 0x1000
push ecx
call fcn.01467780
add esp, 0x24
test eax, eax
je 0x14fc223
call fcn.014fbaa0
xor al, al
mov ecx, dword [esp + 0x1010]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0153eb33
add esp, 0x1004
ret
test byte [esp + 0x1024], 8
je 0x14fc276
push str.CallStack:_n
push 0x1000
lea edx, [esp + 0x18]
push edx
call fcn.014d6940
test eax, eax
jne 0x14fc203
mov eax, dword [0x15d5f20]
push eax
push 0x1000
lea ecx, [esp + 0x18]
push ecx
call fcn.014d6940
test eax, eax
jne 0x14fc203
push 0x1588370
push 0x1000
lea edx, [esp + 0x18]
push edx
call fcn.014d6940
test eax, eax
jne 0x14fc203
test ebx, ebx
je 0x14fc2c1
push str._press__ok__to_advance__press__cancel__to_exit_
push 0x1000
lea eax, [esp + 0x18]
push eax
call fcn.014d6940
test eax, eax
jne 0x14fc203
push 0x11
push str.BSLib_Debug_Module
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 1
jne 0x14fc2f1
mov al, byte [esp + 0x1024]
shr al, 4
not al
and al, 1
jmp 0x14fc20a
push str._press__ok__to_exit_program_
push 0x1000
lea edx, [esp + 0x18]
push edx
call fcn.014d6940
test eax, eax
jne 0x14fc203
push 0x10
push str.BSLib_Debug_Module
lea eax, [esp + 0x18]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x14fe290
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
cmp edi, 1
mov esi, ecx
je 0x14fe2a6
test edi, edi
je 0x14fe2a6
call fcn.014fbaa0
cmp dword [esi + 0x40], 0xffffffff
mov dword [esi + 0x44], edi
jne 0x14fe2dd
push 1
push 0
push 0
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, 0xffffffff
mov dword [esi + 0x40], eax
jne 0x14fe2dd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, esi
call fcn.014fe270
pop edi
xor eax, eax
pop esi
ret 4
pop edi
mov eax, 1
pop esi
ret 4
Function at 0x14fe440
Capabilities:
Send data
Send data on socket

Disassembly:
push esi
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x1c]
sub eax, 0
push edi
mov edi, ecx
je 0x14fe47e
sub eax, 1
je 0x14fe45c
call fcn.014fbaa0
jmp 0x14fe4a5
mov eax, dword [edi + 0x98]
cmp eax, dword [edi + 0x9c]
lea ecx, [edi + 0x60]
jne 0x14fe477
pop edi
mov eax, 6
pop esi
ret 4
call fcn.014fde30
jmp 0x14fe4a5
mov ecx, dword [esi + 0x1054]
mov dx, word [ecx]
and dx, 0x7fff
add dx, 6
cmp dx, 6
jae 0x14fe49b
call fcn.014fbaa0
movzx eax, word [esi + 0x103e]
mov dword [esi + 0x24], eax
push ebx
push ebp
lea ebp, [edi + 0x154]
push ebp
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edx, dword [esi + 0x20]
mov eax, dword [edi + 0x40]
push ebx
push esi
push ebx
lea ecx, [esp + 0x20]
push ecx
push edx
add esi, 0x24
push esi
push eax
mov dword [esp + 0x30], ebx
call dword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
jne 0x14fe54d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
cmp esi, 0x3e5
je 0x14fe526
push str.PostSend__
push str.PostSend
push esi
call fcn.0152a230
add esp, 0xc
cmp esi, 0x2733
je 0x14fe531
cmp esi, 8
je 0x14fe531
cmp esi, 0x2747
je 0x14fe531
push ebp
mov ebx, 0x8002
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
pop ebp
mov eax, ebx
pop ebx
pop edi
pop esi
ret 4
xor ebx, ebx
pop ebp
mov eax, ebx
pop ebx
pop edi
pop esi
ret 4
push esi
push str.WSASend_____NERR_TOO_MANY_OUTSTANDING:__d
push 0
call fcn.01509090
add esp, 0xc
push ebp
mov ebx, 0x8005
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
pop ebp
mov eax, ebx
pop ebx
pop edi
pop esi
ret 4

Function at 0x14fe600
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 8
push ebx
push esi
push edi
mov edi, ecx
lea esi, [edi + 0xa4]
mov ecx, esi
call fcn.014fdf90
mov eax, dword [esi + 0x38]
cmp eax, dword [esi + 0x3c]
jge 0x14fe622
call fcn.014fbaa0
mov ecx, dword [esi + 0x38]
sub ecx, dword [esi + 0x3c]
cmp ecx, 6
jl 0x14fe632
call fcn.014fbaa0
mov ecx, esi
call fcn.014fde30
cmp dword [edi + 0xc8], 0
lea ebx, [edi + 0xc8]
ja 0x14fe64d
call fcn.014fbaa0
mov ecx, dword [edi + 0xc4]
push 0
push esi
lea edx, [esp + 0x14]
push edx
mov edx, dword [edi + 0x40]
lea eax, [esp + 0x1c]
push eax
push ecx
push ebx
push edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
pop edi
pop esi
pop ebx
jne 0x14fe69f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jg 0x14fe6a5
je 0x14fe6b5
cmp eax, 8
je 0x14fe6b5
cmp eax, 0x3e5
jne 0x14fe6ac
xor eax, eax
add esp, 8
ret
cmp eax, 0x2747
je 0x14fe6b5
mov eax, 0x8002
add esp, 8
ret
mov eax, 0x8005
add esp, 8
ret
Function at 0x1500040
Capabilities:
Set socket configuration

Disassembly:
push 0xffffffffffffffff
push 0x1576268
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebp
push esi
push edi
mov eax, dword [0x15b0648]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
cmp esi, edi
jne 0x1500086
mov eax, 0x8009
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x24
ret
lea ecx, [esi + 4]
cmp ecx, edi
jne 0x1500098
call fcn.014fbaa0
mov ebp, dword [esp + 0x1c]
jmp 0x15000b6
mov ebp, ecx
mov dword [esp + 0x1c], ebp
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 4]
push 0xffffffffffffffff
mov dword [esp + 0x28], edi
call eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], edi
mov ecx, dword [esi + 0x148]
cmp ecx, edi
je 0x1500116
cmp dword [0x15d7294], edi
je 0x1500116
push 1
mov dword [esp + 0x14], edi
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
push edi
lea eax, [esp + 0x18]
push eax
call edx
mov ecx, dword [esp + 0x10]
cmp ecx, edi
je 0x1500116
mov eax, dword [0x15d7294]
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0x50]
call eax
mov ecx, dword [esi + 0x148]
push 1
mov dword [esp + 0x14], edi
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
push edi
lea eax, [esp + 0x18]
push eax
call edx
mov ecx, dword [esp + 0x10]
cmp ecx, edi
jne 0x15000e7
cmp dword [esi + 0x44], 1
jne 0x15001a4
mov eax, dword [esi + 0x40]
cmp eax, 0xffffffff
je 0x150019d
cmp dword [esi + 0x48], edi
je 0x1500168
push edi
push eax
call fcn.0152a210
mov eax, dword [esi + 0x40]
add esp, 8
push 1
push eax
call dword [sym.imp.WS2_32.dll_shutdown]
mov edx, dword [esi + 0x40]
push edi
push edi
lea ecx, [esp + 0x20]
push ecx
push 4
push edi
push edi
push edi
push 0x4004667f
push edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
call dword [sym.imp.WS2_32.dll_WSAIoctl]
jmp 0x150018c
push 4
lea ecx, [esp + 0x14]
push ecx
push 0x80
push 0xffff
push eax
mov word [esp + 0x24], 1
mov word [esp + 0x26], di
call dword [sym.imp.WS2_32.dll_setsockopt]
mov edx, dword [esi + 0x40]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [esi + 0x40], 0xffffffff
mov dword [esi + 0x44], 0xffffffff
cmp dword [0x15d7298], edi
jne 0x15001b3
mov ecx, esi
call fcn.014ffd60
mov dword [esp + 0x30], 0xffffffff
cmp ebp, edi
jne 0x15001c4
call fcn.014fbaa0
cmp dword [esp + 0x24], edi
je 0x15001df
mov eax, dword [ebp]
mov edx, dword [eax + 0xc]
mov ecx, ebp
call edx
neg eax
sbb eax, eax
add eax, 1
mov dword [esp + 0x24], eax
xor eax, eax
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x24
ret
Function at 0x1504c20
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x50]
mov ecx, edi
call fcn.014fdf90
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 0x3c]
jge 0x1504c3f
call fcn.014fbaa0
mov ecx, dword [edi + 0x38]
sub ecx, dword [edi + 0x3c]
cmp ecx, 6
jl 0x1504c4f
call fcn.014fbaa0
mov ecx, edi
call fcn.014fde30
cmp dword [esi + 0x74], 0
lea ebx, [esi + 0x74]
ja 0x1504c64
call fcn.014fbaa0
push 0
push edi
lea eax, [esi + 0xc8]
push eax
mov dword [eax], 0x10
lea edx, [esi + 0xb8]
push edx
mov edx, dword [esi + 0x70]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esi + 0x40]
lea ecx, [esp + 0x24]
push ecx
push edx
push ebx
push eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call dword [sym.imp.WS2_32.dll_WSARecvFrom]
cmp eax, 0xffffffff
pop edi
pop esi
pop ebx
jne 0x1504cde
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x1504cde
cmp eax, 0x2733
je 0x1504cd5
cmp eax, 8
je 0x1504cd5
cmp eax, 0x2747
je 0x1504cd5
mov eax, 0x8002
add esp, 8
ret
mov eax, 0x8005
add esp, 8
ret
xor eax, eax
add esp, 8
ret

Function at 0x1504c24
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x50]
mov ecx, edi
call fcn.014fdf90
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 0x3c]
jge 0x1504c3f
call fcn.014fbaa0
mov ecx, dword [edi + 0x38]
sub ecx, dword [edi + 0x3c]
cmp ecx, 6
jl 0x1504c4f
call fcn.014fbaa0
mov ecx, edi
call fcn.014fde30
cmp dword [esi + 0x74], 0
lea ebx, [esi + 0x74]
ja 0x1504c64
call fcn.014fbaa0
push 0
push edi
lea eax, [esi + 0xc8]
push eax
mov dword [eax], 0x10
lea edx, [esi + 0xb8]
push edx
mov edx, dword [esi + 0x70]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esi + 0x40]
lea ecx, [esp + 0x24]
push ecx
push edx
push ebx
push eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call dword [sym.imp.WS2_32.dll_WSARecvFrom]
cmp eax, 0xffffffff
pop edi
pop esi
pop ebx
jne 0x1504cde
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x1504cde
cmp eax, 0x2733
je 0x1504cd5
cmp eax, 8
je 0x1504cd5
cmp eax, 0x2747
je 0x1504cd5
mov eax, 0x8002
add esp, 8
ret
mov eax, 0x8005
add esp, 8
ret
xor eax, eax
add esp, 8
ret
Function at 0x1505930
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push esi
mov esi, ecx
cmp dword [esi + 0x40], 0xffffffff
mov byte [esi + 0xa8], 1
jne 0x150596f
push 1
push 0
push 0
push 0x11
push 2
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, 0xffffffff
mov dword [esi + 0x40], eax
jne 0x150596f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
xor eax, eax
pop esi
ret 4
push ebp
mov ebp, dword [esp + 0xc]
xor eax, eax
test bp, bp
push edi
lea edi, [esi + 0xb8]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov word [edi], 2
jbe 0x15059b2
mov ecx, dword [esi + 0x40]
push 4
lea eax, [esp + 0x14]
push eax
push 4
push 0xffff
push ecx
mov dword [esp + 0x24], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
push ebp
call dword [sym.imp.WS2_32.dll_htons]
mov edx, dword [esi + 0x40]
push 0x10
push edi
push edx
mov word [esi + 0xba], ax
mov dword [esi + 0xbc], 0
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
pop edi
pop ebp
jne 0x15059ea
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
xor eax, eax
pop esi
ret 4
mov ecx, esi
call fcn.01504ac0
test eax, eax
je 0x1505969
mov ecx, esi
call fcn.01505860
mov eax, 1
pop esi
ret 4

Function at 0x1505ae0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x10
cmp byte [0x15d7290], 0
jne 0x1505b42
lea eax, [esp]
push eax
push 1
mov byte [0x15d7290], 1
call fcn.01505aa0
add esp, 8
test al, al
je 0x1505b19
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [0x15d7280], ecx
mov dword [0x15d7284], edx
lea eax, [esp]
push eax
push reloc.WS2_32.dll_accept
call fcn.01505aa0
add esp, 8
test al, al
je 0x1505b42
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [0x15d7288], ecx
mov dword [0x15d728c], edx
mov ecx, dword [esp + 0x14]
mov edx, ecx
sar edx, 5
cmp edx, 3
jbe 0x1505b61
push str.cap_invalid
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
add esp, 0x10
ret
and ecx, 0x1f
mov eax, 1
shl eax, cl
and eax, dword [edx*4 + 0x15d7280]
neg eax
sbb eax, eax
neg eax
add esp, 0x10
ret
Function at 0x1509090
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x15a4230
push 0x1541e60
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x2804
call fcn.0153ed50
mov eax, dword [0x15b0648]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor ebx, ebx
mov dword [ebp - 4], ebx
mov byte [ebp - 0x281c], bl
push 0x27ff
push ebx
lea eax, [ebp - 0x281b]
push eax
call fcn.0153ecd0
add esp, 0xc
lea ecx, [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
push 0x2800
lea eax, [ebp - 0x281c]
push eax
call fcn.01493220
test eax, eax
je 0x1509112
call fcn.014fbaa0
mov eax, dword [0x15d7294]
cmp eax, ebx
je 0x1509139
mov eax, dword [eax + 0x24]
cmp eax, ebx
je 0x1509139
lea ecx, [ebp - 0x281c]
push ecx
push 0x15839a4
mov edx, dword [ebp + 8]
push edx
call eax
add esp, 0xc
jmp 0x1509151
lea eax, [ebp - 0x281c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x1509151
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.0153eb33
mov esp, ebp
pop ebp
ret
Function at 0x1514f60
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
xor eax, eax
push edi
mov edi, dword [esp + 0x14]
cmp esi, edi
sete al
mov ebx, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
test eax, eax
jbe 0x1514ff4
push ebp
lea ebp, [eax - 1]
shr ebp, 3
add ebp, 1
lea ebx, [ebx]
cmp dword [esp + 0x14], 0
je 0x1514fa8
lea ecx, [esi + 4]
push ecx
push esi
mov ecx, ebx
call fcn.01514610
add esi, 8
jmp 0x1514fee
movzx edx, byte [esi]
mov byte [edi], dl
mov al, byte [esi + 1]
mov byte [edi + 1], al
movzx ecx, byte [esi + 2]
mov byte [edi + 2], cl
movzx edx, byte [esi + 3]
mov byte [edi + 3], dl
movzx ecx, byte [esi + 4]
lea eax, [edi + 4]
mov byte [eax], cl
movzx edx, byte [esi + 5]
mov byte [edi + 5], dl
movzx ecx, byte [esi + 6]
mov byte [edi + 6], cl
movzx edx, byte [esi + 7]
push eax
push edi
mov ecx, ebx
mov byte [edi + 7], dl
call fcn.01514610
add esi, 8
add edi, 8
sub ebp, 1
jne 0x1514f90
pop ebp
pop edi
pop esi
pop ebx
ret 0xc
Function at 0x1518d80
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x1579008
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x15b0648]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
push 0
lea ecx, [esp + 0x14]
call fcn.0153dc46
mov dword [esp + 0x28], 0
mov edi, dword [0x15d731c]
mov ecx, 0x1617554
mov dword [esp + 0xc], edi
call fcn.01515670
mov esi, eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
cmp esi, dword [eax + 0xc]
jae 0x1518dfb
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + esi*4]
test ecx, ecx
jne 0x1518dff
cmp byte [eax + 0x14], 0
je 0x1518dff
call fcn.0153dd8a
cmp esi, dword [eax + 0xc]
jae 0x1518e05
mov edx, dword [eax + 8]
mov esi, dword [edx + esi*4]
jmp 0x1518e01
xor ecx, ecx
jmp 0x1518de3
mov esi, ecx
test esi, esi
jne 0x1518e56
test edi, edi
je 0x1518e0d
mov esi, edi
jmp 0x1518e56
lea eax, [esp + 0xc]
push eax
call fcn.01518560
add esp, 4
cmp eax, 0xffffffff
jne 0x1518e3c
push str.bad_cast
lea ecx, [esp + 0x18]
call fcn.0153e5a3
push 0x15a6540
lea ecx, [esp + 0x18]
push ecx
call fcn.0153ec84
mov esi, dword [esp + 0xc]
mov ecx, esi
mov dword [0x15d731c], esi
call fcn.015156f0
push esi
call fcn.0153de82
add esp, 4
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x10]
call fcn.0153dc67
mov eax, esi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x20
ret
Function at 0x1520ee0
Capabilities:
Initialize winhttp library

Disassembly:
cmp dword [0x15d734c], 0
jne 0x1520fc4
push 0
push 0
push 0
push 1
push 0x1589cc8
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
test eax, eax
mov dword [0x15d734c], eax
jne 0x1520f25
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.WinHttpOpen_:_LastErr__d_
push 0x2000001
call fcn.01509090
add esp, 0xc
xor eax, eax
ret
push 0x927c0
push 0x927c0
push 0x927c0
push 0
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpSetTimeouts]
test eax, eax
jne 0x1520f73
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.WinHttpSetTimeouts_:_LastErr__d_
push 0x2000001
call fcn.01509090
mov eax, dword [0x15d734c]
add esp, 0xc
push eax
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov dword [0x15d734c], 0
xor eax, eax
ret
mov ecx, dword [0x15d734c]
push 0
push 0x10000
push 0x1520ce0
push ecx
call dword [sym.imp.WINHTTP.dll_WinHttpSetStatusCallback]
cmp eax, 0xffffffff
jne 0x1520fc4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.WinHttpSetStatusCallback_:_LastErr__d_
push 0x2000001
call fcn.01509090
mov edx, dword [0x15d734c]
add esp, 0xc
push edx
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
mov dword [0x15d734c], 0
xor eax, eax
ret
mov eax, 1
ret