joyce8/EMBER2024-capa huggingface dataset:
Function at 0x43913f
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x4427a0
cmp edx, dword [eax]
je 0x439161
add eax, 8
inc ecx
cmp eax, 0x442830
jl 0x439152
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x4427a0]
jne 0x43928f
mov eax, dword [0x477ed8]
cmp eax, 1
je 0x439269
test eax, eax
jne 0x439192
cmp dword [0x442344], 1
je 0x439269
cmp edx, 0xfc
je 0x43928f
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4391c9
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.0043b010
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00439730
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x43920c
lea eax, [ebp - 0x1a4]
push eax
call fcn.00439730
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x43d910
push edi
call fcn.00437410
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.0043b010
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.0043b020
lea eax, [ebp - 0xa0]
push 0x43d8f0
push eax
call fcn.0043b020
push dword [esi + 0x4427a4]
lea eax, [ebp - 0xa0]
push eax
call fcn.0043b020
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.0043b435
add esp, 0x2c
pop edi
jmp 0x43928f
lea eax, [ebp + 8]
lea esi, [esi + 0x4427a4]
push 0
push eax
push dword [esi]
call fcn.00439730
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x407eb0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0x10]
push ebx
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 4], eax
test edi, edi
je 0x40800f
test eax, eax
je 0x40800f
cmp dword [ebp + 0x14], ebx
je 0x40800f
push esi
mov esi, dword [ebp + 0xc]
mov eax, 0x55555556
lea ecx, [esi*4]
imul ecx
mov ecx, dword [ebp + 0x14]
mov eax, edx
shr eax, 0x1f
add eax, 3
add eax, edx
cmp dword [ecx], eax
jge 0x407f0b
pop esi
pop edi
mov eax, 0x11183
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 4]
test esi, esi
jle 0x407ffe
movzx ecx, byte [edi]
lea esi, [edx + 1]
mov eax, ecx
inc ebx
shr eax, 2
and ecx, 3
add eax, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dword [ebp + 8], eax
lea eax, [edx + 4]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
cmp ebx, dword [ebp + 0xc]
je 0x407fe6
movzx eax, byte [edi + 1]
inc ebx
mov edx, eax
shl ecx, 4
and edx, 0xf
shr eax, 4
mov dword [ebp - 0xc], edx
or eax, ecx
mov edx, dword [ebp + 8]
mov ah, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov dl, byte [edx]
mov byte [ebp + 0xb], dl
mov edx, dword [ebp - 4]
mov cl, byte [ebp + 0xb]
cmp ebx, dword [ebp + 0xc]
je 0x407fbd
mov al, byte [edi + 2]
inc ebx
mov byte [edx], cl
add edi, 3
movzx edx, al
mov byte [esi], ah
mov ecx, edx
mov eax, dword [ebp - 0xc]
and edx, 0x3f
shl eax, 2
shr ecx, 6
or ecx, eax
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi + 1], al
mov al, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov edx, dword [ebp - 8]
mov byte [esi + 2], al
mov dword [ebp - 4], edx
cmp ebx, dword [ebp + 0xc]
jl 0x407f16
mov eax, dword [ebp + 0x14]
sub edx, dword [ebp + 0x10]
pop esi
pop edi
mov dword [eax], edx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [edx], cl
mov edx, dword [ebp - 8]
sub edx, dword [ebp + 0x10]
mov byte [esi], ah
mov eax, dword [ebp - 0xc]
mov al, byte [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi + 1], al
mov eax, dword [ebp + 0x14]
mov byte [esi + 2], 0x3d
pop esi
pop edi
mov dword [eax], edx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [eax]
shl ecx, 4
mov byte [edx], al
mov edx, dword [ebp - 8]
mov al, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi], al
mov word [esi + 1], 0x3d3d
mov eax, dword [ebp + 0x14]
sub edx, dword [ebp + 0x10]
pop esi
pop edi
mov dword [eax], edx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 0x11174
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x408020
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
or eax, 0xffffffff
push esi
mov esi, dword [ebp + 0xc]
test bl, 3
je 0x408050
test esi, esi
je 0x408050
movzx ecx, byte [ebx]
dec esi
movzx edx, al
inc ebx
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x472118]
test bl, 3
jne 0x408033
cmp esi, 4
jb 0x4080a1
mov edx, esi
shr edx, 2
nop word [eax + eax]
xor eax, dword [ebx]
sub esi, 4
movzx ecx, al
add ebx, 4
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
sub edx, 1
jne 0x408060
test esi, esi
je 0x4080bf
movzx ecx, byte [ebx]
lea ebx, [ebx + 1]
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x472118]
sub esi, 1
jne 0x4080a5
pop esi
not eax
pop ebx
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
not eax
test bl, 3
je 0x408125
test esi, esi
je 0x408125
movzx ecx, byte [ebx]
dec esi
movzx edx, al
inc ebx
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x472118]
test bl, 3
jne 0x408108
cmp esi, 4
jb 0x408171
mov edx, esi
shr edx, 2
nop
xor eax, dword [ebx]
sub esi, 4
movzx ecx, al
add ebx, 4
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
movzx ecx, al
shr eax, 8
xor eax, dword [ecx*4 + 0x472118]
sub edx, 1
jne 0x408130
test esi, esi
je 0x40818f
movzx ecx, byte [ebx]
lea ebx, [ebx + 1]
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x472118]
sub esi, 1
jne 0x408175
not eax
mov dword [edi], eax
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x4088b0
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
pop ebp
ret
Function at 0x4089d0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
mov eax, dword [0x480540]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x148], eax
push edi
mov edi, dword [ebp + 0x10]
cmp esi, 0x40
jbe 0x408a32
lea eax, [ebp - 0x144]
push eax
call fcn.004088b0
push esi
lea eax, [ebp - 0x144]
push edi
push eax
call fcn.004088f0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.00408820
add esp, 0x18
lea edi, [ebp - 0x14]
mov esi, 0x10
push 0x40
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.004244d0
push 0x40
lea eax, [ebp - 0x94]
push 0
push eax
call fcn.004244d0
push esi
lea eax, [ebp - 0x54]
push edi
push eax
call fcn.00424630
push esi
lea eax, [ebp - 0x94]
push edi
push eax
call fcn.00424630
add esp, 0x30
xor eax, eax
nop dword [eax]
xor byte [ebp + eax - 0x54], 0x36
xor byte [ebp + eax - 0x94], 0x5c
inc eax
cmp eax, 0x40
jl 0x408a70
lea eax, [ebp - 0xec]
push eax
call fcn.004088b0
push 0x40
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.004088f0
push dword [ebp + 0xc]
lea eax, [ebp - 0xec]
push dword [ebp - 0x148]
push eax
call fcn.004088f0
lea eax, [ebp - 0xec]
push ebx
push eax
call fcn.00408820
lea eax, [ebp - 0xec]
push eax
call fcn.004088b0
push 0x40
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.004088f0
push 0x10
lea eax, [ebp - 0xec]
push ebx
push eax
call fcn.004088f0
add esp, 0x40
lea eax, [ebp - 0xec]
push ebx
push eax
call fcn.00408820
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00422f02
mov esp, ebp
pop ebp
ret
Function at 0x40a240
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
mov dword [eax + 0x10], 0xc3d2e1f0
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
pop ebp
ret

Function at 0x40a380
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [0x480540]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x154], eax
push edi
mov edi, dword [ebp + 0x10]
cmp esi, 0x40
jbe 0x40a3e2
lea eax, [ebp - 0x150]
push eax
call fcn.0040a240
push esi
lea eax, [ebp - 0x150]
push edi
push eax
call fcn.0040a280
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.0040a090
add esp, 0x18
lea edi, [ebp - 0x18]
mov esi, 0x14
push 0x40
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.004244d0
push 0x40
lea eax, [ebp - 0x98]
push 0
push eax
call fcn.004244d0
push esi
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.00424630
push esi
lea eax, [ebp - 0x98]
push edi
push eax
call fcn.00424630
add esp, 0x30
xor eax, eax
nop dword [eax]
xor byte [ebp + eax - 0x58], 0x36
xor byte [ebp + eax - 0x98], 0x5c
inc eax
cmp eax, 0x40
jb 0x40a420
lea eax, [ebp - 0xf4]
push eax
call fcn.0040a240
push 0x40
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.0040a280
push dword [ebp + 0xc]
lea eax, [ebp - 0xf4]
push dword [ebp - 0x154]
push eax
call fcn.0040a280
lea eax, [ebp - 0xf4]
push ebx
push eax
call fcn.0040a090
lea eax, [ebp - 0xf4]
push eax
call fcn.0040a240
push 0x40
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.0040a280
push 0x14
lea eax, [ebp - 0xf4]
push ebx
push eax
call fcn.0040a280
add esp, 0x40
lea eax, [ebp - 0xf4]
push ebx
push eax
call fcn.0040a090
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.00422f02
mov esp, ebp
pop ebp
ret
Function at 0x416440
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor edi, edi
cmp dword [ebp + 8], edi
je 0x4165b9
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4165b9
mov ebx, dword [ebp + 0x10]
cmp ebx, 0xffffffff
je 0x4165b9
cmp dword [ebp + 0x1c], edi
je 0x4165b9
cmp dword [ebp + 0x20], edi
je 0x4165b9
push dword [esi]
call fcn.00421bd0
mov eax, dword [esi + 0x14]
add esp, 4
cmp eax, dword [esi + 0x10]
jb 0x416497
mov ebx, 0x1117a
jmp 0x4165a1
push esi
call fcn.00416b50
lea eax, [esi + 0x4c8]
add esp, 4
cmp dword [eax + 4], eax
je 0x41648d
mov edi, dword [esi + 0x4cc]
push edi
call fcn.00420830
mov eax, dword [ebp + 0x18]
lea ecx, [ebp + 8]
mov dword [edi + 0x28], eax
lea eax, [edi + 0x40]
mov dword [eax], eax
mov dword [eax + 4], eax
lea eax, [edi + 0x60]
mov dword [eax], eax
mov dword [eax + 4], eax
lea eax, [edi + 0x90]
mov dword [eax], eax
mov dword [eax + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [edi + 8], esi
mov dword [edi + 0x20], ebx
mov dword [edi + 0x3c], 0
movups xmm0, xmmword [eax]
push ecx
mov dword [ebp + 8], 4
movups xmmword [edi + 0x2c], xmm0
inc dword [edi + 0xac]
mov dword [edi + 0xb0], 0
mov eax, dword [esi + 0xc]
mov dword [edi + 0x1c], eax
lea eax, [edi + 0x24]
push eax
movzx eax, word [0x4741c0]
push eax
movzx eax, word [0x474194]
push eax
push ebx
call fcn.00419470
add esp, 0x18
test eax, eax
je 0x41653b
movzx eax, word [0x474180]
mov dword [edi + 0x24], eax
mov eax, dword [ebp + 0x14]
mov dword [edi + 0xc], eax
test eax, eax
je 0x41654e
push eax
call fcn.00421660
add esp, 4
lea eax, [ebp - 4]
mov dword [ebp - 4], 1
push eax
push 0x8004667e
push dword [ebp + 0x10]
xor ebx, ebx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
je 0x41658a
call fcn.00421e60
mov ebx, eax
test ebx, ebx
je 0x4165a1
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4165a1
push eax
call fcn.004219f0
add esp, 4
jmp 0x4165a1
lea eax, [esi + 0x1c]
push edi
push eax
call fcn.004208a0
add esp, 8
mov dword [esi + 0x18], 0x3f
inc dword [esi + 0x14]
mov eax, dword [ebp + 0x20]
mov dword [eax], edi
push dword [esi]
call fcn.00421d90
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x11174
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x418d70
Capabilities:
Get hostname

Disassembly:
push 0x1e2
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
add esp, 8
cmp dword [0x481150], 0
jne 0x418ddf
push 0xfe
push 0x481050
mov dword [0x481150], 0x481050
call dword [sym.imp.WS2_32.dll_gethostname]
test eax, eax
je 0x418dc1
mov eax, dword [0x481150]
mov byte [eax], 0
mov eax, 0x481150
mov dword [0x481154], 0
ret
mov ecx, 0x481050
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418dd0
sub ecx, edx
mov dword [0x481154], ecx
mov eax, 0x481150
ret

Function at 0x419350
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
push 0x36e
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
add esp, 8
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x41939e
push esi
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x419398
call esi
test eax, eax
jne 0x41938e
pop esi
pop ebp
ret
call esi
add eax, 0x1d4c0
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x419410
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
push 0x2b1
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
add esp, 8
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x41945e
push esi
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x419458
call esi
test eax, eax
jne 0x41944e
pop esi
pop ebp
ret
call esi
add eax, 0x1d4c0
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret
xor eax, eax
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push esi
push 0x2f8
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
mov eax, dword [ebp + 0xc]
add esp, 8
test eax, eax
je 0x419590
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x419590
push dword [ebp + 0x14]
push dword [esi]
push eax
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_recv]
mov dword [esi], eax
test eax, eax
jns 0x41958b
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x419585
call esi
test eax, eax
je 0x41958b
call esi
add eax, 0x1d4c0
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret
xor eax, eax
pop esi
pop ebp
ret
mov eax, 0x11174
pop esi
pop ebp
ret
Function at 0x4195a0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push esi
push 0x30d
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
mov eax, dword [ebp + 0xc]
add esp, 8
test eax, eax
je 0x419606
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x419606
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [esi]
push eax
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_recvfrom]
mov dword [esi], eax
test eax, eax
jns 0x419601
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x4195fb
call esi
test eax, eax
je 0x419601
call esi
add eax, 0x1d4c0
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret
xor eax, eax
pop esi
pop ebp
ret
mov eax, 0x11174
pop esi
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push esi
push 0x2c2
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
mov esi, dword [ebp + 0x10]
add esp, 8
test esi, esi
jne 0x419635
mov eax, 0x11174
pop esi
pop ebp
ret
push dword [ebp + 0x14]
push dword [esi]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_send]
mov dword [esi], eax
test eax, eax
jns 0x41966e
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x419668
call esi
test eax, eax
je 0x41966e
call esi
add eax, 0x1d4c0
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret
xor eax, eax
pop esi
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push esi
push 0x2dd
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
mov esi, dword [ebp + 0x10]
add esp, 8
test esi, esi
jne 0x4196a5
mov eax, 0x11174
pop esi
pop ebp
ret
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [esi]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [esi], eax
test eax, eax
jns 0x4196e4
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x4196de
call esi
test eax, eax
je 0x4196e4
call esi
add eax, 0x1d4c0
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret
xor eax, eax
pop esi
pop ebp
ret

Function at 0x4196f0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0x339
push str.G:local_srcmicrosippjprojectpjlib_srcpj_sock_bsd.c
call fcn.0041d150
mov ecx, dword [ebp + 0x10]
add esp, 8
movzx edx, cx
and ecx, 0xff00
mov eax, edx
or eax, 0xffff0000
cmp ecx, 0xff00
push dword [ebp + 0x18]
cmovne eax, edx
push dword [ebp + 0x14]
push eax
movzx eax, word [ebp + 0xc]
push eax
push dword [ebp + 8]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x419760
push esi
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x41975a
call esi
test eax, eax
jne 0x419750
pop esi
pop ebp
ret
call esi
add eax, 0x1d4c0
pop esi
pop ebp
ret
or eax, 0xffffffff
pop esi
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x41b860
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push dword [0x480464]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [ebp - 1]
mov esi, edi
mov edx, dword [eax + 0x38]
mov ecx, edx
sub ecx, esi
sub esi, edx
cmp edi, edx
cmovbe esi, ecx
cmp esi, dword [eax + 0x34]
jbe 0x41b89f
mov dword [eax + 0x34], esi
mov dword [eax + 0x3c], str.G:local_srcmicrosippjprojectpjlib_srcpjos_core_win32.c
mov dword [eax + 0x40], 0x3e2
mov edi, dword [ebp + 8]
push edi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
test ebx, ebx
mov esi, str.mtx_p
push 0x25
cmovne esi, ebx
lea ebx, [edi + 0x18]
push esi
call fcn.00424c50
add esp, 8
test eax, eax
je 0x41b8e0
push edi
push esi
push 0x20
push ebx
call fcn.00402030
add esp, 0x10
call fcn.004146e0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
push esi
push ebx
call fcn.00419e10
add esp, 0xc
call fcn.004146e0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x41b9f0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
push dword [0x480464]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [ebp - 1]
mov esi, edi
mov edx, dword [eax + 0x38]
mov ecx, edx
sub ecx, esi
sub esi, edx
cmp edi, edx
cmovbe esi, ecx
cmp esi, dword [eax + 0x34]
jbe 0x41ba2b
mov dword [eax + 0x34], esi
mov dword [eax + 0x3c], str.G:local_srcmicrosippjprojectpjlib_srcpjos_core_win32.c
mov dword [eax + 0x40], 0x364
mov ecx, dword [ebp + 8]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x41ba60
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
push dword [0x480464]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [ebp - 1]
mov esi, edi
mov edx, dword [eax + 0x38]
mov ecx, edx
sub ecx, esi
sub esi, edx
cmp edi, edx
cmovbe esi, ecx
cmp esi, dword [eax + 0x34]
jbe 0x41ba9b
mov dword [eax + 0x34], esi
mov dword [eax + 0x3c], str.G:local_srcmicrosippjprojectpjlib_srcpjos_core_win32.c
mov dword [eax + 0x40], 0x342
mov eax, dword [ebp + 8]
pop edi
pop esi
test eax, eax
jne 0x41baa8
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov esp, ebp
pop ebp
ret

Function at 0x41bab0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x41baf8
push ebx
push edi
push dword [0x480464]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ebx, [ebp - 1]
mov edi, ebx
mov edx, dword [eax + 0x38]
mov ecx, edx
sub ecx, edi
sub edi, edx
cmp ebx, edx
cmovbe edi, ecx
cmp edi, dword [eax + 0x34]
jbe 0x41baf3
mov dword [eax + 0x34], edi
mov dword [eax + 0x3c], str.G:local_srcmicrosippjprojectpjlib_srcpjos_core_win32.c
mov dword [eax + 0x40], 0x34d
lock inc dword [esi]
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x41bba0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
push dword [0x480464]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [ebp - 1]
mov esi, edi
mov edx, dword [eax + 0x38]
mov ecx, edx
sub ecx, esi
sub esi, edx
cmp edi, edx
cmovbe esi, ecx
cmp esi, dword [eax + 0x34]
jbe 0x41bbdb
mov dword [eax + 0x34], esi
mov dword [eax + 0x3c], str.G:local_srcmicrosippjprojectpjlib_srcpjos_core_win32.c
mov dword [eax + 0x40], 0x439
call fcn.004146e0
push 0x4812e0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.004146e0
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x41bfa0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
push dword [0x480464]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [ebp - 1]
mov esi, edi
mov edx, dword [eax + 0x38]
mov ecx, edx
sub ecx, esi
sub esi, edx
cmp edi, edx
cmovbe esi, ecx
cmp esi, dword [eax + 0x34]
jbe 0x41bfdb
mov dword [eax + 0x34], esi
mov dword [eax + 0x3c], str.G:local_srcmicrosippjprojectpjlib_srcpjos_core_win32.c
mov dword [eax + 0x40], 0x58f
mov esi, dword [ebp + 8]
test esi, esi
jne 0x41bfed
pop edi
mov eax, 0x11174
pop esi
mov esp, ebp
pop ebp
ret
call fcn.004146e0
push dword [ebp + 0xc]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, eax
call fcn.004146e0
test esi, esi
jne 0x41c010
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
cmp esi, 0x102
jne 0x41c023
pop edi
mov eax, 0x11179
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
je 0x41c042
call esi
test eax, eax
je 0x41c008
call esi
pop edi
add eax, 0x1d4c0
pop esi
mov esp, ebp
pop ebp
ret
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret