Function at 0x403c24
Capabilities:
Check if file exists
Get file attributes
Query or enumerate registry value

Disassembly:
mov eax, 0x43d470
call fcn.0041d644
sub esp, 0x1c
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x14], ebx
mov eax, dword [0x457f44]
mov esi, 0x100
mov dword [ebp - 4], ebx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
push 0xf003f
push str.SystemCurrentControlSetServicesTFTPDParameters
push 0x80000002
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00404b2d
test eax, eax
je 0x403c9c
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.004360aa
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.004360aa
cmp dword [ebp - 0x14], ebx
je 0x403e40
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x403e40
push esi
lea ecx, [ebp - 0x18]
call fcn.0043648e
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x20], ebx
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
push ebx
push str.Directory
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
cmp eax, ebx
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
je 0x403d0b
call fcn.004364dd
cmp dword [ebp - 0x14], ebx
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x403ce1
push dword [ebp - 0x14]
call esi
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.004360aa
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.004360aa
cmp dword [ebp - 0x14], ebx
je 0x403e40
push dword [ebp - 0x14]
call esi
jmp 0x403e40
call fcn.004364dd
cmp dword [ebp - 0x14], ebx
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
je 0x403d23
push dword [ebp - 0x14]
call edi
mov dword [ebp - 0x14], ebx
push 1
push 0x5c
lea ecx, [ebp - 0x20]
call fcn.004303d3
lea eax, [ebp - 0x28]
push 1
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.00430781
push dword [ebp - 0x20]
mov eax, dword [eax]
push eax
call fcn.0041db64
pop ecx
pop ecx
test eax, eax
lea ecx, [ebp - 0x28]
setne byte [ebp - 0xd]
call fcn.004360aa
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call fcn.004360aa
cmp byte [ebp - 0xd], bl
je 0x403d7a
push 0x4554ac
lea ecx, [ebp - 0x18]
call fcn.0043643a
lea eax, [ebp - 0x18]
push str.OSChooseri386_startrom.com
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004362f3
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
call fcn.00436197
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004360aa
push dword [ebp - 0x1c]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
call esi
cmp eax, 0xffffffff
je 0x403e1f
lea eax, [ebp - 0x18]
push str.OSChooseri386_ntldr
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004362f3
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.00436197
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004360aa
push dword [ebp - 0x1c]
call esi
cmp eax, 0xffffffff
je 0x403e1f
lea eax, [ebp - 0x18]
push str.Setup
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004362f3
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call fcn.00436197
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004360aa
push dword [ebp - 0x1c]
call esi
cmp eax, 0xffffffff
jne 0x403e44
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.004360aa
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.004360aa
cmp dword [ebp - 0x14], ebx
je 0x403e40
push dword [ebp - 0x14]
call edi
xor eax, eax
jmp 0x403e76
lea eax, [ebp - 0x18]
mov ecx, 0x45b9ac
push eax
call fcn.00436197
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.004360aa
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.004360aa
cmp dword [ebp - 0x14], ebx
je 0x403e73
push dword [ebp - 0x14]
call edi
push 1
pop eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret