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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x154
mov eax, dword [0x730b1c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov ecx, str.netascii
push edi
xor edi, edi
mov eax, dword [esi + 0x10]
mov ebx, dword [eax]
mov eax, str.octet
cmp byte [ebx + 0xb2f], 0
cmovne eax, ecx
mov dword [ebp - 0x14c], eax
cmp edx, 7
ja case.0x45cb62.1
jmp dword [edx*4 + 0x45d178]
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x45cb94
mov dword [esi + 8], 0xffffff9e
xor eax, eax
mov dword [esi], 3
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 + 0x160]
cmp byte [ebx + 0xb41], 0
mov byte [eax], 0
mov eax, dword [esi + 0x160]
je 0x45cc17
mov byte [eax + 1], 2
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x160]
add ecx, 4
mov eax, dword [eax]
mov dword [eax + 0x134], ecx
mov ecx, dword [ebx + 0x1088]
mov eax, ecx
mov edx, dword [ebx + 0x108c]
and eax, edx
cmp eax, 0xffffffff
je 0x45cc1b
mov eax, dword [ebx + 0xbb4]
test edx, edx
jl 0x45cc00
jg 0x45cbe9
test ecx, ecx
jb 0x45cc00
or eax, 0x20
mov dword [ebx + 0xb90], ecx
mov dword [ebx + 0xb94], edx
mov dword [ebx + 0xbb4], eax
jmp 0x45cc1b
and eax, 0xffffffdf
mov dword [ebx + 0xb90], edi
mov dword [ebx + 0xb94], edi
mov dword [ebx + 0xbb4], eax
jmp 0x45cc1b
mov byte [eax + 1], 1
push 4
push 0
lea eax, [ebp - 0x154]
push eax
mov eax, dword [esi + 0x10]
push 0
mov eax, dword [eax]
mov edx, dword [eax + 0x10c0]
inc edx
call fcn.0042f3f0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x45d167
mov ecx, dword [ebp - 0x154]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cc50
sub ecx, edx
mov edx, dword [ebp - 0x14c]
lea eax, [edx + 1]
mov dword [ebp - 0x150], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x45cc68
sub edx, dword [ebp - 0x150]
mov eax, dword [esi + 0x154]
sub eax, edx
sub eax, 4
cmp ecx, eax
jbe 0x45ccb5
push str.TFTP_file_name_too_long_n
push ebx
call fcn.004512d0
mov eax, dword [ebp - 0x154]
push eax
call dword [0x731670]
add esp, 0xc
mov eax, 0x47
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 [ebp - 0x154]
push 0
push dword [ebp - 0x14c]
push 0
push eax
mov eax, dword [esi + 0x160]
push str._s_c_s_c
push dword [esi + 0x154]
add eax, 2
push eax
call fcn.004472f0
mov ecx, dword [ebp - 0x154]
add esp, 0x1c
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ccf0
sub ecx, edx
mov edx, dword [ebp - 0x14c]
lea eax, [edx + 1]
mov dword [ebp - 0x150], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x45cd08
sub edx, dword [ebp - 0x150]
add ecx, 4
add ecx, edx
mov dword [ebp - 0x14c], ecx
cmp byte [ebx + 0xb27], al
jne 0x45cfa8
cmp byte [ebx + 0xb41], al
je 0x45cd66
mov edi, dword [ebx + 0x1088]
mov eax, edi
mov edx, dword [ebx + 0x108c]
and eax, edx
cmp eax, 0xffffffff
je 0x45cd66
push edx
push edi
push str._I64d
lea eax, [ebp - 0x48]
push 0x40
push eax
call fcn.004472f0
mov ecx, dword [ebp - 0x14c]
add esp, 0x14
jmp 0x45cd6f
mov eax, 0x30
mov word [ebp - 0x48], ax
lea edi, [ecx + 6]
cmp edi, dword [esi + 0x154]
jbe 0x45cdd6
push dword [esi + 0x158]
lea eax, [ebp - 0x48]
push 0x714de8
push 0x40
push eax
call fcn.004472f0
push dword [esi + 0x1c]
lea eax, [ebp - 0x48]
push 0x714de8
push 0x40
push eax
call fcn.004472f0
add esp, 0x20
push str.TFTP_buffer_too_small_for_options
push ebx
call fcn.004512d0
push dword [ebp - 0x154]
call dword [0x731670]
add esp, 0xc
mov eax, 0x47
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00610840
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x160]
mov edx, str.tsize
add ecx, dword [ebp - 0x14c]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x45cde7
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ce00
sub ecx, edx
lea eax, [edi + 1]
add eax, ecx
cmp eax, dword [esi + 0x154]
ja 0x45cd7a
mov ecx, dword [esi + 0x160]
lea edx, [ebp - 0x48]
add ecx, edi
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x45ce25
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ce40
push dword [esi + 0x158]
sub ecx, edx
lea eax, [ebp - 0x48]
push 0x714de8
inc ecx
push 0x40
push eax
add edi, ecx
call fcn.004472f0
lea eax, [edi + 8]
add esp, 0x10
mov dword [ebp - 0x150], eax
cmp eax, dword [esi + 0x154]
ja 0x45ceb3
mov ecx, dword [esi + 0x160]
mov edx, str.blksize
add ecx, edi
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x45ce83
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ce97
mov edi, dword [ebp - 0x150]
sub ecx, edx
lea eax, [edi + 1]
add eax, ecx
cmp eax, dword [esi + 0x154]
jbe 0x45cece
push dword [esi + 0x1c]
lea eax, [ebp - 0x48]
push 0x714de8
push 0x40
push eax
call fcn.004472f0
add esp, 0x10
jmp 0x45cda6
mov ecx, dword [esi + 0x160]
lea edx, [ebp - 0x48]
add ecx, edi
nop dword [eax]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x45cee0
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cef4
push dword [esi + 0x1c]
lea eax, [ebp - 0x48]
sub ecx, edx
push 0x714de8
push 0x40
inc edi
push eax
add edi, ecx
call fcn.004472f0
lea eax, [edi + 8]
add esp, 0x10
mov dword [ebp - 0x150], eax
cmp eax, dword [esi + 0x154]
ja 0x45cda6
mov ecx, dword [esi + 0x160]
mov edx, str.timeout
add ecx, edi
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x45cf38
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cf50
mov edi, dword [ebp - 0x150]
sub ecx, edx
lea eax, [edi + 1]
add eax, ecx
cmp eax, dword [esi + 0x154]
ja 0x45cda6
mov ecx, dword [esi + 0x160]
lea edx, [ebp - 0x48]
add ecx, edi
nop dword [eax + eax]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x45cf80
lea ecx, [ebp - 0x48]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45cf94
sub ecx, edx
inc edi
add ecx, edi
xor edi, edi
mov dword [ebp - 0x14c], ecx
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x2b8]
push dword [eax + 0x10]
push dword [eax + 0x18]
push 0
push ecx
push dword [esi + 0x160]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
cmp eax, dword [ebp - 0x14c]
je 0x45cffb
push 0x100
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea edx, [ebp - 0x148]
mov ecx, eax
call fcn.0045a2e0
add esp, 4
push eax
push 0x70c8cc
push ebx
call fcn.004512d0
add esp, 0xc
push dword [ebp - 0x154]
call dword [0x731670]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00610840
mov esp, ebp
pop ebp
ret
cmp byte [ebx + 0xb41], 0
je 0x45d06d
push str.Connected_for_transmit
push 0x715448
push ebx
call fcn.004511c0
add esp, 0xc
mov dword [esi], 2
mov ecx, esi
call fcn.0045c6e0
mov edi, eax
test edi, edi
jne 0x45d165
lea edx, [eax + 6]
mov ecx, esi
call fcn.0045d4a0
mov edi, eax
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.Connected_for_receive
push 0x715448
push ebx
call fcn.004511c0
add esp, 0xc
mov dword [esi], 1
mov ecx, esi
call fcn.0045c6e0
mov edi, eax
test edi, edi
jne 0x45d165
lea edx, [eax + 6]
mov ecx, esi
call fcn.0045d1a0
mov edi, eax
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.Connected_for_transmit
push 0x715448
push ebx
call fcn.004511c0
add esp, 0xc
mov dword [esi], 2
mov ecx, esi
call fcn.0045c6e0
mov edi, eax
test edi, edi
jne 0x45d165
lea edx, [eax + 4]
mov ecx, esi
call fcn.0045d4a0
mov edi, eax
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.Connected_for_receive
push 0x715448
push ebx
call fcn.004511c0
add esp, 0xc
mov dword [esi], 1
mov ecx, esi
call fcn.0045c6e0
mov edi, eax
test edi, edi
jne 0x45d165
lea edx, [eax + 3]
mov ecx, esi
call fcn.0045d1a0
mov edi, 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 dword [esi], 3
mov eax, edi
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.tftp_send_first:_internal_error
push ebx
call fcn.004512d0
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00610840
mov esp, ebp
pop ebp
ret