joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1017380
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
cmp word [ecx], 0x5a4d
je 0x1017393
xor eax, eax
pop ebp
ret
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax], 0x4550
jne 0x101738f
xor ecx, ecx
cmp word [eax + 0x18], 0x10b
sete cl
mov eax, ecx
pop ebp
ret

Function at 0x10173c0
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
push ebx
push esi
movzx esi, word [ecx + 6]
xor edx, edx
test esi, esi
push edi
lea eax, [eax + ecx + 0x18]
jbe 0x10173ff
mov edi, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
cmp edi, ecx
jb 0x10173f5
mov ebx, dword [eax + 8]
add ebx, ecx
cmp edi, ebx
jb 0x1017401
add edx, 1
add eax, 0x28
cmp edx, esi
jb 0x10173e5
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x1019594
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x1020894]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x20
lea eax, [ebp - 0x44]
push eax
push 8
push 0x404
mov esi, 0xc04
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x10195e8
push 3
lea eax, [ebp - 0x44]
push 0x1004768
push eax
call sub.msvcrt.dll_wcsncmp
add esp, 0xc
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xfffff800
add esi, 0xc04
mov ecx, dword [ebp - 4]
mov ax, si
xor ecx, ebp
pop esi
call fcn.01016715
leave
ret

Function at 0x101960e
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x1020894]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, 0x11c
push esi
lea eax, [ebp - 0x120]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
push eax
call esi
test eax, eax
jne 0x1019667
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0x114
call esi
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x11c]
xor eax, eax
dec ecx
pop esi
je 0x10196bb
dec ecx
jne 0x10196de
cmp edx, 5
jne 0x10196b3
mov ecx, dword [ebp - 0x118]
sub ecx, eax
je 0x10196af
dec ecx
je 0x10196a4
dec ecx
je 0x1019695
push 0x14
jmp 0x1019706
cmp word [ebp - 0xc], 1
jb 0x101969f
push 0x10
pop eax
or eax, 4
jmp 0x10196de
cmp word [ebp - 0xc], 2
jb 0x101969f
push 8
jmp 0x101969e
push 4
jmp 0x1019706
cmp edx, 4
ja 0x10196ea
push 2
pop eax
cmp edx, 4
jne 0x10196de
cmp dword [ebp - 0x118], 0
je 0x10196db
cmp dword [ebp - 0x118], 0xa
je 0x10196db
cmp dword [ebp - 0x118], 0x5a
jne 0x10196de
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.01016715
leave
ret
cmp edx, 6
jne 0x1019709
cmp dword [ebp - 0x118], 0
jne 0x1019709
cmp dword [ebp - 0x114], 0x1554
jae 0x1019709
push 0x40
pop eax
jmp 0x10196de
push 0x20
jmp 0x1019706
Function at 0x402446
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
push ebx
mov ebx, dword [ebp + 0x10]
push esi
xor esi, esi
test ebx, ebx
jne 0x40245f
push 1
pop eax
jmp 0x4024d4
mov eax, dword [0x409498]
push 0
mov dword [ebp - 0x100], eax
push 0
lea eax, [ebp - 0x104]
push 0
push eax
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp - 0x104], 1
push eax
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x4024cd
test eax, eax
je 0x40245f
lea eax, [ebp - 0x104]
push eax
push dword [ebp + 8]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x40245f
mov eax, ebx
push 0
sub eax, esi
push eax
mov eax, dword [ebp + 0xc]
add eax, esi
push eax
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
je 0x4024cd
cmp eax, 0xffffffff
je 0x4024cd
add esi, eax
cmp esi, ebx
jb 0x40245f
xor eax, eax
cmp esi, ebx
sete al
pop esi
pop ebx
leave
ret

Function at 0x402c2e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
xor ebx, ebx
push esi
push ebx
push 0x80
push 4
push ebx
push 2
push 0x40000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x402ca3
push edi
push 2
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
xor eax, eax
lea edi, [ebp - 0xb]
mov byte [ebp - 0xc], bl
mov dword [ebp + 8], ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
mov edi, dword [ebp + 0xc]
cmp edi, ebx
jbe 0x402c9b
lea eax, [ebp - 0xc]
push 0xa
push eax
jmp loc.004108b0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x402aa8
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, ecx
mov dword [ebp - 0x10], edx
push esi
push edi
lea esi, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x402ab9
push ecx
sub ebx, esi
call sub.api_ms_win_crt_string_l1_1_0.dll__strdup
mov esi, eax
mov dword [ebp - 0xc], esi
pop ecx
test esi, esi
jne 0x402ada
push 0x1b
pop eax
jmp 0x402be4
lea eax, [ebx + 1]
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
pop ecx
test edi, edi
jne 0x402af3
push 0x1b
pop ebx
jmp 0x402bda
push 0x457348
push esi
mov byte [edi], 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok]
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x402bcd
xor eax, eax
push 0x457348
push eax
mov byte [ebp - 8], al
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strtok]
mov dword [ebp - 4], eax
pop ecx
pop ecx
test eax, eax
je 0x402bc3
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402b31
sub ecx, edx
je 0x402b52
push esi
push 0x45734c
mov eax, ebx
push 0x457350
sub eax, ecx
push eax
lea eax, [ecx + edi]
push eax
jmp 0x402b96
cmp dword [ebp - 0xc], esi
jne 0x402b89
push 0x3a
push esi
call fcn.00451a20
mov edx, dword [ebp - 8]
pop ecx
pop ecx
test eax, eax
je 0x402b75
xor ecx, ecx
movzx edx, dl
inc ecx
cmp byte [eax + 1], 0
cmove edx, ecx
mov ecx, edi
sub ecx, esi
mov al, byte [esi]
mov byte [ecx + esi], al
inc esi
test al, al
jne 0x402b79
test dl, dl
jne 0x402bc0
jmp 0x402b9e
push esi
push 0x45734c
push 0x457350
push ebx
push edi
call fcn.0041201d
add esp, 0x14
push edi
call sub.api_ms_win_crt_filesystem_l1_1_0.dll__mkdir
pop ecx
cmp eax, 0xffffffff
jne 0x402bc0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [eax], 0xd
je 0x402bc0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
cmp dword [eax], 0x11
jne 0x402be9
mov eax, dword [ebp - 4]
mov esi, eax
test eax, eax
jne 0x402b0e
xor ebx, ebx
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov esi, dword [ebp - 0xc]
pop ecx
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
mov ecx, dword [ebp - 0x10]
mov edx, edi
call fcn.00402a46
push 0x17
pop ebx
jmp 0x402bcf
Function at 0x40310d
Capabilities:
Enumerate process modules

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x228
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x220
lea eax, [ebp - 0x224]
push 0
push eax
call fcn.004520c0
add esp, 0xc
mov dword [ebp - 0x228], 0x224
xor edi, edi
push 0
push 8
call dword [sym.imp.api_ms_win_core_toolhelp_l1_1_0.dll_CreateToolhelp32Snapshot]
mov esi, eax
cmp esi, 0xffffffff
jne 0x403185
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 0x18
je 0x403144
mov ecx, edi
call fcn.00410e10
xor edi, edi
cmp esi, 0xffffffff
je 0x403175
push esi
call dword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.00450ca6
leave
ret
lea eax, [ebp - 0x228]
push eax
push esi
call dword [sym.imp.api_ms_win_core_kernel32_legacy_l1_1_2.dll_Module32First]
test eax, eax
je 0x403160
lea edx, [ebp - 0x108]
mov ecx, edi
call fcn.00410dce
test eax, eax
je 0x403160
mov edi, eax
lea eax, [ebp - 0x228]
push eax
push esi
call dword [sym.imp.api_ms_win_core_kernel32_legacy_l1_1_2.dll_Module32Next]
test eax, eax
jne 0x403197
jmp 0x40316e

Function at 0x4035d3
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
or ebx, 0xffffffff
mov esi, edx
push ecx
mov dword [ebp - 4], ebx
call sub.api_ms_win_crt_string_l1_1_0.dll__strdup
pop ecx
xor ecx, ecx
mov dword [ebp - 8], eax
push ecx
push ecx
push 3
push ecx
push 7
push 0x80
push eax
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_CreateFileA]
mov edi, eax
mov eax, dword [ebp - 8]
test eax, eax
je 0x403614
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
cmp edi, ebx
je 0x403690
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push edi
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileTime]
test eax, eax
je 0x403672
mov ecx, dword [ebp - 8]
xor eax, eax
or eax, dword [ebp - 0xc]
mov edx, 0xd53e8000
cmp ecx, 0x19db1de
jg 0x403655
jl 0x403646
cmp eax, edx
jae 0x403655
push str.Failed_to_get_filetime:_underflow_n
push esi
call fcn.0040913e
pop ecx
pop ecx
jmp 0x403687
sub eax, edx
push 0
push 0x989680
sbb ecx, 0x19db1de
push ecx
push eax
call fcn.00453040
mov ebx, eax
mov dword [ebp - 4], edx
jmp 0x403687
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
push eax
push str.Failed_to_get_filetime:_GetFileTime_failed:_GetLastError__u_n
push esi
call fcn.0040913e
add esp, 0xc
push edi
call dword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
jmp 0x4036b0
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 2
je 0x4036b0
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
push eax
push str.Failed_to_get_filetime:_CreateFile_failed:_GetLastError__u_n
push esi
call fcn.0040913e
add esp, 0xc
mov edx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40903b
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov eax, edx
push esi
mov esi, eax
mov dword [ebp - 8], eax
push edi
mov edi, ecx
mov dword [ebp - 4], edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x409053
push 0x4f
sub esi, ecx
pop eax
sub eax, esi
cmp byte [edi + 4], 0
mov dword [ebp - 0xc], eax
jne 0x409118
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
call fcn.0041206f
mov ebx, eax
mov dword [ebp - 0x10], ebx
test ebx, ebx
je 0x409118
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x40908b
sub esi, ecx
je 0x40910f
push dword [edi + 8]
push dword [ebp - 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputs]
mov eax, dword [ebp - 0xc]
pop ecx
pop ecx
cmp esi, eax
jbe 0x409103
lea edx, [eax - 1]
mov edi, edx
jmp 0x4090b7
test edi, edi
je 0x4090c8
dec edi
movzx ecx, byte [edi + ebx]
call fcn.00410a91
test eax, eax
je 0x4090b2
test edi, edi
jne 0x4090ca
mov edi, edx
mov eax, dword [ebp - 4]
push dword [eax + 8]
lea eax, [edi + 1]
push 1
push eax
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov eax, dword [ebp - 4]
push dword [eax + 8]
push 0x457668
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputs]
sub esi, edi
lea ebx, [ebx + 1]
add esp, 0x18
lea ebx, [ebx + edi]
mov edi, dword [ebp - 4]
sub esi, 1
jne 0x409096
jmp 0x40910f
push dword [edi + 8]
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputs]
pop ecx
pop ecx
push dword [ebp - 0x10]
call fcn.00412920
pop ecx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x40d40a
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1028
call fcn.00453280
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x1010], eax
mov ebx, edx
push edi
mov edi, ecx
test eax, eax
je 0x40d4e9
mov dword [ebp - 0x1024], esi
mov dword [ebp - 0x1020], esi
mov dword [ebp - 0x101c], esi
mov dword [ebp - 0x1018], 0x40000000
push eax
push 0x1000
lea eax, [ebp - 0x100c]
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
push dword [ebp - 0x1010]
mov dword [ebp - 0x1014], eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ferror]
add esp, 0x14
test eax, eax
jne 0x40d4d5
mov eax, dword [ebp - 0x1014]
test eax, eax
je 0x40d4a6
push eax
lea edx, [ebp - 0x100c]
lea ecx, [ebp - 0x1024]
call fcn.00410ca0
pop ecx
test eax, eax
jne 0x40d4bf
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_feof]
pop ecx
test eax, eax
jne 0x40d4c3
mov eax, dword [ebp - 0x1010]
jmp 0x40d457
push 0xe
jmp 0x40d4e6
mov eax, dword [ebp - 0x1020]
mov dword [ebx], eax
mov eax, dword [ebp - 0x1024]
mov dword [edi], eax
jmp 0x40d4ed
lea ecx, [ebp - 0x1024]
call fcn.00410c88
mov dword [ebx], esi
mov dword [edi], esi
push 0x15
pop eax
jmp 0x40d4ef
mov dword [ebx], esi
mov dword [edi], esi
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret
Function at 0x40ff30
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, edx
mov eax, ecx
push edi
mov dword [ebp - 0xc], eax
mov ecx, dword [esi + 0xaf4]
mov edi, dword [esi + 0xaf8]
inc ecx
and dword [eax], 0
cmp byte [esi + 0xafc], 0
mov dword [ebp - 4], ecx
jne 0x40ff65
mov byte [esi + 0xafc], 1
jmp 0x40ffe2
xor edx, edx
mov eax, dword [esi + 0xaf0]
cmp edx, eax
jae 0x4100bd
sub eax, edx
xor bl, bl
dec eax
imul ecx, eax, 0x1c
add ecx, esi
mov eax, dword [ecx]
mov dword [ebp - 8], eax
sub eax, 1
je 0x40ffc3
sub eax, 1
je 0x40ffad
sub eax, 1
jne 0x410031
mov eax, dword [ecx + 0x18]
add dword [ecx + 0x14], eax
mov eax, dword [ecx + 0x14]
cmp eax, dword [ecx + 0xc]
jbe 0x40ffda
mov eax, dword [ecx + 8]
mov dword [ecx + 0x14], eax
jmp 0x40ffd8
mov al, byte [ecx + 0xc]
add byte [ecx + 0xa], al
mov al, byte [ecx + 0xa]
cmp al, byte [ecx + 9]
jle 0x40ffda
mov al, byte [ecx + 8]
mov byte [ecx + 0xa], al
jmp 0x40ffd8
cmp dword [ecx + 8], 0
je 0x40ffda
inc dword [ecx + 0x10]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0xc]
jne 0x40ffda
and dword [ecx + 0x10], 0
mov bl, 1
inc edx
test bl, bl
jne 0x40ff67
mov ecx, dword [ebp - 4]
and dword [ebp - 8], 0
cmp dword [esi + 0xaf0], 0
jbe 0x41009e
lea ebx, [esi + 0xa]
mov edx, dword [ebx - 0xa]
mov eax, edx
sub eax, 1
je 0x410054
sub eax, 1
je 0x410045
sub eax, 1
jne 0x4100b7
push dword [ebx + 0xa]
push dword [ebx + 6]
push str._0lu
push ecx
push edi
call fcn.0041201d
mov edx, edi
add esp, 0x14
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x410028
jmp 0x41007c
push dword [ebp - 8]
push str.internal_error:_invalid_pattern_type___d__n
call fcn.004120f5
pop ecx
pop ecx
push 2
pop eax
jmp 0x4100bf
test ecx, ecx
je 0x410088
mov al, byte [ebx]
mov byte [edi], al
inc edi
dec ecx
mov byte [edi], 0
jmp 0x410085
mov edx, dword [ebx - 2]
test edx, edx
je 0x410088
mov eax, dword [ebx + 6]
push dword [edx + eax*4]
push 0x45fe94
push ecx
push edi
call fcn.0041201d
mov edx, edi
add esp, 0x10
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x410075
sub edx, ecx
mov ecx, dword [ebp - 4]
add edi, edx
sub ecx, edx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 8]
add ebx, 0x1c
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0xaf0]
jb 0x40fff6
push dword [esi + 0xaf8]
call sub.api_ms_win_crt_string_l1_1_0.dll__strdup
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
test eax, eax
jne 0x4100bd
push 0x1b
jmp 0x410042
push edx
jmp 0x410034
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x415247
Capabilities:
Convert ip address from string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov ebx, edx
mov dword [ebp - 0x4c], ecx
push edi
mov edi, ebx
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x415264
sub edi, edx
cmp byte [ebx], 0x5b
jne 0x4153cd
cmp edi, 4
jb 0x4153c9
inc ebx
sub edi, 2
lea esi, [ebx + edi]
cmp byte [esi], 0x5d
jne 0x4153c9
push str.0123456789abcdefABCDEF:.
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strspn]
pop ecx
pop ecx
cmp edi, eax
je 0x415355
mov edi, eax
add eax, ebx
mov dword [ebp - 0x54], eax
cmp byte [eax], 0x25
jne 0x4153c9
and dword [ebp - 0x48], 0
inc eax
push 2
mov esi, eax
mov dword [ebp - 0x50], eax
push 0x4628bc
push esi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x4152e3
lea eax, [esi + 2]
mov cl, byte [eax]
test cl, cl
je 0x4152e3
cmp cl, 0x5d
cmovne esi, eax
mov cl, byte [esi]
test cl, cl
je 0x4153c4
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x14]
sub edx, esi
cmp cl, 0x5d
je 0x41530a
cmp eax, 0xf
jge 0x41530a
mov byte [edx + esi], cl
inc eax
inc esi
mov cl, byte [esi]
test cl, cl
jne 0x4152f5
test eax, eax
je 0x4153c4
cmp byte [esi], 0x5d
jne 0x4153c4
cmp eax, 0x10
jae 0x4153e3
mov esi, dword [sub.api_ms_win_crt_string_l1_1_0.dll__strdup]
mov ecx, esi
mov byte [ebp + eax - 0x14], 0
lea eax, [ebp - 0x14]
push eax
call dword [0x4553fc]
call esi
pop ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ecx + 0x14], eax
test eax, eax
jne 0x41534c
push 7
jmp 0x4153c6
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp - 0x54]
mov byte [eax], 0
lea eax, [ebp - 0x14]
mov byte [esi], 0
push eax
push ebx
push 0x17
call dword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x4153c9
push 0x2e
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x14]
call fcn.00429a62
pop ecx
test eax, eax
je 0x4153a8
lea ecx, [ebp - 0x44]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415382
sub ecx, edx
cmp ecx, edi
jae 0x4153a8
lea edx, [ebp - 0x44]
mov esi, ebx
mov eax, edx
sub esi, eax
mov al, byte [edx]
mov byte [esi + edx], al
inc edx
test al, al
jne 0x415398
lea esi, [ebx + ecx]
mov byte [esi + 1], al
mov byte [esi], 0x5d
xor eax, eax
cmp byte [ebx], al
push 0xe
pop ecx
cmove eax, ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret
push 3
pop eax
jmp 0x4153b5
push 0x16
jmp 0x4153c6
push str.__r_n_t_:___
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcspn]
pop ecx
pop ecx
cmp edi, eax
je 0x4153ab
push 0x15
jmp 0x4153c6
call fcn.00450dd6
int3
Function at 0x41d282
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x198
mov eax, dword [0x46f008]
xor eax, esp
mov dword [esp + 0x194], eax
lea eax, [esp]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x41d325
mov eax, dword [esp]
cmp al, 2
jne 0x41d31f
shr eax, 8
cmp al, 2
jne 0x41d31f
call fcn.00434e72
test eax, eax
jne 0x41d328
mov ecx, str.iphlpapi.dll
call fcn.0041d33a
mov dword [0x46f540], eax
test eax, eax
je 0x41d2f6
push str.if_nametoindex
push eax
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
mov ecx, dword [0x46f544]
test eax, eax
cmovne ecx, eax
mov dword [0x46f544], ecx
push 3
push ecx
push ecx
push 6
xor edx, edx
pop ecx
call fcn.00410b38
add esp, 0xc
test al, al
setne byte [0x46faf0]
push 0x46fae8
call dword [sym.imp.api_ms_win_core_profile_l1_1_0.dll_QueryPerformanceFrequency]
xor eax, eax
jmp 0x41d328
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 2
pop eax
mov ecx, dword [esp + 0x194]
xor ecx, esp
call fcn.00450ca6
mov esp, ebp
pop ebp
ret
Function at 0x41d33a
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push edi
push str.kernel32
mov ebx, ecx
xor edi, edi
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetModuleHandleA]
mov dword [ebp - 4], eax
test eax, eax
je 0x41d47e
push esi
push str.LoadLibraryExA
push eax
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
mov esi, eax
push 0x457348
push ebx
mov dword [ebp - 0xc], esi
call dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbspbrk]
pop ecx
pop ecx
test eax, eax
je 0x41d391
test esi, esi
je 0x41d388
push 8
jmp 0x41d3ac
push ebx
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_1.dll_LoadLibraryA]
jmp 0x41d3b8
test esi, esi
je 0x41d3bf
push str.AddDllDirectory
push dword [ebp - 4]
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetProcAddress]
test eax, eax
je 0x41d3bf
push 0x800
push edi
push ebx
mov ecx, esi
call dword [0x4553fc]
call esi
mov edi, eax
jmp 0x41d47b
push edi
push edi
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetSystemDirectoryA]
mov edx, eax
mov dword [ebp - 8], edx
test edx, edx
je 0x41d47b
mov ecx, ebx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41d3d9
sub ecx, esi
lea eax, [edx + 1]
mov esi, dword [0x46f048]
add eax, ecx
push eax
mov ecx, esi
call dword [0x4553fc]
call esi
mov esi, eax
mov dword [ebp - 4], esi
pop ecx
test esi, esi
je 0x41d469
push dword [ebp - 8]
push esi
call dword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetSystemDirectoryA]
test eax, eax
je 0x41d469
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41d415
sub ecx, edx
push 0x5c
pop eax
mov word [ecx + esi], ax
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41d42a
sub ecx, edx
sub ecx, ebx
add ecx, esi
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x41d437
mov esi, dword [ebp - 0xc]
test esi, esi
je 0x41d45d
push 8
push edi
push dword [ebp - 4]
mov ecx, esi
call dword [0x4553fc]
call esi
mov esi, dword [ebp - 4]
jmp 0x41d467
mov esi, dword [ebp - 4]
push esi
call dword [sym.imp.api_ms_win_core_libraryloader_l1_2_1.dll_LoadLibraryA]
mov edi, eax
push esi
mov esi, dword [sub.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, esi
call dword [0x4553fc]
call esi
pop ecx
mov eax, edi
pop esi
pop edi
pop ebx
leave
ret
Function at 0x41d482
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, edx
mov dword [esp + 0x10], ecx
mov edx, dword [ebp + 8]
mov ebx, edx
add ebx, ebx
mov eax, dword [edi + 0x2b8]
mov esi, dword [edi + ebx*8 + 0x17c]
sub esi, dword [edi + ebx*8 + 0x180]
test byte [eax + 0x44], 3
je 0x41d57d
cmp dword [edi + edx*4 + 0x168], 0x41d8c0
jne 0x41d57d
xor ecx, ecx
cmp dword [edi + ebx*8 + 0x178], ecx
je 0x41d4dd
test esi, esi
je 0x41d57d
mov eax, dword [edi + edx*4 + 0x150]
or edx, 0xffffffff
push ecx
push ecx
push 0xffffffffffffffff
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.0042f235
add esp, 0xc
cmp eax, 0xffffffff
je 0x41d57d
test al, 1
je 0x41d57d
mov ecx, dword [edi + ebx*8 + 0x178]
test ecx, ecx
jne 0x41d55b
mov eax, dword [esp + 0x10]
mov esi, dword [0x46f048]
mov ecx, esi
mov eax, dword [eax + 0x4e8]
add eax, eax
push eax
mov dword [edi + ebx*8 + 0x17c], eax
call dword [0x4553fc]
call esi
pop ecx
mov ecx, eax
mov dword [edi + ebx*8 + 0x178], ecx
test ecx, ecx
jne 0x41d544
push 0x1b
pop eax
jmp 0x41d57f
and dword [edi + ebx*8 + 0x180], 0
and dword [edi + ebx*8 + 0x184], 0
mov esi, dword [edi + ebx*8 + 0x17c]
mov eax, dword [edi + ebx*8 + 0x180]
push 0
push esi
add eax, ecx
push eax
push dword [esp + 0x20]
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x41d57d
add dword [edi + ebx*8 + 0x180], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41d7c0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov edx, dword [ecx + 0xc]
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x10]
mov ebx, dword [edx + eax*4 + 0x150]
push eax
mov dword [ebp - 0x110], ecx
call fcn.0041d482
pop ecx
test eax, eax
je 0x41d808
mov dword [esi], 0x1b
or eax, 0xffffffff
jmp 0x41d870
push 0
push dword [ebp + 0x14]
push edi
push ebx
call dword [sym.imp.WS2_32.dll_send]
and dword [esi], 0
mov edi, eax
cmp edi, 0xffffffff
jne 0x41d86e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
cmp ebx, 0x2733
jne 0x41d839
xor edi, edi
mov dword [esi], 0x51
jmp 0x41d86e
push ecx
lea edx, [ebp - 0x10c]
mov ecx, ebx
call fcn.0041a0b8
pop ecx
push eax
push str.Send_failure:__s
push dword [ebp - 0x110]
call fcn.0041d6ad
mov eax, dword [ebp - 0x110]
add esp, 0xc
mov dword [eax + 0x970], ebx
mov dword [esi], 0x37
mov eax, edi
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret