Function at 0x504bc0
Capabilities:
Create thread
Send data
Send data on socket

Disassembly:
mov al, byte [edi + 0xc8c]
test al, al
push ebx
push ebp
push esi
jne 0x504c37
lea esi, [edi + 0x504]
push esi
call fcn.00507be0
add esp, 4
test eax, eax
mov dword [edi + 0x56c], eax
je 0x504bed
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x504bef
xor eax, eax
test eax, eax
mov dword [edi + 0x14], eax
jne 0x504fb6
cmp byte [0x617f22], al
je 0x504c31
push esi
push str.No_Static_Entry_found_for_BOOTPREQUEST_from_Host__s
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0xc
cmp byte [0x617f22], 1
jb 0x504c31
push 0x5e7878
push 0x6180b8
call fcn.00435820
add esp, 8
xor eax, eax
pop esi
pop ebp
pop ebx
ret
cmp al, 4
jne 0x504cdc
xor esi, esi
cmp dword [edi + 0x10], esi
je 0x504c31
lea ebx, [edi + 0x504]
push ebx
call fcn.00507be0
add esp, 4
cmp eax, esi
mov dword [edi + 0x56c], eax
je 0x504c6a
mov eax, dword [eax + 0x18]
cmp eax, esi
je 0x504c6a
mov ecx, eax
jmp 0x504c6c
xor ecx, ecx
mov eax, dword [edi + 0x10]
cmp ecx, eax
jne 0x504c31
call fcn.00505bb0
mov eax, dword [edi + 0x56c]
mov dword [eax + 0x18], esi
mov eax, dword [edi + 0x56c]
mov dword [eax + 8], SysReAllocString
mov dword [eax + 0xc], esi
mov eax, dword [edi + 0x56c]
and dword [eax + 0x10], 0xfffffffb
mov eax, dword [edi + 0x56c]
and dword [eax + 0x10], 0xfffffffd
cmp byte [0x617f22], 0
je 0x504c31
mov eax, dword [edi + 0x10]
lea ecx, [edi + 0x404]
push ecx
push ebx
mov esi, 0x5e7b78
call fcn.00507470
push eax
push str.IP_Address__s_declined_by_Host__s___s___locked
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x14
jmp 0x504c16
cmp al, 7
jne 0x504d77
cmp dword [edi + 0x10], 0
je 0x504c31
mov esi, edi
call fcn.00504b90
cmp eax, dword [edi + 0x10]
jne 0x504c31
mov eax, dword [edi + 0x56c]
and dword [eax + 0x10], 0xfffffffb
mov eax, dword [edi + 0x56c]
and dword [eax + 0x10], 0xfffffffd
mov esi, dword [edi + 0x56c]
xor ecx, ecx
call fcn.00505b10
mov edx, dword [edi + 0x56c]
push edx
push 0
push 0x508f10
call dword [sym.imp.MSVCR80.dll__beginthread]
add esp, 0xc
cmp byte [0x617f22], 0
je 0x504c31
lea eax, [edi + 0x404]
push eax
mov eax, dword [edi + 0x10]
lea ecx, [edi + 0x504]
push ecx
mov esi, 0x5e7b78
call fcn.00507470
push eax
push str.IP_Address__s_released_by_Host__s___s_
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x14
jmp 0x504c16
cmp al, 8
jne 0x504dc1
mov al, byte [0x617f25]
cmp al, 1
jne 0x504d98
mov edx, dword [edi + 0x554]
cmp edx, dword [0x5efffc]
je 0x504db2
xor eax, eax
pop esi
pop ebp
pop ebx
ret
cmp al, 2
jne 0x504c31
mov eax, dword [edi + 0x554]
cmp eax, dword [0x5efff8]
jne 0x504c31
push edi
call fcn.00505e80
add esp, 4
xor eax, eax
pop esi
pop ebp
pop ebx
ret
cmp al, 1
jne 0x504de3
mov ecx, edi
call fcn.00503e60
test eax, eax
mov dword [edi + 0x14], eax
je 0x504c31
mov byte [edi + 0xc8d], 2
jmp 0x504fb6
cmp al, 3
jne 0x504c31
mov ecx, dword [edi + 0x544]
xor ebx, ebx
cmp ecx, ebx
je 0x504ec5
movzx eax, byte [edi + 0xc8e]
mov edx, eax
shl edx, 4
sub edx, eax
cmp ecx, dword [edx*4 + 0x5e9704]
jne 0x504c31
cmp dword [edi + 0x548], ebx
je 0x504e5c
mov ebp, dword [edi + 0x548]
mov esi, edi
call fcn.00504b90
cmp ebp, eax
jne 0x504e5c
mov eax, dword [edi + 0x56c]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [0x61972c]
jl 0x504e5c
jg 0x504e4d
mov edx, dword [eax + 8]
cmp edx, dword [0x619728]
jbe 0x504e5c
mov byte [edi + 0xc8d], 5
mov dword [edi + 0x14], ebp
jmp 0x504fb6
cmp dword [edi + 0x10], ebx
je 0x504e9c
mov ebp, dword [edi + 0x10]
mov esi, edi
call fcn.00504b90
cmp ebp, eax
jne 0x504e9c
mov eax, dword [edi + 0x56c]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [0x61972c]
jl 0x504e9c
jg 0x504e8d
mov edx, dword [eax + 8]
cmp edx, dword [0x619728]
jbe 0x504e9c
mov byte [edi + 0xc8d], 5
mov dword [edi + 0x14], ebp
jmp 0x504fb6
mov byte [edi + 0xc8d], 6
mov dword [edi + 0x14], ebx
cmp byte [0x617f22], bl
je 0x504fb6
lea eax, [edi + 0x404]
push eax
lea ecx, [edi + 0x504]
push ecx
jmp 0x504f88
cmp dword [edi + 0x10], ebx
je 0x504f15
mov ebp, dword [edi + 0x10]
mov esi, edi
call fcn.00504b90
cmp ebp, eax
jne 0x504f15
mov eax, dword [edi + 0x56c]
mov edx, dword [eax + 0xc]
cmp edx, dword [0x61972c]
jl 0x504f15
jg 0x504ef6
mov eax, dword [eax + 8]
cmp eax, dword [0x619728]
jbe 0x504f15
mov ecx, dword [edi + 0xa7c]
xor ecx, ebp
test ecx, 0xffffff
jne 0x504f15
mov byte [edi + 0xc8d], 5
mov dword [edi + 0x14], ebp
jmp 0x504fb6
cmp dword [edi + 0x548], ebx
je 0x504f68
mov ebp, dword [edi + 0x548]
mov esi, edi
call fcn.00504b90
cmp ebp, eax
jne 0x504f68
mov eax, dword [edi + 0x56c]
mov edx, dword [eax + 0xc]
cmp edx, dword [0x61972c]
jl 0x504f68
jg 0x504f4c
mov eax, dword [eax + 8]
cmp eax, dword [0x619728]
jbe 0x504f68
mov ecx, dword [edi + 0xa7c]
xor ecx, ebp
test ecx, 0xffffff
jne 0x504f68
mov byte [edi + 0xc8d], 5
mov dword [edi + 0x14], ebp
jmp 0x504fb6
mov byte [edi + 0xc8d], 6
mov dword [edi + 0x14], ebx
cmp byte [0x617f22], bl
je 0x504fb6
lea edx, [edi + 0x404]
push edx
lea eax, [edi + 0x504]
push eax
push str.DHCPREQUEST_from_Host__s___s__without_Discover__NAKed
push 0x5e7878
call dword [sym.imp.MSVCR80.dll_sprintf]
add esp, 0x10
cmp byte [0x617f22], 1
jb 0x504fb6
push 0x5e7878
push 0x6180b8
call fcn.00435820
add esp, 8
mov ecx, edi
call fcn.005053a0
mov ebp, dword [edi + 0x568]
sub ebp, edi
sub ebp, 3
cmp byte [edi + 0xc8c], 0
jne 0x504fd8
movzx ebp, word [edi + 0x564]
mov ecx, dword [edi + 0x1c]
test ecx, ecx
jne 0x504fe7
cmp dword [edi + 0x554], ecx
jne 0x50501e
mov eax, dword [edi + 0x56c]
test eax, eax
je 0x50501e
mov al, byte [eax + 0x14]
test al, al
jl 0x50501e
movsx eax, al
lea edx, [eax*8]
sub edx, eax
movzx eax, byte [edx*4 + 0x6004fc]
imul eax, eax, 0x2e8
mov edx, dword [eax + 0x60158c]
mov dword [edi + 0xa80], edx
cmp dword [edi + 0xa80], 0
je 0x505043
push 0x43
call sub.WS2_32.dll_htons
mov word [edi + 0x552], ax
mov eax, dword [edi + 0xa80]
mov dword [edi + 0x554], eax
jmp 0x505095
test ecx, ecx
je 0x505059
push 0x43
call sub.WS2_32.dll_htons
mov ecx, dword [edi + 0x1c]
mov dword [edi + 0x554], ecx
jmp 0x50508e
test dword [edi + 0xc], 0x800000
jne 0x50507d
cmp dword [edi + 0x554], 0
je 0x50507d
cmp dword [edi + 0x548], 0
jne 0x50507d
push 0x44
call sub.WS2_32.dll_htons
jmp 0x50508e
push 0x44
call sub.WS2_32.dll_htons
mov dword [edi + 0x554], 0xffffffff
mov word [edi + 0x552], ax
lea esi, [edi + 4]
mov byte [esi], 2
call dword [sym.imp.MSVCR80.dll__errno]
mov dword [eax], 0
cmp byte [edi + 0xc8c], 1
jne 0x5050db
cmp dword [edi + 0x1c], 0
jne 0x5050db
movzx eax, byte [edi + 0xc8e]
push 0x10
lea edx, [edi + 0x550]
push edx
push 4
mov ecx, eax
shl ecx, 4
push ebp
sub ecx, eax
mov edx, dword [ecx*4 + 0x5e96f0]
push esi
push edx
jmp 0x505158
cmp dword [0x5e96e0], 0
je 0x505135
cmp byte [edi + 0xc8d], 5
jne 0x505135
mov eax, dword [edi + 0x24]
mov ebx, dword [edi + 0x14]
push eax
call sub.WS2_32.dll_htonl
mov ecx, dword [edi + 0x20]
push eax
push ecx
call sub.WS2_32.dll_htonl
push eax
push ebx
call sub.WS2_32.dll_inet_ntoa
push eax
push str.dhcpDispatch:_ip:_s__mac:_08x_08x
push 0x6180b8
call fcn.00435820
mov edx, dword [0x5e96e4]
mov eax, dword [edi + 0x54c]
add esp, 0x14
push edx
push eax
push edi
call dword [0x5e96e0]
add esp, 0xc
movzx eax, byte [edi + 0xc8e]
push 0x10
lea ecx, [edi + 0x550]
push ecx
mov edx, eax
push 0
shl edx, 4
push ebp
sub edx, eax
mov eax, dword [edx*4 + 0x5e96f0]
push esi
push eax
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
mov dword [edi + 0x54c], eax
jle 0x504c31
mov eax, dword [edi + 0x14]
pop esi
pop ebp
pop ebx
ret