Function at 0x408fc0
Capabilities:
Query or enumerate registry value
Set current directory

Disassembly:
sub esp, 8
push ebx
push esi
lea eax, [esp + 0xc]
push edi
push eax
push 0x20019
push 0
push str.SOFTWARETFTPD32
push reloc.WSOCK32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edx, dword [esp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 0xc]
mov ebx, eax
push ecx
push 0x413708
push 0
push 0
push str.BaseDirectory
push edx
mov dword [esp + 0x24], 0x100
call esi
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc]
push eax
push 0x41381c
push 0
push 0
mov edi, 4
push str.TftpPort
push ecx
mov dword [esp + 0x24], edi
call esi
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc]
push edx
push 0x413820
push 0
push 0
push str.Hide
push eax
mov dword [esp + 0x24], edi
call esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc]
push ecx
push 0x413814
push 0
push 0
push str.WinSize
push edx
mov dword [esp + 0x24], edi
call esi
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc]
push eax
push 0x413824
push 0
push 0
push str.Negociate
push ecx
mov dword [esp + 0x24], edi
call esi
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc]
push edx
push 0x41382c
push 0
push 0
push str.DirText
push eax
mov dword [esp + 0x24], edi
call esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc]
push ecx
push 0x413828
push 0
push 0
mov dword [esp + 0x1c], edi
push str.ShowProgressBar
push edx
call esi
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc]
push eax
push 0x41380c
push 0
push 0
push str.Timeout
push ecx
mov dword [esp + 0x24], edi
call esi
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc]
push edx
push 0x413810
push 0
push 0
push str.MaxRetransmit
push eax
mov dword [esp + 0x24], edi
call esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc]
push ecx
push 0x413818
push 0
push 0
push str.SecurityLevel
push edx
mov dword [esp + 0x24], edi
call esi
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc]
push eax
push 0x413834
push 0
push 0
push str.UnixStrings
push ecx
mov dword [esp + 0x24], edi
call esi
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc]
push edx
push 0x413838
push 0
push 0
push str.Beep
push eax
mov dword [esp + 0x24], edi
call esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc]
push ecx
push 0x41383c
push 0
push 0
push str.VirtualRoot
push edx
mov dword [esp + 0x24], edi
call esi
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc]
push eax
push 0x413840
push 0
push 0
push str.LocalIP
push ecx
mov dword [esp + 0x24], 0x10
call esi
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc]
push edx
push 0x413850
push 0
push 0
push str.Services
mov dword [esp + 0x20], edi
push eax
call esi
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0xc]
push ecx
push 0x413854
push 0
push 0
push str.TftpLogFile
push edx
mov dword [esp + 0x24], 0x100
call esi
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0xc]
push eax
push 0x413954
push 0
push 0
push str.SaveSyslogFile
push ecx
mov dword [esp + 0x24], 0x100
call esi
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x413850]
test eax, eax
jne 0x40921b
mov dword [0x413850], 0xf
test ebx, ebx
jne 0x40922a
push 0x413708
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 8
ret