Function at 0x100116fc
Capabilities:
Get file size
Get local ipv4 addresses
Get socket information

Disassembly:
sub esp, 0x444
mov eax, dword [0x1001f048]
xor eax, esp
mov dword [esp + 0x43c], eax
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x14], ebx
movzx eax, word [edi + 0x4278]
push eax
mov byte [edi + 0x4475], bl
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ebp, ax
push ebp
push str.DecodConnectData_request__d_from_peer
push ebx
call fcn.10001113
add esp, 0xc
cmp ebp, 1
je 0x10011772
cmp ebp, 2
je 0x10011772
push ebp
push str.Unexpected_request__d_from_peer
push ebx
call fcn.10001113
add esp, 0xc
push str.Returning_EBADOP_to_Peer
push ebx
call fcn.10001113
pop ecx
pop ecx
mov eax, 0x3ec
jmp 0x10011e6c
lea esi, [edi + 0x427a]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x104
jl 0x1001179f
push str.File_name_too_long__return_EBADOP_to_peer
push ebx
call fcn.10001113
pop ecx
pop ecx
push 4
pop edx
mov ecx, edi
call fcn.1001131c
jmp 0x10011768
push 0x25
push esi
call dword [sym.imp.MSVCR120.dll_strchr]
pop ecx
pop ecx
test eax, eax
je 0x100117c0
push str.Error:_Tftpd32_does_not_handle_filenames_with_a_percent_sign
push 1
call fcn.10001113
pop ecx
pop ecx
push 2
jmp 0x10011795
push esi
push str.FileName_is___s_
push 9
call fcn.10001113
add esp, 0xc
cmp ebp, 1
jne 0x100117e2
cmp dword [0x1001fd28], ebx
je 0x100117e2
call fcn.10012a50
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
lea esi, [edi + 0x427a]
add esi, eax
mov dword [esp + 0x20], eax
push str.netascii
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x1001186e
push str.ascii
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x1001186e
push str.mail
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x1001182f
mov dword [edi + 0x50], 2
jmp 0x10011875
push str.octet
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10011869
push str.binary
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10011869
push str.OCTET
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10011869
push str.Uncorrect_message
jmp 0x1001178b
mov dword [edi + 0x50], ebx
jmp 0x10011875
mov dword [edi + 0x50], 1
push esi
push str.Mode_is___s_
push 0xc
call fcn.10001113
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x20]
inc ecx
add eax, ecx
mov ecx, str.Write
push esi
mov dword [esp + 0x1c], eax
lea esi, [edi + 0x427a]
cmp ebp, 1
mov eax, str.Read
push esi
cmovne eax, ecx
push eax
push str._s_request_for_file___s_._Mode__s
push 1
call fcn.10001113
add esp, 0x14
mov ecx, esi
call fcn.100113b3
mov edx, ebp
mov ecx, esi
call fcn.10011249
test eax, eax
jne 0x100118ee
call fcn.10013b71
push eax
push esi
push str.Error_EACCESS_on_file__s._Ext_error__s
push 1
call fcn.10001113
add esp, 0x10
jmp 0x100117bc
push 0x1001ffb4
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x1001191c
push eax
lea edx, [esp + 0x44]
mov ecx, esi
call fcn.1001140e
pop ecx
jmp 0x10011928
push esi
lea eax, [esp + eax + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x40]
push eax
push str.final_name_:___s_
push 0xa
call fcn.10001113
add esp, 0xc
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x104
jge 0x10011786
push ebx
lea eax, [ebp - 1]
mov ecx, accept
neg eax
push 0x8000020
sbb eax, eax
add eax, 3
cmp ebp, 1
push eax
push ebx
push 1
mov eax, 0x40000000
cmove eax, ecx
push eax
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [edi + 0x24], eax
cmp eax, 0xffffffff
jne 0x100119a4
xor edx, edx
mov ecx, edi
cmp ebp, 1
push str.CreateFile
setne dl
inc edx
call fcn.10011651
jmp 0x10011767
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0x204
mov dword [edi + 0x448c], eax
lea eax, [edi + 0x4064]
push ebx
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
push 6
call dword [sym.imp.WS2_32.dll_htons]
lea ecx, [edi + 0x4064]
mov word [ecx], ax
lea eax, [ecx + 2]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, ebx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
cmp dword [0x1001fd1c], ebx
jne 0x100119ff
cmp dword [0x1001fd20], ebx
je 0x10011d69
cmp ecx, 0x200
jge 0x10011d69
lea eax, [esi + ecx]
mov dword [esp + 0x20], eax
cmp byte [eax], bl
jne 0x10011a21
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x14]
jmp 0x100119eb
push eax
push str.Option_is___s_
push 0xc
call fcn.10001113
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov edx, 0x200
cmp byte [esi + ecx], bl
je 0x10011a44
inc ecx
cmp ecx, edx
jl 0x10011a3a
lea eax, [edi + 0x427b]
add eax, ecx
inc ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
cmp ecx, edx
jge 0x10011cea
cmp byte [esi + ecx], bl
je 0x10011a67
inc ecx
cmp ecx, edx
jl 0x10011a5d
mov dword [esp + 0x18], ecx
cmp ecx, edx
jge 0x10011cea
cmp byte [esi + ecx], bl
jne 0x10011cea
mov esi, dword [esp + 0x20]
push eax
push esi
push str.Option___s_:_value___s_
push 2
call fcn.10001113
add esp, 0x10
cmp dword [0x1001fd20], ebx
jne 0x10011beb
push str.blksize
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10011b67
push dword [esp + 0x1c]
call dword [sym.imp.MSVCR120.dll_atoi]
mov dword [esp + 0x28], eax
pop ecx
cmp eax, 8
jae 0x10011ada
push eax
push esi
push str.__s__proposed_by_client__d__refused_by_Tftpd32
push 2
call fcn.10001113
mov eax, dword [esp + 0x34]
add esp, 0x10
mov ecx, 0x4000
cmp eax, ecx
jbe 0x10011b01
push ecx
push eax
push esi
push str.__s__proposed_by_client__d__reply_with__d
push 2
call fcn.10001113
mov eax, dword [esp + 0x38]
mov ecx, 0x4000
add esp, 0x14
mov dword [edi + 0x48], ecx
cmp eax, 8
jb 0x10011b67
cmp eax, ecx
ja 0x10011b25
push dword [esp + 0x1c]
push esi
push str.__s__changed_to___s_
push 2
call fcn.10001113
mov eax, dword [esp + 0x34]
add esp, 0x10
mov dword [edi + 0x48], eax
push esi
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push dword [edi + 0x48]
inc esi
add esi, eax
push 0x1001a4a8
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [esp + 0x14], 1
add eax, esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], eax
cmp dword [0x1001fd20], ebx
jne 0x10011beb
push str.timeout
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10011beb
push dword [esp + 0x1c]
call dword [sym.imp.MSVCR120.dll_atoi]
pop ecx
mov dword [esp + 0x24], eax
lea ecx, [eax - 1]
cmp ecx, 0xfe
ja 0x10011beb
push dword [esp + 0x1c]
push esi
push str.__s__changed_to___s_
push 9
call fcn.10001113
add esp, 0x10
push esi
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push dword [esp + 0x1c]
inc esi
add esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
mov dword [esp + 0x14], 1
add eax, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x4c], eax
mov esi, dword [esp + 0x20]
push str.tsize
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10011ca9
push esi
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x10]
inc ecx
add eax, ecx
mov dword [esp + 0x14], eax
cmp ebp, 1
jne 0x10011c57
push dword [edi + 0x448c]
push 0x1001a4a8
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x14]
inc ecx
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x448c]
jmp 0x10011c88
push dword [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x1c]
inc ecx
add eax, ecx
mov dword [esp + 0x14], eax
call dword [sym.imp.MSVCR120.dll_atoi]
pop ecx
mov dword [edi + 0x448c], eax
push dword [edi + 0x448c]
mov dword [edi + 0x58], eax
push esi
push str.__s__changed_to___u_
push 0xa
call fcn.10001113
add esp, 0x10
mov dword [esp + 0x14], 1
cmp dword [0x1001ffa4], ebx
je 0x10011ce0
push str.udpport
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10011ce0
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x10
push eax
lea eax, [esp + 0x34]
push eax
push dword [edi + 0x20]
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jns 0x10011cf3
mov ecx, dword [esp + 0x18]
lea esi, [edi + 0x427a]
mov edx, dword [esp + 0x10]
jmp 0x10011a1b
push dword [esp + 0x32]
call dword [sym.imp.WS2_32.dll_htons]
movzx eax, ax
push eax
push str.using_udpport_option______d
call fcn.100138a5
pop ecx
pop ecx
push esi
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, dword [esp + 0x10]
push dword [esp + 0x32]
inc esi
add esi, eax
call dword [sym.imp.WS2_32.dll_htons]
movzx eax, ax
push eax
push 0x1001a4a8
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [eax + 1]
mov eax, dword [0x1001fd10]
mov dword [edi + 0x44], eax
add edx, esi
xor eax, eax
lea esi, [edi + 0x427a]
inc eax
mov dword [esp + 0x14], eax
jmp 0x100119e3
lea ecx, [edi + 0x4064]
sub edx, ecx
mov dword [esp + 0x10], edx
lea esi, [edx - 2]
mov dword [edi + 0x38], esi
cmp ebp, 1
jne 0x10011d87
test eax, eax
jne 0x10011d87
inc eax
jmp 0x10011d89
mov eax, ebx
push eax
push eax
push dword [esp + 0x1c]
mov dword [edi + 0x34], eax
push ebp
push str.opcode:__d__bOptionsAccepted:__d__nCount:__d__nLastToSend___d
push 2
mov dword [edi + 0x2c], eax
call fcn.10001113
mov eax, dword [edi + 0x448c]
xor edx, edx
div dword [edi + 0x48]
add esp, 0x18
xor edx, edx
inc eax
mov dword [edi + 0x30], eax
mov eax, dword [0x1001fd08]
div dword [edi + 0x48]
mov dword [edi + 0x54], eax
cmp dword [esp + 0x14], ebx
je 0x10011e5f
push 0x200
lea eax, [esp + 0x24c]
push ebx
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
lea eax, [esp + 0x248]
push esi
push dword [esp + 0x2c]
push eax
call sub.MSVCR120.dll_memcpy
mov edx, dword [esp + 0x1c]
add esp, 0xc
add edx, 0xfffffffe
mov ecx, ebx
test edx, edx
jle 0x10011e27
cmp byte [esp + ecx + 0x248], 0
jne 0x10011e22
mov eax, ebx
inc ebx
and al, 1
je 0x10011e18
push 0x2c
jmp 0x10011e1a
push 0x3d
pop eax
mov byte [esp + ecx + 0x248], al
inc ecx
cmp ecx, edx
jl 0x10011e03
lea eax, [esp + 0x248]
push eax
push str.OACK:___s_
push 3
call fcn.10001113
add esp, 0xc
push dword [edi + 0x38]
push str.Size_of_OACK_string_:___d_
push 0xd
call fcn.10001113
xor eax, eax
add esp, 0xc
cmp ebp, 1
setne al
add eax, 0x3e8
jmp 0x10011e6c
xor eax, eax
cmp ebp, 1
setne al
add eax, 0x3ea
mov ecx, dword [esp + 0x44c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10015a21
add esp, 0x444
ret