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

Disassembly:
sub esp, 0x4c
mov eax, dword [0x10098688]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5c]
push edi
mov eax, dword [esi + 0x10]
xor edx, edx
mov edi, dword [eax]
mov eax, dword [esp + 0x64]
cmp dword [edi + 0x3bc], edx
mov ecx, str.octet
mov ebp, str.netascii
cmove ebp, ecx
push 3
mov ebx, edx
pop ecx
sub eax, edx
je 0x10045a08
sub eax, ecx
je 0x100459ff
dec eax
je 0x100459fa
dec eax
je 0x100459f3
dec eax
je 0x100459db
dec eax
je 0x10045a08
push str.tftp_send_first:_internal_error
push edi
call fcn.10034609
pop ecx
jmp 0x10045c85
push 6
push esi
cmp dword [edi + 0x3f4], edx
je 0x10045a01
call fcn.100452d2
pop ecx
mov ebx, eax
jmp 0x10045c85
mov dword [esi], ecx
jmp 0x10045c86
push 4
push esi
jmp 0x100459e6
push ecx
push esi
call fcn.10045298
jmp 0x100459eb
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x10045a23
mov dword [esi + 8], 0xffffff9e
mov dword [esi], ecx
xor eax, eax
jmp 0x10045c88
mov eax, dword [esi + 0x160]
cmp dword [edi + 0x3f4], edx
mov byte [eax], dl
mov eax, dword [esi + 0x160]
je 0x10045ae7
mov byte [eax + 1], 2
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x160]
mov eax, dword [eax]
add ecx, 4
mov dword [eax + 0x150], ecx
mov ecx, dword [edi + 0x4af0]
mov edx, dword [edi + 0x4af4]
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
je 0x10045a75
push edx
push ecx
push edi
call fcn.1003d1df
add esp, 0xc
xor edx, edx
push edx
push edx
lea eax, [esp + 0x18]
push eax
mov eax, dword [esi + 0x10]
push edx
mov eax, dword [eax]
mov eax, dword [eax + 0x4ac0]
inc eax
push eax
push edi
call fcn.10050948
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x10045c86
mov ecx, dword [esp + 0x10]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10045aa6
sub ecx, edx
mov edx, ebp
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x10045ab8
sub edx, dword [esp + 0x14]
mov eax, dword [esi + 0x154]
sub eax, edx
sub eax, 4
cmp ecx, eax
jbe 0x10045aed
push str.TFTP_file_name_too_long_n
push edi
call fcn.10034609
pop ecx
pop ecx
push 0x47
pop eax
jmp 0x10045c88
mov byte [eax + 1], 1
jmp 0x10045a77
mov eax, dword [esi + 0x160]
push 0
push ebp
push 0
push dword [esp + 0x1c]
add eax, 2
push str._s_c_s_c
push dword [esi + 0x154]
push eax
call fcn.1003edd6
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10045b1a
sub ecx, edx
lea edx, [ebp + 1]
mov al, byte [ebp]
inc ebp
test al, al
jne 0x10045b26
sub ebp, edx
add ebp, 4
add ebp, ecx
cmp dword [edi + 0x22c], 0
jne 0x10045c3b
cmp dword [edi + 0x3f4], 0
je 0x10045b78
mov ecx, dword [edi + 0x4af0]
mov edx, dword [edi + 0x4af4]
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
je 0x10045b78
push edx
push ecx
push str._I64d
lea eax, [esp + 0x24]
push 0x40
push eax
call fcn.1003edd6
add esp, 0x14
jmp 0x10045b80
push 0x30
pop eax
mov word [esp + 0x18], ax
mov eax, dword [esi + 0x160]
push str.tsize
add eax, ebp
push eax
push ebp
push esi
call fcn.1004530c
add ebp, eax
lea eax, [esp + 0x28]
push eax
mov eax, dword [esi + 0x160]
add eax, ebp
push eax
push ebp
push esi
call fcn.1004530c
push dword [esi + 0x158]
add ebp, eax
push 0x1007d670
lea eax, [esp + 0x40]
push 0x40
push eax
call fcn.1003edd6
mov eax, dword [esi + 0x160]
push str.blksize
add eax, ebp
push eax
push ebp
push esi
call fcn.1004530c
add ebp, eax
add esp, 0x40
lea eax, [esp + 0x18]
push eax
mov eax, dword [esi + 0x160]
add eax, ebp
push eax
push ebp
push esi
call fcn.1004530c
push dword [esi + 0x1c]
add ebp, eax
push 0x1007d670
lea eax, [esp + 0x30]
push 0x40
push eax
call fcn.1003edd6
mov eax, dword [esi + 0x160]
push str.timeout
add eax, ebp
push eax
push ebp
push esi
call fcn.1004530c
add ebp, eax
lea eax, [esp + 0x48]
push eax
mov eax, dword [esi + 0x160]
add eax, ebp
push eax
push ebp
push esi
call fcn.1004530c
add esp, 0x40
add ebp, eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x54]
push dword [eax + 0x10]
push dword [eax + 0x18]
push 0
push ebp
push dword [esi + 0x160]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
cmp eax, ebp
je 0x10045c7b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.100409d4
push eax
push 0x10092524
push edi
call fcn.10034609
add esp, 0x14
push dword [esp + 0x10]
call dword [0x10098344]
pop ecx
mov eax, ebx
mov ecx, dword [esp + 0x58]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1005c9a6
add esp, 0x4c
ret