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

Disassembly:
push ecx
push ebx
push ebp
push edi
push 0xc90
push 0
push esi
call fcn.0048635c
mov al, byte [esp + 0x20]
mov edi, dword [0x496520]
lea ebp, [esi + 0x560]
add esp, 0xc
mov byte [esi + 0xc8e], al
mov dword [ebp], 0x10
call edi
and dword [eax], 0
push ebp
lea eax, [esi + 0x550]
push eax
movzx eax, byte [esi + 0xc8e]
imul eax, eax, 0x3c
push 0
push 0x400
lea ebx, [esi + 4]
push ebx
push dword [eax + 0x4c7650]
call dword [0x49699c]
mov dword [esi + 0x54c], eax
call edi
mov ebp, eax
call dword [0x4969c0]
mov dword [ebp], eax
call edi
xor ebp, ebp
cmp dword [eax], ebp
jne 0x40bc26
cmp dword [esi + 0x54c], ebp
jle 0x40bc26
cmp byte [ebx], 1
jne 0x40bc26
lea eax, [esi + 0x504]
push eax
mov al, byte [esi + 6]
lea ecx, [esi + 0x20]
call fcn.0040a26a
mov eax, dword [esi + 0x54c]
lea edi, [esi + 0xf4]
lea eax, [eax + edi - 0xf0]
cmp edi, eax
pop ecx
mov dword [esp + 0x14], eax
jae 0x40ba81
mov al, byte [edi]
cmp al, 0xff
je 0x40ba81
movzx eax, al
cmp eax, 0x37
jg 0x40b9af
je 0x40b989
sub eax, ebp
je 0x40b983
sub eax, 6
je 0x40b96f
sub eax, 6
je 0x40b8f5
sub eax, 0x26
je 0x40b8e7
dec eax
je 0x40b8d7
dec eax
dec eax
je 0x40b8c9
dec eax
jne 0x40ba6d
mov eax, dword [edi + 2]
mov dword [esi + 0x544], eax
jmp 0x40ba6d
mov al, byte [edi + 2]
mov byte [esi + 0xc8c], al
jmp 0x40ba6d
push dword [edi + 2]
call dword [0x49696c]
mov dword [esi], eax
jmp 0x40ba6d
mov eax, dword [edi + 2]
mov dword [esi + 0x548], eax
jmp 0x40ba6d
cmp byte [edi + 1], 0
je 0x40ba6d
mov ebp, dword [0x49655c]
lea ebx, [edi + 2]
push str._none_
push ebx
call ebp
test eax, eax
pop ecx
pop ecx
je 0x40ba6d
push 0x4cd342
push ebx
call ebp
test eax, eax
pop ecx
pop ecx
je 0x40ba6d
movzx eax, byte [edi + 1]
push eax
lea ebp, [esi + 0x404]
push ebx
push ebp
call fcn.00486306
movzx eax, byte [edi + 1]
add esp, 0xc
push 0x2e
mov byte [eax + esi + 0x404], 0
push ebp
mov byte [esi + 0x443], 0
call dword [0x496510]
test eax, eax
pop ecx
pop ecx
je 0x40ba6d
mov byte [eax], 0
jmp 0x40ba6d
push dword [edi + 2]
call dword [0x49696c]
mov dword [esi + 0xa88], eax
jmp 0x40ba6d
inc edi
jmp 0x40ba77
xor eax, eax
cmp byte [edi + 1], al
jbe 0x40ba6d
movzx ecx, byte [edi + eax + 2]
mov byte [ecx + esi + 0xa8c], 1
movzx ecx, byte [edi + 1]
inc eax
cmp eax, ecx
jl 0x40b994
jmp 0x40ba6d
sub eax, 0x39
je 0x40ba5b
push 2
pop ecx
sub eax, ecx
je 0x40ba4a
dec eax
je 0x40ba31
dec eax
je 0x40ba22
sub eax, 0x10
je 0x40ba13
sub eax, 5
je 0x40ba04
sub eax, 0x24
jne 0x40ba6d
movzx eax, byte [edi + 1]
inc eax
inc eax
push eax
lea eax, [esi + 0x774]
push edi
push eax
call fcn.00486306
add esp, 0xc
push dword [edi + 2]
call dword [0x49696c]
mov dword [esi + 0xa7c], eax
jmp 0x40ba6d
movzx eax, byte [edi + 1]
add eax, ecx
push eax
lea eax, [esi + 0x570]
jmp 0x40ba3e
movzx eax, byte [edi + 1]
add eax, ecx
push eax
lea eax, [esi + 0x978]
jmp 0x40ba3e
movzx eax, byte [edi + 1]
add eax, ecx
push eax
lea eax, [esi + 0x672]
jmp 0x40ba3e
movzx eax, byte [edi + 1]
add eax, ecx
push eax
lea eax, [esi + 0x876]
push edi
push eax
call fcn.00486306
add esp, 0xc
jmp 0x40ba6d
push dword [edi + 2]
call dword [0x49696c]
mov dword [esi + 0xa84], eax
jmp 0x40ba6d
movzx eax, word [edi + 2]
push eax
call dword [0x4969cc]
mov word [esi + 0x564], ax
movzx eax, byte [edi + 1]
lea edi, [edi + eax + 2]
xor ebp, ebp
cmp edi, dword [esp + 0x14]
jb 0x40b876
cmp dword [esi + 0xa7c], ebp
jne 0x40baa6
mov eax, dword [esi + 0x1c]
cmp eax, ebp
jne 0x40baa0
movzx eax, byte [esi + 0xc8e]
imul eax, eax, 0x3c
mov eax, dword [eax + 0x4c7664]
mov dword [esi + 0xa7c], eax
lea eax, [esi + 0x564]
cmp word [eax], bp
jne 0x40bacb
cmp byte [esi + 0xc8c], 0
jne 0x40bac6
mov cx, word [esi + 0x54c]
mov word [eax], cx
jmp 0x40bacb
mov word [eax], 0x400
cmp byte [0x4f5e82], 2
jb 0x40bc05
mov al, byte [esi + 0xc8c]
test al, al
jne 0x40bb3c
mov eax, dword [esi + 0x1c]
cmp eax, ebp
push 0x4c5b20
je 0x40bb0d
call fcn.0040a18e
pop ecx
push eax
lea eax, [esi + 0x404]
push eax
lea eax, [esi + 0x504]
push eax
push str.BOOTPREQUEST_for__s___s__from_RelayAgent__s_received
jmp 0x40bbed
movzx eax, byte [esi + 0xc8e]
imul eax, eax, 0x3c
mov eax, dword [eax + 0x4c7664]
call fcn.0040a18e
pop ecx
push eax
lea eax, [esi + 0x404]
push eax
lea eax, [esi + 0x504]
push eax
push str.BOOTPREQUEST_for__s___s__from_interface__s_received
jmp 0x40bbed
cmp al, 1
jne 0x40bb97
mov eax, dword [esi + 0x1c]
cmp eax, ebp
push 0x4c5b20
je 0x40bb6b
call fcn.0040a18e
pop ecx
push eax
lea eax, [esi + 0x404]
push eax
lea eax, [esi + 0x504]
push eax
push str.DHCPDISCOVER_for__s___s__from_RelayAgent__s_received
jmp 0x40bbed
movzx eax, byte [esi + 0xc8e]
imul eax, eax, 0x3c
mov eax, dword [eax + 0x4c7664]
call fcn.0040a18e
pop ecx
push eax
lea eax, [esi + 0x404]
push eax
lea eax, [esi + 0x504]
push eax
push str.DHCPDISCOVER_for__s___s__from_interface__s_received
jmp 0x40bbed
cmp al, 3
jne 0x40bc05
mov eax, dword [esi + 0x1c]
cmp eax, ebp
push 0x4c5b20
je 0x40bbc3
call fcn.0040a18e
pop ecx
push eax
lea eax, [esi + 0x404]
push eax
lea eax, [esi + 0x504]
push eax
push str.DHCPREQUEST_for__s___s__from_RelayAgent__s_received
jmp 0x40bbed
movzx eax, byte [esi + 0xc8e]
imul eax, eax, 0x3c
mov eax, dword [eax + 0x4c7664]
call fcn.0040a18e
pop ecx
push eax
lea eax, [esi + 0x404]
push eax
lea eax, [esi + 0x504]
push eax
push str.DHCPREQUEST_for__s___s__from_interface__s_received
mov edi, 0x4c5820
push edi
call fcn.0040d69e
add esp, 0x14
push 2
push edi
call fcn.0040bdf3
pop ecx
pop ecx
push 0x310
lea eax, [esi + 0xf4]
push ebp
push eax
mov dword [esi + 0x568], eax
call fcn.0048635c
add esp, 0xc
mov ax, 1
jmp 0x40bc29
xor ax, ax
pop edi
pop ebp
pop ebx
pop ecx
ret