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

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
cmp byte [esi + 0xb42], 0
je 0x451a82
cmp dword [esi + 0x600], 0
je 0x451a42
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x451a0a
mov eax, dword [esi + 0x78]
test eax, eax
je 0x451a11
mov byte [eax + 0xe6], 1
push dword [esi + 0x594]
mov eax, dword [esi + 0x600]
push dword [ebp + 0xc]
push dword [ebp + 8]
push edx
push esi
call eax
mov ecx, dword [esi + 0x7c]
add esp, 0x14
test ecx, ecx
jne 0x451a38
mov ecx, dword [esi + 0x78]
test ecx, ecx
je 0x451a84
mov byte [ecx + 0xe6], 0
pop esi
pop ebp
ret
mov ecx, edx
sub ecx, 0
je 0x451a53
sub ecx, 1
je 0x451a53
sub ecx, 1
jne 0x451a82
push dword [esi + 0x590]
lea eax, [edx*2 + 0x71163c]
push 1
add eax, edx
push 2
push eax
call fcn.00629d40
push dword [esi + 0x590]
push 1
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00629d40
add esp, 0x20
xor eax, eax
pop esi
pop ebp
ret
Function at 0x457e20
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration
Start tcp server

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [0x730b1c]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [sym.imp.WS2_32.dll_socket]
push edi
push 6
push 1
push 2
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x18], 1
call esi
mov edi, eax
cmp edi, 0xffffffff
je 0x458010
xorps xmm0, xmm0
mov eax, 2
push 0x7f000001
movlpd qword [esp + 0x20], xmm0
mov word [esp + 0x18], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [esp + 0x18], eax
xor eax, eax
push 4
mov word [esp + 0x1a], ax
lea eax, [esp + 0x10]
push eax
push 4
push 0xffff
push edi
mov dword [ebx + 4], 0xffffffff
mov dword [ebx], 0xffffffff
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x457ffe
push 0x10
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x457ffe
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x457ffe
push 1
push edi
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x457ffe
push 0
push 1
push 2
call esi
mov dword [ebx], eax
cmp eax, 0xffffffff
je 0x457ffe
push 0x10
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x457ffe
push 0
push 0
push edi
call dword [sym.imp.WS2_32.dll_accept]
mov dword [ebx + 4], eax
cmp eax, 0xffffffff
je 0x457ffe
push ebx
push 0x70cbd4
lea eax, [esp + 0x2c]
push 0xc
push eax
call fcn.004472f0
lea esi, [esp + 0x34]
add esp, 0x10
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x457f57
push 0
sub esi, ecx
lea eax, [esp + 0x28]
push esi
push eax
push dword [ebx]
call dword [sym.imp.WS2_32.dll_send]
cmp eax, esi
jne 0x457ffe
push 0
push 0xc
lea eax, [esp + 0x38]
push eax
push dword [ebx + 4]
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, esi
jne 0x457ffe
lea ecx, [esp + 0x24]
lea edx, [esp + 0x30]
sub esi, 4
jb 0x457fb1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x457fb6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x457fa0
cmp esi, 0xfffffffc
je 0x457fe3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x457ffe
cmp esi, 0xfffffffd
je 0x457fe3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x457ffe
cmp esi, 0xfffffffe
je 0x457fe3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x457ffe
cmp esi, 0xffffffff
je 0x457fe3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x457ffe
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00610840
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.WS2_32.dll_closesocket]
push edi
call esi
push dword [ebx]
call esi
push dword [ebx + 4]
call esi
mov ecx, dword [esp + 0x3c]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00610840
mov esp, ebp
pop ebp
ret
Function at 0x45a520
Capabilities:
Get common file path
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x19c
mov eax, dword [0x730b1c]
xor eax, esp
mov dword [esp + 0x198], eax
push ebx
push esi
push edi
lea eax, [esp + 0x10]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x45a713
mov eax, dword [esp + 0x10]
cmp al, 2
jne 0x45a70d
shr eax, 8
cmp al, 2
jne 0x45a70d
push str.kernel32
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
test edi, edi
jne 0x45a58a
mov dword [0x73ad60], esi
jmp 0x45a6d7
push 0x71ba74
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x71ba84
push str.iphlpapi.dll
mov ebx, eax
call fcn.0063e440
add esp, 8
test eax, eax
je 0x45a5d6
test ebx, ebx
je 0x45a5c4
push 8
push 0
push str.iphlpapi.dll
call ebx
mov esi, eax
jmp 0x45a6b0
push str.iphlpapi.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
jmp 0x45a6b0
test ebx, ebx
je 0x45a5ff
push str.AddDllDirectory
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x45a5ff
push 0x800
push 0
push str.iphlpapi.dll
call ebx
mov esi, eax
jmp 0x45a6b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov dword [esp + 0xc], eax
test eax, eax
je 0x45a6b0
lea ecx, [eax*2 + 0x1a]
push ecx
call dword [0x73166c]
mov edi, eax
add esp, 4
test edi, edi
je 0x45a6a6
push dword [esp + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x45a6a6
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45a640
sub ecx, edx
mov edx, edi
sar ecx, 1
mov dword [edi + ecx*2], 0x5c
lea ecx, [edx + 2]
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x45a660
sub edx, ecx
mov ecx, str.iphlpapi.dll
sar edx, 1
add edx, edx
sub edx, ecx
add edx, edi
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x45a680
test ebx, ebx
je 0x45a69d
push 8
push 0
push edi
call ebx
jmp 0x45a6a4
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
push edi
call dword [0x731670]
add esp, 4
mov dword [0x73ad60], esi
test esi, esi
je 0x45a6d7
push str.if_nametoindex
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x73ad08]
test eax, eax
cmovne ecx, eax
mov dword [0x73ad08], ecx
sub esp, 8
call fcn.004699f0
add esp, 8
test al, al
setne byte [0x73b8c8]
push 0x73b8c0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x198]
xor ecx, esp
call fcn.00610840
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, dword [esp + 0x1a4]
mov eax, 2
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00610840
mov esp, ebp
pop ebp
ret
Function at 0x45a830
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
mov ebx, edx
push edi
mov eax, dword [esi]
mov dword [ebp - 8], eax
mov edi, dword [eax + 0x138]
mov eax, dword [edi + ebx*4 + 8]
sub eax, 0
je 0x45a91b
sub eax, 2
je 0x45a89d
sub eax, 1
jne 0x45aa47
mov eax, dword [edi + ebx*4 + 0x408]
sub eax, 0
je 0x45a88e
sub eax, 1
jne 0x45aa47
mov dword [edi + ebx*4 + 8], 1
mov dword [edi + ebx*4 + 0x408], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [edi + ebx*4 + 8], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + ebx*4 + 0x408]
sub eax, 0
je 0x45a8f9
sub eax, 1
jne 0x45aa47
push eax
mov dword [edi + ebx*4 + 0x1008], eax
lea eax, [ebp - 4]
push 3
mov dword [edi + ebx*4 + 8], 3
mov edi, dword [esi]
push eax
push dword [esi + 0x420]
mov word [ebp - 4], 0xfcff
mov byte [ebp - 2], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45aa32
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push edi
jmp 0x45aa2a
cmp dword [edi + ebx*4 + 0x1808], 1
mov dword [edi + ebx*4 + 8], 1
jne 0x45aa47
call fcn.0045b320
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + ebx*4 + 0x808], 1
push 0
mov byte [ebp - 2], bl
push 3
jne 0x45a99d
mov dword [edi + ebx*4 + 8], 1
mov eax, dword [esi]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push dword [esi + 0x420]
mov word [ebp - 4], 0xfbff
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45a96a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 8]
call fcn.004512d0
add esp, 0xc
mov ecx, dword [esi]
mov edx, str.SENT
push ebx
push 0xfb
call fcn.0045a730
add esp, 8
cmp dword [edi + ebx*4 + 0x1808], 1
jne 0x45aa47
mov edx, ebx
mov ecx, esi
call fcn.0045b320
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + ebx*4 + 0x1808], 1
lea eax, [ebp - 4]
push eax
jne 0x45aa05
mov dword [edi + ebx*4 + 8], 1
push dword [esi + 0x420]
mov edi, dword [esi]
mov word [ebp - 4], 0xfbff
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45a9e0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push edi
call fcn.004512d0
add esp, 0xc
mov ecx, dword [esi]
mov edx, str.SENT
push ebx
push 0xfb
call fcn.0045a730
add esp, 8
mov edx, ebx
mov ecx, esi
call fcn.0045b320
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esi + 0x420]
mov word [ebp - 4], 0xfcff
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45aa32
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 8]
call fcn.004512d0
add esp, 0xc
mov ecx, dword [esi]
mov edx, str.SENT
push ebx
push 0xfc
call fcn.0045a730
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x45b080
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x914
mov eax, dword [0x730b1c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x80
lea eax, [ebp - 0x108]
mov edi, ecx
push 0
push eax
mov dword [ebp - 0x910], edi
call fcn.00614d30
add esp, 0xc
lea eax, [ebp - 0x88]
push 0x80
push 0
push eax
call fcn.00614d30
mov ebx, dword [edi]
add esp, 0xc
mov edx, 0x3c
mov dword [ebp - 0x90c], ebx
mov ecx, ebx
mov esi, dword [ebx + 0x138]
mov eax, dword [esi + 0x1eb4]
sub eax, dword [esi + 0x1eb0]
add eax, 2
push eax
lea eax, [esi + 0x1cb0]
push eax
call fcn.0045aa50
mov eax, dword [esi + 0x1eb0]
add esp, 8
mov cl, byte [eax]
inc eax
mov dword [esi + 0x1eb0], eax
cmp cl, 0x18
je 0x45b26e
cmp cl, 0x23
je 0x45b24b
cmp cl, 0x27
jne 0x45b307
push 0
push 0x27
push 0xfa
push 0xff
push str._c_c_c_c
lea eax, [ebp - 0x908]
push 0x800
push eax
call fcn.004472f0
mov esi, dword [esi + 0x1cac]
add esp, 0x1c
mov edi, 4
mov eax, 0x800
test esi, esi
je 0x45b1ea
mov edx, dword [esi]
mov eax, edx
lea ebx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45b170
sub eax, ebx
lea ebx, [edi + 1]
add ebx, eax
cmp ebx, 0x7fa
jae 0x45b1d8
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x108]
push eax
push str._127_____127s
push edx
call fcn.004165a0
add esp, 0x10
test eax, eax
je 0x45b1d8
lea eax, [ebp - 0x88]
push eax
push 1
lea eax, [ebp - 0x108]
push eax
push 0
mov eax, 0x800
sub eax, edi
push str._c_s_c_s
push eax
lea eax, [ebp - 0x908]
add eax, edi
push eax
call fcn.004472f0
add esp, 0x1c
mov edi, ebx
mov esi, dword [esi + 4]
test esi, esi
jne 0x45b167
mov ebx, dword [ebp - 0x90c]
mov eax, 0x800
push 0xf0
push 0xff
sub eax, edi
push str._c_c
push eax
lea eax, [ebp - 0x908]
add eax, edi
push eax
call fcn.004472f0
add esp, 0x14
lea eax, [edi + 2]
push 0
push eax
lea eax, [ebp - 0x908]
push eax
mov eax, dword [ebp - 0x910]
push dword [eax + 0x420]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45b245
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push ebx
call fcn.004512d0
add esp, 0xc
push edi
jmp 0x45b2f1
lea edx, [esi + 0x1c28]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b256
push 0xf0
push 0xff
push edx
push 0
push 0x23
jmp 0x45b296
lea edx, [esi + 0x1c08]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b280
push 0xf0
push 0xff
push edx
push 0
push 0x18
push 0xfa
push 0xff
push str._c_c_c_c_s_c_c
sub ecx, esi
lea eax, [ebp - 0x908]
push 0x800
push eax
lea esi, [ecx + 6]
call fcn.004472f0
add esp, 0x28
lea eax, [ebp - 0x908]
push 0
push esi
push eax
push dword [edi + 0x420]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45b2ed
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push ebx
call fcn.004512d0
add esp, 0xc
lea eax, [esi - 2]
push eax
lea eax, [ebp - 0x906]
mov edx, 0x3e
push eax
mov ecx, ebx
call fcn.0045aa50
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00610840
mov esp, ebp
pop ebp
ret
Function at 0x45b320
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, ecx
mov dword [ebp - 4], eax
push ebx
push esi
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
push edi
mov eax, dword [eax + 0x138]
mov dword [ebp - 0xc], eax
cmp edx, 0x1f
jne 0x45b478
lea ebx, [eax + 0x1cb0]
lea edi, [eax + 0x1eb0]
mov dword [edi], ebx
cmp ebx, edi
jae 0x45b372
lea ecx, [ebx + 1]
mov byte [ebx], 0xff
mov dword [edi], ecx
cmp ecx, edi
jae 0x45b372
mov byte [ecx], 0xfa
inc dword [edi]
mov ecx, dword [edi]
cmp ecx, edi
jae 0x45b372
mov byte [ecx], dl
inc dword [edi]
movzx eax, word [eax + 0x1ca8]
mov esi, dword [sym.imp.WS2_32.dll_htons]
push eax
call esi
movzx eax, ax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x1caa]
push eax
call esi
mov edx, dword [ebp - 8]
movzx ecx, ax
mov eax, dword [edi]
cmp eax, edi
jae 0x45b3dd
mov byte [eax], dl
inc dword [edi]
mov eax, dword [edi]
cmp eax, edi
jae 0x45b3dd
mov byte [eax], dh
inc dword [edi]
mov eax, dword [edi]
cmp eax, edi
jae 0x45b3dd
mov byte [eax], cl
inc dword [edi]
mov eax, dword [edi]
cmp eax, edi
jae 0x45b3dd
shr ecx, 8
mov byte [eax], cl
inc dword [edi]
mov eax, dword [edi]
cmp eax, edi
jae 0x45b3dd
mov byte [eax], 0xff
inc dword [edi]
mov eax, dword [edi]
cmp eax, edi
jae 0x45b3dd
mov byte [eax], 0xf0
mov eax, dword [edi]
inc eax
mov esi, dword [ebp - 0xc]
mov edx, 0x3e
mov dword [edi], ebx
mov edi, dword [ebp - 0x10]
mov ecx, edi
mov dword [esi + 0x1eb4], eax
sub eax, ebx
sub eax, 2
push eax
lea eax, [esi + 0x1cb2]
push eax
call fcn.0045aa50
mov eax, dword [ebp - 4]
add esp, 8
push 0
push 3
push ebx
push dword [eax + 0x420]
call dword [sym.imp.WS2_32.dll_send]
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
jns 0x45b436
call ebx
push eax
push str.Sending_data_failed___d_
push edi
call fcn.004512d0
add esp, 0xc
mov ecx, dword [ebp - 4]
lea edx, [esi + 0x1cb3]
push 4
call fcn.0045bd90
add esp, 4
lea eax, [esi + 0x1cb7]
push 0
push 2
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x420]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45b478
call ebx
push eax
push str.Sending_data_failed___d_
push edi
call fcn.004512d0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x45dca0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x730b1c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov eax, ecx
mov dword [ebp - 0x8c], 0x80
push edi
mov dword [ebp - 0x90], eax
mov esi, dword [eax + 0x608]
mov edi, dword [eax]
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x88]
push eax
mov eax, dword [esi + 0x154]
push 0
add eax, 4
push eax
push dword [esi + 0x15c]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x14c], eax
jne 0x45dd30
push dword [ebp - 0x8c]
lea eax, [ebp - 0x88]
push eax
lea eax, [esi + 0xc8]
push eax
call fcn.00614e90
mov eax, dword [ebp - 0x8c]
add esp, 0xc
mov dword [esi + 0x148], eax
mov ebx, dword [esi + 0x14c]
cmp ebx, 4
jge 0x45dd63
push str.Received_too_short_packet
push edi
call fcn.004512d0
add esp, 8
mov dword [esi + 0xc], 7
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00610840
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x15c]
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov dword [esi + 0xc], ecx
dec ecx
cmp ecx, 5
ja case.0x45dd82.1
jmp dword [ecx*4 + 0x45dee8]
cmp ebx, 4
jle case.0x45dd82.4
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
movzx eax, word [esi + 0x40]
inc eax
movzx eax, ax
cmp eax, ecx
jne case.0x45dd82.4
lea ecx, [ebx - 4]
add edx, 4
test ecx, ecx
jne 0x45ddc9
mov ecx, edx
lea ebx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ddc0
sub ecx, ebx
push ecx
mov ecx, dword [ebp - 0x90]
push edx
mov edx, 1
call fcn.00451800
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x45de03
mov edx, 5
mov ecx, esi
call fcn.0045d970
mov eax, ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00610840
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14c]
sub eax, 4
cdq
add dword [edi + 0x98], eax
mov eax, dword [edi + 0x98]
adc dword [edi + 0x9c], edx
mov ecx, dword [edi + 0x9c]
mov dword [edi + 0xb98], eax
mov dword [edi + 0xb9c], ecx
jmp case.0x45dd82.4
movzx ecx, byte [edx + 2]
add ebx, 0xfffffffc
movzx eax, byte [edx + 3]
push ebx
shl ecx, 8
mov dword [ebp - 0x94], ebx
or ecx, eax
lea ebx, [edx + 4]
mov dword [esi + 8], ecx
push 0
push ebx
call fcn.00616190
add esp, 0xc
test eax, eax
je case.0x45dd82.4
sub eax, ebx
cmp eax, dword [ebp - 0x94]
jae case.0x45dd82.4
push ebx
push str.TFTP_error:__s_n
push edi
call fcn.004511c0
jmp 0x45dead
lea eax, [ebx - 2]
add edx, 2
push eax
mov ecx, esi
call fcn.0045c870
add esp, 4
test eax, eax
je case.0x45dd82.4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00610840
mov esp, ebp
pop ebp
ret
push str.Internal_error:_Unexpected_packet
push 0x70c8cc
push edi
call fcn.004512d0
add esp, 0xc
mov ecx, dword [ebp - 0x90]
call fcn.0044f330
test eax, eax
je 0x45dd50
mov edx, 5
mov ecx, esi
call fcn.0045d970
mov ecx, dword [ebp - 4]
mov eax, 0x2a
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00610840
mov esp, ebp
pop ebp
ret
Function at 0x477480
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
xor edi, edi
mov eax, dword [esi + 0x6af90]
mov dword [esi + 0x6af80], 2
test eax, eax
je 0x47769d
cmp eax, 3
jb 0x4774f6
mov edx, dword [esi + 0x6af84]
mov eax, dword [esi + 0x6af7c]
shl eax, 5
movzx ecx, byte [edx + esi + 0x1af72]
xor ecx, eax
and ecx, 0x7fff
and edx, 0x7fff
mov dword [esi + 0x6af7c], ecx
mov ebx, dword [esi + ecx*4 + 0x4af70]
mov dword [esi + edx*4 + 0x2af70], ebx
mov ecx, dword [esi + 0x6af7c]
mov eax, dword [esi + 0x6af84]
mov dword [esi + ecx*4 + 0x4af70], eax
test ebx, ebx
je 0x477533
mov eax, dword [esi + 0x6af84]
sub eax, ebx
cmp eax, 0x7efa
ja 0x477533
mov eax, dword [esi + 0x6af90]
cmp dword [esi + 0x6afa0], eax
jbe 0x47751d
mov dword [esi + 0x6afa0], eax
mov edx, ebx
mov ecx, esi
call fcn.00477150
mov ecx, dword [esi + 0x6af90]
mov edi, eax
cmp edi, ecx
cmova edi, ecx
mov ecx, dword [esi + 0x6af84]
cmp edi, 3
jb 0x47761e
sub ecx, dword [esi + 0x6af88]
lea eax, [edi - 3]
mov edx, ecx
mov ecx, esi
push eax
call fcn.00476ac0
mov ecx, dword [esi + 0x6af90]
add esp, 4
sub ecx, edi
mov dword [ebp - 4], eax
mov dword [esi + 0x6af90], ecx
cmp edi, dword [esi + 0x6af98]
ja 0x4775e8
cmp ecx, 3
jb 0x4775e8
dec edi
nop word [eax + eax]
inc dword [esi + 0x6af84]
mov edx, dword [esi + 0x6af84]
mov eax, dword [esi + 0x6af7c]
shl eax, 5
movzx ecx, byte [edx + esi + 0x1af72]
and edx, 0x7fff
xor ecx, eax
and ecx, 0x7fff
mov dword [esi + 0x6af7c], ecx
mov ebx, dword [esi + ecx*4 + 0x4af70]
mov dword [esi + edx*4 + 0x2af70], ebx
mov ecx, dword [esi + 0x6af7c]
mov eax, dword [esi + 0x6af84]
mov dword [esi + ecx*4 + 0x4af70], eax
sub edi, 1
jne 0x477580
inc dword [esi + 0x6af84]
mov edx, dword [esi + 0x6af84]
mov eax, dword [ebp - 4]
jmp 0x477645
mov edx, dword [esi + 0x6af84]
add edx, edi
xor edi, edi
mov dword [esi + 0x6af84], edx
movzx ecx, byte [edx + esi + 0x1af70]
mov dword [esi + 0x6af7c], ecx
movzx eax, byte [edx + esi + 0x1af71]
shl ecx, 5
xor eax, ecx
mov dword [esi + 0x6af7c], eax
mov eax, dword [ebp - 4]
jmp 0x477645
movzx eax, byte [ecx + esi + 0x1af70]
xor edx, edx
push eax
mov ecx, esi
call fcn.00476ac0
dec dword [esi + 0x6af90]
add esp, 4
inc dword [esi + 0x6af84]
mov edx, dword [esi + 0x6af84]
test eax, eax
je 0x47767b
mov eax, dword [esi + 0x6af74]
sub edx, eax
test eax, eax
js 0x47765e
add eax, 0x1af70
add eax, esi
jmp 0x477660
xor eax, eax
push 0
push edx
mov edx, eax
mov ecx, esi
call fcn.00476720
mov eax, dword [esi + 0x6af84]
add esp, 8
mov dword [esi + 0x6af74], eax
mov eax, dword [esi + 0x6af90]
cmp eax, 0x106
jae 0x477695
mov ecx, esi
call fcn.00477320
mov eax, dword [esi + 0x6af90]
test eax, eax
jne 0x4774a5
mov eax, dword [esi + 0x6af74]
mov ecx, dword [esi + 0x6af84]
sub ecx, eax
test eax, eax
js 0x4776cb
push 1
lea edx, [esi + 0x1af70]
push ecx
add edx, eax
mov ecx, esi
call fcn.00476720
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 1
push ecx
xor edx, edx
mov ecx, esi
call fcn.00476720
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x478290
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
test edx, edx
jne 0x47829b
xor eax, eax
pop ebp
ret
push esi
mov esi, dword [ebp + 8]
not ecx
cmp esi, 8
jb 0x478357
push edi
mov edi, esi
shr edi, 3
movzx eax, byte [edx]
sub esi, 8
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
movzx eax, byte [edx + 1]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
movzx eax, byte [edx + 2]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
movzx eax, byte [edx + 3]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
movzx eax, byte [edx + 4]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
movzx eax, byte [edx + 5]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
movzx eax, byte [edx + 6]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
movzx eax, byte [edx + 7]
add edx, 8
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
sub edi, 1
jne 0x4782b0
pop edi
test esi, esi
je 0x47837a
nop dword [eax + eax]
movzx eax, byte [edx]
lea edx, [edx + 1]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x711b08]
sub esi, 1
jne 0x478360
not ecx
mov eax, ecx
pop esi
pop ebp
ret