Function at 0x4084a0
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 0x412518
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 0x41262c
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 0x412630
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 0x412624
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 0x412634
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 0x41263c
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 0x412638
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 0x41261c
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 0x412620
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 0x412628
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 0x412640
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 0x412644
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 0x412648
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 0x41264c
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 0x41265c
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 0x412660
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 0x412760
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 [0x41265c]
test eax, eax
jne 0x4086fb
mov dword [0x41265c], 0xf
test ebx, ebx
jne 0x40870a
push 0x412518
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 8
ret