Function at 0x435cd0
Capabilities:
Create directory
Move file
Read file on windows
Set registry value
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d0aaf
mov eax, dword fs:[0]
push eax
mov eax, 0x14e8
call fcn.0047bc80
mov eax, dword [0x4fe080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 4], 0
call fcn.00425280
mov ecx, eax
call fcn.004254c0
call fcn.00425280
mov ecx, eax
call fcn.004254b0
mov byte [ebp - 0x14d9], al
test al, al
je 0x435e40
lea eax, [ebp - 0x14d4]
mov edi, 0x4d9724
push eax
call fcn.00425280
mov ecx, eax
call fcn.004252f0
lea eax, [ebp - 0x14f4]
mov byte [ebp - 4], 1
push eax
call fcn.00413ac0
mov ecx, eax
call fcn.00413b70
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 2
jb 0x435d6c
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x14b8]
call fcn.0040f510
cmp dword [ebp - 0x14e0], 8
mov byte [ebp - 4], 4
jb 0x435d93
push dword [ebp - 0x14f4]
call fcn.0047a557
add esp, 4
push dword [ebp - 0x14c4]
xor eax, eax
mov dword [ebp - 0x14e0], 7
cmp dword [ebp - 0x14c0], 8
lea ecx, [ebp - 0x14b8]
mov word [ebp - 0x14f4], ax
lea eax, [ebp - 0x14d4]
cmovae eax, dword [ebp - 0x14d4]
push eax
push dword [ebp - 0x14a8]
mov dword [ebp - 0x14e4], 0
push 0
call fcn.0041efc0
test eax, eax
jne 0x435de9
mov ecx, ebx
call fcn.004365c0
cmp dword [ebp - 0x14a4], 8
jb 0x435e00
push dword [ebp - 0x14b8]
call fcn.0047a557
add esp, 4
xor eax, eax
mov dword [ebp - 0x14a4], 7
cmp dword [ebp - 0x14c0], 8
mov dword [ebp - 0x14a8], 0
mov word [ebp - 0x14b8], ax
mov byte [ebp - 4], al
jb 0x435f1c
push dword [ebp - 0x14d4]
call fcn.0047a557
add esp, 4
jmp 0x435f1c
mov dword [ebp - 0x14a0], reloc.WS2_32.dll_accept
call fcn.00409810
push eax
lea ecx, [ebp - 0x14b8]
call fcn.0040f510
push 9
push 0x4d9748
lea ecx, [ebp - 0x14b8]
mov byte [ebp - 4], 5
call fcn.00411400
cmp dword [ebp - 0x14a4], 8
lea eax, [ebp - 0x14bc]
lea esi, [ebp - 0x14b8]
mov dword [ebp - 0x14bc], 0
cmovae esi, dword [ebp - 0x14b8]
push eax
call fcn.00409550
push eax
push esi
lea ecx, [ebp - 0x14a0]
call fcn.0043e330
test al, al
je 0x435edd
mov ecx, ebx
call fcn.004365c0
mov eax, dword [ebp - 0x14bc]
add eax, 0xfffffed3
cmp eax, 0xe
ja 0x435ecf
call fcn.00425280
mov ecx, eax
call fcn.00425010
mov byte [ebp - 0x14d9], 1
mov edi, str.reinstall_started
jmp 0x435ee4
call fcn.004099e0
mov edi, eax
cmp dword [ebp - 0x14a4], 8
mov byte [ebp - 4], 0
jb 0x435eff
push dword [ebp - 0x14b8]
call fcn.0047a557
add esp, 4
xor eax, eax
mov dword [ebp - 0x14a4], 7
mov dword [ebp - 0x14a8], 0
mov word [ebp - 0x14b8], ax
cmp byte [ebp - 0x14d9], 0
jne 0x435f31
call fcn.00425280
mov ecx, eax
call fcn.00425180
push 0x1000
call fcn.004780a0
push edi
mov esi, eax
push 0x800
push esi
call fcn.00435940
add esp, 0x10
push 0
push 0
push esi
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
push esi
call fcn.0047b041
add esp, 4
call fcn.004098a0
push eax
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0
lea eax, [ebx + 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ecx, ebx
call fcn.00437010
sub esp, 0x18
xor eax, eax
mov ecx, esp
push 0xffffffffffffffff
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push eax
mov word [ecx], ax
lea eax, [ebp + 8]
push eax
call fcn.004114e0
mov ecx, ebx
call fcn.00437a10
mov ecx, ebx
call fcn.00437af0
lea eax, [ebp - 0x14f4]
mov dword [ebp - 0x14a0], reloc.WS2_32.dll_accept
push eax
call fcn.00413ac0
mov ecx, eax
call fcn.00413b30
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 6
jb 0x435fea
mov eax, dword [eax]
push eax
lea esi, [ebx + 0x1830]
call fcn.0040c400
push eax
push esi
lea ecx, [ebp - 0x14a0]
call fcn.0043e4e0
cmp dword [ebp - 0x14e0], 8
mov byte [ebp - 4], 0
jb 0x43601e
push dword [ebp - 0x14f4]
call fcn.0047a557
add esp, 4
call fcn.00425280
mov ecx, eax
call fcn.004258f0
call fcn.00425280
mov ecx, eax
call fcn.00425ad0
push 0
mov dword [ebp - 0x14a0], reloc.WS2_32.dll_accept
call fcn.00408c10
push eax
push esi
lea ecx, [ebp - 0x14a0]
call fcn.0043e3c0
test al, al
jne 0x436072
push 0
call fcn.00408960
push eax
call fcn.00404240
push eax
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
push 1
mov dword [ebp - 0x14a0], reloc.WS2_32.dll_accept
call fcn.0040c2e0
push eax
push esi
lea ecx, [ebp - 0x14a0]
call fcn.0043e3c0
test al, al
jne 0x4360ae
push 0
call fcn.0040c310
push eax
call fcn.00404240
push eax
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
lea eax, [ebx + 0x1628]
push eax
call fcn.00409a40
push eax
lea eax, [ebp - 0x149c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x14d8]
push 0
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea eax, [ebp - 0x149c]
push eax
push reloc.WS2_32.dll_accept
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x43611f
push 1
push 0x4d959e
push 1
push eax
call fcn.00409b00
push eax
push dword [ebp - 0x14d8]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x14d8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.00404220
push eax
lea eax, [ebx + 0x10]
push eax
call fcn.0047f649
mov edi, eax
add esp, 8
test edi, edi
jne 0x436171
push eax
call fcn.0040ba30
push eax
call fcn.00404240
push eax
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
push str.Could_not_open_file_for_reading
lea ecx, [ebp - 0x14b0]
call fcn.00435850
push 0x4f6328
lea eax, [ebp - 0x14b0]
push eax
call fcn.0047b07b
mov ecx, ebx
call fcn.00438060
add ebx, 0x1218
call fcn.00409b50
push eax
push ebx
call fcn.0047f649
mov esi, eax
add esp, 8
test esi, esi
jne 0x43620d
push eax
call fcn.0047ad6e
push eax
call fcn.0047d660
add esp, 8
call fcn.0047d63f
push eax
push ebx
call fcn.00409b70
push eax
lea eax, [ebp - 0xc9c]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0xc9c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.00409b50
push eax
push ebx
call fcn.0047f649
mov esi, eax
add esp, 8
test esi, esi
jne 0x43620d
push eax
call fcn.00409ba0
push eax
call fcn.00404240
push eax
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
call fcn.00409c50
push eax
jmp 0x436155
push edi
push 0x400
lea eax, [ebp - 0x49c]
push 1
push eax
call fcn.0047f509
add esp, 0x10
test eax, eax
je 0x436253
push esi
push eax
lea eax, [ebp - 0x49c]
push 1
push eax
call fcn.0047c496
push edi
push 0x400
lea eax, [ebp - 0x49c]
push 1
push eax
call fcn.0047f509
add esp, 0x20
test eax, eax
jne 0x436228
push edi
call fcn.0047f31e
add esp, 4
test eax, eax
jne 0x43631b
push esi
call fcn.0047f31e
add esp, 4
test eax, eax
jne 0x43631b
push edi
call fcn.0047bd17
push esi
call fcn.0047bd17
add esp, 8
push 0x1000
call fcn.004780a0
cmp byte [ebp - 0x14d9], 0
mov esi, eax
je 0x4362b9
call fcn.004096f0
push eax
push 0x800
push esi
call fcn.00435940
add esp, 0x10
push 0
push 0
call fcn.004096f0
push eax
jmp 0x4362d2
call fcn.004096c0
push eax
push 0x800
push esi
call fcn.00435940
add esp, 0x10
push 0
push 0
push esi
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
push esi
call fcn.0047b041
add esp, 4
cmp dword [ebp + 0x1c], 8
jb 0x4362f8
push dword [ebp + 8]
call fcn.0047a557
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047b06c
mov esp, ebp
pop ebp
ret 0x18
push 0
call fcn.00409c80
push eax
call fcn.00404240
push eax
call fcn.0043ff60
mov ecx, eax
call fcn.004401d0
call fcn.00409cf0
push eax
jmp 0x436155