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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x7c
mov ebx, eax
mov eax, dword [eax + 0x10]
mov esi, dword [eax]
mov eax, dword [ebx]
cmp eax, 1
je 0x67364c1c
jb 0x67364bcc
cmp eax, 2
je 0x67364c2c
cmp eax, 3
je 0x67364bf8
mov dword [esp + 8], str.Internal_state_machine_error
mov dword [esp + 4], 0x6739b394
mov dword [esp], esi
call fcn.67346d80
mov eax, 0x47
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
cmp byte [esi + 0x29b], 0
jne 0x67364c3c
mov dword [ebp - 0x5c], str.octet
cmp edx, 7
jbe switch.0x67364c48
mov dword [esp + 4], str.tftp_send_first:_internal_error
mov dword [esp], esi
call fcn.67346d80
xor eax, eax
jmp 0x67364bc4
mov dword [esp + 8], str.TFTP_finished
mov dword [esp + 4], 0x6739b448
mov dword [esp], esi
call fcn.673471e0
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov eax, ebx
call fcn.67363eb0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov eax, ebx
call fcn.67364438
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov dword [ebp - 0x5c], str.netascii
cmp edx, 7
ja case.0x67364c48.1
jmp dword [edx*4 + 0x6739b57c]
cmp byte [esi + 0x2a8], 0
je 0x67364f68
mov edx, 6
mov eax, ebx
call fcn.673647f4
jmp 0x67364bc4
mov dword [ebx], 3
xor eax, eax
jmp 0x67364bc4
mov edx, 3
mov eax, ebx
call fcn.673643e8
jmp 0x67364bc4
mov eax, dword [ebx + 0x18]
inc eax
mov dword [ebx + 0x18], eax
cmp eax, dword [ebx + 0x20]
jg 0x67364fac
cmp byte [esi + 0x2a8], 0
je 0x67364f7c
mov eax, dword [ebx + 0x150]
mov byte [eax], 0
mov eax, dword [ebx + 0x150]
mov byte [eax + 1], 2
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
mov edx, dword [ebx + 0x150]
add edx, 4
mov dword [eax + 0x108], edx
mov ecx, dword [esi + 0x1c8]
mov edx, dword [esi + 0x1cc]
mov edi, ecx
and edi, edx
inc edi
je 0x67364d00
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp], esi
call fcn.67352818
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [eax + 0x85b8]
inc eax
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.67369d0c
mov dword [ebp - 0x64], eax
test eax, eax
je 0x67364fc0
mov dword [esp + 0x18], 0
mov eax, dword [ebp - 0x5c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov ecx, dword [ebp - 0x64]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], str._s_c_s_c
mov eax, dword [ebx + 0x144]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x150]
add eax, 2
mov dword [esp], eax
call fcn.67343f4c
mov edx, 0xffffffff
xor eax, eax
mov ecx, edx
mov edi, dword [ebp - 0x64]
repne scasb al, byte es:[edi]
mov dword [ebp - 0x60], ecx
mov ecx, edx
mov edi, dword [ebp - 0x5c]
repne scasb al, byte es:[edi]
neg dword [ebp - 0x60]
sub dword [ebp - 0x60], ecx
cmp byte [esi + 0x2a8], 0
je 0x67364f9c
mov edx, dword [esi + 0x1c8]
mov eax, dword [esi + 0x1cc]
mov ecx, edx
and ecx, eax
inc ecx
je 0x67364f9c
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 8], str._lld
mov dword [esp + 4], 0x40
lea edi, [ebp - 0x58]
mov dword [esp], edi
call fcn.67343f4c
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebx + 0x150]
mov eax, dword [ebx + 0x144]
mov dword [esp], str.tsize
mov edx, dword [ebp - 0x60]
call fcn.67364b20
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebx + 0x150]
add ecx, eax
mov eax, dword [ebx + 0x144]
mov dword [esp], edi
mov edx, dword [ebp - 0x5c]
call fcn.67364b20
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0x148]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6739b51a
mov dword [esp + 4], 0x40
mov dword [esp], edi
call fcn.67343f4c
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebx + 0x150]
mov eax, dword [ebx + 0x144]
mov dword [esp], str.blksize
mov edx, dword [ebp - 0x5c]
call fcn.67364b20
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebx + 0x150]
add ecx, eax
mov eax, dword [ebx + 0x144]
mov dword [esp], edi
mov edx, dword [ebp - 0x5c]
call fcn.67364b20
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x6739b51a
mov dword [esp + 4], 0x40
mov dword [esp], edi
call fcn.67343f4c
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebx + 0x150]
mov eax, dword [ebx + 0x144]
mov dword [esp], str.timeout
mov edx, dword [ebp - 0x5c]
call fcn.67364b20
add eax, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebx + 0x150]
add ecx, eax
mov eax, dword [ebx + 0x144]
mov dword [esp], edi
mov edx, dword [ebp - 0x5c]
call fcn.67364b20
mov edx, dword [ebx + 0x10]
mov edx, dword [edx + 0x38]
mov edi, dword [ebp - 0x5c]
add edi, eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov eax, dword [ebx + 0x150]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call sub.WS2_32.dll_sendto
sub esp, 0x18
cmp edi, eax
je 0x67364f41
call sub.WS2_32.dll_WSAGetLastError
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.673534dc
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6739b394
mov dword [esp], esi
call fcn.67346d80
mov eax, dword [ebp - 0x64]
mov dword [esp], eax
call fcn.67347e48
xor eax, eax
jmp 0x67364bc4
mov edx, 4
mov eax, ebx
call fcn.673647f4
jmp 0x67364bc4
mov edx, 6
mov eax, ebx
call fcn.673643e8
jmp 0x67364bc4
mov eax, dword [ebx + 0x150]
mov byte [eax], 0
mov eax, dword [ebx + 0x150]
mov byte [eax + 1], 1
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
jmp 0x67364d00
mov word [ebp - 0x58], 0x30
lea edi, [ebp - 0x58]
jmp 0x67364dd4
mov dword [ebx + 8], 0xffffff9e
mov dword [ebx], 3
xor eax, eax
jmp 0x67364bc4
mov eax, 0x1b
jmp 0x67364bc4